site

Website Content
git clone https://git.pngu.org/site
Log | Files | Refs | README

commit e94891dc72d20690a16ab8b90b2720a7fed34559
parent 33a75eb9f0db4b9955ac90bc010cd932e95f0611
Author: Jack Sangdahl <jack@pngu.org>
Date:   Thu, 15 Jan 2026 19:27:31 -0700

Initial reworking of content

- Tidy up index page
- Remove some no longer necessary pages
- Update 404 page
- Add highlight.js support for code display
- Other changes

Diffstat:
M404.html | 143++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Dcontact.html | 20--------------------
Dcontent.html | 32--------------------------------
Dcube.css | 116-------------------------------------------------------------------------------
Adata/with_emacs.png | 0
Adata/with_windows.jpg | 0
Aframe.js | 3+++
Aheader.js | 5+++++
Mindex.html | 108++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mreadme.md | 2+-
Mstyle.css | 25++++++++++++++++++++-----
Mtemplate.html | 26++++++++++++++++++++------
12 files changed, 245 insertions(+), 235 deletions(-)

diff --git a/404.html b/404.html @@ -2,8 +2,149 @@ <html> <head> <title>404 Not Found</title> + <!-- https://3dtransforms.desandro.com/ --> + <style> + html { + font-family: + Helvetica Neue, + Helvetica, + Arial, + sans-serif; + background-color: #57baac; + color: white; + } + + /* ---- cube---- */ + + .scene--cube { + width: 300px; + height: 300px; + margin: 80px 0; + perspective: 500px; + } + + .scene--persp-cube { + perspective: 400px; + } + + .cube { + width: 300px; + height: 300px; + position: relative; + transform-style: preserve-3d; + transform: translateZ(-150px); + } + + .scene--hero { + height: 300px; + margin: 80px 0; + perspective: 500px; + border: none; + } + + .cube--hero { + margin: 0 auto; + } + + .cube.is-spinning { + animation: spinCube 7s infinite linear; + } + + @keyframes spinCube { + 0% { + transform: translateZ(-150px) rotateX(0deg) rotateY(0deg); + } + 100% { + transform: translateZ(-150px) rotateX(360deg) rotateY(360deg); + } + } + + .cube__face { + position: absolute; + width: 300px; + height: 300px; + border: 2px solid black; + line-height: 300px; + font-size: 40px; + font-weight: bold; + color: white; + text-align: center; + } + + .cube.is-backface-hidden .cube__face { + backface-visibility: hidden; + } + + .cube__face--front { + background: hsla(0, 100%, 50%, 0.7); + } + .cube__face--right { + background: hsla(60, 100%, 50%, 0.7); + } + .cube__face--back { + background: hsla(120, 100%, 50%, 0.7); + } + .cube__face--left { + background: hsla(180, 100%, 50%, 0.7); + } + .cube__face--top { + background: hsla(240, 100%, 50%, 0.7); + } + .cube__face--bottom { + background: hsla(300, 100%, 50%, 0.7); + } + + .cube__face--front { + transform: rotateY(0deg) translateZ(150px); + } + .cube__face--right { + transform: rotateY(90deg) translateZ(150px); + } + .cube__face--back { + transform: rotateY(180deg) translateZ(150px); + } + .cube__face--left { + transform: rotateY(-90deg) translateZ(150px); + } + .cube__face--top { + transform: rotateX(90deg) translateZ(150px); + } + .cube__face--bottom { + transform: rotateX(-90deg) translateZ(150px); + } + + .cube.show-front { + transform: translateZ(-150px) rotateY(0deg); + } + .cube.show-right { + transform: translateZ(-150px) rotateY(-90deg); + } + .cube.show-back { + transform: translateZ(-150px) rotateY(-180deg); + } + .cube.show-left { + transform: translateZ(-150px) rotateY(90deg); + } + .cube.show-top { + transform: translateZ(-150px) rotateX(-90deg); + } + .cube.show-bottom { + transform: translateZ(-150px) rotateX(90deg); + } + </style> </head> <body> - <center>404</center> + <center> + <div class="scene scene--hero"> + <div class="cube cube--hero is-spinning"> + <div class="cube__face cube__face--front">404</div> + <div class="cube__face cube__face--right">Oops!</div> + <div class="cube__face cube__face--back">pngu.org</div> + <div class="cube__face cube__face--left">HTTP/1.1</div> + <div class="cube__face cube__face--top">text/html</div> + <div class="cube__face cube__face--bottom">Not Found</div> + </div> + </div> + </center> </body> </html> diff --git a/contact.html b/contact.html @@ -1,20 +0,0 @@ -<html lang="en"> - <head> - <title>Contact</title> - <link rel="stylesheet" href="style.css" /> - <link rel="apple-touch-icon" sizes="180x180" href="data/favicon/apple-touch-icon.png"> - <link rel="icon" type="image/png" sizes="32x32" href="data/favicon/favicon-32x32.png"> - <link rel="icon" type="image/png" sizes="16x16" href="data/favicon/favicon-16x16.png"> - <link rel="manifest" href="data/favicon/site.webmanifest"> - </head> - <body> - <a style="text-decoration: none" href="content.html"><--</a> - <h2>Contact</h2> - Email: <a href="mailto:jack@pngu.org">jack@pngu.org</a><br /> - PGP: <a href="https://keys.openpgp.org/vks/v1/by-fingerprint/CF27648C14B46FAA922F62D7FC53C827D09C7050" target="_blank">CF27648C14B46FAA922F62D7FC53C827D09C7050</a><br> - Github: <a href="https://github.com/waffle87" target="_blank">waffle87</a - ><br /> - Leetcode: <a href="https://leetcode.com/0x6A73" target="_blank">0x6A73</a><br> - Codeforeces: <a href="https://codeforces.com/profile/0x6A73" target="_blank">0x6A73</a> - </body> -</html> diff --git a/content.html b/content.html @@ -1,32 +0,0 @@ -<html lang="en"> - <head> - <title>Notes Corner</title> - <link rel="stylesheet" href="style.css" /> - <link - rel="apple-touch-icon" - sizes="180x180" - href="data/favicon/apple-touch-icon.png" - /> - <link - rel="icon" - type="image/png" - sizes="32x32" - href="data/favicon/favicon-32x32.png" - /> - <link - rel="icon" - type="image/png" - sizes="16x16" - href="data/favicon/favicon-16x16.png" - /> - <link rel="manifest" href="data/favicon/site.webmanifest" /> - </head> - <body> - <h2>Notes Corner</h2> - <a href="gentoo.html">Gentoo</a><br /> - <a href="kernel.html">Kernel Configuration</a><br /> - <a href="extra.html">Extra Extra</a><br /> - <a href="projects.html">Personal Projects</a><br /> - <a href="contact.html">Other Platforms</a><br /> - </body> -</html> diff --git a/cube.css b/cube.css @@ -1,116 +0,0 @@ -/* https://3dtransforms.desandro.com */ -.scene--cube { - width: 300px; - height: 300px; - margin: 80px 0; - perspective: 500px; -} - -.scene--persp-cube { - perspective: 400px; -} - -.cube { - width: 300px; - height: 300px; - position: relative; - transform-style: preserve-3d; - transform: translateZ(-150px); -} - -.scene--hero { - height: 300px; - margin: 80px 0; - perspective: 500px; - border: none; -} - -.cube--hero { - margin: 0 auto; -} - -.cube.is-spinning { - animation: spinCube 7s infinite linear; -} - -@keyframes spinCube { - 0% { - transform: translateZ(-150px) rotateX(0deg) rotateY(0deg); - } - 100% { - transform: translateZ(-150px) rotateX(360deg) rotateY(360deg); - } -} - -.cube__face { - position: absolute; - width: 300px; - height: 300px; - border: 2px solid grey; - line-height: 300px; - font-size: 40px; - font-weight: bold; - color: white; - text-align: center; -} - -.cube.is-backface-hidden .cube__face { - backface-visibility: hidden; -} - -.cube__face--front { - background: hsla(0, 100%, 50%, 0.7); -} -.cube__face--right { - background: hsla(60, 100%, 50%, 0.7); -} -.cube__face--back { - background: hsla(120, 100%, 50%, 0.7); -} -.cube__face--left { - background: hsla(180, 100%, 50%, 0.7); -} -.cube__face--top { - background: hsla(240, 100%, 50%, 0.7); -} -.cube__face--bottom { - background: hsla(300, 100%, 50%, 0.7); -} - -.cube__face--front { - transform: rotateY(0deg) translateZ(150px); -} -.cube__face--right { - transform: rotateY(90deg) translateZ(150px); -} -.cube__face--back { - transform: rotateY(180deg) translateZ(150px); -} -.cube__face--left { - transform: rotateY(-90deg) translateZ(150px); -} -.cube__face--top { - transform: rotateX(90deg) translateZ(150px); -} -.cube__face--bottom { - transform: rotateX(-90deg) translateZ(150px); -} - -.cube.show-front { - transform: translateZ(-150px) rotateY(0deg); -} -.cube.show-right { - transform: translateZ(-150px) rotateY(-90deg); -} -.cube.show-back { - transform: translateZ(-150px) rotateY(-180deg); -} -.cube.show-left { - transform: translateZ(-150px) rotateY(90deg); -} -.cube.show-top { - transform: translateZ(-150px) rotateX(-90deg); -} -.cube.show-bottom { - transform: translateZ(-150px) rotateX(90deg); -} diff --git a/data/with_emacs.png b/data/with_emacs.png Binary files differ. diff --git a/data/with_windows.jpg b/data/with_windows.jpg Binary files differ. diff --git a/frame.js b/frame.js @@ -0,0 +1,3 @@ +document.writeln("<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github.min.css'>"); +document.writeln("<script src='https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js'></script>"); +document.writeln("<script type='text/javascript'> document.querySelectorAll('code, div.code').forEach(el => { el.innerHTML = el.innerHTML.replace(/^\\n+|\\n+$/g, ''); hljs.highlightElement(el); }); </script>"); diff --git a/header.js b/header.js @@ -0,0 +1,5 @@ +document.writeln("<link rel='stylesheet' href='style.css'/>"); +document.writeln("<link rel='apple-touch-icon' sizes='180x180' href='data/favicon/apple-touch-icon.png'/>"); +document.writeln("<link rel='icon' type='image/png' sizes='32x32' href='data/favicon/favicon-32x32.png'/>"); +document.writeln("<link rel='icon' type='image/png' sizes='16x16' href='data/favicon/favicon-16x16.png'/>"); +document.writeln("<link rel='manifest' href='data/favicon/site.webmanifest'/>"); diff --git a/index.html b/index.html @@ -1,64 +1,64 @@ +<!doctype html> <html lang="en"> <head> + <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>pngu.org</title> - <link rel="stylesheet" href="style.css" /> - <link rel="stylesheet" href="cube.css" /> - <link - rel="apple-touch-icon" - sizes="180x180" - href="data/favicon/apple-touch-icon.png" - /> - <link - rel="icon" - type="image/png" - sizes="32x32" - href="data/favicon/favicon-32x32.png" - /> - <link - rel="icon" - type="image/png" - sizes="16x16" - href="data/favicon/favicon-16x16.png" - /> - <link rel="manifest" href="data/favicon/site.webmanifest" /> - <style> - html { - font-family: - Helvetica Neue, - Helvetica, - Arial, - sans-serif; - color: white; - } - a { - color: white; - } - </style> + <script src="header.js"></script> </head> <body> <center> - <div class="scene scene--hero"> - <div class="cube cube--hero is-spinning"> - <div class="cube__face cube__face--front"> - <a href="https://git.pngu.org">git</a> - </div> - <div class="cube__face cube__face--right"> - <a href="https://vault.pngu.org">vault</a> - </div> - <div class="cube__face cube__face--back"> - <a href="https://uptime.pngu.org">status</a> - </div> - <div class="cube__face cube__face--left"> - <a href="https://calendar.pngu.org">calendar</a> - </div> - <div class="cube__face cube__face--top"> - <a href="content.html">content</a> - </div> - <div class="cube__face cube__face--bottom"> - <a href="https://webmail.pngu.org">mail</a> - </div> - </div> + <div> + <a href="https://www.gentoo.org" style="text-decoration: none"> + <img + src="data/with_windows.jpg" + alt="Made with Windows..." + style="vertical-align: middle" + /> + </a> + | <a href="https://git.pngu.org">git</a> | + <a href="https://vault.pngu.org">vault</a> | + <a href="https://uptime.pngu.org">status</a> | + <a href="https://calendar.pngu.org">calendar</a> | + <a href="https://webmail.pngu.org">mail</a> | + <a href="content.html">content</a> | + <a href="https://www.vim.org" style="text-decoration: none"> + <img + src="data/with_emacs.png" + alt="Made with Emacs..." + style="vertical-align: middle" + /> + </a> </div> + <hr /> </center> + <h3>Contact &amp; Platforms</h3> + <p> + Email: + <!-- prettier-ignore --> + <span class="email"> + _ _ ____ + (_) __ _ ___| | __/ __ \ _ __ _ __ __ _ _ _ ___ _ __ __ _ + | |/ _` |/ __| |/ / / _` | '_ \| '_ \ / _` | | | | / _ \| '__/ _` | + | | (_| | (__| < | (_| | |_) | | | | (_| | |_| || (_) | | | (_| | + _/ |\__,_|\___|_|\_\ \__,_| .__/|_| |_|\__, |\__,_(_)___/|_| \__, | +|__/ \____/|_| |___/ |___/ + </span + ><br /> + PGP: + <a + href="https://keys.openpgp.org/vks/v1/by-fingerprint/CF27648C14B46FAA922F62D7FC53C827D09C7050" + target="_blank" + >CF27648C14B46FAA922F62D7FC53C827D09C7050</a + ><br /> + Github: <a href="https://github.com/waffle87" target="_blank">waffle87</a> + <br /> + Leetcode: <a href="https://leetcode.com/0x6A73" target="_blank">0x6A73</a> + <br /> + </p> + <hr /> + <h3>Content &amp; Postings</h3> + <p>migration...</p> + <script src="frame.js"></script> </body> </html> diff --git a/readme.md b/readme.md @@ -1 +1 @@ -source files for [pngu.org](https://pngu.org) +Source files for [pngu.org](https://pngu.org) diff --git a/style.css b/style.css @@ -1,3 +1,5 @@ +@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap"); + body { max-width: 65%; margin: auto; @@ -5,9 +7,22 @@ body { padding: 15px 0px; } -img { - max-width: 100%; - height: auto; - width: auto; - margin: 8px 0px; +.email { + font-size: 30%; + font-weight: bold; + white-space: pre; + line-height: 1; + display: inline-block; + vertical-align: middle; +} + +.code { + font-size: smaller; + font-family: "JetBrains Mono", monospace; + white-space: pre; + width: inherit; + overflow-x: auto; + overflow-y: hidden; + line-height: 1; + display: block; } diff --git a/template.html b/template.html @@ -1,14 +1,28 @@ +<!doctype html> <html lang="en"> <head> + <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Title</title> - <link rel="stylesheet" href="style.css" /> - <link rel="apple-touch-icon" sizes="180x180" href="data/favicon/apple-touch-icon.png"> - <link rel="icon" type="image/png" sizes="32x32" href="data/favicon/favicon-32x32.png"> - <link rel="icon" type="image/png" sizes="16x16" href="data/favicon/favicon-16x16.png"> - <link rel="manifest" href="data/favicon/site.webmanifest"> + <script src="header.js"></script> </head> <body> - <a style="text-decoration: none" href="content.html"><--</a> + <a style="text-decoration: none" href="index.html"><--</a> <h2>Page Header</h2> + <p><i>2026-01-14</i></p> + Some text on a web page. + <!-- prettier-ignore --> + <div class="code language-c"> + int function(int x) { + return x * x; + } + + int main() { + int x = 42; + printf("%d\n", function(x)); + return 0; + } + </div> + <script src="frame.js"></script> </body> </html>