diff --git a/LICENSE.md b/LICENSE.md
index a469e0c..df79ffa 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,7 +1,7 @@
# Articles
-All files under the `/content/files` directory (and likewise, the corresponding and respective files in /_site) are licensed under
-[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/). The attribution requirement is appropriately met under the following conditions as specified by the license:
+All files under the `/content` directory (and likewise, the corresponding and respective files in `/_site`) are licensed under
+[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/). The attribution requirement is appropriately satisfied under the following conditions as specified by the license:
1. Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
Whereby the following terms shall mean:
@@ -16,15 +16,15 @@ Whereby "technological measures" shall mean:
# Images
## Images
-All files under the `/content/images/site/` directory (and likewise, the corresponding and respective files in /_site) are copyrighted to Noah L. Schrick. All rights reserved.
+All files under the `/content/images/site/` directory (and likewise, the corresponding and respective files in `/_site`) are copyrighted to Noah L. Schrick. All rights reserved.
## Screenshots
-No licensing is provided for any files under `/content/images/screenshots` (and likewise, the corresponding and respective files in /_site) due to potential conflicts with copyright claims with the publisher, developer, artist, or other in any relevant screenshot.
+No licensing is provided for any files under `/content/images/screenshots` (and likewise, the corresponding and respective files in `/_site`) due to potential conflicts with copyright claims with the publisher, developer, artist, or other in any relevant screenshot.
## Logos
-All files under the `/content/images/logos` directory (and likewise, the corresponding and respective files in /public) are copyrighted to their respective holders.
+All files under the `/content/images/logos` directory (and likewise, the corresponding and respective files in `/_site`) are copyrighted to their respective holders.
# Other files
diff --git a/_data/metadata.js b/_data/metadata.js
new file mode 100644
index 0000000..0766e8c
--- /dev/null
+++ b/_data/metadata.js
@@ -0,0 +1,11 @@
+module.exports = {
+ title: "TheSchricks Site",
+ url: "https://theschricks.com/",
+ language: "en",
+ description: "Misc content from theschricks.",
+ author: {
+ name: "Noah L. Schrick",
+ email: "noah@theschricks.com",
+ url: "https://theschricks.com/noah/about"
+ }
+}
\ No newline at end of file
diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk
index 19d028e..7a7885a 100644
--- a/_includes/layouts/base.njk
+++ b/_includes/layouts/base.njk
@@ -1,89 +1,61 @@
-
-
-
-
+ {#- Uncomment this if you’d like folks to know that you used Eleventy to build your site! #}
+ {#-
#}
-
-
+ {#-
+ CSS bundles are provided via the `eleventy-plugin-bundle` plugin:
+ 1. You can add to them using `{% css %}`
+ 2. You can get from them using `{% getBundle "css" %}` or `{% getBundleFileUrl "css" %}`
+ 3. You can do the same for JS: {% js %}{% endjs %} and
+ 4. Learn more: https://github.com/11ty/eleventy-plugin-bundle
+ #}
- {{ content | safe }}
-
+ {#- Add an arbitrary string to the bundle #}
+ {%- css %}* { box-sizing: border-box; }{% endcss %}
+ {#- Add the contents of a file to the bundle #}
+ {%- css %}{% include "public/css/index.css" %}{% endcss %}
+ {#- Or add from node_modules #}
+ {# {%- css %}{% include "node_modules/prismjs/themes/prism-okaidia.css" %}{% endcss %} #}
-
-
-
-
-
-
-
-
- Powered by w3.css
-
-
+ {#- Render the CSS bundle using Inlined CSS (for the fastest site performance in production) #}
+
+ {#- Renders the CSS bundle using a separate file, if you can't set CSP directive style-src: 'unsafe-inline' #}
+ {#-
#}
+
+
+
Skip to main content
-
-
+
+ {{ metadata.title }}
+
+ {#- Read more about `eleventy-navigation` at https://www.11ty.dev/docs/plugins/navigation/ #}
+
+ Top level navigation menu
+
+ {%- for entry in collections.all | eleventyNavigation %}
+ {{ entry.title }}
+ {%- endfor %}
+
+
+
+
+
+ {{ content | safe }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/content/css/prism-base16-monokai.dark.css b/content/css/prism-base16-monokai.dark.css
deleted file mode 100644
index c60b1b4..0000000
--- a/content/css/prism-base16-monokai.dark.css
+++ /dev/null
@@ -1,89 +0,0 @@
-code[class*="language-"], pre[class*="language-"] {
- font-size: 14px;
- line-height: 1.375;
- direction: ltr;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
- background: #272822;
- color: #f8f8f2;
-}
-pre[class*="language-"] {
- padding: 1.5em 0;
- margin: .5em 0;
- overflow: auto;
-}
-:not(pre) > code[class*="language-"] {
- padding: .1em;
- border-radius: .3em;
-}
-.token.comment, .token.prolog, .token.doctype, .token.cdata {
- color: #75715e;
-}
-.token.punctuation {
- color: #f8f8f2;
-}
-.token.namespace {
- opacity: .7;
-}
-.token.operator, .token.boolean, .token.number {
- color: #fd971f;
-}
-.token.property {
- color: #f4bf75;
-}
-.token.tag {
- color: #66d9ef;
-}
-.token.string {
- color: #a1efe4;
-}
-.token.selector {
- color: #ae81ff;
-}
-.token.attr-name {
- color: #fd971f;
-}
-.token.entity, .token.url, .language-css .token.string, .style .token.string {
- color: #a1efe4;
-}
-.token.attr-value, .token.keyword, .token.control, .token.directive, .token.unit {
- color: #a6e22e;
-}
-.token.statement, .token.regex, .token.atrule {
- color: #a1efe4;
-}
-.token.placeholder, .token.variable {
- color: #66d9ef;
-}
-.token.deleted {
- text-decoration: line-through;
-}
-.token.inserted {
- border-bottom: 1px dotted #f9f8f5;
- text-decoration: none;
-}
-.token.italic {
- font-style: italic;
-}
-.token.important, .token.bold {
- font-weight: bold;
-}
-.token.important {
- color: #f92672;
-}
-.token.entity {
- cursor: help;
-}
-pre > code.highlight {
- outline: 0.4em solid #f92672;
- outline-offset: .4em;
-}
\ No newline at end of file
diff --git a/content/files/noah/about/index.njk b/content/files/noah/about/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/backups/index.njk b/content/files/noah/homelab/backups/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/Communications/index.njk b/content/files/noah/homelab/hosts/Proxmox/Communications/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/FEVM/index.njk b/content/files/noah/homelab/hosts/Proxmox/FEVM/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/LANSrv/index.njk b/content/files/noah/homelab/hosts/Proxmox/LANSrv/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/MediaSrv/index.njk b/content/files/noah/homelab/hosts/Proxmox/MediaSrv/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/MonBox/index.njk b/content/files/noah/homelab/hosts/Proxmox/MonBox/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/ProgDev/index.njk b/content/files/noah/homelab/hosts/Proxmox/ProgDev/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/Proxmox/index.njk b/content/files/noah/homelab/hosts/Proxmox/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/StorageSrv/index.njk b/content/files/noah/homelab/hosts/StorageSrv/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/hosts/index.njk b/content/files/noah/homelab/hosts/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/index.njk b/content/files/noah/homelab/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/logging/index.njk b/content/files/noah/homelab/logging/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/homelab/networking/index.njk b/content/files/noah/homelab/networking/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/index.njk b/content/files/noah/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/interests/index.njk b/content/files/noah/interests/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/interests/personal/index.njk b/content/files/noah/interests/personal/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/files/noah/interests/professional/index.njk b/content/files/noah/interests/professional/index.njk
deleted file mode 100644
index e69de29..0000000
diff --git a/content/images/images.11tydata.js b/content/images/images.11tydata.js
new file mode 100644
index 0000000..003521c
--- /dev/null
+++ b/content/images/images.11tydata.js
@@ -0,0 +1,3 @@
+module.exports = {
+ eleventyExcludeFromCollections: true
+}
\ No newline at end of file
diff --git a/content/files/index.njk b/content/index.njk
similarity index 100%
rename from content/files/index.njk
rename to content/index.njk
diff --git a/content/madison/about-madison.md b/content/madison/about-madison.md
new file mode 100644
index 0000000..7fb26cc
--- /dev/null
+++ b/content/madison/about-madison.md
@@ -0,0 +1,7 @@
+---
+title: Madison's Home Page
+description: Overview
+---
+
+# {{ title }}
+Madison's Page.
\ No newline at end of file
diff --git a/content/noah/about/about-noah.md b/content/noah/about/about-noah.md
new file mode 100644
index 0000000..ba7b6b2
--- /dev/null
+++ b/content/noah/about/about-noah.md
@@ -0,0 +1,7 @@
+---
+title: About Noah
+description: About Noah
+---
+
+# {{ title }}
+Noah's About.
\ No newline at end of file
diff --git a/content/noah/homelab/backups/backups.md b/content/noah/homelab/backups/backups.md
new file mode 100644
index 0000000..2a7ba3a
--- /dev/null
+++ b/content/noah/homelab/backups/backups.md
@@ -0,0 +1,10 @@
+---
+title: Backups
+description: Detailed information on the implemented backup solution.
+tags:
+ - Backups
+ - Borg
+---
+
+# {{ title }}
+Backups.
\ No newline at end of file
diff --git a/content/noah/homelab/homelab.md b/content/noah/homelab/homelab.md
new file mode 100644
index 0000000..aae59e8
--- /dev/null
+++ b/content/noah/homelab/homelab.md
@@ -0,0 +1,10 @@
+---
+title: Homelab Home Page
+description: Overview of TheSchricks' Home Page
+tags:
+ - Self-hosting
+ - Homelabbing
+---
+
+# {{ title }}
+Homelab.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/Communications/communications.md b/content/noah/homelab/hosts/Proxmox/Communications/communications.md
new file mode 100644
index 0000000..27a6d17
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/Communications/communications.md
@@ -0,0 +1,11 @@
+---
+title: Communications System
+description: Overview of the server responsible for communication services.
+tags:
+ - Communications
+ - Chat Platforms
+ - Matrix Protocol
+---
+
+# {{ title }}
+Communications.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/FEVM/fevm.md b/content/noah/homelab/hosts/Proxmox/FEVM/fevm.md
new file mode 100644
index 0000000..b8ed1fb
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/FEVM/fevm.md
@@ -0,0 +1,10 @@
+---
+title: Front-End System
+description: Overview of the public-facing server responsible for processing requests and distributing traffic to the appropriate servers.
+tags:
+ - Public VLAN
+ - nginx
+---
+
+# {{ title }}
+FEVM.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/LANSrv/lansrv.md b/content/noah/homelab/hosts/Proxmox/LANSrv/lansrv.md
new file mode 100644
index 0000000..52f61ee
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/LANSrv/lansrv.md
@@ -0,0 +1,9 @@
+---
+title: LAN Server
+description: Overview of the server responsible for internal services.
+tags:
+ - Omada
+---
+
+# {{ title }}
+LanSrv.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/MediaSrv/media.md b/content/noah/homelab/hosts/Proxmox/MediaSrv/media.md
new file mode 100644
index 0000000..c5c8be4
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/MediaSrv/media.md
@@ -0,0 +1,10 @@
+---
+title: Media Server
+description: Overview of the media server responsible for handling media acquisition, organization, and streaming.
+tags:
+ - Jellyfin
+ - Arr Stack
+---
+
+# {{ title }}
+MediaSrv.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/MonBox/monbox.md b/content/noah/homelab/hosts/Proxmox/MonBox/monbox.md
new file mode 100644
index 0000000..ecc47ad
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/MonBox/monbox.md
@@ -0,0 +1,12 @@
+---
+title: Monitoring Server
+description: Overview of the monitoring server responsible for monitoring and logging all systems.
+tags:
+ - Grafana
+ - Promtail
+ - Loki
+ - Prometheus
+---
+
+# {{ title }}
+MonBox.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/ProgDev/progdev.md b/content/noah/homelab/hosts/Proxmox/ProgDev/progdev.md
new file mode 100644
index 0000000..395a6df
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/ProgDev/progdev.md
@@ -0,0 +1,11 @@
+---
+title: Program Development Server
+description: Overview of the media server responsible for aiding and streamlining software development.
+tags:
+ - Gitea
+ - VSCode
+ - RStudio
+---
+
+# {{ title }}
+ProgDev.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/Proxmox/proxmox.md b/content/noah/homelab/hosts/Proxmox/proxmox.md
new file mode 100644
index 0000000..99e1734
--- /dev/null
+++ b/content/noah/homelab/hosts/Proxmox/proxmox.md
@@ -0,0 +1,10 @@
+---
+title: Proxmox
+description: Overview of the installed Proxmox system
+tags:
+ - Proxmox
+ - Virtual Machines
+---
+
+# {{ title }}
+Proxmox.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/StorageSrv/storage.md b/content/noah/homelab/hosts/StorageSrv/storage.md
new file mode 100644
index 0000000..f54eef5
--- /dev/null
+++ b/content/noah/homelab/hosts/StorageSrv/storage.md
@@ -0,0 +1,10 @@
+---
+title: Storage Server
+description: Overview of the storage server responsible for handling all file storage.
+tags:
+ - ZFS
+ - NFS
+---
+
+# {{ title }}
+StorageSrv.
\ No newline at end of file
diff --git a/content/noah/homelab/hosts/hosts.md b/content/noah/homelab/hosts/hosts.md
new file mode 100644
index 0000000..c06a44c
--- /dev/null
+++ b/content/noah/homelab/hosts/hosts.md
@@ -0,0 +1,10 @@
+---
+title: Hosts
+description: Top-level host overview for the hosts' installed on metal.
+tags:
+ - Bare-metal
+ - OS
+---
+
+# {{ title }}
+Hosts.
\ No newline at end of file
diff --git a/content/noah/homelab/logging/logging.md b/content/noah/homelab/logging/logging.md
new file mode 100644
index 0000000..bde2a39
--- /dev/null
+++ b/content/noah/homelab/logging/logging.md
@@ -0,0 +1,12 @@
+---
+title: Logging
+description: Overview of the logging process in the monitoring stack.
+tags:
+ - Grafana
+ - Loki
+ - Promtail
+ - Prometheus
+---
+
+# {{ title }}
+Logging.
\ No newline at end of file
diff --git a/content/noah/homelab/networking/networking.md b/content/noah/homelab/networking/networking.md
new file mode 100644
index 0000000..d9747b0
--- /dev/null
+++ b/content/noah/homelab/networking/networking.md
@@ -0,0 +1,10 @@
+---
+title: Networking
+description: Overview of the networking solution for the homelab.
+tags:
+ - Brocade
+ - pfSense
+---
+
+# {{ title }}
+Networking.
\ No newline at end of file
diff --git a/content/noah/interests/noah-interests.md b/content/noah/interests/noah-interests.md
new file mode 100644
index 0000000..ccfb8dd
--- /dev/null
+++ b/content/noah/interests/noah-interests.md
@@ -0,0 +1,9 @@
+---
+title: Interests
+description: Overview of Noah's interests.
+tags:
+ - Interests
+---
+
+# {{ title }}
+Interests.
\ No newline at end of file
diff --git a/content/noah/interests/personal/noah-personal.md b/content/noah/interests/personal/noah-personal.md
new file mode 100644
index 0000000..0ce1914
--- /dev/null
+++ b/content/noah/interests/personal/noah-personal.md
@@ -0,0 +1,11 @@
+---
+title: Personal Interests
+description: Overview of Noah's personal interests.
+tags:
+ - Homelabbing
+ - Board Games
+ - Ice Cream Making
+---
+
+# {{ title }}
+Personal.
\ No newline at end of file
diff --git a/content/noah/interests/professional/noah-professional.md b/content/noah/interests/professional/noah-professional.md
new file mode 100644
index 0000000..0ef8f1f
--- /dev/null
+++ b/content/noah/interests/professional/noah-professional.md
@@ -0,0 +1,11 @@
+---
+title: Professional Interests
+description: Overview of Noah's professional interests.
+tags:
+ - System Engineering
+ - Research Computing
+ - High-Performance Computing
+---
+
+# {{ title }}
+Professional.
\ No newline at end of file
diff --git a/content/noah/noah.md b/content/noah/noah.md
new file mode 100644
index 0000000..a9c616b
--- /dev/null
+++ b/content/noah/noah.md
@@ -0,0 +1,7 @@
+---
+title: Noah's Home Page
+description: Overview
+---
+
+# {{ title }}
+Noah's Page
\ No newline at end of file
diff --git a/content/sitemap/sitemap.xml.njk b/content/sitemap/sitemap.xml.njk
new file mode 100644
index 0000000..9e82ff0
--- /dev/null
+++ b/content/sitemap/sitemap.xml.njk
@@ -0,0 +1,14 @@
+---
+permalink: /sitemap.xml
+eleventyExcludeFromCollections: true
+---
+
+
+{%- for page in collections.all %}
+ {% set absoluteUrl %}{{ page.url | htmlBaseUrl(metadata.url) }}{% endset %}
+
+ {{ absoluteUrl }}
+ {{ page.date | htmlDateString }}
+
+{%- endfor %}
+
\ No newline at end of file
diff --git a/content/tags-list.njk b/content/tags-list.njk
new file mode 100644
index 0000000..4ae8417
--- /dev/null
+++ b/content/tags-list.njk
@@ -0,0 +1,12 @@
+---
+permalink: /tags/
+layout: layouts/home.njk
+---
+
Tags
+
+
+{% for tag in collections.all | getAllTags | filterTagList %}
+ {% set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
+ {{ tag }}
+{% endfor %}
+
\ No newline at end of file
diff --git a/content/tags.njk b/content/tags.njk
new file mode 100644
index 0000000..7dc72b4
--- /dev/null
+++ b/content/tags.njk
@@ -0,0 +1,22 @@
+---
+pagination:
+ data: collections
+ size: 1
+ alias: tag
+ filter:
+ - all
+ - post
+ - posts
+ - tagList
+ addAllPagesToCollections: true
+layout: layouts/home.njk
+eleventyComputed:
+ title: Tagged “{{ tag }}”
+permalink: /tags/{{ tag | slugify }}/
+---
+
Tagged “{{ tag }}”
+
+{% set postslist = collections[ tag ] %}
+{% include "postslist.njk" %}
+
+
See all tags .
\ No newline at end of file
diff --git a/eleventy.config.js b/eleventy.config.js
index d35612f..22a93ce 100644
--- a/eleventy.config.js
+++ b/eleventy.config.js
@@ -6,6 +6,8 @@ const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
const pluginBundle = require("@11ty/eleventy-plugin-bundle");
const pluginNavigation = require("@11ty/eleventy-navigation");
const { EleventyHtmlBasePlugin } = require("@11ty/eleventy");
+const directoryOutputPlugin = require("@11ty/eleventy-plugin-directory-output");
+
const pluginDrafts = require("./eleventy.config.drafts.js");
const pluginImages = require("./eleventy.config.images.js");
@@ -90,6 +92,8 @@ module.exports = function(eleventyConfig) {
level: [1,2,3,4],
slugify: eleventyConfig.getFilter("slugify")
});
+
+ eleventyConfig.addPlugin(directoryOutputPlugin);
});
// Features to make your build faster (when you need them)
diff --git a/package.json b/package.json
index be2c036..d925c7b 100644
--- a/package.json
+++ b/package.json
@@ -28,5 +28,8 @@
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"luxon": "^3.4.4",
"markdown-it-anchor": "^8.6.7"
+ },
+ "dependencies": {
+ "@11ty/eleventy-plugin-directory-output": "^1.0.1"
}
}
diff --git a/public/css/index.css b/public/css/index.css
new file mode 100644
index 0000000..15cc558
--- /dev/null
+++ b/public/css/index.css
@@ -0,0 +1,270 @@
+/* Defaults */
+:root {
+ --font-family: -apple-system, system-ui, sans-serif;
+ --font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
+}
+
+/* Theme colors */
+:root {
+ --color-gray-20: #e0e0e0;
+ --color-gray-50: #C0C0C0;
+ --color-gray-90: #333;
+
+ --background-color: #fff;
+
+ --text-color: var(--color-gray-90);
+ --text-color-link: #082840;
+ --text-color-link-active: #5f2b48;
+ --text-color-link-visited: #17050F;
+
+ --syntax-tab-size: 2;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-gray-20: #e0e0e0;
+ --color-gray-50: #C0C0C0;
+ --color-gray-90: #dad8d8;
+
+ /* --text-color is assigned to --color-gray-_ above */
+ --text-color-link: #1493fb;
+ --text-color-link-active: #6969f7;
+ --text-color-link-visited: #a6a6f8;
+
+ --background-color: #15202b;
+ }
+}
+
+
+/* Global stylesheet */
+* {
+ box-sizing: border-box;
+}
+
+html,
+body {
+ padding: 0;
+ margin: 0 auto;
+ font-family: var(--font-family);
+ color: var(--text-color);
+ background-color: var(--background-color);
+}
+html {
+ overflow-y: scroll;
+}
+body {
+ max-width: 40em;
+}
+
+/* https://www.a11yproject.com/posts/how-to-hide-content/ */
+.visually-hidden {
+ clip: rect(0 0 0 0);
+ clip-path: inset(50%);
+ height: 1px;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ width: 1px;
+}
+
+p:last-child {
+ margin-bottom: 0;
+}
+p {
+ line-height: 1.5;
+}
+
+li {
+ line-height: 1.5;
+}
+
+a[href] {
+ color: var(--text-color-link);
+}
+a[href]:visited {
+ color: var(--text-color-link-visited);
+}
+a[href]:hover,
+a[href]:active {
+ color: var(--text-color-link-active);
+}
+
+main {
+ padding: 1rem;
+}
+main :first-child {
+ margin-top: 0;
+}
+
+header {
+ border-bottom: 1px dashed var(--color-gray-20);
+}
+header:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.links-nextprev {
+ list-style: none;
+ border-top: 1px dashed var(--color-gray-20);
+ padding: 1em 0;
+}
+
+table {
+ margin: 1em 0;
+}
+table td,
+table th {
+ padding-right: 1em;
+}
+
+pre,
+code {
+ font-family: var(--font-family-monospace);
+}
+pre:not([class*="language-"]) {
+ margin: .5em 0;
+ line-height: 1.375; /* 22px /16 */
+ -moz-tab-size: var(--syntax-tab-size);
+ -o-tab-size: var(--syntax-tab-size);
+ tab-size: var(--syntax-tab-size);
+ -webkit-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+ direction: ltr;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+}
+code {
+ word-break: break-all;
+}
+
+/* Header */
+header {
+ display: flex;
+ gap: 1em .5em;
+ flex-wrap: wrap;
+ align-items: center;
+ padding: 1em;
+}
+.home-link {
+ font-size: 1em; /* 16px /16 */
+ font-weight: 700;
+ margin-right: 2em;
+}
+.home-link:link:not(:hover) {
+ text-decoration: none;
+}
+
+/* Nav */
+.nav {
+ display: flex;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+.nav-item {
+ display: inline-block;
+ margin-right: 1em;
+}
+.nav-item a[href]:not(:hover) {
+ text-decoration: none;
+}
+.nav a[href][aria-current="page"] {
+ text-decoration: underline;
+}
+
+/* Posts list */
+.postlist {
+ list-style: none;
+ padding: 0;
+ padding-left: 1.5rem;
+}
+.postlist-item {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: baseline;
+ counter-increment: start-from -1;
+ margin-bottom: 1em;
+}
+.postlist-item:before {
+ display: inline-block;
+ pointer-events: none;
+ content: "" counter(start-from, decimal-leading-zero) ". ";
+ line-height: 100%;
+ text-align: right;
+ margin-left: -1.5rem;
+}
+.postlist-date,
+.postlist-item:before {
+ font-size: 0.8125em; /* 13px /16 */
+ color: var(--color-gray-90);
+}
+.postlist-date {
+ word-spacing: -0.5px;
+}
+.postlist-link {
+ font-size: 1.1875em; /* 19px /16 */
+ font-weight: 700;
+ flex-basis: calc(100% - 1.5rem);
+ padding-left: .25em;
+ padding-right: .5em;
+ text-underline-position: from-font;
+ text-underline-offset: 0;
+ text-decoration-thickness: 1px;
+}
+.postlist-item-active .postlist-link {
+ font-weight: bold;
+}
+
+/* Tags */
+.post-tag {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ text-transform: capitalize;
+ font-style: italic;
+}
+.postlist-item > .post-tag {
+ align-self: center;
+}
+
+/* Tags list */
+.post-metadata {
+ display: inline-flex;
+ flex-wrap: wrap;
+ gap: .5em;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+.post-metadata time {
+ margin-right: 1em;
+}
+
+/* Direct Links / Markdown Headers */
+.header-anchor {
+ text-decoration: none;
+ font-style: normal;
+ font-size: 1em;
+ margin-left: .1em;
+}
+a[href].header-anchor,
+a[href].header-anchor:visited {
+ color: transparent;
+}
+a[href].header-anchor:focus,
+a[href].header-anchor:hover {
+ text-decoration: underline;
+}
+a[href].header-anchor:focus,
+:hover > a[href].header-anchor {
+ color: #aaa;
+}
+
+h2 + .header-anchor {
+ font-size: 1.5em;
+}
\ No newline at end of file
diff --git a/public/css/message-box.css b/public/css/message-box.css
new file mode 100644
index 0000000..af60ec8
--- /dev/null
+++ b/public/css/message-box.css
@@ -0,0 +1,18 @@
+/* Message Box */
+.message-box {
+ --color-message-box: #ffc;
+
+ display: block;
+ background-color: var(--color-message-box);
+ color: var(--color-gray-90);
+ padding: 1em 0.625em; /* 16px 10px /16 */
+}
+.message-box ol {
+ margin-top: 0;
+}
+
+@media (prefers-color-scheme: dark) {
+ .message-box {
+ --color-message-box: #082840;
+ }
+}
\ No newline at end of file
diff --git a/public/css/prism-diff.css b/public/css/prism-diff.css
new file mode 100644
index 0000000..96b3c5d
--- /dev/null
+++ b/public/css/prism-diff.css
@@ -0,0 +1,45 @@
+/*
+ * New diff- syntax
+ */
+
+ pre[class*="language-diff-"] {
+ --eleventy-code-padding: 1.25em;
+ padding-left: var(--eleventy-code-padding);
+ padding-right: var(--eleventy-code-padding);
+}
+.token.deleted {
+ background-color: hsl(0, 51%, 37%);
+ color: inherit;
+}
+.token.inserted {
+ background-color: hsl(126, 31%, 39%);
+ color: inherit;
+}
+
+/* Make the + and - characters unselectable for copy/paste */
+.token.prefix.unchanged,
+.token.prefix.inserted,
+.token.prefix.deleted {
+ -webkit-user-select: none;
+ user-select: none;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+.token.prefix.inserted,
+.token.prefix.deleted {
+ width: var(--eleventy-code-padding);
+ background-color: rgba(0,0,0,.2);
+}
+
+/* Optional: full-width background color */
+.token.inserted:not(.prefix),
+.token.deleted:not(.prefix) {
+ display: block;
+ margin-left: calc(-1 * var(--eleventy-code-padding));
+ margin-right: calc(-1 * var(--eleventy-code-padding));
+ text-decoration: none; /* override del, ins, mark defaults */
+ color: inherit; /* override del, ins, mark defaults */
+}
\ No newline at end of file