Compare commits
21
Commits
pages
..
0e1ed09bee
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e1ed09bee | ||
|
|
1dd95f2418 | ||
|
|
2a06d6666e | ||
|
|
2d0c954a82 | ||
|
|
eac0b06afc | ||
|
|
99aa4c47d4 | ||
|
|
c85dd65ae7 | ||
|
|
71322bff07 | ||
|
|
299d47b580 | ||
|
|
d063d9773c | ||
|
|
7dd4ca5cb3 | ||
|
|
a99d8fbaba | ||
|
|
b3af6f6905 | ||
|
|
10c1b26153 | ||
|
|
5b4e9eb0c7 | ||
|
|
96186d3248 | ||
|
|
dd28d65164 | ||
|
|
5cf8725e01 | ||
|
|
1e531f07b6 | ||
|
|
eb018b6717 | ||
|
|
110eea369b |
No files matched your search
@@ -0,0 +1,4 @@
|
|||||||
|
_site
|
||||||
|
result
|
||||||
|
.direnv
|
||||||
|
.envrc
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<title>404 Not Found</title>
|
|
||||||
<h1>404 Not Found</h1>
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
BUILD_DATE := $(shell date '+%H:%M %d.%m.%Y')
|
||||||
|
|
||||||
|
serve:
|
||||||
|
python ../shared-assets/makesite.py \
|
||||||
|
-p params.json \
|
||||||
|
-v page_assets=/assets \
|
||||||
|
-v build_time="${BUILD_DATE}" \
|
||||||
|
--assets ../shared-assets/assets \
|
||||||
|
--assets ./assets \
|
||||||
|
--copy-assets \
|
||||||
|
--ignore ../shared-assets/assets/img \
|
||||||
|
--include robots.txt
|
||||||
|
# A workaround to making the fonts load without the CDN
|
||||||
|
mv _site/assets/fonts _site/fonts
|
||||||
|
cp -r well-known _site/.well-known
|
||||||
|
cd _site/ && python -m http.server 8080
|
||||||
|
|
||||||
|
build:
|
||||||
|
python ../shared-assets/makesite.py \
|
||||||
|
-p params.json \
|
||||||
|
-v page_assets=https://cdn.polynom.me \
|
||||||
|
-v build_time="${BUILD_DATE}" \
|
||||||
|
--assets ./assets \
|
||||||
|
--copy-assets \
|
||||||
|
--include robots.txt
|
||||||
|
cp -r well-known _site/.well-known
|
||||||
|
tar -czf blog.tar.gz _site
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,65 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<link href="https://polynom.me/css/index.css" rel="stylesheet" />
|
|
||||||
<link href="https://polynom.me/css/extra.css" rel="stylesheet" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:title" content="Code | polynom.me" />
|
|
||||||
<meta property="og:description" content="Alexander 'PapaTutuWawa' 's code repositories." />
|
|
||||||
<title>Code | polynom.me</title>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="flex flex-col p-2 md:p-8 items-start md:w-4/5 mx-auto">
|
|
||||||
<!-- Header -->
|
|
||||||
<div class="flex flex-row self-center">
|
|
||||||
<img
|
|
||||||
class="w-12 h-12 md:w-24 md:h-24 rounded-lg"
|
|
||||||
src="/img/avatar.jpg"
|
|
||||||
alt="Profile picture"
|
|
||||||
integrity="sha386-uiNteVXosQ2+o/izp41L1G9VwuwYDYCOPxzFWks058DMUhW7KfQXcipM7WqgSgEZ" />
|
|
||||||
<div class="ml-4 self-center">
|
|
||||||
<a class="self-center text-2xl font-bold" href="/">PapaTutuWawa's Website</a>
|
|
||||||
|
|
||||||
<ul class="list-none">
|
|
||||||
<li class="inline mr-8"><a href="https://blog.polynom.me">Blog</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/code/">Code</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/contact/">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-col pt-8 mx-auto">
|
|
||||||
<p class="prose text-white">
|
|
||||||
I keep my code mostly on my private Gitea instance <a class="text-indigo-400"
|
|
||||||
href="https://git.polynom.me/PapaTutuWawa">here</a>.
|
|
||||||
For purposes of allowing other people to also contribute
|
|
||||||
I try to mirror my code on GitHub and codeberg.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="pt-8 w-full">
|
|
||||||
<table class="text-white pt-8 w-full">
|
|
||||||
<tr>
|
|
||||||
<td>GitHub</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://github.com/PapaTutuWawa">PapaTutuWawa</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Codeberg</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://codeberg.org/PapaTutuWawa">PapaTutuWawa</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Gitea</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://git.polynom.me/PapaTutuWawa">PapaTutuWawa</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<link href="https://polynom.me/css/index.css" rel="stylesheet" />
|
|
||||||
<link href="https://polynom.me/css/extra.css" rel="stylesheet" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:title" content="Contact | polynom.me" />
|
|
||||||
<meta property="og:description" content="Contact details for getting in touch with Alexander 'PapaTutuWawa'." />
|
|
||||||
<title>Contact | polynom.me</title>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="flex flex-col p-2 md:p-8 items-start md:w-4/5 mx-auto">
|
|
||||||
<!-- Header -->
|
|
||||||
<div class="flex flex-row self-center">
|
|
||||||
<img
|
|
||||||
class="w-12 h-12 md:w-24 md:h-24 rounded-lg"
|
|
||||||
src="/img/avatar.jpg"
|
|
||||||
alt="Profile picture"
|
|
||||||
integrity="sha386-uiNteVXosQ2+o/izp41L1G9VwuwYDYCOPxzFWks058DMUhW7KfQXcipM7WqgSgEZ" />
|
|
||||||
<div class="ml-4 self-center">
|
|
||||||
<a class="self-center text-2xl font-bold" href="/">PapaTutuWawa's Website</a>
|
|
||||||
|
|
||||||
<ul class="list-none">
|
|
||||||
<li class="inline mr-8"><a href="https://blog.polynom.me">Blog</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/code/">Code</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/contact/">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-col pt-8 mx-auto">
|
|
||||||
<p class="prose text-white">
|
|
||||||
If you have any questions about my projects or just want to talk, feel
|
|
||||||
free to reach out to me.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="w-full pt-8">
|
|
||||||
<table class="text-white w-full">
|
|
||||||
<tr>
|
|
||||||
<td>Fediverse</td>
|
|
||||||
<td>
|
|
||||||
<a class="text-indigo-400" href="https://social.polynom.me/papatutuwawa">@papatutuwawa@social.polynom.me</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>E-Mail</td>
|
|
||||||
<td>papatutuwawa [a with a circle] polynom.me</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td />
|
|
||||||
<td>
|
|
||||||
Please use my <a class="text-indigo-400" href="https://pki.polynom.me/pubkeys/papatutuwawa.pub">GPG public key</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>GitHub</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://github.com/PapaTutuWawa">PapaTutuWawa</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Codeberg</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://codeberg.org/PapaTutuWawa">PapaTutuWawa</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Gitea</td>
|
|
||||||
<td><a class="text-indigo-400" href="https://git.polynom.me/PapaTutuWawa">PapaTutuWawa</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<!-- title: Code | polynom.me -->
|
||||||
|
<!-- description: Alexander 'PapaTutuWawa' 's code repositories. -->
|
||||||
|
<!-- render: yes -->
|
||||||
|
|
||||||
|
<div class="flex flex-col pt-8 mx-auto">
|
||||||
|
<p class="prose text-white">
|
||||||
|
I keep my code mostly on my private Gitea instance <a class="text-indigo-400"
|
||||||
|
href="https://{{ gitea_url }}/{{ gitea_username }}">here</a>.
|
||||||
|
For purposes of allowing other people to also contribute
|
||||||
|
I try to mirror my code on GitHub and codeberg.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="pt-8 w-full">
|
||||||
|
<table class="text-white pt-8 w-full">
|
||||||
|
<tr>
|
||||||
|
<td>GitHub</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://github.com/{{ github_username }}">{{ github_username }}</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Codeberg</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://codeberg.org/{{ codeberg_username }}">{{ codeberg_username }}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Gitea</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://{{ gitea_url }}/{{ gitea_username }}">{{ gitea_username }}</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<!-- title: Contact | polynom.me -->
|
||||||
|
<!-- description: Contact details for getting in touch with Alexander 'PapaTutuWawa'. -->
|
||||||
|
<!-- render: yes -->
|
||||||
|
<div class="flex flex-col pt-8 mx-auto">
|
||||||
|
<p class="prose text-white">
|
||||||
|
If you have any questions about my projects or just want to talk, feel
|
||||||
|
free to reach out to me.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="w-full pt-8">
|
||||||
|
<table class="text-white w-full">
|
||||||
|
<tr>
|
||||||
|
<td>Fediverse</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://{{ fediverse_instance}}/{{ fediverse_username }}">@{{
|
||||||
|
fediverse_username }}@{{
|
||||||
|
fediverse_instance }}</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>E-Mail</td>
|
||||||
|
<td>{{ email_user }} [a with a circle] {{ email_domain }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td />
|
||||||
|
<td>
|
||||||
|
Please use my <a class="text-indigo-400" href="https://{{ gpg_key_url }}">GPG public key</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>GitHub</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://github.com/{{ github_username }}">{{ github_username }}</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Codeberg</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://codeberg.org/{{ codeberg_username }}">{{ codeberg_username }}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Gitea</td>
|
||||||
|
<td><a class="text-indigo-400" href="https://{{ gitea_url }}/{{ gitea_username }}">{{ gitea_username }}</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<!-- title: Home | polynom.me -->
|
||||||
|
<!-- description: The personal website of Alexander 'PapaTutuWawa'. -->
|
||||||
|
<!-- render: yes -->
|
||||||
|
|
||||||
|
<div class="flex flex-col mx-auto">
|
||||||
|
<p class="text-white prose py-8 self-center">
|
||||||
|
Hello! My online pseudonym is <i>PapaTutuWawa</i> and I am
|
||||||
|
just some random person on the Internet who is passionate about
|
||||||
|
topics like XMPP, federated Internet services and privacy. Linux system
|
||||||
|
administration, Linux tinkering and programming are my favourite things to do.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h1 class="prose text-2xl text-indigo-400 self-start">Projects</h1>
|
||||||
|
<p class="prose text-white text-left self-start">This is a small selection of my projects. More are available <a
|
||||||
|
class="text-indigo-400" href="code.html">here.</a></p>
|
||||||
|
|
||||||
|
{{ for_each projects layout/templates/project.html }}
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -1 +0,0 @@
|
|||||||
/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}body{background-color:#212121}html{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}a{--tw-text-opacity:1!important;color:rgb(129 140 248/var(--tw-text-opacity))!important}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:uppLine truncated
|
|
||||||
Generated
+62
@@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"assets": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1672838029,
|
||||||
|
"narHash": "sha256-maczGnXL9zid6l742og7D0KC8LlZqmebWe23AhtWGZg=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "e490bf002efc9661b6312bc135f5e809cee8df18",
|
||||||
|
"revCount": 20,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.polynom.me/polynom.me/shared-assets.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.polynom.me/polynom.me/shared-assets.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638239011,
|
||||||
|
"narHash": "sha256-AjhmbT4UBlJWqxY0ea8a6GU2C2HdKUREkG43oRr3TZg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a7ecde854aee5c4c7cd6177f54a99d2c1ff28a31",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "21.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689449371,
|
||||||
|
"narHash": "sha256-sK3Oi8uEFrFPL83wKPV6w0+96NrmwqIpw9YFffMifVg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "29bcead8405cfe4c00085843eb372cc43837bb9d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"assets": "assets",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
description = "The website hosted at https://polynom.me";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
assets.url = "git+https://git.polynom.me/polynom.me/shared-assets.git";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
assets
|
||||||
|
}: let
|
||||||
|
supportedSystems = [ "x86_64-linux" ];
|
||||||
|
forAllSystems = nixpkgs.lib.attrsets.genAttrs supportedSystems;
|
||||||
|
in {
|
||||||
|
packages = forAllSystems (system: let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
|
||||||
|
tailwindWithTypography = pkgs.nodePackages.tailwindcss.overrideAttrs (old: {
|
||||||
|
plugins = [
|
||||||
|
pkgs.nodePackages."@tailwindcss/typography"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
in {
|
||||||
|
default = pkgs.callPackage ./pkgs/website.nix {
|
||||||
|
shared-assets = assets.packages.${system}.default;
|
||||||
|
|
||||||
|
inherit tailwindWithTypography;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
devShell = forAllSystems (system: let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
pythonEnv = pkgs.python3.withPackages (ps: with ps; [ markdown ]);
|
||||||
|
in pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
pythonEnv
|
||||||
|
];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 137 KiB |
-170
@@ -1,170 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<link href="https://polynom.me/css/index.css" rel="stylesheet" />
|
|
||||||
<link href="https://polynom.me/css/extra.css" rel="stylesheet" />
|
|
||||||
|
|
||||||
|
|
||||||
<meta property="og:title" content="PapaTutuWawa's Website" />
|
|
||||||
<meta property="og:description" content="The personal website of Alexander 'PapaTutuWawa'." />
|
|
||||||
<title>PapaTutuWawa's Website</title>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="flex flex-col p-2 md:p-8 items-start md:w-4/5 mx-auto">
|
|
||||||
<!-- Header -->
|
|
||||||
<div class="flex flex-row self-center">
|
|
||||||
<img
|
|
||||||
class="w-12 h-12 md:w-24 md:h-24 rounded-lg"
|
|
||||||
src="/img/avatar.jpg"
|
|
||||||
alt="Profile picture"
|
|
||||||
integrity="sha386-uiNteVXosQ2+o/izp41L1G9VwuwYDYCOPxzFWks058DMUhW7KfQXcipM7WqgSgEZ" />
|
|
||||||
<div class="ml-4 self-center">
|
|
||||||
<a class="self-center text-2xl font-bold" href="/">PapaTutuWawa's Website</a>
|
|
||||||
|
|
||||||
<ul class="list-none">
|
|
||||||
<li class="inline mr-8"><a href="https://blog.polynom.me">Blog</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/code/">Code</a></li>
|
|
||||||
<li class="inline mr-8"><a href="https://polynom.me/contact/">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-col mx-auto">
|
|
||||||
<p class="text-white prose py-8 self-center">
|
|
||||||
Hello! My online pseudonym is <i>PapaTutuWawa</i> and I am
|
|
||||||
just some random person on the Internet who is passionate about
|
|
||||||
topics like XMPP, federated Internet services and privacy. Linux system
|
|
||||||
administration, Linux tinkering and programming are my favourite things to do.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1 class="prose text-2xl text-indigo-400 self-start">Projects</h1>
|
|
||||||
<p class="prose text-white text-left self-start">This is a small selection of my projects. More are available <a
|
|
||||||
class="text-indigo-400" href="code.html">here.</a></p>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="flex flex-row self-start pt-8">
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a href="https://moxxy.org" target="_blank">
|
|
||||||
<img
|
|
||||||
class="w-24 md:w-48 max-w-none rounded-lg clickable"
|
|
||||||
src="img/moxxy.jpg"
|
|
||||||
alt="Screenshot of Moxxy"
|
|
||||||
integrity="sha386-c4aF6C3eQtEaAm9az1Sr70bxaIq5V9gdLUuvmZ/N9nVSzOLV/QdHs1s5axtvM7kp" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-col pl-8">
|
|
||||||
<h2 class="prose text-indigo-400 text-2xl">Moxxy</h2>
|
|
||||||
<p class="prose text-white text-justify">A modern XMPP client written in Flutter. Licensed under GPLv3.</p>
|
|
||||||
|
|
||||||
<div class="pt-4">
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="text-indigo-400" href="https://moxxy.org">Website</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li><a class="prose text-indigo-400" href="https://codeberg.org/moxxy/moxxyv2">Code</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-row self-start pt-8">
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a href="https://codeberg.org/PapaTutuWawa/anitrack" target="_blank">
|
|
||||||
<img
|
|
||||||
class="w-24 md:w-48 max-w-none rounded-lg clickable"
|
|
||||||
src="img/anitrack.jpg"
|
|
||||||
alt="Screenshot of AniTrack"
|
|
||||||
integrity="sha386-GhIL0ONMvXK4XqjAIBz7ID0WSqzwIsjuyaLjNMPSJ+Zv7hQw+31FOMmRTONR6tt0" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-col pl-8">
|
|
||||||
<h2 class="prose text-indigo-400 text-2xl">AniTrack</h2>
|
|
||||||
<p class="prose text-white text-justify">A simple Anime and Manga tracker written in Flutter. Licensed under MIT.</p>
|
|
||||||
|
|
||||||
<div class="pt-4">
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="text-indigo-400" href="https://codeberg.org/PapaTutuWawa/anitrack">Website</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li><a class="prose text-indigo-400" href="https://codeberg.org/PapaTutuWawa/anitrack">Code</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-row self-start pt-8">
|
|
||||||
|
|
||||||
<div class="flex justify-center md:w-48 md:h-48 w-24 h-24 rounded-lg clickable bg-indigo-950">
|
|
||||||
<a class="prose text-white text-5xl" href="https://codeberg.org/PapaTutuWawa/xmpp-discord-bridge.git">
|
|
||||||
<div class="md:w-48 md:h-48 w-24 h-24 flex flex-col justify-center">
|
|
||||||
<span class="text-center">#</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-col pl-8">
|
|
||||||
<h2 class="prose text-indigo-400 text-2xl">xmpp-discord-bridge</h2>
|
|
||||||
<p class="prose text-white text-justify">An XMPP to Discord bridge that attempts to feel as native as possible on each chat platform, written in Python. Licensed under GPLv3.</p>
|
|
||||||
|
|
||||||
<div class="pt-4">
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="text-indigo-400" href="https://codeberg.org/PapaTutuWawa/xmpp-discord-bridge.git">Website</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li><a class="prose text-indigo-400" href="https://codeberg.org/PapaTutuWawa/xmpp-discord-bridge.git">Code</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-row self-start pt-8">
|
|
||||||
|
|
||||||
<div class="flex justify-center md:w-48 md:h-48 w-24 h-24 rounded-lg clickable bg-indigo-950">
|
|
||||||
<a class="prose text-white text-5xl" href="https://git.polynom.me/PapaTutuWawa/mira">
|
|
||||||
<div class="md:w-48 md:h-48 w-24 h-24 flex flex-col justify-center">
|
|
||||||
<span class="text-center">#</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="flex flex-col pl-8">
|
|
||||||
<h2 class="prose text-indigo-400 text-2xl">mira</h2>
|
|
||||||
<p class="prose text-white text-justify">An XMPP bot framework for persistent subscription services, written in Python. Licensed under GPLv3.</p>
|
|
||||||
|
|
||||||
<div class="pt-4">
|
|
||||||
<ul>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="text-indigo-400" href="https://git.polynom.me/PapaTutuWawa/mira">Website</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li><a class="prose text-indigo-400" href="https://git.polynom.me/PapaTutuWawa/mira">Code</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
@layer base {
|
||||||
|
body {
|
||||||
|
background-color: #212121;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
@apply text-white;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
@apply text-indigo-400 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<link href="/assets/css/index.css" rel="stylesheet" />
|
||||||
|
<link rel="shortcut icon" href="/assets/img/favicon.ico" sizes="32x32" />
|
||||||
|
<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Moxxy Blog" />
|
||||||
|
|
||||||
|
<meta property="og:title" content="{{ title }}" />
|
||||||
|
<meta property="og:description" content="{{ description }}" />
|
||||||
|
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="flex flex-col p-2 md:p-8 items-start md:w-4/5 mx-auto">
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex flex-row self-center">
|
||||||
|
<img class="w-12 h-12 md:w-24 md:h-24 rounded-lg" src="{{ page_assets }}/img/avatar.jpg" alt="Profile picture"/>
|
||||||
|
<div class="ml-4 self-center">
|
||||||
|
<a class="self-center text-2xl font-bold" href="/">PapaTutuWawa's Website</a>
|
||||||
|
|
||||||
|
<ul class="list-none">
|
||||||
|
<li class="inline mr-8"><a href="https://blog.polynom.me">Blog</a></li>
|
||||||
|
<li class="inline mr-8"><a href="/code.html">Code</a></li>
|
||||||
|
<li class="inline mr-8"><a href="/contact.html">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
File renamed without changes.
@@ -0,0 +1,7 @@
|
|||||||
|
<div class="flex justify-center md:w-48 md:h-48 w-24 h-24 rounded-lg clickable bg-indigo-950">
|
||||||
|
<a class="prose text-white text-5xl" href="https://{{ item.source_url }}">
|
||||||
|
<div class="md:w-48 md:h-48 w-24 h-24 flex flex-col justify-center">
|
||||||
|
<span class="text-center">#</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<div class="flex flex-row self-start pt-8">
|
||||||
|
{{ template_if_empty item.screenshot layout/templates/no_screenshot.html layout/templates/screenshot.html }}
|
||||||
|
<div class="flex flex-col pl-8">
|
||||||
|
<h2 class="prose text-indigo-400 text-2xl">{{ item.title }}</h2>
|
||||||
|
<p class="prose text-white text-justify">{{ item.description }}</p>
|
||||||
|
|
||||||
|
<div class="pt-4">
|
||||||
|
<ul>
|
||||||
|
{{ template_if_empty item.website layout/templates/empty.html layout/templates/project_website.html }}
|
||||||
|
<li><a class="prose text-indigo-400" href="https://{{ item.source_url }}">Code</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<li><a class="text-indigo-400" href="https://{{ item.website }}">Website</a></li>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<div>
|
||||||
|
<a href="https://{{ item.source_url }}" target="_blank">
|
||||||
|
<img class="w-24 md:w-48 max-w-none rounded-lg clickable" src="{{ item.screenshot }}" alt="Screenshot of {{ item.title }}" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"author_name": "Alexander \"PapaTutuWawa\"",
|
||||||
|
"blog_url": "blog.polynom.me",
|
||||||
|
|
||||||
|
"fediverse_instance": "social.polynom.me",
|
||||||
|
"fediverse_username": "papatutuwawa",
|
||||||
|
|
||||||
|
"email_domain": "polynom.me",
|
||||||
|
"email_user": "papatutuwawa",
|
||||||
|
"gpg_key_url": "pki.polynom.me/pubkeys/papatutuwawa.pub",
|
||||||
|
|
||||||
|
"github_username": "PapaTutuWawa",
|
||||||
|
"codeberg_username": "PapaTutuWawa",
|
||||||
|
"gitea_username": "PapaTutuWawa",
|
||||||
|
"gitea_url": "git.polynom.me",
|
||||||
|
|
||||||
|
"projects": [{
|
||||||
|
"title": "Moxxy",
|
||||||
|
"description": "A modern XMPP client written in Flutter. Licensed under GPLv3.",
|
||||||
|
"screenshot": "assets/img/moxxy.jpg",
|
||||||
|
"source_url": "codeberg.org/moxxy/moxxyv2",
|
||||||
|
"website": "codeberg.org/moxxy/moxxyv2"
|
||||||
|
}, {
|
||||||
|
"title": "AniTrack",
|
||||||
|
"description": "A simple Anime and Manga tracker written in Flutter. Licensed under MIT.",
|
||||||
|
"screenshot": "assets/img/anitrack.jpg",
|
||||||
|
"source_url": "codeberg.org/PapaTutuWawa/anitrack",
|
||||||
|
"website": "codeberg.org/PapaTutuWawa/anitrack"
|
||||||
|
}, {
|
||||||
|
"title": "xmpp-discord-bridge",
|
||||||
|
"description": "An XMPP to Discord bridge that attempts to feel as native as possible on each chat platform, written in Python. Licensed under GPLv3.",
|
||||||
|
"screenshot": "",
|
||||||
|
"source_url": "codeberg.org/PapaTutuWawa/xmpp-discord-bridge.git",
|
||||||
|
"website": "codeberg.org/PapaTutuWawa/xmpp-discord-bridge.git"
|
||||||
|
}, {
|
||||||
|
"title": "mira",
|
||||||
|
"description": "An XMPP bot framework for persistent subscription services, written in Python. Licensed under GPLv3.",
|
||||||
|
"screenshot": "",
|
||||||
|
"source_url": "git.polynom.me/PapaTutuWawa/mira",
|
||||||
|
"website": "git.polynom.me/PapaTutuWawa/mira"
|
||||||
|
}]
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
lib, stdenv
|
||||||
|
, python3
|
||||||
|
, shared-assets
|
||||||
|
, tailwindWithTypography
|
||||||
|
}: let
|
||||||
|
pythonEnv = python3.withPackages (ps: with ps; [
|
||||||
|
markdown pygments
|
||||||
|
]);
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = "website";
|
||||||
|
version = "20230722";
|
||||||
|
|
||||||
|
src = ../.;
|
||||||
|
|
||||||
|
buildInputs = [ shared-assets python3 ];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
${pythonEnv}/bin/python ${shared-assets}/bin/makesite.py \
|
||||||
|
-v page_assets=https://cdn.polynom.me \
|
||||||
|
--assets ./assets \
|
||||||
|
--copy-assets \
|
||||||
|
--include robots.txt \
|
||||||
|
-p params.json
|
||||||
|
|
||||||
|
# Build Tailwind CSS data
|
||||||
|
${tailwindWithTypography}/bin/tailwindcss --input ./input.css --output _site/assets/css/index.css
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/srv/www/website
|
||||||
|
cp -vr _site/* $out/srv/www/website
|
||||||
|
cp -vr well-known $out/srv/www/website/.well-known
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "The website hosted at https://polynom.me";
|
||||||
|
homepage = "https://git.polynom.me/polynom.me/website";
|
||||||
|
maintainers = [];
|
||||||
|
license = licenses.gpl3;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"CNAME": "polynom.me",
|
|
||||||
"headers": {
|
|
||||||
"Content-Security-Policy": "default-src 'self'; script-src 'self'; script-src-elem 'self'; script-src-attr 'none'; style-src * 'self'; img-src 'self' data:; font-src 'self'; connect-src 'none'; media-src 'self'; object-src 'none'; prefetch-src 'none'; child-src 'none'; frame-src 'none'; worker-src 'none'; frame-ancestors 'none'; form-action 'none'; upgrade-insecure-requests; block-all-mixed-content; disown-opener; sandbox; base-uri https://polynom.me; manifest-src 'none'",
|
|
||||||
"X-Frame-Options": "DENY",
|
|
||||||
"Referrer-Policy": "no-referrer, strict-origin-when-cross-origin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
||||||
<url>
|
|
||||||
<loc>https://polynom.me/</loc>
|
|
||||||
</url>
|
|
||||||
<url>
|
|
||||||
<loc>https://polynom.me/code/</loc>
|
|
||||||
</url>
|
|
||||||
<url>
|
|
||||||
<loc>https://polynom.me/contact/</loc>
|
|
||||||
</url>
|
|
||||||
</urlset>
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
"./content/*.html",
|
||||||
|
"./layout/*.html",
|
||||||
|
"./layout/templates/*.html",
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
require('@tailwindcss/typography'),
|
||||||
|
],
|
||||||
|
}
|
||||||
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user