@ -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'); | |||||
} | |||||
}); | |||||
}()); | |||||
} |