Initial commit
32
.github/workflows/upload.yml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
name: CI
|
||||
|
||||
# Controls when the action will run.
|
||||
on:
|
||||
# Triggers the workflow on push to master (including merged PRs)
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
# This workflow contains a single job called "build"
|
||||
update:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
- name: Updating website.
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: lukesmith.xyz
|
||||
username: lugo
|
||||
key: ${{ secrets.lugo_ssh }}
|
||||
passphrase: ${{ secrets.lugo_pass }}
|
||||
port: 22
|
||||
script: |
|
||||
cd /var/www/lugo
|
||||
git stash
|
||||
git pull --force origin master
|
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Voidcruiser Hugo theme
|
||||
|
||||
Hacked together based on the CSS I used before hugo andm a whole bunch of examples on the internet
|
6
archetypes/default.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
11
config.toml
Normal file
|
@ -0,0 +1,11 @@
|
|||
title = "Website Name"
|
||||
baseURL = 'https://example.org'
|
||||
yggURL = 'http://[201:1bf3:e688:a7ba:48f0:761a:c187:3550]'
|
||||
onion = 'https://example.org'
|
||||
i2p = 'https://example.org'
|
||||
languageCode = 'en-us'
|
||||
|
||||
[params]
|
||||
# "relatedtext" is the text that appears above the tag list at the bottom of pages.
|
||||
#relatedtext = "Related:"
|
||||
favicon = "/favicon.ico"
|
13
layouts/_default/list.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
{{ partial "header.html" . -}}
|
||||
<h1 class="page-head">{{ .Title }}</h1>
|
||||
<main>
|
||||
<article>
|
||||
{{ .Content -}}
|
||||
<ul>
|
||||
{{- range.Pages }}
|
||||
<li><time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006 Jan 02" }}</time> – <a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
|
||||
{{ end -}}
|
||||
</ul>
|
||||
</article>
|
||||
</main>
|
||||
{{- partial "footer.html" . }}
|
26
layouts/_default/rss.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ .Site.Title }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
||||
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
||||
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
|
||||
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
|
||||
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{ end }}
|
||||
{{ range .Pages }}
|
||||
<item>
|
||||
<title>{{ .Title }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{- .Content | html -}}</description>
|
||||
</item>
|
||||
{{ end }}
|
||||
</channel>
|
||||
</rss>
|
6
layouts/_default/single.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{{ partial "header.html" . -}}
|
||||
<h1 class="page-head">{{ .Title }}</h1>
|
||||
<main>
|
||||
{{ .Content -}}
|
||||
</main>
|
||||
{{ partial "footer.html" . }}
|
11
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
<!--{{ partial "nextprev.html" . -}}
|
||||
{{ partial "taglist.html" . -}}-->
|
||||
<footer>
|
||||
<div class="mirror">[<a href="http://fxawfamgojpoxxgzmmjiro4wx4eycempujmryk6miz4a64ljl6sz7dqd.onion">onion</a>|<a href="http://lmwr2pugnmv4pkkxlneeepi4oysfly33zfuj7x25s6hfydysnpfq.b32.i2p">i2p</a>|<a href="http://[201:e2aa:7c70:666b:9a28:6406:be7f:bf0d]">yggdrasil</a>]
|
||||
<a rel="lisence" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="CC BY-SA 4.0" src="/stickers/cc4.png"></a>
|
||||
<a rel="rss" href="/index.xml"><img src="/rss.svg" style="max-height:1em"></a>
|
||||
<!--<a href="/index.xml"><img src="/rss.svg" style="max-height:1em" alt="RSS Feed" title="Subscribe via RSS for updates."></a>-->
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
20
layouts/partials/header.html
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.Language }}">
|
||||
<head>
|
||||
<title>{{ if not .IsHome }}{{ .Title | title }} | {{ end }}{{ .Site.Title }}</title>
|
||||
<!--<title>{{ .Title }} | {{ .Site.Title }}</title>-->
|
||||
<link rel="canonical" href="{{ .Site.BaseURL }}">
|
||||
<link rel='alternate' type='application/rss+xml' title="{{ .Site.Title }} RSS" href='/index.xml'>
|
||||
<link rel='stylesheet' type='text/css' href='/style.css'>
|
||||
{{ with .Site.Params.favicon }}<link rel="icon" href="{{ . }}">
|
||||
{{ end -}}
|
||||
<meta name="description" content="{{ with .Params.description }}{{ . }}{{ else }}{{ .Summary }}{{ end }}">
|
||||
{{ if isset .Params "tags" }}<meta name="keywords" content="{{ with .Params.tags }}{{ delimit . ", " }}{{ end }}">
|
||||
{{ end -}}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="logo" id="{{ .Site.Title }}">{{ .Site.Title | title }}</h1>
|
||||
{{ partial "nav.html" . }}
|
13
layouts/partials/nav.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<nav>
|
||||
<details open="">
|
||||
<summary>Nav</summary>
|
||||
<a href="/">Home</a>
|
||||
{{- $sec := .Page.Section }}{{ $file := .File.TranslationBaseName -}}
|
||||
{{ range.Site.Menus.main.ByWeight }}{{ $base := path.Base .URL }}
|
||||
<li><a {{ if or ( eq $sec $base ) ( eq $file $base ) ( and (eq $sec "") ( eq $file "_index") (eq $base "/") ) }}class="menuactive" {{ end }}href="{{ .URL }}"><span class=pre>{{ .Pre }}</span><span class=menuname>{{ .Name }}</span></a></li>
|
||||
{{- end }}
|
||||
{{ range .Site.RegularPages }}
|
||||
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
|
||||
{{ end }}
|
||||
</details>
|
||||
</nav>
|
10
layouts/partials/nextprev.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{{ if or .Next .Prev -}}
|
||||
<div id="nextprev">
|
||||
{{- with .Prev }}
|
||||
<a href="{{ .RelPermalink}}"><div id="prevart">Previous:<br>{{.Title}}</div></a>
|
||||
{{ end -}}
|
||||
{{- with .Next -}}
|
||||
<a href="{{ .RelPermalink}}"><div id="nextart">Next:<br>{{.Title}}</div></a>
|
||||
{{ end -}}
|
||||
</div>
|
||||
{{ end -}}
|
8
layouts/partials/stickers.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<div class="stickers">
|
||||
<a target="_blank" href="https://blackgnu.net/on-blockchain.html" ><img alt="Web 3 is a scam" src="/stickers/notoweb3.gif" /></a>
|
||||
<a target="_blank" href="https://gemini.circumlunar.space/" ><img alt="Fuck Chromium" src="/stickers/same-shit-different-asshole_banner.gif" /></a>
|
||||
<a target="_blank" href="https://www.vim.org" ><img alt="I ♡ vim" src="/stickers/edited-with-vim_banner.gif" /></a>
|
||||
<a target="_blank" href="https://yewtu.be/watch?v=TdkdR92a7dU"><img alt="Nazi punks, fuck off!" src="/stickers/nonazis.png"></a>
|
||||
<a target="_blank" href="https://wiby.me"><img alt="Wiby is great" src="/stickers/wiby.gif"></a>
|
||||
<a target="_blank" href="https://anybrowser.org/campaign/"><img alt="Viewable in any browser" src="/stickers/4nobody.gif"></a>
|
||||
</div>
|
13
layouts/partials/taglist.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
{{- if isset .Params "tags" -}}
|
||||
{{- $tagsLen := len .Params.tags -}}
|
||||
{{- if gt $tagsLen 0 -}}
|
||||
<div style="clear:both" class=taglist>
|
||||
{{- with .Site.Params.relatedtext }}{{ . }}<br>{{ end -}}
|
||||
{{- range $k, $v := .Params.tags -}}
|
||||
{{- $url := printf "tags/%s" (. | urlize | lower) -}}
|
||||
<a id="tag_{{ . | lower }}" href="{{ $url | absURL }}">{{ . | title }}</a>
|
||||
{{- if lt $k (sub $tagsLen 1) }} · {{ end -}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{- end -}}
|
||||
{{- end }}
|
13
layouts/shortcodes/audio.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!--
|
||||
class: class of the figure
|
||||
link: url the image directs to
|
||||
alt: alternative text
|
||||
caption: caption
|
||||
mouse: what the image says when moused over ("title" in HTML)
|
||||
-->
|
||||
<audio controls="true">
|
||||
<source src="{{.Get "src" }}" type="audio/{{.Get "audio" }}">
|
||||
Sorry mate, your browser doesn't support playing audio files.
|
||||
</source>
|
||||
</audio>
|
||||
|
1
layouts/shortcodes/begin-art.html
Normal file
|
@ -0,0 +1 @@
|
|||
<article>
|
1
layouts/shortcodes/end-art.html
Normal file
|
@ -0,0 +1 @@
|
|||
</article>
|
10
layouts/shortcodes/hidvid.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<details>
|
||||
<summary>Click to reveal video.</summary>
|
||||
<iframe src="{{ index .Params 0 }}"
|
||||
loading="lazy"
|
||||
sandbox="allow-same-origin allow-scripts allow-popups"
|
||||
allowfullscreen frameborder="0"
|
||||
class="embvid"
|
||||
title="Embedded Video">
|
||||
</iframe>
|
||||
</details>
|
20
layouts/shortcodes/img.html
Normal file
|
@ -0,0 +1,20 @@
|
|||
<!--
|
||||
class: class of the figure
|
||||
link: url the image directs to
|
||||
alt: alternative text
|
||||
caption: caption
|
||||
mouse: what the image says when moused over ("title" in HTML)
|
||||
-->
|
||||
<figure {{ with .Get "class" }}class="{{.}}"{{ end -}}>
|
||||
{{- with .Get "link"}}<a href="{{.}}">{{ end -}}
|
||||
<img src="{{ .Get "src" }}"
|
||||
{{- with .Get "mouse" }} title="{{.}}"{{ end -}}
|
||||
{{- with .Get "alt" }} alt="{{.}}"{{ end -}}
|
||||
>
|
||||
{{- if .Get "link"}}</a>{{ end -}}
|
||||
{{- with .Get "caption" -}}
|
||||
<figcaption>
|
||||
{{- . -}}
|
||||
</figcaption>
|
||||
{{- end -}}
|
||||
</figure>
|
3
layouts/shortcodes/tagcloud.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
{{ if isset .Site.Taxonomies "tags" }}{{ if not (eq (len .Site.Taxonomies.tags) 0) }} <ul id="tagcloud">
|
||||
{{ range $name, $items := .Site.Taxonomies.tags }}{{ $url := printf "%s/%s" "tags" ($name | urlize | lower)}}<li><a href="{{ $url | absURL }}" id="tag_{{ $name }}">{{ $name | title }}</a></li>
|
||||
{{ end }}</ul>{{ end }}{{ end }}
|
1
layouts/shortcodes/toc.html
Normal file
|
@ -0,0 +1 @@
|
|||
{{ .TableOfContents }}
|
6
layouts/shortcodes/vid.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<iframe src="{{ index .Params 0 }}"
|
||||
loading="lazy"
|
||||
sandbox="allow-same-origin allow-scripts allow-popups"
|
||||
allowfullscreen frameborder="0"
|
||||
title="Embedded Video">
|
||||
</iframe>
|
1
static/rss.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 455.731 455.731" style="enable-background:new 0 0 455.731 455.731;" xml:space="preserve"><g><rect x="0" y="0" style="fill:#F78422;" width="455.731" height="455.731"/><g><path style="fill:#FFFFFF;" d="M296.208,159.16C234.445,97.397,152.266,63.382,64.81,63.382v64.348 c70.268,0,136.288,27.321,185.898,76.931c49.609,49.61,76.931,115.63,76.931,185.898h64.348 C391.986,303.103,357.971,220.923,296.208,159.16z"/><path style="fill:#FFFFFF;" d="M64.143,172.273v64.348c84.881,0,153.938,69.056,153.938,153.939h64.348 C282.429,270.196,184.507,172.273,64.143,172.273z"/><circle style="fill:#FFFFFF;" cx="109.833" cy="346.26" r="46.088"/></g></g></svg>
|
After Width: | Height: | Size: 920 B |
BIN
static/stickers/4nobody.gif
Normal file
After Width: | Height: | Size: 2.9 KiB |
7
static/stickers/80x15.png
Normal file
|
@ -0,0 +1,7 @@
|
|||
<html>
|
||||
<head><title>301 Moved Permanently</title></head>
|
||||
<body bgcolor="white">
|
||||
<center><h1>301 Moved Permanently</h1></center>
|
||||
<hr><center>nginx</center>
|
||||
</body>
|
||||
</html>
|
BIN
static/stickers/cc4.png
Normal file
After Width: | Height: | Size: 446 B |
BIN
static/stickers/edited-with-vim_banner.gif
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
static/stickers/nonazis.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
static/stickers/notoweb3.gif
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
static/stickers/same-shit-different-asshole_banner.gif
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/stickers/wiby.gif
Normal file
After Width: | Height: | Size: 2.1 KiB |
62
static/style.css
Normal file
|
@ -0,0 +1,62 @@
|
|||
:root{
|
||||
scrollbar-color: #333747 #1d1f21;
|
||||
}
|
||||
::selection{
|
||||
background-color: #333747;
|
||||
color:#c397d8;
|
||||
}
|
||||
html{
|
||||
color: #eaeaea;
|
||||
background-color: #1d1f21;
|
||||
}
|
||||
body{ padding: 0; margin: 0; }
|
||||
a{ color: #f0c674; }
|
||||
a:hover{ color: #1d1f21; background-color: #f0c674; }
|
||||
a:hover::selection{ color: #f0c674; }
|
||||
audio{ width: 100%; display: block; margin-top: 1em; }
|
||||
main{ margin-left: 12em; margin-right: 1em; padding: 1em; border:1pt solid; margin-bottom: 1em;}
|
||||
main h1{border-bottom: 1pt solid;}
|
||||
article{padding:1em; border:#282a2e 1pt solid;}
|
||||
nav{height: 100%;padding: 0.5em; float:left; background: #282a2e; border-right:solid 1pt; border-bottom: solid 1pt; width: 10em;}
|
||||
nav li{list-style: none; list-style-position:outside;}
|
||||
nav a{ display: block;}
|
||||
summary{cursor:pointer;}
|
||||
summary:hover{ color: #1d1f21; background-color: #f0c674; }
|
||||
footer{text-align:center; border-top:1pt solid; margin-top: 1em;}
|
||||
footer a{text-decoration:none;}
|
||||
footer .mirror{text-align:center; color: #f0c674;}
|
||||
code{ background: #282a2e; border-radius: 1em; padding: 2pt;}
|
||||
pre{ background: #282a2e; padding: 1em; border-radius: 1em;}
|
||||
.logo{
|
||||
padding: 5pt 0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
border-bottom: 2pt solid;
|
||||
background-color: #282a2e;
|
||||
background: linear-gradient(to right,#b294bb,#282a2e);
|
||||
}
|
||||
.about ul{list-style:none;}
|
||||
.about img{height:10em; float:left;}
|
||||
header{text-transform: capitalize; text-align:center;border-bottom:2pt solid; font-weight:bold;}
|
||||
.page-head{text-transform: capitalize; text-align:center;border-bottom:2pt solid; font-weight:bold;}
|
||||
@media (max-width: 800px){
|
||||
main{max-width:100%; margin: 1em;}
|
||||
nav{padding:0; width: 100%; border-right:solid 0pt;}
|
||||
nav a{ padding-left: 1em;}
|
||||
}
|
||||
.stickers{ text-align:center; }
|
||||
.gay{
|
||||
background:linear-gradient(-45deg, #cc6666, #f0c674, #b5bd68, #8abeb7, #81a2b3, #b294bb);
|
||||
background-clip: text;
|
||||
background-size:300%;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
animation:gay 8s ease-in-out infinite;
|
||||
-moz-animation: gay 8s ease-in-out infinite;
|
||||
-webkit-animation: gay 8s ease-in-out infinite;
|
||||
}
|
||||
@keyframes gay {
|
||||
0%{background-position: 0px 50%;}
|
||||
50%{background-position: 100% 50%;}
|
||||
10%{background-position: 0px 50%;}
|
||||
}
|