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