The web design and pages for my personal website.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

214 lines
7.4 KiB

{{ define "title" }}{{ end }}
{{ define "scripts" }}{{ end }}
{{ define "layout" }}
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ template "title" . }} - {{ .Title }}</title>
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
<!-- FontAwesome -->
<link rel="stylesheet" type="text/css" href="/vendor/FontAwesome/css/fa-svg-with-js.css">
<!-- Flare -->
<link rel="stylesheet" type="text/css" href="/flare/ui.css">
<link rel="stylesheet" type="text/css" href="/solar/gruvbox.css">
<link rel="stylesheet" type="text/css" href="/solar/vim-syntax.css">
<link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog.rss">
<link rel="alternate" type="application/atom+xml" title="Kirsle's Atom Feed" href="/blog.atom">
<div class="mobile-nav">
<a href="#navbar" class="btn btn-primary"><i class="fas fa-bars"></i></a>
<div class="brand d-md-none">
<a href="/">
<img src="/flare/cjk-48.png" width="48" height="48" alt=" logo">
<div class="wallpaper"></div>
<div class="container-fluid">
<div class="row">
<div class="order-1 order-md-12 col-12 col-md-9 col-lg-10 col-xl-9" style="min-width: 0; max-width: 1280px">
<div class="content-panel mb-4">
{{ if .SetupNeeded }}
<div class="alert alert-success">
Your web blog needs to be set up!
Please <a href="/initial-setup">click here</a> to
configure your blog.
{{ end }}
{{ range .Flashes }}
<div class="alert alert-success">
{{ . }}
{{ end }}
{{ if .Error }}
<div class="alert alert-danger">
<strong>Error:</strong> {{ .Error }}
{{ end }}
{{ template "content" . }}
{{ if and .CurrentUser.Admin .Editable (ne .TemplatePath ".markdown.gohtml") }}
<strong>Admin:</strong> [<a href="/admin/editor?file={{ .TemplatePath }}">edit this page</a>]
{{ end }}
<div class="mt-4 copyright">
Copyright &copy; {{ Now.Format "2006" }} Noah Petherbridge &mdash; All rights reserved<br>
Hosted by <a href="">DigitalOcean</a><br>
Page generated in <code>{{ printf "%.4f" .RequestDuration.Seconds }}s</code>.
<div id="navbar" class="nav-panel order-12 order-md-1 col-12 col-md-3 col-lg-2">
<div class="brand">
<a href="/">
<img src="/flare/cjk-48.png" width="48" height="48" alt=" logo">
<div class="mb-4 center d-lg-none">
<a href="#"><i class="fa fa-arrow-up"></i> Back to Top</a>
<div class="mb-4">
<ul class="list-unstyled">
<li>&#0187; <a href="/">Homepage</a> <small>(<a href="/blog.rss">RSS</a>/<a href="/blog.atom">Atom</a>)</small></li>
<li>&#0187; <a href="/about">About Me</a></li>
<li>&#0187; <a href="/ask">Ask Me Anything</a></li>
<!-- <li>&#0187; <a href="/photos/albums">Photo Albums</a></li> -->
<li>&#0187; <a href="/current-projects">Current Projects</a></li>
<li>&#0187; <a href="/wiki/Main-Page">My Wiki</a></li>
<li>&#0187; <a href="/guestbook">Guestbook</a></li>
<li>&#0187; <a href="/contact">Contact Me</a></li>
<li>&#0187; <a href="/tagged">Blog Tags</a></li>
<li>&#0187; <a href="/archive">Archive</a></li>
<ul class="list-unstyled">
<li>&#0187; <a href="/rendering">3D Renderings</a></li>
<li>&#0187; <a href="/flash">Flash Animations</a></li>
<li>&#0187; <a href="/javascript">JavaScript Games</a></li>
<li>&#0187; <a href="/fonts">TrueType Fonts</a></li>
<li>&#0187; <a href="/designs">Past Web Designs</a></li>
<h2>Web Tools</h2>
<ul class="list-unstyled">
<li>&#0187; <a href="/wizards/ttf2eot.cgi">TTF to EOT Font Converter</a></li>
<li>&#0187; <a href="/wizards/ps1.html">Bash $PS1 Prompt Generator</a></li>
<li>&#0187; <a href="/wizards/fader.cgi">Text Color Fader</a></li>
<li>&#0187; <a href="/wizards/translator.html">Azulian Translater</a></li>
<li>&#0187; <a href="/wizards/flask-session.cgi">Flask Session Viewer</a></li>
<h2>Out of Network</h2>
<ul class="list-unstyled">
<li>&#0187; <a href="" rel="me">Github</a></li>
<li>&#0187; <a href="" rel="me">CPAN</a></li>
<li>&#0187; <a href="" rel="me">npm</a></li>
<div class="center">
<a href="">
<img src="/static/images/html5.png" width="80" height="15" alt="W3C Valid HTML5">
<a href="">
<img src="/static/images/css3.png" width="80" height="15" alt="W3C Valid CSS3">
<a href="" target="_blank">
<img src="/static/images/digital-ocean.png" width="140" height="39" alt="Proudly hosted by DigitalOcean">
<ul class="list-unstyled">
{{ if .LoggedIn }}
<li>&#0164; Hi, <big><a href="/account">{{ or .CurrentUser.Name .CurrentUser.Username }}</a></big></li>
{{ if .CurrentUser.Admin }}
<li>&#0187; <a href="/admin">Admin Center</a></li>
{{ end }}
<li>&#0187; <a href="/blog/edit">Update Blog</a></li>
<li>&#0187; <a href="/blog/drafts">Drafts</a>/<a href="/blog/private">Private</a></li>
<li>&#0187; <a href="/logout">Log Out</a>
{{ else }}
<li id="login-link">
<small><a href="/login" class="login-link text-muted">Log In</a></small>
{{ end }}
<div id="login-inline" style="display: none">
<form action="/login" method="POST">
<input type="hidden" name="_csrf" value="{{ .CSRF }}">
<input type="hidden" name="next" value="{{ .Path }}">
<input type="text" class="form-control" size="4" name="username" style="display: inline; width: 46%">
<input type="password" class="form-control" size="4" name="password" style="display: inline; width: 46%">
<button type="submit" class="btn btn-primary" style="width: 100%">Log In</button>
<script src="/js/jquery-2.1.0.min.js"></script>
<script src="/js/offsite.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/vendor/FontAwesome/js/fontawesome-all.min.js"></script>
$(document).ready(function() {
$(".login-link").click(function() {
return false;
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
(function() {
var u="//";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
<!-- End Matomo Code -->
{{ template "scripts" }}
{{ end }}