@ -0,0 +1,62 @@ | |||
package Helper | |||
import ( | |||
"strconv" | |||
"strings" | |||
"time" | |||
) | |||
func MinusInt64(a, b int64) string { | |||
return strconv.FormatInt(a-b, 10) | |||
} | |||
func MinusInt(a, b int) string { | |||
return strconv.Itoa(a - b) | |||
} | |||
func Minus(a, b int) int { | |||
return a - b | |||
} | |||
func PlusInt64(a, b int64) string { | |||
return strconv.FormatInt(a+b, 10) | |||
} | |||
func PlusInt(a, b int) string { | |||
return strconv.Itoa(a + b) | |||
} | |||
func Iterate(count int) []int { | |||
var i int | |||
var Items []int | |||
for i = 0; i < count; i++ { | |||
Items = append(Items, i) | |||
} | |||
return Items | |||
} | |||
func StrToLower(s string) string { | |||
return strings.ToLower(s) | |||
} | |||
func FormatTimestamp(t interface{}) string { | |||
var ( | |||
s string | |||
tt time.Time | |||
exists bool | |||
) | |||
// Check if timestamp is string | |||
s, exists = t.(string) | |||
if exists { | |||
return s | |||
} | |||
// Check if timestamp is time.Time | |||
tt, exists = t.(time.Time) | |||
if !exists || tt.IsZero() { | |||
return "" | |||
} | |||
loc, _ := time.LoadLocation("Australia/Adelaide") | |||
return tt. | |||
In(loc). | |||
Format("02/01/2006 03:04 PM") | |||
} |
@ -1,27 +0,0 @@ | |||
package Helper | |||
import ( | |||
"time" | |||
) | |||
func FormatTimestamp(t interface{}) string { | |||
var ( | |||
s string | |||
tt time.Time | |||
exists bool | |||
) | |||
// Check if timestamp is string | |||
s, exists = t.(string) | |||
if exists { | |||
return s | |||
} | |||
// Check if timestamp is time.Time | |||
tt, exists = t.(time.Time) | |||
if !exists || tt.IsZero() { | |||
return "" | |||
} | |||
loc, _ := time.LoadLocation("Australia/Adelaide") | |||
return tt. | |||
In(loc). | |||
Format("02/01/2006 03:04 PM") | |||
} |
@ -1,59 +0,0 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>Tovi Jaeschke's Homepage</title> | |||
<link rel="stylesheet" type="text/css" href="css/main.css"> | |||
<link href='https://fonts.googleapis.com/css?family=Average|Montserrat' rel='stylesheet' type='text/css'> | |||
<link rel="stylesheet" href="css/prism.css"> | |||
<script src="js/prism.js"></script> | |||
<script src="js/script.js"></script> | |||
</head> | |||
<body> | |||
<header> | |||
<a href="/"><h2 href="/">Tovi Jaeschke</h2></a> | |||
<div class="nav-toggle"> | |||
<div class="nav-toggle-bar"></div> | |||
</div> | |||
<div class="links"> | |||
<ul> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
<a href="/links.html"><li>Links</li></a> | |||
</ul> | |||
</div> | |||
<ul class="pc-links"> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li class="active">Hire Me</li></a> | |||
</ul> | |||
</header> | |||
<div class="container"> | |||
<div class="left-bar"> | |||
<p>Links:</p> | |||
<ul class="expand-links"> | |||
<a href="mailto:tovi@tovijaeschke.xyz"><li>Email</li></a> | |||
<a href="https://git.tovijaeschke.xyz"><li>Git</li></a> | |||
<a href="https://gitlab.com/tovijaeschke"><li>Gitlab</li></a> | |||
<a href="/static/Resume.pdf"><li>Resume</li></a> | |||
<a href="https://demos.tovijaeschke.xyz/"><li>Portfolio</li></a> | |||
</ul> | |||
<p>Recent posts:</p> | |||
<ul> | |||
<?php include 'php/recent-posts.php';?> | |||
</ul> | |||
</div> | |||
<div class="main"> | |||
<h2>Hire Me!</h2> | |||
<p>If you have any work pertaining to Web Development, Cyber Security, or Programming in Go, Python, or PHP, Please take a look at my Resume <a href="/static/Resume.pdf">here</a> and email me at <a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a></p> | |||
</div> | |||
</div> | |||
<footer> | |||
<a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a> | |||
<p>Last updated: <?php lastUpdate();?></p> | |||
</footer> | |||
</body> | |||
</html> |
@ -0,0 +1,6 @@ | |||
<h2>Tovi Jaeschke</h2> | |||
<p>Hello! My name is Tovi. I'm a 21 year old programmer and computer security enthusiast.</p> | |||
<p>My main hobbies include reading, programming, pentesting, philosophy, and designing websites. I actively develop in Go, Python, php, and HTML/CSS/JS. I enjoy using versatile, minimalist, open source programs, such as vim, st, dmenu, and dwm.</p> | |||
<p>You can find some of my portfolio and some front-end demos <a href="https://demos.tovijaeschke.xyz">here</a></p> | |||
<p>On this site, you will find programs I have written, CTF walkthroughs, minimalist programs I have found and begun using, and updates about my current workflow.</p> | |||
{{ template "index-post-list.gohtml" . }} |
@ -0,0 +1,16 @@ | |||
<h3>Recent posts:</h3> | |||
<ul class="index-recent-posts"> | |||
{{ range $post := .Posts }} | |||
<a href='/post/{{ $post.ID }}'> | |||
<li> | |||
<div class='index-recent-post-title-container'> | |||
<h4 class='index-recent-posts-title'>{{ $post.Title}}</h4> | |||
<p class='datetimebox recent-post-updated-at'>{{ FormatTimestamp $post.UpdatedAt }}</p> | |||
</div> | |||
<div class='index-post-intro'> | |||
{{ $post.Intro }} | |||
</div> | |||
</li> | |||
</a> | |||
{{ end }} | |||
</ul> |
@ -1,66 +0,0 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>Tovi Jaeschke's Homepage</title> | |||
<link rel="stylesheet" type="text/css" href="css/main.css"> | |||
<link href='https://fonts.googleapis.com/css?family=Average|Montserrat' rel='stylesheet' type='text/css'> | |||
<link rel="stylesheet" href="css/prism.css"> | |||
<script src="js/prism.js"></script> | |||
<script src="js/script.js"></script> | |||
</head> | |||
<body> | |||
<header> | |||
<a href="/"><h2 href="/">Tovi Jaeschke</h2></a> | |||
<div class="nav-toggle"> | |||
<div class="nav-toggle-bar"></div> | |||
</div> | |||
<div class="links"> | |||
<ul> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
<a href="/links.html"><li>Links</li></a> | |||
</ul> | |||
</div> | |||
<ul class="pc-links"> | |||
<a href="/pentesting.html?page=0"><li class="active">Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
</ul> | |||
</header> | |||
<div class="container"> | |||
<div class="left-bar"> | |||
<p>Links:</p> | |||
<ul class="expand-links"> | |||
<a href="mailto:tovi@tovijaeschke.xyz"><li>Email</li></a> | |||
<a href="https://git.tovijaeschke.xyz"><li>Git</li></a> | |||
<a href="https://gitlab.com/tovijaeschke"><li>Gitlab</li></a> | |||
<a href="/static/Resume.pdf"><li>Resume</li></a> | |||
<a href="https://demos.tovijaeschke.xyz/"><li>Portfolio</li></a> | |||
</ul> | |||
<p>Recent posts:</p> | |||
<ul> | |||
<?php include 'php/recent-posts.php';?> | |||
</ul> | |||
</div> | |||
<div class="main"> | |||
<h2>Pentesting</h2> | |||
<ul class="index-recent-posts"> | |||
<?php include 'php/recent-posts-pentest.php';?> | |||
</ul> | |||
<div class="paginate"> | |||
<ul> | |||
<?php Paginate();?> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> | |||
<footer> | |||
<a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a> | |||
<p>Last updated: <?php lastUpdate();?></p> | |||
</footer> | |||
</body> | |||
</html> |
@ -1,66 +0,0 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>Tovi Jaeschke's Homepage</title> | |||
<link rel="stylesheet" type="text/css" href="css/main.css"> | |||
<link href='https://fonts.googleapis.com/css?family=Average|Montserrat' rel='stylesheet' type='text/css'> | |||
<link rel="stylesheet" href="css/prism.css"> | |||
<script src="js/prism.js"></script> | |||
<script src="js/script.js"></script> | |||
</head> | |||
<body> | |||
<header> | |||
<a href="/"><h2 href="/">Tovi Jaeschke</h2></a> | |||
<div class="nav-toggle"> | |||
<div class="nav-toggle-bar"></div> | |||
</div> | |||
<div class="links"> | |||
<ul> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
<a href="/links.html"><li>Links</li></a> | |||
</ul> | |||
</div> | |||
<ul class="pc-links"> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li class="active">Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
</ul> | |||
</header> | |||
<div class="container"> | |||
<div class="left-bar"> | |||
<p>Links:</p> | |||
<ul class="expand-links"> | |||
<a href="mailto:tovi@tovijaeschke.xyz"><li>Email</li></a> | |||
<a href="https://git.tovijaeschke.xyz"><li>Git</li></a> | |||
<a href="https://gitlab.com/tovijaeschke"><li>Gitlab</li></a> | |||
<a href="/static/Resume.pdf"><li>Resume</li></a> | |||
<a href="https://demos.tovijaeschke.xyz/"><li>Portfolio</li></a> | |||
</ul> | |||
<p>Recent posts:</p> | |||
<ul> | |||
<?php include 'php/recent-posts.php';?> | |||
</ul> | |||
</div> | |||
<div class="main"> | |||
<h2>Personal</h2> | |||
<ul class="index-recent-posts"> | |||
<?php include 'php/recent-posts-personal.php';?> | |||
</ul> | |||
<div class="paginate"> | |||
<ul> | |||
<?php Paginate();?> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> | |||
<footer> | |||
<a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a> | |||
<p>Last updated: <?php lastUpdate();?></p> | |||
</footer> | |||
</body> | |||
</html> |
@ -0,0 +1,23 @@ | |||
<h2>{{ .Subject }}</h2> | |||
<ul class="index-recent-posts"> | |||
{{ range $post := .Posts }} | |||
<a href="/post/{{ $post.ID }}"> | |||
<li> | |||
<div> | |||
<h4 class="index-recent-posts-title">{{ $post.Title }}</h4> | |||
<p class="datetimebox">{{ FormatTimestamp $post.UpdatedAt }}</p> | |||
</div> | |||
</li> | |||
</a> | |||
{{ end }} | |||
</ul> | |||
<div class="paginate"> | |||
<ul> | |||
<a href="/{{ StrToLower .Subject }}?page=0"><li><</li></a> | |||
{{ $subj := StrToLower .Subject }} | |||
{{ range $i := Iterate .PageCount }} | |||
<a href="/{{ $subj }}?page={{ $i }}"><li>{{ PlusInt $i 1 }}</li></a> | |||
{{end}} | |||
<a href="/{{ StrToLower .Subject }}?page={{ MinusInt .PageCount 1 }}"><li>></li></a> | |||
</ul> | |||
</div> |
@ -0,0 +1,8 @@ | |||
<h3 class='post-title'>{{ .Post.Title }}</h2> | |||
{{ if .Post.MainImage }} | |||
<div class='icon-div'> | |||
<img class='post-icon' src='{{ .Post.MainImage }}' /> | |||
</div> | |||
{{ end }} | |||
{{ .Post.Intro }} | |||
{{ .Post.Body }} |
@ -1,80 +0,0 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>Tovi Jaeschke's Homepage</title> | |||
<link rel="stylesheet" type="text/css" href="css/main.css"> | |||
<link rel="stylesheet" type="text/css" href="css/post.css"> | |||
<link href='https://fonts.googleapis.com/css?family=Average|Montserrat' rel='stylesheet' type='text/css'> | |||
<link rel="stylesheet" href="css/prism.css"> | |||
<script src="https://www.google.com/recaptcha/api.js"></script> | |||
<script src="js/prism.js"></script> | |||
<script src="js/code_resize.js"></script> | |||
<script> | |||
function onSubmit(token) { | |||
document.getElementById("comment-form").submit(); | |||
} | |||
</script> | |||
</head> | |||
<body> | |||
<?php include 'php/post.php';?> | |||
<header> | |||
<a href="/"><h2 href="/">Tovi Jaeschke</h2></a> | |||
<div class="nav-toggle"> | |||
<div class="nav-toggle-bar"></div> | |||
</div> | |||
<div class="links"> | |||
<ul> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<?php getSubject(); ?> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
<a href="/links.html"><li>Links</li></a> | |||
</ul> | |||
</div> | |||
<ul class="pc-links"> | |||
<?php getSubject(); ?> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
</ul> | |||
</header> | |||
<div class="container"> | |||
<div class="left-bar"> | |||
<p>Links:</p> | |||
<ul class="expand-links"> | |||
<a href="mailto:tovi@tovijaeschke.xyz"><li>Email</li></a> | |||
<a href="https://git.tovijaeschke.xyz"><li>Git</li></a> | |||
<a href="https://gitlab.com/tovijaeschke"><li>Gitlab</li></a> | |||
<a href="/static/Resume.pdf"><li>Resume</li></a> | |||
<a href="https://demos.tovijaeschke.xyz/"><li>Portfolio</li></a> | |||
</ul> | |||
<p>Recent posts:</p> | |||
<ul> | |||
<?php include 'php/recent-posts.php';?> | |||
</ul> | |||
</div> | |||
<div class="main"> | |||
<?php getBody(); ?> | |||
<div class="comments"> | |||
<h3 class="comment-title">Comments</h3> | |||
<form id="comment-form" class="comment-form" action="php/add-comment.php" method="post"> | |||
<label for="email">Name</label><br> | |||
<input type="text" id="email" name="email" required placeholder="1337 H4X0R"><br> | |||
<label for="comment">Comment</label><br> | |||
<textarea id="comment" name="comment" value="comment" required placeholder="Dank meme bro"></textarea><br> | |||
<input type="text" name="post_id" value="<?php getPostId(); ?>" style="display: none;"> | |||
<button class="g-recaptcha" | |||
data-sitekey="6Lf30cQZAAAAAKb9cV9A_q0v4tP_hQkLFA0hs_dS" | |||
data-callback='onSubmit' | |||
data-action='submit' | |||
type="submit">Submit</button> | |||
</form> | |||
<?php include 'php/comments.php';?> | |||
</div> | |||
</div> | |||
</div> | |||
<footer> | |||
<a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a> | |||
<p>Last updated: <?php lastUpdate();?></p> | |||
</footer> | |||
</body> | |||
</html> |
@ -1,66 +0,0 @@ | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<title>Tovi Jaeschke's Homepage</title> | |||
<link rel="stylesheet" type="text/css" href="css/main.css"> | |||
<link href='https://fonts.googleapis.com/css?family=Average|Montserrat' rel='stylesheet' type='text/css'> | |||
<link rel="stylesheet" href="css/prism.css"> | |||
<script src="js/prism.js"></script> | |||
<script src="js/script.js"></script> | |||
</head> | |||
<body> | |||
<header> | |||
<a href="/"><h2 href="/">Tovi Jaeschke</h2></a> | |||
<div class="nav-toggle"> | |||
<div class="nav-toggle-bar"></div> | |||
</div> | |||
<div class="links"> | |||
<ul> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li>Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
<a href="/links.html"><li>Links</li></a> | |||
</ul> | |||
</div> | |||
<ul class="pc-links"> | |||
<a href="/pentesting.html?page=0"><li>Pentesting</li></a> | |||
<a href="/programming.html?page=0"><li class="active">Programming</li></a> | |||
<a href="/personal.html"><li>Personal</li></a> | |||
<a href="/hireme.html"><li>Hire Me</li></a> | |||
</ul> | |||
</header> | |||
<div class="container"> | |||
<div class="left-bar"> | |||
<p>Links:</p> | |||
<ul class="expand-links"> | |||
<a href="mailto:tovi@tovijaeschke.xyz"><li>Email</li></a> | |||
<a href="https://git.tovijaeschke.xyz"><li>Git</li></a> | |||
<a href="https://gitlab.com/tovijaeschke"><li>Gitlab</li></a> | |||
<a href="/static/Resume.pdf"><li>Resume</li></a> | |||
<a href="https://demos.tovijaeschke.xyz/"><li>Portfolio</li></a> | |||
</ul> | |||
<p>Recent posts:</p> | |||
<ul> | |||
<?php include 'php/recent-posts.php';?> | |||
</ul> | |||
</div> | |||
<div class="main"> | |||
<h2>Programming</h2> | |||
<ul class="index-recent-posts"> | |||
<?php include 'php/recent-posts-programming.php';?> | |||
</ul> | |||
<div class="paginate"> | |||
<ul> | |||
<?php Paginate();?> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> | |||
<footer> | |||
<a href="mailto:tovi@tovijaeschke.xyz">tovi@tovijaeschke.xyz</a> | |||
<p>Last updated: <?php lastUpdate();?></p> | |||
</footer> | |||
</body> | |||
</html> |
@ -0,0 +1,37 @@ | |||
var code_resize = function() { | |||
var sheet = window.document.styleSheets[0]; | |||
var leftbar = document.querySelector('.left-bar'); | |||
var style = getComputedStyle(leftbar).getPropertyValue('display'); | |||
if (style == "none") { | |||
var width = screen.width - 180; | |||
} else { | |||
var width = screen.width - 460; | |||
} | |||
sheet.insertRule('pre { max-width: ' + width + 'px; }', sheet.cssRules.length); | |||
sheet.insertRule('.command-line { max-width: ' + (width + 50) + 'px; }', sheet.cssRules.length); | |||
} | |||
window.onload = function() { | |||
code_resize(); | |||
window.onresize = code_resize; | |||
(function() { | |||
var hamburger = { | |||
navToggle: document.querySelector('.nav-toggle'), | |||
nav: document.querySelector('.links'), | |||
doToggle: function(e) { | |||
e.preventDefault(); | |||
this.navToggle.classList.toggle('expanded'); | |||
this.nav.classList.toggle('expanded'); | |||
} | |||
}; | |||
document.addEventListener('click', function(e) { | |||
if (e.target.className.includes("nav-toggle")) { | |||
hamburger.doToggle(e); | |||
} else { | |||
hamburger.navToggle.classList.remove('expanded'); | |||
hamburger.nav.classList.remove('expanded'); | |||
} | |||
}); | |||
}()); | |||
} |
@ -0,0 +1,22 @@ | |||
window.onload = function() { | |||
(function() { | |||
var hamburger = { | |||
navToggle: document.querySelector('.nav-toggle'), | |||
nav: document.querySelector('.links'), | |||
doToggle: function(e) { | |||
e.preventDefault(); | |||
this.navToggle.classList.toggle('expanded'); | |||
this.nav.classList.toggle('expanded'); | |||
} | |||
}; | |||
document.addEventListener('click', function(e) { | |||
if (e.target.className.includes("nav-toggle")) { | |||
hamburger.doToggle(e); | |||
} else { | |||
hamburger.navToggle.classList.remove('expanded'); | |||
hamburger.nav.classList.remove('expanded'); | |||
} | |||
}); | |||
}()); | |||
} |