This commit is contained in:
aggie 2026-06-21 06:59:48 +00:00
commit ced4cd3447
80 changed files with 10277 additions and 0 deletions

9
.editorconfig Normal file
View file

@ -0,0 +1,9 @@
root = true
[*]
indent_style = tab
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
content/feed/pretty-atom-feed.xsl linguist-vendored

25
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,25 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: monthly
cooldown:
default-days: 7
labels:
- "dependency-updates"
versioning-strategy: increase
allow:
- dependency-type: all
# - package-ecosystem: github-actions
# directory: ".github/workflows/"
# schedule:
# interval: monthly
# cooldown:
# default-days: 7

76
.github/workflows/gh-pages.yml.sample vendored Normal file
View file

@ -0,0 +1,76 @@
# If youd like to deploy this project to GitHub pages:
#
# 1. Remove the .sample file extension from this file so it ends with `.yml`
# e.g. `gh-pages.yml`
#
# 2. Go to your repositorys Settings on GitHub and find the GitHub Pages subsection.
# Under the Build and Deployment on the GitHub Pages settings, find the Source
# option and select “GitHub Actions”
#
# 3. In your projects package.json, make sure the `build-ghpages` script has
# the `--pathprefix=` parameter set to your repository name.
# e.g. "build-ghpages": "npx @11ty/eleventy --pathprefix=/YOUR_REPO_NAME/",
#
# Exception: When using a Custom domain (example.com) with GitHub Pages, deploying
# to `example.com/` instead of `*.github.io/YOUR_REPO_NAME/` make sure to
# remove the `--pathprefix` parameter entirely.
# e.g. "build-ghpages": "npx @11ty/eleventy",
#
# 4. Commit this new `gh-pages.yml` file and push it upstream to GitHub
name: Deploy to GitHub Pages
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2
- name: Setup Node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # 6.3.0
with:
node-version: '22'
- name: Cache npm
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # 5.0.3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package.json') }}
- name: Cache Eleventy .cache
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # 5.0.3
with:
path: ./.cache
key: ${{ runner.os }}-eleventy-fetch-cache
- run: npm ci
- run: npm run build-ghpages
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # 4.0.0
with:
path: _site/
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # 4.0.5

166
.gitignore vendored Normal file
View file

@ -0,0 +1,166 @@
node_modules/
.cache
# ==============================================================================
# Created by https://gitignores.com/
# COMPREHENSIVE FRAMEWORK TEMPLATE for Eleventy
# Website: https://www.11ty.dev/
# Repository: https://github.com/11ty/eleventy
# ==============================================================================
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# TEMPLATE OVERVIEW & USAGE NOTES
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# • TEMPLATE TYPE: COMPREHENSIVE FRAMEWORK TEMPLATE
# • PURPOSE: Complete Eleventy framework patterns for static site generation and build artifacts
# • DESIGN PHILOSOPHY: Self-contained with all Eleventy-specific patterns
# • COMBINATION GUIDANCE: Use standalone; optionally add IDE/OS templates
# • SECURITY CONSIDERATIONS: Includes security patterns for .env files and credentials
# • BEST PRACTICES: Review patterns before use, test with git check-ignore, customize for your project
# • OFFICIAL SOURCES: Eleventy documentation and community best practices
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# SECURITY & SENSITIVE DATA PROTECTION (ALWAYS FIRST!)
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# CRITICAL: Protect sensitive data from accidental commits to version control
*.crt
*.key
*.keystore
*.pem
*.secret
*.token
*_keys
*_secrets
*_tokens
.env
.env.*
.env.*.local
.env.local
id_dsa
id_rsa
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# BUILD ARTIFACTS & DISTRIBUTION
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
*.tar.gz
*.zip
_site/
dist/
docs/_site/
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# DEPENDENCY MANAGEMENT & PACKAGE CACHE
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
.cache/
.eleventy.js.cache
.yarn-integrity
.yarn/build-state.yml
.yarn/cache
.yarn/install-state.gz
.yarn/unplugged
.yarn/versions/
docs/_build/
node_modules/
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# DEVELOPMENT & RUNTIME ARTIFACTS
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
*.log
*.log.*
*.tmp
.eslintcache
.grunt
.lock-wscript
.node_repl_history
.npm-debug.log*
.pnpm-debug.log*
.11ty-cache/
.tern-port
eleventy.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# FRAMEWORK-SPECIFIC PATTERNS
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
*.temp
*.ts.js
*.ts.map
.backup/
.bak/
.dependencies/
.deploy/
.deployment/
eleventy.config.js
.eleventy.config.js.bak
.eleventy.config.json.bak
.eleventy.config.ts.bak
.eleventy.js.bak
.eleventy.js/filters/__generated__/
.eleventy.js/plugins/__generated__/
.eleventy.js/shortcodes/__generated__/
.eleventy.js/transforms/__generated__/
.eleventyignore.bak
_11ty/
_collections/__generated__/
_components/__generated__/
_data/__generated__/
_includes/__generated__/
_layouts/__generated__/
assets/__generated__/
assets/css/__generated__/
assets/images/__generated__/
assets/js/__generated__/
benchmark/
benchmarks/
static/__generated__/
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
# TESTING & QUALITY ASSURANCE
# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
.coverage
.coverage.*
.nyc_output/
coverage/
test-results/
tests/
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# TEMPLATE CUSTOMIZATION & BEST PRACTICES
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 1. REVIEW: Examine all patterns before use
# 2. CUSTOMIZE: Adapt to your project's specific structure
# 3. TEST: Use `git check-ignore` to verify patterns
# 4. SECURE: Always protect sensitive data and credentials
# 5. UPDATE: Review periodically as technology evolves
# RECOMMENDED USAGE PATTERNS:
# ==============================================================================
#
# BASIC USAGE (STANDALONE):
# -------------------------
# cp frameworks/eleventy.gitignore .gitignore
#
# WITH IDE SUPPORT:
# ----------------
# cat frameworks/eleventy.gitignore \
# ides/visual-studio-code.gitignore | sort -u > .gitignore
#
# CROSS-PLATFORM DEVELOPMENT:
# ---------------------------
# cat frameworks/eleventy.gitignore \
# os/linux.gitignore \
# os/macos.gitignore \
# os/windows.gitignore | sort -u > .gitignore
#
# IMPORTANT NOTES:
# ==============================================================================
# 1. This template is self-contained and includes security patterns
# 2. No need to add common/security.gitignore separately
# 3. Test with `git status --ignored` to ensure proper coverage

0
.nojekyll Normal file
View file

1
.nvmrc Normal file
View file

@ -0,0 +1 @@
22

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 20172024 Zach Leatherman @zachleat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# AGNES.LOVE
I'm Agnes the Alien! This is my weblog, built with Eleventy.

43
_config/filters.js Normal file
View file

@ -0,0 +1,43 @@
import { DateTime } from "luxon";
export default function(eleventyConfig) {
eleventyConfig.addFilter("readableDate", (dateObj, format, zone) => {
// Formatting tokens for Luxon: https://moment.github.io/luxon/#/formatting?id=table-of-tokens
return DateTime.fromJSDate(dateObj, { zone: zone || "utc" }).toFormat(format || "dd LLLL yyyy");
});
eleventyConfig.addFilter("htmlDateString", (dateObj) => {
// dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat('yyyy-LL-dd');
});
// Get the first `n` elements of a collection.
eleventyConfig.addFilter("head", (array, n) => {
if(!Array.isArray(array) || array.length === 0) {
return [];
}
if( n < 0 ) {
return array.slice(n);
}
return array.slice(0, n);
});
// Return the smallest number argument
eleventyConfig.addFilter("min", (...numbers) => {
return Math.min.apply(null, numbers);
});
// Return the keys used in an object
eleventyConfig.addFilter("getKeys", target => {
return Object.keys(target);
});
eleventyConfig.addFilter("filterTagList", function filterTagList(tags) {
return (tags || []).filter(tag => ["all", "posts"].indexOf(tag) === -1);
});
eleventyConfig.addFilter("sortAlphabetically", strings =>
(strings || []).sort((b, a) => b.localeCompare(a))
);
};

View file

@ -0,0 +1,17 @@
import { z } from "zod";
import { fromZodError } from 'zod-validation-error';
// Draft content, validate `draft` front matter
export default function() {
return function(data) {
// Note that drafts may be skipped in a preprocessor (see eleventy.config.js)
// when doing a standard build (not --serve or --watch)
let result = z.object({
draft: z.boolean().or(z.undefined()),
}).safeParse(data);
if(result.error) {
throw fromZodError(result.error);
}
}
}

11
_data/metadata.js Normal file
View file

@ -0,0 +1,11 @@
export default {
title: "Eleventy Base Blog v9",
url: "https://example.com/",
language: "en",
description: "I am writing about my experiences as a naval navel-gazer.",
author: {
name: "Your Name Here",
email: "youremailaddress@example.com",
url: "https://example.com/about-me/"
}
}

8
_data/site.json Normal file
View file

@ -0,0 +1,8 @@
{
"name": "Agnes the Alien",
"url": "http://agnes.love",
"authorName": "Agnes the Alien",
"authorUrl": "http://agnes.love",
"description": "Personal website of an alien who does things with computers and also words.",
"favicon": "http://file.garden/Zw17vw8ctXTQw7PV/mewelcome.png"
}

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Agnes the Alien</title>
<script src="{{ nesting }}main.js"></script>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="{{ nesting }}favicon.ico" rel="icon" type="image/x-icon">
<link rel="stylesheet" href="/blog.css">
<script src="/htmlcommentbox.js"><script src="/theme.js"></script>
</head>
<body>
{% include "partials/header.njk" %}
<nav><a href="/">Home</a> .. <a href="/about">About</a> .. <a href="/blog">Blog</a> .. <a href="/sitemap">Sitemap & Other Pages</a>
<button onclick="myFunction()">increase font size</button> </nav>
<div class="main-blog"> {{ content | safe }}
<div id="comment"> <!-- begin wwww.htmlcommentbox.com -->
<div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">Comment Box</a> is loading comments...</div>
<script src="/htmlcommentbox.js"></script></div> </main>
<footer>
<div id="hcard-Agnes-the-Alien" class="vcard">
<img style="float:left; margin-right:4px;width:100px;height:104px;" class="u-photo" src="https://file.garden/Zw17vw8ctXTQw7PV/meicon.png" alt="photo of Agnes" class="photo"/>
<a class="url fn n" href="https://agnes.love"> <span class="given-name">Agnes</span>
<span class="additional-name"></span>
<span class="family-name">the Alien</span>
</a>
<a class="email" href="mailto:alienhospitals@gmail.com">alienhospitals@gmail.com</a>
<div class="adr">
<span class="country-name">Midwestern USA</span>
<p class="p-note">A weird little extraterrestrial writer, who also does things with websites for fun.</p>
</div>
<hr>built with eleventy. || <a href="https://treasurechest.alien.town/agnes/agnes.love">source</a></footer>
</body>
</html>

46
_includes/agneslove.njk Normal file
View file

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Agnes the Alien</title>
<script src="{{ nesting }}main.js"></script>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="{{ nesting }}favicon.ico" rel="icon" type="image/x-icon">
<link rel="stylesheet" href="/bundle.css">
<script src="/theme.js"></script>
</head>
<body>
{% include "partials/header.njk" %}
<script>function myFunction() {
let element = document.body;
element.classList.toggle("theme");
}</script>
<nav><a href="/">Home</a> .. <a href="/about">About</a> .. <a href="/blog">Blog</a> .. <a href="/sitemap">Sitemap & Other Pages</a>
<button onclick="myFunction()">increase font size</button> </nav> <main> {{ content | safe }}
</main>
<footer>built with eleventy. || <a href="https://treasurechest.alien.town/agnes/agnes.love">source</a>
<br><br><div class="footyr"><div class="ughh">
Updates...<br>
June 20, '26: Site established.</div><hr><i>webrings, cliques & more...</i><br><a href="https://lockheart.love/collections/cliques">Language Learning</a> 💚 Japanese, Python & Welsh<br>
<span class="problematic"><strike>un</strike>problematic blorbo <a href="https://reef.kingdra.net">❥</a> <span class="blorbo">teleya</span><br></span>
<a href="https://alien.holiday/femslashring"> | <img src="https://file.garden/Zw17vw8ctXTQw7PV/femslashfansonline.png" alt="A Windows 95 text box screen with a linked double venus s>
in the middle that reads FEMSLASH FANS ONLINE." ></a> | <br>
<b>MY</b> femslash OTP is...<br><b><i>
💞 NAHLA X ANISHA ! 💞 </b></i><br>
<a href="https://alien.holiday/femslashring?action=previous">previous</a>
<a href="https://alien.holiday/femslashring?action=random">random</a>
<a href="https://alien.holiday/femslashring?action=next">next</a>
<div id="queersoffaith">
<img src="https://file.garden/Zw17vw8ctXTQw7PV/queerfaith.png" alt="A rainbow blinkie. It says queers of faith." title="A rainbow blinkie. It says queers of faith."><br>
<a href="https://alien.holiday/queerreligious"><b>QUEERS OF FAITH💞</b></a><br />
<a href="https://alien.holiday/queerreligious?action=previous">previous</a> |
<a href="https://alien.holiday/queerreligious?action=random">random</a> |
<a href="https://alien.holiday/queerreligious?action=next">next</a>
</section></section>
</footer>
</body>
</html>

307
_includes/blog.css Normal file
View file

@ -0,0 +1,307 @@
/* 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:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:18px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

View file

@ -0,0 +1,70 @@
<!doctype html>
<html lang="{{ metadata.language }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Agnes the Alien</title>
<meta name="description" content="{{ description or metadata.description }}">
<link rel="alternate" href="/feed/feed.xml" type="application/atom+xml" title="{{ metadata.title }}">
{#- Uncomment this if youd like folks to know that you used Eleventy to build your site! #}
{#- <meta name="generator" content="{{ eleventy.generator }}"> #}
{#-
Plain-text bundles are provided via the `eleventy-plugin-bundle` plugin:
1. CSS:
* Add to a per-page bundle using `{% css %}{% endcss %}`
* Retrieve bundle content using `{% getBundle "css" %}` or `{% getBundleFileUrl "css" %}`
2. Or for JavaScript:
* Add to a per-page bundle using `{% js %}{% endjs %}`
* Retrieve via `{% get {#- Add the contents of a file to the bundle #}
<style>#{% include "css/index.css" %}</style>
{#- Or you can add from node_modules #}
{#<style>{% include "node_modules/something.css" %}</style> #}
<link rel="stylesheet" href="blog.css">
{#- Render the CSS bundle using inlined CSS (for the fastest site performance in producti
{#- Renders the CSS bundle using a separate file, if you can't set CSP directive style-src: 'unsafe-inline' #}
{#- <link rel="stylesheet" href="{% getBundleFileUrl "css" %}"> #}
<script src="/themeswitcherblog.js"></script>
{#- Add the heading-anchors web component to the JavaScript bundle #}
<script type="module">{% include "node_modules/@zachleat/heading-anchors/heading-anchors.js" %}</script>
</head>
<body>
<div class="container">
{% include "partials/header.njk" %}
<a href="#main" id="skip-link" class="visually-hidden">Skip to main content</a>
<header>
<a href="/" class="home-link">Agnes the Alien</a>
{#- Read more about `eleventy-navigation` at https://www.11ty.dev/docs/plugins/navigation/ #}
<nav>
<h2 class="visually-hidden">Top level navigation menu</h2>
<ul class="nav">
{%- for entry in collections.all | eleventyNavigation %}
<li class="nav-item"><a href="{{ entry.url }}"{% if entry.url == page.url %} aria-current="page"{% endif %}>{{ entry.title }}</a></li>
{%- endfor %}
</ul>
</nav>
</header>
<main id="main"><br><br>tools: <a href="#" onclick="setTheme('/bigger.css')">default font size</a> | <a href="#" onclick="setTheme('/evenbigger.css')">font 1x larger</a>
| <a href="#" onclick="setTheme('/largest.css')">font 2x larger</a> <heading-anchors>
{{ content | safe }}
</heading-anchors>
</main> </div>
<footer>
<p>
<em>Built with <a href="https://www.11ty.dev/">{{ eleventy.generator }}</a></em>
</p>
</footer>
<!-- This page `{{ page.url }}` was built on {% currentBuildDate %} -->
<script type="module" src="{% getBundleFileUrl "js" %}"></script>
</body>
</html>

View file

@ -0,0 +1,6 @@
---
layout: agneslove.njk
---
{{ content | safe }}

View file

@ -0,0 +1,25 @@
---
layout: agneslove-blog.njk
---
<h1>{{ title }}</h1>
<ul class="post-metadata">
<li><time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time></li>
{%- for tag in tags | filterTagList %}
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<li><a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a>{%- if not loop.last %}, {% endif %}</li>
{%- endfor %}
</ul>
{{ content | safe }}
{%- if collections.posts %}
{%- set previousPost = collections.posts | getPreviousCollectionItem %}
{%- set nextPost = collections.posts | getNextCollectionItem %}
{%- if nextPost or previousPost %}
<ul class="links-nextprev">
{%- if previousPost %}<li class="links-nextprev-prev">← Previous<br> <a href="{{ previousPost.url }}">{{ previousPost.data.title }}</a></li>{% endif %}
{%- if nextPost %}<li class="links-nextprev-next">Next →<br><a href="{{ nextPost.url }}">{{ nextPost.data.title }}</a></li>{% endif %}
</ul>
{%- endif %}
{%- endif %}

View file

@ -0,0 +1,6 @@
<!-- /src/_includes/partials/site-header.html -->
<header><img src="https://file.garden/Zw17vw8ctXTQw7PV/mewelcome.png" width="100px" alt="A stylized bust-level drawing of me, a white feminine individual with heart shaped glasses, pink and green pigtails, and a teal halter top. I am saying WELCOME which is written in stylized pink text. " title="A stylized bust-level drawing of me, a white feminine individual with heart shaped glasses, pink and green pigtails, and a teal halter top. I am saying WELCOME which is written in stylized pink text.">
<br>
</header>

View file

@ -0,0 +1,6 @@
<aside class="sidebar">
<img src="https://file.garden/Zw17vw8ctXTQw7PV/Screenshot%202026-06-01%20050916.png" width="150px" alt="A real life photograph of me, a white feminine individual with a pink and mint green wig with braids on both sides, heart shaped glasses, and black lipstick." title=" real life photograph of me, a white feminine individual with a pink and
mint green wig with braids on both sides, heart shaped glasses, and black lipstick."><hr style="width:80px;">
Agnes (it/zhe) or Holiday. I live in the Midwestern United States and I have a variety of projects, most notably <a href="https://sunset.femslash.club" title="Sunset Archve">Sunset Archive</a>, a fanfiction archive for sapphic/femslash works. I'm also an artist in every way imaginable. You can read more about me on my about page.
</aside>

9
_includes/postlist.njk Normal file
View file

@ -0,0 +1,9 @@
<ol reversed class="postlist" style="--postlist-index: {{ (postslistCounter or postslist.length) + 1 }}">
{%- for post in postslist | reverse %}
<li class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
<a href="{{ post.url }}" class="postlist-link">{% if post.data.title %}{{ post.data.title }}{% else %}<code>{{ post.url }}</code>{% endif %}</a>
<time class="postlist-date" datetime="{{ post.date | htmlDateString }}">{{ post.date | readableDate("LLLL yyyy") }}</time>
{{ post.data.description }}
{%- endfor %}}</li>
</ol>

10
_includes/postslist.njk Normal file
View file

@ -0,0 +1,10 @@
<ol reversed class="postlist" style="--postlist-index: {{ (postslistCounter or postslist.length) + 1 }}">
{%- for post in postslist | reverse %}
<li class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
<strong><i><a href="{{ post.url }}" class="postlist-link">{% if post.data.title %}{{ post.data.title }}{% else %}<code>{{ post.url }}</code>{% endif %}</a>
</strong></i><time class="postlist-date" datetime="{{ post.date | htmlDateString }}">{{ post.date | readableDate("LLLL yyyy") }}</time> <br><br>
{{ post.data.description }}
</li><br>
{%- endfor %}
</ol>

4
_includes/theme.js Normal file
View file

@ -0,0 +1,4 @@
function myFunction() {
let element = document.body;
element.classList.toggle("theme");
}

186
bigger.css Normal file
View file

@ -0,0 +1,186 @@
html {
font-size: 19px;
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 19px;
margin: 0;
padding: 0;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
.sitemap {
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
}
section .updates {
width:300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
border: 8px hotpink inset;
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

383
blog.css Normal file
View file

@ -0,0 +1,383 @@
/* 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;
}
#HCB_comment_box {
/* add any custom CSS for the comment box here. */
width:10px;
height: 10px;
}
/* the entire html comment box container. applies to everything */
#HCB_comment_box {
font-family: verdana, serif;
color: #888;
background-color: #fff;
}
#HCB_comment_box p.error {
border: 1px solid red;
background-color: #fee;
}
.hcb-mod b {
color:#DD3344;
}
#HCB_comment_box textarea, #HCB_comment_box input.text {
border-top: 1px solid #e4e4e4;
border-left: 1px solid #e4e4e4;
border-bottom: 1px solid #eaeaea;
border-right: 1px solid #eaeaea;
background-color: #f8f8f8;
}
#HCB_comment_box .hcb-wrapper-half {
display:block;
width:50%;
float:left;
}
#HCB_comment_box .hcb-wrapper {
clear:both;
}
#HCB_comment_box input.text {
display:block;
width:97%;
}
/* the submit button */
#HCB_comment_box input.submit {
border-top: 1px solid #eee;
border-left: 1px solid #eee;
border-bottom: 1px solid #888;
border-right: 1px solid #888;
background-color: #ccc;
color: #666;
font-weight:bold;
cursor:pointer;
}
#HCB_comment_box span.home-desc {
font-size:10px;
opacity:0.4;
}
/* the individual comment display containers */
#HCB_comment_box div.comment {
border-bottom:1px dotted #eee;
margin-bottom:5px;
}
/* the moderator message */
.hcb-mod i{
color:darkblue;
}
/* Theme colors */
:root {
--color-gray-20: #e0e0e0;
--color-gray-50: #C0C0C0;
--color-gray-90: #333;
--background-color:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:18px;
}
.theme {
font-size:25px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

345
bundle.css Normal file
View file

@ -0,0 +1,345 @@
.epg {
color: var(--text);
margin: 20px 0;
font-size: 0.8em;
}
img .badge {
width:20%;
height:10%;
}
img.jbb {
width:35%;
height:35%;
}
.badgeimg img {
width:40%;
height: 40%;
}
.epg__year {
text-align: center;
font-weight: bold;
margin-bottom: 10px;
}
.epg__months {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
}
@media (max-width: 410px) {
.epg__months {
display: none;
}
}
.epg__squares {
display: grid;
grid-template-rows: repeat(7, 1fr);
grid-auto-flow: column;
margin-bottom: 10px;
grid-gap: 2px;
}
.epg__box {
aspect-ratio: 1 / 1;
width:15px; background: var(--epg-box);
}
:root {
--epg-box: #e9ecef;
--epg-box-highlight: #69db7c;
--epg-text: #000;
}
@media (prefers-color-scheme: dark) {
:root {
--epg-box: #2d333b;
--epg-box-highlight: #69db7c;
--epg-text: #fff;
}
}
.epg__box--empty {
background: none;
}
.epg__hasPost {
background: var(--epg-box-highlight);
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 1.3em;
margin: 0;
padding: 0;
}
html.bigger {
font-size: 1.1rem;
}
html.evenbigger {
font-size: 1.25rem;
}
body.largest {
font-size: 1.5rem;
}
html.biggerblog {
font-size: 1.1rem;
}
html.evenbiggerblog {
font-size: 1.25rem;
}
html.largestblog {
font-size: 1.5rem;
}
.footyr {
border: 1px hotpink solid;
height: 180px;
overflow: scroll;
padding:5px;
text-align: center;
align-content: center;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
.theme {
font-size: 2.0rem;
}
.ughh {
flex: 1 1 150px;
height: 100px;
overflow: scroll;
margin: 0 auto;
border: 1px solid hotpink;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
#currently {
border: 1px solid hotpink;
overflow: scroll;
max-height:500px;
max-width:250px;
}
.sitemap {
flex: 1 2 250px;
border: 1px solid hotpink;
overflow: scroll;
max-width:250px;
min-height:900px;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
flex: 1;
max-width:80%;
border: 8px inset hotpink;
display:flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-direction: row;
flex-wrap: wrap;
margin: 0 auto;
background: #F0D8E6;
height: auto;
}
.main-noflex {
text-align: center;
align-content: center;
max-width:60%;
border: 8px inset hotpink;
padding-left: 10px;
padding-right:10px;
margin: 0 auto;
background: #F0D8E6;
height: auto;
}
.noww {
min-width: 50%;
flex: 2;
}
.main-now {
flex-direction: row;
border: 8px inset hotpink;
max-width:60%;
gap: 100px;
text-align: center; margin: 0 auto;
background: #F0D8E6;
height: auto;
display:flex;
padding-left: 5px;
padding-right:50px;
line-height: 35px;
}
section.main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap:row wrap;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 1;
height: 900px;
padding-left: 4px;
padding-right: 4px;
}
.intro {
text-align: center;
flex: 1 1 300px;
min-height: 900px;
max-width: 350px;
}
.updates {
flex: 2 1 300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
text-align:center;z
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
.main-now img {
max-width:100px;
max-height: 100px;
}
body {
font-size: 1em;
}
.main,
.main-now {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates,
.noww {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

97
bundleold.css Normal file
View file

@ -0,0 +1,97 @@
body {
background: #f7d0e7;
background: radial-gradient(circle,rgba(247, 208, 231, 1) 0%, rgba(209, 255, 227, 1) 100%);
font-family: Arial;
font-size:1.3em;}
header {
border: 8px hotpink inset;
width: 50%;
background:#F0D8E6;
margin:0 auto;
}
.sillyheader {
margin-right: 0;
margin-left: auto;
float:right;
position: absolute;
}
.updates {
border:1px solid hotpink;
overflow: scroll;
width: 320px;
height: 680px;
margin-right:0;
margin-left: auto;
}
.status {
font-size: 15px;
height:auto;
border: 1px solid hotpink;
}
.posts {
order: 1;
top: 50%;
height: 700px;
overflow:scroll;
width: 700px;
border: 1px solid hotpink;
}
.ugh {
width: 200px;
height: 100px;
overflow: scroll;
border: 1px solid hotpink;
}
header img {
width: 300px;
height: 297px;
display: block;
margin: 0 auto;
}
.intro {
width:400px;
height: 700px;
border: 1px solid hotpink;
}
.main {
text-align: center;
display: flex;
flex-flow: row;
gap: 3px;
justify-content: center;
}
.main img {
align-self: center;
}
section {
border: 8px hotpink inset;
margin: 0 auto;
padding: 1%;
width: 60%;
align-content: center;
text-align: center;}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
nav {
padding: 0.5%;
width: 50%;
background:#F0D8E6;
margin: 0 auto;
border: 8px hotpink inset;
text-align: center;
}
footer {
padding:1%;
width: 60%;
border: 8px hotpink inset;
margin: 0 auto;
}

20
content/404.md Normal file
View file

@ -0,0 +1,20 @@
---
permalink: 404.html
eleventyExcludeFromCollections: true
---
# Content not found.
Go <a href="index.njk">home</a>.
<!--
Read more: https://www.11ty.dev/docs/quicktips/not-found/
This is compatible with:
- GitHub Pages: https://help.github.com/articles/creating-a-custom-404-page-for-your-github-pages-site/
- GitLab Pages: https://docs.gitlab.com/ee/user/project/pages/introduction.html#custom-error-codes-pages
- Netlify: https://www.netlify.com/docs/redirects/#custom-404
- Cloudflare Pages: https://developers.cloudflare.com/pages/platform/serving-pages/#not-found-behavior
- Vercel: https://vercel.com/guides/custom-404-page#static-site-generator-ssg
-->

20
content/about.njk Normal file
View file

@ -0,0 +1,20 @@
---
layout: agneslove.njk
title: Agnes the Alien
---
<div class="main-noflex">
<center><br /><br /><img src="https://64.media.tumblr.com/d7814e1b7af4292b92a891760014a6e2/a97f793a7ea34512-fb/s100x200/d5aa85d1db7c693acf01898d43013917538dedbd.pnj" width="150px" style="border:4px dashed hotpink;" title=" Tomodachi LIfe mii with pink hair and green eyebrows and pink and green leopard print on the temples. It represents me." alt="A Tomodachi LIfe mii with pink hair and green eyebrows and pink and green leopard print on the temples. It represents me."><br><img src="https://file.garden/Zw17vw8ctXTQw7PV/button-88x31(24).gif" alt="My site button, a very small drawing of myself (a white feminine individual with pink and green hair) that says Agnes on the side." title="My site button, a very small drawing of myself (a white feminine
individual with pink and green hair) that says Agnes on the side."><br>
<a href="https://lesbian.alien.dentist/">Fediverse</a> | <a href="https://ko-fi.com/agnesthealien">Ko-Fi</a> | <a href="https://bsky.app/profile/alien.town">Bluesky</a> | <a href="https://archiveofourown.org/users/telescopefish">AO3</a> | <a href="https://toothpastepancake.dreamwidth.org/">Dreamwidth</a><br>
</center><hr>
Hi! I'm Agnes the Alien (it/zhe). I also go by Holiday and a bunch of other names sometimes too :-P I'm a disabled nonbinary extraterrestrial lesbian and I live in the Midwestern USA, unfortunately. I'm not very good at writing about myself, but I'll try. <br><br>
The main love of my life is creative writing. I've been writing since I was about four years old and I learned how to open Microsoft Word on our dinosaur desktop PC. I write pretty much everything - poetry, fanfiction, short stories, video games, scripts, things that can't be described very well. I love to write horror, sci-fi, and sci-fi horror, and I love to write about dissociation and bad people and aliens and healing in nontraditional ways. I just love <i>writing.</i><br><br>Because of that a lot of my internet activity is focused around writing, usually fanfiction. I <a href="https://sunset.femslash.club">run a fork of OTW-Archive, the software behind Archive of Our Own, the largest fanfiction site in the world (and mine has status updates!), dedicated to fan and original works centered around F/F, NB/F and NB/NB sapphic relationships.</a> I run a lot of fandom events on Dreamwidth, like Rarest of Rarepairs and (as of 2025) Sapphic Summer. I also <a href="/badges">participate </a>in a lot of fandom events.<br><br>
I'm Quaker and currently in my freshman year of college studying theology. I'm about to start taking, for this upcoming semester: African American Literature, Intro to Ethics, and Intro to World Religions. I was originally going to be an English major, but. I think I should keep writing a hobby.
<br><br>
I have three cats, a dog, and a pet Goffin Cockatoo named Saira who I adore with my entire soul. I have a serious passion for the natural world and animals (I have a devil's hole pupfish/white spotted pufferfish tattoo on my chest...) I'm in love with the world and with love and I try to be the best and most pleasant person I can be.<br><br>
I'm a bit "cringe", but I don't care; I'm alterhuman and semi-fictosexual, and these things are major aspects of my identity! I'm an alien and that is very important to me. My fictional others are Caleb Mir from Starfleet Academy and the Negative Spirit from Doom Patrol TV, among other less serious beloveds. If you'd ever like to talk about it, hit me up at the contact information provided above. I'm very open about my identity and the things that make me who I am, so if you're respectfully curious, just ask!!
<br><br>
Im multiply disabledphysically, intellectually, mentally. I have dissociative identity disorder. These aspects of me impact pretty much every area of my life; outside of creativity and computer stuff, I really dont have the ability to do much at all, and am pretty limited. So, Im housebound and often bedbound, and I talk about this a lot and how it shapes my relationship with the world, internet, technology, and fandom.<br><br>
Anyway, that's me. It's nice to meet you.
<br><br>
</div>

12
content/blog.njk Normal file
View file

@ -0,0 +1,12 @@
---js
const eleventyNavigation = {
key: "Archive",
order: 2
};
---
<div class="main">
<h1>Blog</h1>
{% set postslist = collections.posts %}
{% include "postslist.njk" %}
</div>

View file

@ -0,0 +1,6 @@
export default {
tags: [
"posts"
],
"layout": "layouts/post.njk",
};

66
content/blog/fandomsux.md Normal file
View file

@ -0,0 +1,66 @@
---
layout: agneslove-blog
title: Fandom Sucks Now, and Other Laments
description: You know, these days, I am getting sort of tired. I dont really know how else to describe it, so well just go with the simplicity of Im really just kind of tired. And the worst, most unsightly aspect of it all is this - I dont really know what Im tired of. I can give you a list of reasons without hesitation - 1) I spend my entire time in fandom....
date: 2026-03-14
tags: personal, fandom, post
---
<h1>{{title}}</h1>
<h2> <time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time>
</h2>tagged with.. {%- for tag in tags | filterTagList %}
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a>{%- if not loop.last %}, {% endif %}</li>
{%- endfor %}
by Agnes the Alien
<hr>
<i><b>Content warnings: child sex trafficking/PTSD.
<b></i>
You know, these days, I am getting sort of tired.
I dont really know how else to describe it, so well just go with the simplicity of *Im really just kind of tired.* And the worst, most unsightly aspect of it all is this: I dont really know what Im tired _of._
I can give you a list of reasons without hesitation:
1) I spend my entire time in fandom, because fandom is my passion. I run a fanfiction archive with ~360 users and around 500 different fandoms. Fandom is, quite literally, what I have dedicated my life to for the past fifteen years. And fandom, apparently, fucking hates me. Yeah, so it turns out that if youre different from what is considered Normal and Acceptable in any way, you deserve to die and are subhuman, according to others. This widespread harassment is reminiscent of my days being beaten up and nearly murdered as a child at my Waldorf elementary school—unfathomable, needless cruelty fueled by a hatred of anything they dont want to understand. So what if I like to cope by writing dark fanfiction? So what if I just fucking like dark fanfiction? What are you going to do about it? Stop me? 
But unfortunately, there are actual repercussions for openly liking dark content. People can and will try to ruin your life, your source of income, your relationships, your safety. And Im a sensitive alien, okay! Im a goddamn child trafficking survivor and to be called a pedophile over fictional aliens shatters my soul in ways no one can even begin to comprehend unless theyre in the same situation.
I shouldnt say that, probably. I shouldnt let people know about that weakness. Its like a KICK ME sign taped to my back, a big red arrow pointing right to my Achilles heel. Come and cut me. But I am in a human body in this life, and so I am human. And as a human thing, the comparison still will never leave me. It haunts, vivisects. I know who I am, and I cannot control how others perceive me, and I cannot handle being seen as a being of the same depravity of the people who hurt me. I just cant.
I think this is a valid reason to be tired. It is still only one facet of the crystal.
I do so much for fandom. What does fandom do for me? It brought me my beloved. My amazing friends. But what else? What lately? 
2) I just do nothing. I have nothing to do all day. Oh, sure, I have tons to do, actually. I have ideas and I have projects and I have embroidery supplies and music software and cute little $5 kits from the store where you knit an ugly ass ladybug. I simply never have the wherewithal to actually do any of them. Is it the fatigue and pain I am constantly in? Am I just depressed and unmotivated because everything seems worthless? Is my psychosis acting up again? Do I need to have my meds adjusted, is what my family will say, if I tell them Im struggling with motivation, so of course I dont tell them. 
I cant ever get the spark going. Like a wind-up toy that just gets tighter and tigher until it snaps, never moving forward. And I have no goddamn idea why.
Im tired of being so tired. 
3) My family is aging and ill and my mother will not go to the doctor because she is scared. Shes sixty one, her thyroid is dead, she needs to be on medication for it (hypocritical of me perhaps, since my thyroid is also dead and I dont take _my_ synthroid, but Im going to start!!!), but she refuses to get a perscription. Im terrified about what will happen when her body cant take it anymore.
My nana has anxiety worse than mine. Its so bad she stays up multiple nights having intrusive thoughts. She refuses to take any sort of medication for this or bring it up to her doctor. Im terrified about what will happen when she gets too terrified.
Im tired of being so scared.
4) Oh, yeah, and theres that whole I-have-dissociative-identity-disorder-and-CPTSD thing. Ive been having flashbacks almost every day lately. Im tired of feeling broken. Im tired of letting it break me, but I just dont know how to stop thinking about it, writing about it, recreating it in fiction, thinking about it, throwing up about it, obsessing over it, thinking about it. Im obsessed with it all, the pain that I went through and the siphoning of my innocence and the portioning of my body and so on. Its all I ever think about. When will it stop? When will I stop feeling it? 
Torturing fictional characters in the same way makes it feel better for a little while. Like a band-aid over an autopsy incison.
I guess maybe Im just tired of all of it. Of this frozen life Im living. I keep thinking something needs to change, and I keep trying to make small changes to my daily routine, you know, build new habits, start a schedule, but its all futile, I fall out of everything eventually. I really need to start preparing for my future, because I guess Im going to have one? And preparing for my future is not sitting here writing toxic yuri fanfiction all day, as fun as it is. I dont know. I keep clawing at the walls of my brain, trying to find a solution.
I see a lot of my friends taking steps back from fandom these days. A lot of them are also creatives, and theyre choosing to focus more on original works instead. I find that option more and more appealing with each cruel post I see pass my Tumblr dashboard. I cant decide if I really want to step back from fandom, or if I only feel a need to do so because still being so deeply entrenched in fandom when everyone else I know has moved on makes me feel a little self-conscious, and I feel like I have to follow suit or I will be left behind. But I suspect that while my insecurities are probably a factor, it has more to do with the harassment Ive been facing over being a Nahla/Caleb(/Anisha) shipper, and the terrible things people have said about me because of it.
I dont want to enjoy things in fear. I have my own personal archive using the AO3 software now; I rarely post to AO3 outside of exchanges. I keep my fics locked down to my friends and people I trust not to judge me. And… Im someone who loves attention! I kind of need it to survive, clinically. But I just struggle to stay sane when horrible accusation after horrible accusation is thrown at me, and all Im trying to do is enjoy myself in peace. I dont want to have to hide or water myself down to be accepted, but unfortunately that is the reality of the world. Were all paranoid, were all pointing fingers and pointing fingers and gnawing off fingers, were all cruel. I just cant take it anymore.
The issue is that I run that aforementioned somewhat-popular fanfiction archive. And I enjoy running this archive! I want to do so much more with it! And the people I have met through it are absolutely wonderful. I dont want to step back from Sunset and I dont see myself doing so in the future. At the same time, though, I think Sunset and Dreamwidth and my tiny little Discord server will be the extent of my fandom participation for a while.
I want to focus on my original works and build a real career in writing. I want to make video games and finish my novella Ive been working on for a year now that is still only at 4,400 words and I want to make music and I want to learn how to hand quilt and I want to have more things in my life than just television and fictional characters, but its kind of hard for me to focus on anything besides them. Or it has been in the past. Maybe Im finally so disillusioned with fandom that Ill be able to focus on something else for a change. I dont know.
I dont really know how to talk to people outside of fandom, and in all honesty, I dont know a lot about myself outside of it just in general. I dont have much of an identity beyond that, at least in my own perception of myself, and thats… well, obviously unhealthy. I want to go back to school and go to writers groups in the city and I want a life worth living. I want to make websites that arent AO3-based or shoddy things I threw together based on outdated Rails guides; I want to actually _know_ what Im doing with web development, because its something I find very fun and rewarding.
I just so desperately want things to change, but I dont know how to change them. The only thing I can think of for now is that I must focus on building a life for myself that isnt attached to a fictional character. Its long overdue. 

50
content/blog/graphic.md Normal file
View file

@ -0,0 +1,50 @@
---
layout: agneslove-blog
title: Graphic Rape Scenes In Literature Comfort Me, Actually
description: I'm just going to say it with my entire self, point blank and up front. Graphic rape scenes in literature are necessary. I'd go so far as to say they comfort me.
date: 2026-06-14
tags: media, essay, post
---
<h1>{{title}}</h1>
<h2> <time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time>
</h2>tagged with.. {%- for tag in tags | filterTagList %}
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a>{%- if not loop.last %}, {% endif %}</li>
{%- endfor %}
by Agnes the Alien
<hr>
Okay, let's get this out of the way first: yes, I am a rape survivor, because I know, based on the title, that that question was likely your first thought.
I am a rape survivor, but my story is a bit more complex; I'm also a survivor of child sex trafficking as well as a survivor of emotional abuse and physical abuse from peers. It feels so odd, by the way, listing these things about myself so casually. I've grown accustomed to it because what happened to me shaped my life so significantly it impacts every second of it, but in this context it feels almost like a job interview. Here you go, dear reader, here are my Rape Qualifications. You know, the trauma you're supposed to list when you write an article like this one. Here are all the reasons why I'm allowed to have this opinion, because surely this opinion in an Unraped individual would be Suspicious. But I'm just going to say it with my entire self, point blank and up front: Graphic rape scenes in literature are _necessary_. I'd go so far as to say they _comfort_ me.
Literature is... it's a building block of a comfortable and holistic existence, in the sense that it is inescapable unless you're actively trying to life a miserable life; the television shows you watch are often based on books or have themes/concepts that originated in literature (see: "The Vampire Lestat", which I haven't watched but which discourse around inspired this article), the education you undertake requires engagement with literature even in its rudimentary forms, many common English idioms are said to originate in literatue (Shakespeare has a Wikipedia article dedicated to idioms attributed to his work that has so many entries they had to sort it with individual dropdowns for each starting letter). You Quite Simply Cannot Exist In Modern Society Without Interacting With Literature In Some Form, even if that form is abstracted or distant from literature in its purest form (i.e. reading a book). It's just not possible.
Literature and language are not just building blocks, either; they're also lush and visceral, with, when wielded appropriately, the ability to move, impact, and change. The right kind of story can reach into your essence and plant itself down, or soothe the ache that infects it, or lick its wounds clean, or deepen the wounds life caused. Literature is a neutral weapon, a vicious tool, a Mickey Mouse-style surprise tool that will help us later. It is a power, and it is powerful.
We see this all the time in people who will say things like, "This story saved my life!" or, "I relate to this character so much they helped me realize hidden aspects of myself!" or even "I love this character so much I want to protect them/fuck them/see them hurt!" And the same people who will write endless posts on how a story has impacted them for the better are often the ones claiming that rape doesn't need to be shown in media ever because it might make people uncomfortable. The same people who claim to appreciate art will demonize art that depicts rape in its most realistic sense, without ever considering why a book would choose to include such a scene. They understand that art can impact, and that art is moving, but it does not occur to them that, for example, a graphic rape scene could be included to elicit empathy for the victim, or to inform people about the realities of rape that are not often acknowledged (that it can come from family members, that a rapist doesn't have to be a specific gender, that rape isn't just penetration, etc)---or simply it could just be that the author feels it is important/necessary to include for the kind of story they're writing. There is also no consideration of the idea that the author may themselves be a victim who is recounting their own experiences in an attempt to cope with their pain, tell their story, reach others.. a myriad of reasons.
The lack of consideration of these aspects in discussion of media involving graphic rape is reflective of society's overall, inherent disregard of rape victims. The victim and the victim's feelings at large don't matter. The disgust does not come from sympathy for the victim character, just as disgust about rape in real life often doesn't come from sympathy for the victim; it comes from a focus on the rapist. It's either _how could someone be so awful_ or _who made them this way_ or _this makes me personally uncomfortable to imagine happening to me-_\- or it's denial of the act and praising of the rapist. Similarly, with literature, the focus is almost _always_ on demonizing the perpetrator, who, in these scenarios, is for some reason often interpreted to be the author.
The author must be secretly getting off on it, which is, of course, an inherent evil, even though a paper published in 2008 states 31-57% of women had erotic rape fantasies (W Critelli et al) and a paper from 2009 that studied female undergraduates stated that 67% of them had erotic rape fantasies (Bivona et al). The idea - at least from what I can tell - is that writing a rape scene where the rape is shown on "screen" as opposed to simply handwaved away just like we do to real rape = author must be a rape fetishist = author must be an actual rapist in real life (or support them). But these fantasies are common - how many of those women interviewed, do you think, are or support real life rape? How many do you think are horrified by the concept of real life rape?
Do you think that those female undergraduates are monsters? That they're going to go out and rape people on the streets at night for fun, or abuse people they know, or that they secretly want to rape someone but are just holding themselves back? Or are they a group of individuals who are particularly vulnerable to rape taking back the concept for themselves, fantasizing about situations in which they have power over the act and can fully control it, either as perpetrator or victim?
I am not an individual who fantasizes about rape; I find that graphic rape scenes in books bring me comfort. In a society where people are constantly trying to pretend rape away, seeing people confront the topic directly, brutally, and realistically is a breath of fresh air. And you know what? I find comfort in the fact that this makes people uncomfortable.
Rape is uncomfortable. It should make you feel that way. It should horrify and disgust and mangle, and the spark of that mangling should be at its core compassion, not simply hatred or fear. If a rape scene makes you uncomfortable because it's triggering, I understand. If it makes you uncomfortable because you just don't think it should be portrayed as the horrific act it is - that is where I invoke the Hold On A Sec.
Be uncomfortable. Look at what I had to go through. Look at how it mangled _me_ into an amalgam of suffering! LOOK. DO NOT TURN AWAY. LOOK SO YOU UNDERSTAND.
Do you think you're capable of that?
People often say there's no real reason to have a rape scene, but was I raped for a reason, or did it just happen?
People dislike these scenes ultimately because it paints a picture that they don't want to look at, and I'm sorry, but it's time to grow up and open your eyes. You don't want to be faced with the fact that by saying graphic rape scenes have no place in literature _anywhere_, you are in essence pretending rape away, and therefore silencing and isolating victims from their own experiences. I get it. No one wants to be told that.
But you have to look.

View file

@ -0,0 +1,50 @@
---
layout: agneslove-blog
title: (Nus Braka Voice) How's that for a trauma loop?
description: Ive been thinking a lot lately about my creativity. I dont do a lot of original work Ice Dancer was my first poem in… way too long, maybe a YEAR? Ive only been focusing on fanworks. I do have ideas for original works! Many, in fact! But every time I sit down to write, theres a block. I dont really know why.
date: 2026-03-01
tags: personal, post
---
<h1>{{title}}</h1>
<h2> <time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time>
</h2>tagged with.. {%- for tag in tags | filterTagList %}
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a>{%- if not loop.last %}, {% endif %}</li>
{%- endfor %}
by Agnes the Alien
<hr>
<i><b>Content warning: childhood sexual abuse & trafficking.</b></i>
Ive been thinking a lot lately about my creativity. I dont do a lot of original work [Ice Dancer](https://kissing.computer/2026/02/27/poem-ice-dancer/) was my first poem in… way too long, maybe a YEAR? Ive only been focusing on fanworks. I do have ideas for original works! Many, in fact! But every time I sit down to write, theres a block. I dont really know why.
Maybe its that I feel like my original writing is futile.
Ive been published before. But because I was suicidal for so long and genuinely didnt plan on being alive for it to matter, I never really learned how to separate my fandom persona from my professional writing self. And that was a bad idea. When I started to finally heal around the time I started using dark fiction to cope with past trauma I realized that the people I surrounded myself with would try to ruin my career and life if they could tie me to that pen name. So I had to rebuild, and none of my previously published works could be tied to my current pen name. I had to remake everything my author site, my itch.io, etc. Some of my favorite creations can no longer be tied to me because of this, including a piece of interactive art that means… well… just about everything to me. I had about 2k followers on those accounts; now I barely have 200. It all just feels utterly useless.
I also feel like a lot of my original work is just horribly repetitive these days. I use the same metaphors and the same pains and the same words and the same events, over and over and over again.
Im stuck. And not just creatively.
Im chained to these things. Im living a time loop where Im forced to re-experience them over and over again every day of my pitiful damn existence. Im being buried alive and when I suffocate Ill wake up in a television show but for me I really have run out of time!!! Or at least it feels that way. I try not to let fiction write my story for me but it is a little bit easier that way.
Even my fanworks, honestly, to a lesser extent. I find myself hyperfixated on portrayals of childhood sexual abuse in fiction, and finding ways to project my experiences with it onto characters who havent explicitly been through it but also have backstories that would realistically involve it. Take Caleb Mir from Star Trek: SFA for example; hes been on his own, on the run, and in and out of prison since age six. You dont escape that unmolested.
I find myself projecting onto him deeply. I find myself getting unhealthily attached to him. I think about this stuff way way too much. I see myself in him, even if I shouldnt, even if my life has been paradise compared to his. Thinking about characters having the same pain I have, and overcoming it, gives me some illusion of hopes tangibility. Illusion, delusion? I dont know. It just makes me feel like healing can be in reach for me if I try really hard enough like maybe if I squint really hard and believe and click my heels together I can imagine up a portal into a world where Im not in this much agony.
I love SFA because its the first time Ive seen a show with a cast of characters that I feel like would genuinely accept me as a person if they knew me. I relate to SAM so deeply; to see her accepted by everyone loved by everyone makes me soar. Caleb comforts fat anxious cadets (even if I have beef with Pickford now.) People are given space to deal with their traumas, given empathy. Ive never wanted to live in a show more than this (except maybe Doom Patrol, for ficto reasons.)
But as I go deeper and deeper into escapism here, I find myself just ouroborosing my trauma. Like I just keep throwing it up and then eating the vomit and then throwing it back up and eating it again and so on and so forth, like my dog did when my dad died. The projection helps me cope, but it also keeps me trapped there, in a way.
And then I wonder if there is a key to release the trap anywhere when youre a trafficking survivor, or if its sort of like how sometimes when people get shot they have to leave bullet fragments in the body because its too dangerous to try and remove them. You know? Like, maybe its just something you have to carry inside of you as you try to move forward, because going back through it would just make things worse. Maybe coping with fiction is as far as Im going to get.
I am in therapy. I see two therapists! I do ketamine therapy twice a week. I literally have appointments 4/5 days a week. Yet here I remain, just barely hanging on, handcuffed to the pole.
Sometimes I find myself getting confused. I forget that Star Trek technology and Star Trek peace isnt real. I forget that it isnt that easy. I forget that the peace in Star Trek is just as precarious and blood-soaked as it would be in real life. But its easier to live somewhere I feel accepted than live in this universe where the only hobby Im truly capable of having is retraumatizing myself.
I want to write about something else now.
</main>

12
content/buttonwall.njk Normal file
View file

@ -0,0 +1,12 @@
---
layout: agneslove.njk
title: Button Wall
eleventyNavigation:
key: slash
title: Button Wall
---
<div class="main-noflex">
friends, mutuals, cool internet people i like:<br> <br><a href="https://serpentinemalign.neocities.org/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/smbutton.png" alt="button for serpentinemalign" title="button for serpentinemalign"></a><a href="https://eunoia.sayitditto.net/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/eunoia.png" alt="button for euonoia" title="button for euonoia"></a><a href="https://linkyblog.neocities.org/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/linkybanner.png" alt="button for linky" title="button for linky"></a><a href="https://www.hellomei.dev/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/hellomei.gif" alt="button for hellomei" title="button for hellomei"></a><a href="https://maevedarcy.neocities.org/"><img src="https://hospital.alien.town/lib/exe/fetch.php?w=68&amp;tok=84e143&amp;media=https%3A%2F%2Ffile.garden%2FaJzQmzrHVB4BLKwu%2Fmaeve.png" width="63px" alt="button for maevedarcy" title="button for maevedarcy"></a><a href="https://overmore.neocities.org/"><img src="https://file.garden/aJzQmzrHVB4BLKwu/ul9xd6.png" title="button for overmore" alt="button for overmore"></a><a href="https://herewithin.neocities.org/"><img src="https://file.garden/Zw17vw8ctXTQw7PV/link-banner.png" alt="button for herewithin" title="button for herewithin"></a>
</div>

View file

@ -0,0 +1,3 @@
export default {
layout: "layouts/home.njk",
};

37
content/fandom-badges.njk Normal file
View file

@ -0,0 +1,37 @@
---
layout: agneslove.njk
title: Fandom Badges
description: fandom badges
eleventyNavigation:
key: fandom
title: Fandom Badges
---
<div class="main-noflex">Badges I've earned in various fandom events.<br><br>
From <a href="https://femslashfete.dreamwidth.org/">femslashfete</a> on Dreamwidth:<br>
<img src="https://64.media.tumblr.com/40f357f299456844f903ad7bf27df56a/02b47ce67b92eb7b-7b/s250x400/f458de0526738b3e3d8349aa495200fc1acbbff5.png" class="badge" title="badge celebrating 10 fills" alt="badge celebrating 10 fills">
<img src="https://64.media.tumblr.com/569a8ad7e01cd3b34da0d414d1738b82/66b96963745f1d85-52/s250x400/bc23c5f37007bb4555df93ca30be5d180c5a9a0b.pnj" alt="badge celebrating 5 fills featuring 1 character each with a different ship" class="badge" title="badge celebrating 5 fills featuring 1 character each with a different ship">
<img src="https://64.media.tumblr.com/514bce29bf71193be736199a78aa0cbd/02b47ce67b92eb7b-e1/s250x400/42d980bdf1a358ea766a25c83f8afcd9126fbf47.png" title="badge celebrating 25 fills" alt="badge celebrating 25 fills" class="badge"><img src="https://64.media.tumblr.com/b6282b30a14cb7c28f70c1dc05f7fe77/ab1db018cf48c7bc-cd/s250x400/b783f61207e90c28393949344ab0258a151c5f6a.png" class="badge" alt="femslashfete badge: medium munch: 5 fills in 5 different mediums">
<hr>
From elasticella's Fresh Femslash Salad Bar on dreamwidth: <br>
2026: <img src="https://64.media.tumblr.com/43e57bf24650de909ae06dcb8d2944e7/b06c9b132b15aa19-f2/s250x400/58dd49ac3f682fa27eafedcdc6ef51d0630dee55.jpg" class="badge" alt="starter salad, 1 hard fill" title="starter salad, 1 hard fil"><img src="https://64.media.tumblr.com/b9e39a1c10b48828eb7dde7ff2ab4c73/b06c9b132b15aa19-27/s250x400/aea2952fe64d96a24cef3a4d2dbc014a9bc6c15a.jpg" alt="a flight of salads, 4 hard fills" title="a flight of salads, 4 hard fills">
<br>2025: <img src="https://i.ibb.co/FkRWYvzb/image.png" alt="tiny salad, 1 hard fill" title="tiny salad, 1 hard fill" class="badge"> 2024: <img src="https://i.ibb.co/4nc2Q2pN/image.png" class="badge" title="lunch salad, four hard fills" alt="lunch salad, four hard fills"><br><hr>
From July Break Bingo on Tumblr/discord: (please do NOT steal or alter these, at the request of the creators) <br>
<img src="https://64.media.tumblr.com/4f5211065bc208f73c845a03b134f8d7/bdeb83d8a6a33f09-60/s400x600/56c60b66f110bb08a95e29bb92006553276803f1.pnj" width="250px" class="jbb" alt="Two discord emojis. One is a UNO reverse card that says NO YOU. The other is a casette with a heart. They are both blue." title="Two discord emojis. One is a UNO reverse card that says NO YOU. The other is a casette with a heart. They are both blue.">
<hr>
From elasticella's Hotties Haunting the Narrative event on dreamwidth:
<br><img src="https://64.media.tumblr.com/3a678a37f1761efd6435dbb19e44e027/ccc0fa30dd935a3e-12/s250x400/6d653e5025cb3cf39658528c71cce08728134392.png" class="badge" alt="3 story haunted house; 3 fills" title="3 story haunted house; 3 fills"><hr>
From MY Rarest of Rarepairs event 2025 (this is the first year we have graphic awards and I think they're fun): <br>
<img src="https://file.garden/aJzQmzrHVB4BLKwu/tumblr_a5d75cf065c5812ea75288e1283a098d_6cb972ab_250-removebg-preview.png" alt="creative canoe; one fill" title="creative canoe; one fill"><br><hr>
<div class="badgeimg">From beagoldfish microbang:<br>
<img src="https://file.garden/Zw17vw8ctXTQw7PV/toothpastepancake-5.jpg" alt="beagoldfish 2026-a, toothpaste pancake, 2 playlists made, 1 recipe written, 1 gifset made,
1 icon set shared, 3 fics written" width="380px" height="380px" title="beagoldfish 2026-a, toothpaste pancake, 2 playlists made, 1 recipe written, 1 gifset made,
1 icon set shared, 3 fics written"><br><hr>From <a href="https://robinboob.com/">robinboob</a>:<br>
<img src="https://file.garden/aJzQmzrHVB4BLKwu/shipbadge.png" width="380px" title="joke certificiate indicating ownership of the fictional relationship between keeg bovo and larry trainor" alt="joke certificiate indicating ownership of the fictional relationship between keeg bovo
and larry trainor"><br>
<img src="https://file.garden/aJzQmzrHVB4BLKwu/wm.png" width="380px" alt="joke certificiate indicating ownership of the fictional relationship between claire finn and isaac" title="joke certificiate indicating ownership of the fictional relationship between claire finn and isaac"><br>
<img src="https://file.garden/aJzQmzrHVB4BLKwu/solara%20certificate.png" width="380px" title="joke certificiate indicating ownership of the fictional relationship between solana and alara kitan" alt="joke certificiate indicating ownership of the fictional relationship between alara and solana kitan" ><br>
<img src="https://file.garden/Zw17vw8ctXTQw7PV/certificates_555_watermarked-1772138825413.png" width="380px" alt="joke certificiate indicating ownership of the fictional relationship between mr morden and anna sheridan" title=""joke certificiate indicating ownership of the fictional relationship between mr morden and anna sheridan" ><br>
<img src="https://file.garden/Zw17vw8ctXTQw7PV/ship-certificate-watermarked(1).png" width="380px" alt="joke certificiate indicating ownership of the fictional relationship between
lyta alexander and kosh naranek" title="joke certificiate indicating ownership of the fictional relationship between
lyta alexander and kosh naranek">
</div></div>

1
content/feed/.virtual Normal file
View file

@ -0,0 +1 @@
For RSS feed, Atom Feed, and JSON feed templates, see the plugin in eleventy.config.js

89
content/feed/pretty-atom-feed.xsl vendored Normal file

File diff suppressed because one or more lines are too long

44
content/for-you.njk Normal file
View file

@ -0,0 +1,44 @@
---
layout: agneslove.njk
title: For You
description: Stuff i made for you page
eleventyNavigation:
key: slash
title: For You
---
<div class="main-noflex"> <h2>stuff for YOU!</h2>
<h1>Things I Made</h1>
AO3 Clone in HTML<br><br>
A while ago I made a semi-functional AO3 clone in HTML/css. You use this by copying and pasting your works into the work template, then updating the profile and tag pages to link to each work.
<br><br>
It's insane, but if you're curious or up for a tedious project, or are dreaming of hosting OTW-Archive one day and want to spin up a prototype, you can download it <a href="https://treasurechest.alien.town/agnes/ao3-html">here</a>.<br><br>
<hr>
Babylon 5 favorite character sorter<br><br>
I didn't code this, biasorter on Tumblr did, I just made it B5. Do you want to know your ultimate favs in B5? Check it out <a href="https://alien.holiday/b5sorter">here!</a>
<hr>
Neocities Edit Current Page Link<br><br>
My first Javascript thingy. I got tired of having to navigate to the Neocities dashboard in the browser whenever I wanted to edit a page; this creates a link on the page that takes you directly to the Neocities file edit page for the url path it is placed on. If someone besides you clicks it, it just takes them to their own Neocities dashboard or the corresponding file on their own site, if they have one. Think the "edit theme" button on Tumblr.
<a href="https://treasurechest.alien.town/agnes/misc-etc/src/branch/main/scripts/neocities-edit-button.js">Check it out here!</a><hr>
<a href="https://treasurechest.alien.town/agnes/dw-commentfest-scrape">Dreamwidth Comment Fest Scraper</a><br>
<br> This scrapes Dreamwidth comments on a specific posts and sends them to a Discord webhook, generating the comment text and a link to the comment in HTML format <a href="url">text</a> wrapped in backticks. When put on systemd it runs every five hours (don't change that, to be respectful to DW) and if no new comments have been posted since the last one then it returns no comments. <br><br>
My first Python project ever!<hr>
<center>Graphics</center>
<img src="https://i.ibb.co/V0FPZT9b/janestamp.png" alt="tv verse jane doom patrol deviantart style stamp" border="0">
<img src="https://i.ibb.co/kgwxz7sd/flexstamp.png" alt="tv verse flex mentallo deviantart style stamp" title="tv verse flex mentallo deviantart style stamp" border="0">
<img src="https://i.ibb.co/dsrLDFLx/cliffstamp.png" alt="tv verse cliff steele deviantart style stamp" title="tv verse cliff steele deviantart style stamp" border="0">
<img src="https://i.ibb.co/zhsm4VhV/larrystamp.png" alt="tv verse larry trainor deviantart style stamp" title="tv verse larry trainor deviantart style stamp" border="0">
<img src="https://i.ibb.co/355pgmCS/ritastamp.png" alt="rita farr deviantart style stamp" title="rita farr deviantart style stamp" border="0">
<img src="https://i.ibb.co/s9PvmBqJ/maurastamp.png" alt="tv verse maura lee karupt deviantart style stamp" title="tv verse maura lee karupt deviantart style stamp" border="0">
<img src="https://i.ibb.co/21f0Fjv6/laurastamp.png" alt="tv verse laura de mille deviantart style stamp" title="tv verse laura de mille deviantart style stamp"" border="0">
<img src="https://i.ibb.co/tpYytR2h/vicstamp.png" alt="doom patrol tv show vic stone deviantart style stamp" title="doom patrol tv vic stone deviantart style stamp" border="0">
<img src="https://i.ibb.co/v612b01V/babylon5stamp.png" alt="babylon5 deviantart style stamp" title="babylon 5 deviantart style stamp" border="0"><br/><img src="https://i.ibb.co/ccjjrxNC/DOOM-PATROL.png" alt="doom patrol badge" title="doom patrol badge" border="0">
<img src="https://i.ibb.co/DP5xmbSp/ALIEN-GENDER.png" alt="ALIEN GENDER badge" title="alien gender badge" border="0">
<img src="https://i.ibb.co/XrZ6y4mc/YAY-LESBIANS.png" alt="yay lesbians badge" title="yay lesbians badge" border="0">
<img src="https://i.ibb.co/FLZJgtKz/BUTCH-LESBIAN.png" alt="BUTCH LESBIAN badge" title="butch lesbian badge" border="0">
<img src="https://i.ibb.co/rLgsL0K/FEMME-LESBIAN-1.png" alt="femme lesbian badge" title="femme lesbian badge" border="0"></div>
</div>

87
content/hosted.njk Normal file
View file

@ -0,0 +1,87 @@
---
layout: agneslove.njk
title: Services
description: services i host
eleventyNavigation:
key: slash
title: Hosted
---
<div class="main-noflex">
<!-- wp:heading {"textAlign":"center"} -->
<h2 class="wp-block-heading has-text-align-center">All of my self-hosted services</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>I outlined this on my about page before, then realized I wanted to be able to link to it other places. So here we are :)</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>COMMUNITY<br>If you'd like an account on any that don't have open signups or invite queues, email me :))</p>
<!-- /wp:paragraph -->
<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://sunset.femslash.club">SUNSET ARCHIVE</a>; An archive for F/F, NB/F and NB/NB fanworks running on the AO3 code;<br><a href="https://fandom.cooking/">FANDOM.COOKING</a>; a multifandom cookbook using recipes from various public sources;<br><a href="https://cheesy.alien.town/">CHEESY</a>; a food miniblogging site;<br><a href="https://sillywordz.kissing.computer/">SILLYWORDZ</a>; a fork of status.cafe that lets you embed your updated word count into your site;<br><a href="https://minty.anteater.monster/">MINTY</a>; status.cafe instance/embeddable status updates for your site;</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://www.mourningdove.club">MOURNING DOVE</a>; dreamwidth clone/journalling site<br><a href="https://girlgay.femslash.club/">FEMSLASH FORUMS</a>; not ready yet;</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p>PERSONAL</p>
<!-- /wp:paragraph -->
<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://treasurechest.alien.town/agnes">FORGEJO/GIT; </a>my projects;</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://cheesecake.kissing.computer/">ASK ME ANYTHING</a>; single-user question&amp;answer software similar to the now-defunct CuriousCat;</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://library.alien.town/bookmarks/shared">PERSONAL BOOKMARKS</a>; links i've saved</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://clouds.alien.town/">CLOUDZ</a>; personal fanart archive</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:heading {"textAlign":"center"} -->
<h2 class="wp-block-heading has-text-align-center">Shrines &amp; Fan Sites</h2>
<!-- /wp:heading -->
<!-- wp:list -->
<ul class="wp-block-list"><!-- wp:list-item -->
<li><a href="https://signsandportents.neocities.org/morden/ambition">Mr. Morden shrine (Babylon 5</a>)</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://shadow-of-a-ghost.toothpaste.city/">Anna Sheridan shrine (Babylon 5)</a></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://spirit.alien.hospital/">Negative Spirit species shrine (Doom Patrol TV)</a></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><a href="https://spiraleye.toothpaste.city/">Elouisa shrine (Palia)</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->
</div>

65
content/index.njk Normal file
View file

@ -0,0 +1,65 @@
---
layout: agneslove.njk
title: Agnes the Alien
#description: "Welcome to petrapixel! Here you can find many resources for Neocities, coding help, media recommendations and more in a cute Old Web aesthetic!"
#freezeframe: true
#numberofLatestPostsToShow: 3
#postsCount:
#latestPostsCOunt:
#morePosts:
---
<div class="main">
<div class="intro"><img src="https://i.ibb.co/ZRfYtg7t/welcome5.gif" alt="Pixel render of a computer screen that says WELCOME TO MY WEBSITE. Kittens are climbing all over it." title="Pixel render of a computer screen that says WELCOME TO MY WEBSITE. Kittens are climbing all over it."><br>
Hello, and welcome to my site! I'm Agnes the Alien, and this is my personal site and weblog. Feel free to poke around and see what I've got.<br>
<br> I mostly write about creativity, technology, alterhumanity, fictosexuality, disability, and mental health. <br>
<br><div class="status">Current status: <script src="https://status.lol/agnes.js?link&no-emoji&time"></script>
</div> <style type="text/css" media="screen">
.gr_grid_container {
/* customize grid container div here. eg: width: 500px; */
}
.gr_grid_book_container {
/* customize book cover container div here */
float: left;
width: 39px;
height: 60px;
padding: 0px 0px;
overflow: hidden;
}
</style>
<div id="gr_grid_widget_1782007749">
<!-- Show static html as a placeholder in case js is not enabled - javascript include will override this if things work -->
<h2>
<a style="text-decoration: none;" rel="nofollow" href="https://www.goodreads.com/review/list/200389747-aggie?shelf=currently-reading&utm_medium=api&utm_source=grid_widget">currently reading...</a>
</h2>
<div class="gr_grid_container">
<div class="gr_grid_book_container"><a title="Serious Weakness" rel="nofollow" href="https://www.goodreads.com/book/show/63152711-serious-weakness"><img alt="Serious Weakness" border="0" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1667245361l/63152711._SY75_.jpg" /></a></div>
<div class="gr_grid_book_container"><a title="The Orange Eats Creeps" rel="nofollow" href="https://www.goodreads.com/book/show/8075281-the-orange-eats-creeps"><img alt="The Orange Eats Creeps" border="0" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1328762623l/8075281._SX50_.jpg" /></a></div>
<br style="clear: both"/><br/><a class="gr_grid_branding" style="font-size: .9em; color: #382110; text-decoration: none; float: right; clear: both" rel="nofollow" href="https://www.goodreads.com/user/show/200389747-aggie">Aggie's favorite books »</a>
<noscript><br/>Share <a rel="nofollow" href="/">book reviews</a> and ratings with Aggie, and even join a <a rel="nofollow" href="/group">book club</a> on Goodreads.</noscript>
</div>
</div>
<script src="https://www.goodreads.com/review/grid_widget/200389747.currently-reading?cover_size=small&hide_link=&hide_title=&num_books=20&order=a&shelf=currently-reading&sort=date_added&widget_id=1782007749" type="text/javascript" charset="utf-8"></script>
</div>
<div class="sitemap">
{{ collections.all | eleventyNavigation | eleventyNavigationToHtml | safe }}
</div>
<div class="posts">
{% set numberOfLatestPostsToShow = 10 %}
{% set postsCount = collections.posts | length %}
{% set latestPostsCount = postsCount | min(numberOfLatestPostsToShow) %}
<h1>Latest {{ latestPostsCount }} Post{% if latestPostsCount != 1 %}s{% endif %}</h1>
{% set postslist = collections.posts | head(-1 * numberOfLatestPostsToShow) %}
{% set postslistCounter = postsCount %}
{% include "postslist.njk" %}
{% set morePosts = postsCount - numberOfLatestPostsToShow %}
{% if morePosts > 0 %}
<p>{{ morePosts }} more post{% if morePosts != 1 %}s{% endif %} can be found in <a href="blog.njk">the archive</a>.</p>
{% endif %}
</div>
</div><div class="main">{% postGraph collections.posts %}</div></div>

29
content/index.njk.example Normal file
View file

@ -0,0 +1,29 @@
---js
const eleventyNavigation = {
key: "Home",
order: 1
};
const numberOfLatestPostsToShow = 3;
---
{% set postsCount = collections.posts | length %}
{% set latestPostsCount = postsCount | min(numberOfLatestPostsToShow) %}
<h1>Latest {{ latestPostsCount }} Post{% if latestPostsCount != 1 %}s{% endif %}</h1>
{% set postslist = collections.posts | head(-1 * numberOfLatestPostsToShow) %}
{% set postslistCounter = postsCount %}
{% include "postslist.njk" %}
{% set morePosts = postsCount - numberOfLatestPostsToShow %}
{% if morePosts > 0 %}
<p>{{ morePosts }} more post{% if morePosts != 1 %}s{% endif %} can be found in <a href="blog.njk">the archive</a>.</p>
{% endif %}
{# List every content page in the project #}
{#
<ul>
{%- for entry in collections.all %}
<li><a href="{{ entry.url }}"><code>{{ entry.url }}</code></a></li>
{%- endfor %}
</ul>
#}

View file

@ -0,0 +1,9 @@
---
layout: agneslove.njk
nesting: "../"
title: NOW
description: now page
tags: main
---
skjenrkl

71
content/now.njk Executable file
View file

@ -0,0 +1,71 @@
---
layout: agneslove.njk
title: Now
description: now page
eleventyNavigation:
key: slash
title: Now
---
<script>
function myFunction() {
let element = document.body;
element.classList.toggle("theme");
}
</script>
<div class="main-now">
<div id="currently">
Currently...
<br>
<b><i>watching</i></b>: paradise (tv), star trek voyager<hr>
<b><i>playing</i></b>: tomodachi life, palia, 1000xresist<hr>
<a href="https://www.last.fm/user/keegbovo"><img src="https://lastfm-recently-played.vercel.app/api?user=keegbovo" height="auto" width="250px"/></a></div>
<div class="noww"><h3>What am I doing now!?!?</h3>
<i>inspired by <a href="https://nownownow.com/about">nownownow.com</a></i>
<hr style="width:65px;border:8px dashed hotpink;">
Life... <br><br>
Currently finally moving on from 20 years of treatment resistant depression, which is nice, and finally getting treatment for my lifelong PMDD, which will hopefully take care of the <i>rest</i> of my suffering. I'm writing this on June 20, 2026, which means I'm turning 25 in exactly a week. That's pretty wild, considering I never planned to make it past the age of eighteen.<br><br>
I'm at peace with my life currently. I'm frightened by the current state of the world, but I have hope. I love my friends and family and partner and pets. I finally feel like I have some sort of tangible, beautiful future? AGAIN: crazy, because I've never known this kind of contentment and hope. I'm squeezing all the juice I can out of every second of my life; I'm not going to let it go to waste.
<br><br>
Something a lot of people don't talk about is the post-suicidal phase of life. You know, what happens when you've been suicidal since the single digits and it's all you know how to be, and now you have to learn what it's like to want to be around. It might not sound like it, but it's a real adjustment! For so long I have felt like my life is ephemeral, but it isn't. I can make something of it. I just need to figure out how.
<br><br>
My life is relatively limited by my health issues, but I want to do as much as I possibly can, both inside and outside of the home. I'm about to start college this August, where I'll be a religious studies major with the goal of volunteering in medical chaplaincy. The one field I can do that I do not think will be replaced by AI any time soon...<br><br>
I'm excited for what comes next.
<hr style="width:65px;border:8px dashed hotpink;">
Projects... <br><br>
In October 2025, I launched <a href="https://sunset.femslash.club">Sunset Archive</a>, a fanfiction archive using <a href="https://archiveofourown.org/">AO3</a>'s code dedicated to F/F, F/NB and NB/NB sapphic fanworks. It was rocky at the start, but it has ended up being incredibly rewarding. Now, as I move forward with my mental health and continue to improve, I'm thinking of launching an entire "femslash web"; a cluster of social services and tools made by and for femslash fans, where we come first, and where femslash is freely accessible to those who are looking as opposed to being a needle in a haystack.
I'm very passionate about fandom and sapphic works. I don't know if this will come to fruition, but it is my dream...
<br><br>
I'm currently working on a cluster of short stories and am brainstorming a novel, and I recently got a v-gen artist account and plan to open writing commissions soon.
As I write this, it is late June, so <a href="https://artfight.net/~bearcat" title="my profile">ArtFight</a> will be starting soon! This year I'm getting into making jewelry so I can do craft attacks, and just because I want to make jewelry in general, since so many people in my family work with it.
<br><br> In fact, here's a practice necklace I made:<br>
<img src="https://64.media.tumblr.com/1cde0ff69c3f2f19f584846230bb15b8/0be8ddd22aa1c887-fd/s540x810/fc6aabf1410e336436fcef13d6be3dcb1e05a6f2.jpg" width="450px" alt="A necklace composed of red heart shaped gems. It has a blue UFO pendant." title="A necklace composed of red heart shaped gems. It has a blue UFO pendant.">
<br><br>I'm pretty proud of it :-)
<hr style="width:65px;border:8px dashed hotpink;">
Goals...
<br><br>
<li>To successfully use my DBT skills when necessary to avoid having a breakdown</li>
<li>To finish a novel by June 2027</li>
<li>To write at least 150k by the end of the year</li>
<li>To get a short story professionally published</li>
<li>To continue to improve with my digital art and my crafts</li>
<li>To learn music theory</li>
<li>To finish my freshman year of college with at least a 3.8 GPA.</li>
</div>
</div>

5
content/sitemap.njk Normal file
View file

@ -0,0 +1,5 @@
<section class="main-sitemap">
<h1>Sitemap</h1><br>
{{ collections.all | eleventyNavigation | eleventyNavigationToHtml | safe }}
</section>

16
content/sitemap.xml.njk Normal file
View file

@ -0,0 +1,16 @@
---
permalink: /sitemap.xml
layout: false
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://sitemaps.org">
{%- for page in collections.all %}
{%- if page.data.permalink != false %}
<url>
<loc>{{ metadata.url }}{{ page.url | url }}</loc>
<lastmod>{{ page.date.toISOString() }}</lastmod>
</url>
{%- endif %}
{%- endfor %}
</urlset>

8
content/tag-list.njk Normal file
View file

@ -0,0 +1,8 @@
<h1>Tags</h1>
<ul>
{% for tag in collections | getKeys | filterTagList | sortAlphabetically %}
{% set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<li><a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a></li>
{% endfor %}
</ul>

29
content/tag-pages.njk Normal file
View file

@ -0,0 +1,29 @@
---js
// <script>
const pagination = {
data: "collections",
size: 1,
alias: "tag",
filter: ["all", "posts"],
// addAllPagesToCollections: true,
};
const eleventyExcludeFromCollections = true;
const eleventyComputed = {
title: "Tagged '{{ tag }}'",
permalink: function(data) {
// If DuplicatePermalinkOutputError occurs, check that no tag occurs
// with differing case, e.g. "RSS" and "rss".
return `/tags/${this.slugify(data.tag)}/`;
}
};
---
<section class="main-sitemap">
<h1>Tagged “{{ tag }}”</h1>
{% set postslist = collections[ tag ] %}
{% include "postslist.njk" %}
<p>See <a href="tags.njk">all tags</a>.</p>
</section>

8
content/tags.njk Normal file
View file

@ -0,0 +1,8 @@
<h1>Tags</h1>
<ul>
{% for tag in collections | getKeys | filterTagList | sortAlphabetically %}
{% set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<li><a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a></li>
{% endfor %}
</ul>

97
content/wishes.njk Normal file
View file

@ -0,0 +1,97 @@
---
layout: agneslove.njk
title: Wishes
description: Wishes page
eleventyNavigation:
key: slash
title: Wishes
---
<div class="main-noflex">
<!-- wp:heading {"textAlign":"center"} -->
<h2 class="wp-block-heading has-text-align-center">Wishes</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Inspired by <a hr.main {
flex: 1;
max-width:60%;
border: 8px inset hotpink;
display:flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-direction: row;
flex-wrap: wrap;
margin: 0 auto;
background: #F0D8E6;
height: auto;
}
ef="https://taylor.town/wish-manifesto">this site,</a> which outlines the concept of a Wish Page pretty well:&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;“Sharing your wishlist gives people opportunities to connect with you. From your list, they can infer passions and goals and sometimes even insecurities. They can quickly find common ground with you. They can offer suggestions and support…. Maintaining a wishlist promotes intentional spending. It's much easier to plan realistic budgets when all your future purchases are listed together.”&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;I thought this was a very nice idea for a page — and as someone with… a Spending Problem… I thought having my wants and potential future purchases laid out here might help me with, as that page states, intentional spending.&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p> While this is a wishlist page, I didn't put it here so people can send me gifts. It's for my own referencethings I want to buy later, things I'm saving up for, “if-I-win-the-lottery” dream stuff, and maybe even some non-physical/item things I wish for. HOWEVER, if you Do want to send me a gift, you can contact me by email at alienhospitals@gmail.com to discuss. </p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Things I'm Bribing Myself With<br></strong></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;In early December 2025 I bought a digital wall calendar, it looks like a photo frame with an Android tablet in it, it's fucking awesome. It has a “rewards” system on its corresponding app; you complete tasks, you get stars, you use stars to buy rewards. I often do better when I have something to work for that's the entire point of <a href="https://hospital.alien.town/doku.php?id=badges">my fandom badges page, LOL</a> so I figured I'd try it out to get myself writing/working.&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;Currently, my bribes are…&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;At 100 stars, 5 stars for each completed writing task, I have <a href="https://www.amazon.com/dp/B0FH7JCZ8L/?coliid=I24EN5OHHMO8W9&amp;colid=1PMFBP9SPA9HM&amp;psc=1&amp;ref_=list_c_wl_lv_ov_lig_dp_it">these stimmy scented lava gel pens</a>. I think they're so cute and would definitely be a good addition to my journalling hyperfixation, especially how you can stim with them. I want to start a writing journal - like, a journal for fiction/poetry/fanfiction/anything more in the realm of writing as opposed to general diary-ing - so I feel like this would help me write a bit more. Rewarding myself for writing with more writing - yay!&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;For every 100 stars earned for writing after that, I'll buy… probably <a href="https://www.amazon.com/Coffee-Smens-Scented-Black-Medium/dp/B0D1DMMX88/ref=sims_dp_d_dex_ai_rank_model_1_d_v1_d_sccl_1_4/141-7448205-6165714?pd_rd_w=JzQfs&amp;content-id=amzn1.sym.da0b205c-8cc7-4a8d-9d0a-8ed3705890a2&amp;pf_rd_p=da0b205c-8cc7-4a8d-9d0a-8ed3705890a2&amp;pf_rd_r=0052CJKVA3PK87JK476C&amp;pd_rd_wg=O8HsE&amp;pd_rd_r=a53810e3-5158-411c-ba25-e15e5fb2c6b0&amp;pd_rd_i=B0D1DMMX88&amp;th=1">more</a> <a href="https://www.amazon.com/dp/B0FHZDHW2J/?coliid=IDFQDBDMXI67Z&amp;colid=11YNCOGK65TFM&amp;ref_=list_c_wl_lv_ov_lig_dp_it&amp;th=1">pens</a> LOL.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Wants<br></strong></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;There are lots of things I *want* but dont *need.* I really *want* <a href="https://a.co/d/3mlP5cE">this 4x6 smartphone photo printer</a> for journalling. I REALLY want <a href="https://a.co/d/aO4Y7eT">this book of essays on The Orville</a>, because The Orville is my favorite thing to chew on these days. I would love to try the <a href="https://madrinas.com/products/vanilla-bean-chapaaccino">Palia coffee</a>, but it may be gone by the time Im ready to buy it. Im always wanting any kind of screen-used prop from the Doom Patrol set, or scripts; linglingcollectibles on eBay and <a href="https://yallywoodprops.com/collections/doom-patrol">Yallywood Props</a> seem to carry most of them. I love Things and I am trying to not love Things so much.&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;I also want to do some custom pins for an Orville ita bag, but I cant figure out who it should be for quite yet. I have an extra ita bag someone very dear to me got me for my birthday, and its just begging to be filled. With pins! ;)&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;Im always wanting new headscarves and headscarf accessories and fun big chunky earrings and such. I love maximalist fashion and rainbows and over the top jewelry and clothes that make you look like a grandma.&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Huge Dreams<br></strong></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;If, by any chance, a super rich person is reading this…. Id love for you to buy me <a href="https://a.co/d/aq807V5">this server</a> — or even <a href="https://a.co/d/bTYY37f">this one!</a> ;) Im a computer geek and this is my dream server. Okay itd be great to get it brand new instead of refurbished but the specs are irresistible. Buying this would be about two months of my income. Please.&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;Other super expensive things I want really horribly so—&nbsp;</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>&nbsp;I want to get back into data hoarding and take it more seriously, so Id love <a href="https://a.co/d/fxc1cVp">this Twenty Six Terabyte desktop drive</a>. Or honestly any of those desktop drives above 2TB. Multiple so I can make backups would also be epic.&nbsp;</p>
<!-- /wp:paragraph -->
</div>

307
css/index.css Normal file
View file

@ -0,0 +1,307 @@
/* 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:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:18px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

18
css/message-box.css Normal file
View file

@ -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;
}
}

45
css/prism-diff.css Normal file
View file

@ -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 */
}

1
deploy-to-neocities.json Normal file
View file

@ -0,0 +1 @@
{"siteName":"agneslove"}

200
indexbundle.css Normal file
View file

@ -0,0 +1,200 @@
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 1.3em;
margin: 0;
padding: 0;
}
.footyr {
border: 1px hotpink solid;
height: 180px;
overflow: scroll;
padding:5px;
text-align: center;
align-content: center;
}
.font-size1 {
font-size: 19px;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
.ughh {
height: 100px;
overflow: scroll;
margin: 0 auto;
border: 1px solid hotpink;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
section .sitemap {
flex: 1 2 250px;
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
width:250px;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2;
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
width: 350px;
}
.updates {
flex: 2 1 300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

3
netlify.toml Normal file
View file

@ -0,0 +1,3 @@
[build]
publish = "_site"
command = "npm run build"

4824
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

56
package.json Normal file
View file

@ -0,0 +1,56 @@
{
"name": "eleventy-base-blog",
"version": "9.0.0",
"description": "A starter repository for a blog web site using the Eleventy site generator.",
"type": "module",
"scripts": {
"build": "npx @11ty/eleventy",
"build-nocolor": "cross-env NODE_DISABLE_COLORS=1 npx @11ty/eleventy",
"build-ghpages": "npx @11ty/eleventy --pathprefix=/eleventy-base-blog/",
"start": "npx @11ty/eleventy --serve --quiet",
"start-ghpages": "npx @11ty/eleventy --pathprefix=/eleventy-base-blog/ --serve --quiet",
"debug": "cross-env DEBUG=Eleventy* npx @11ty/eleventy",
"debugstart": "cross-env DEBUG=Eleventy* npx @11ty/eleventy --serve --quiet",
"benchmark": "cross-env DEBUG=Eleventy:Benchmark* npx @11ty/eleventy"
},
"repository": {
"type": "git",
"url": "git://github.com/11ty/eleventy-base-blog.git"
},
"author": {
"name": "Zach Leatherman",
"email": "zachleatherman@gmail.com",
"url": "https://zachleat.com/"
},
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/11ty"
},
"bugs": {
"url": "https://github.com/11ty/eleventy-base-blog/issues"
},
"homepage": "https://github.com/11ty/eleventy-base-blog#readme",
"devDependencies": {
"@11ty/eleventy": "^3.1.6",
"@11ty/eleventy-img": "^6.0.4",
"@11ty/eleventy-navigation": "^1.0.5",
"@11ty/eleventy-plugin-rss": "^3.0.0",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2",
"@rknightuk/eleventy-plugin-post-graph": "^1.0.8",
"cross-env": "^10.1.0",
"luxon": "^3.7.2",
"prismjs": "^1.30.0",
"zod": "^4.3.6",
"zod-validation-error": "^5.0.0"
},
"dependencies": {
"@quasibit/eleventy-plugin-sitemap": "^2.2.0",
"@zachleat/heading-anchors": "^1.0.5",
"async-neocities": "^4.1.2",
"eleventy-plugin-post-stats": "^0.2.13"
}
}

1
post.js Normal file
View file

@ -0,0 +1 @@
const numberOfLatestPostsToShow = 3;

186
publc Normal file
View file

@ -0,0 +1,186 @@
html {
font-size: 19px;
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 19px;
margin: 0;
padding: 0;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
.sitemap {
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
}
section .updates {
width:300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
border: 8px hotpink inset;
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

View file

186
public/bigger.css Normal file
View file

@ -0,0 +1,186 @@
html {
font-size: 19px;
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 19px;
margin: 0;
padding: 0;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
.sitemap {
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
}
section .updates {
width:300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
border: 8px hotpink inset;
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

307
public/biggerblog.css Normal file
View file

@ -0,0 +1,307 @@
/* 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:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:22px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

313
public/blog.css Normal file
View file

@ -0,0 +1,313 @@
/* 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;
}
#HCB_comment_box .hcb-icon {
width:10px; /* Adjust to match surrounding text */
}
/* Theme colors */
:root {
--color-gray-20: #e0e0e0;
--color-gray-50: #C0C0C0;
--color-gray-90: #333;
--background-color:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:18px;
}
.theme {
font-size:2.0rem;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

186
public/evenbigger.css Normal file
View file

@ -0,0 +1,186 @@
html {
font-size: 19px;
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
font-size: 25px;
margin: 0;
padding: 0;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
.sitemap {
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
}
section .updates {
width:300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
border: 8px hotpink inset;
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

307
public/evenbiggerblog.css Normal file
View file

@ -0,0 +1,307 @@
* 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:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:20px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

3
public/htmlcommentbox.js Normal file
View file

@ -0,0 +1,3 @@
/*<!--*/ if(!window.hcb_user){hcb_user={};} (function(){var s=document.createElement("script"), l=hcb_user.PAGE || (""+window.location).replace(/'/g,"%27"), h="https://www.htmlcommentbox.com";s.setAttribute("type","text/javascript");s.setAttribute("src", h+"/jread?page="+encodeURIComponent(l).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24kbjUM8MS.IvEmWHN3VntS%2F"+"&opts=16798&num=10&ts=1782005268508");if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})(); /*-->*/

0
public/img/.gitkeep Normal file
View file

186
public/largest.css Normal file
View file

@ -0,0 +1,186 @@
html {
font-size: 25px;
}
body {
background: #e0589c;
background: radial-gradient(circle, rgba(224, 88, 156, 1) 0%, rgba(179, 255, 208, 1) 100%); font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header,
nav,
section,
footer {
width: 90%;
max-width: 1000px;
margin: 10px auto;
background: #F0D8E6;
box-sizing: border-box;
}
header {
border: 8px hotpink inset;
background: #F0D8E6;
padding: 10px;
text-align: center;
}
header img {
width:35%;
height:35%;
}
.sitemap {
border: 1px solid hotpink;
overflow: scroll;
max-height: 55%;
}
.sillyheader {
margin-left: auto;
}
nav {
padding: 0.5rem;
background: #F0D8E6;
border: 8px hotpink inset;
text-align: center;
}
.main {
display: flex;
gap: 10px;
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
section .main-sitemap {
justify-content: center;
align-items: flex-start;
flex-wrap: wrap;
width: 90%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
}
.main-blog {
width: 60%;
border:8px inset hotpink;
padding: 1%;
max-width: 1500px;
margin: 0 auto;
background: #F0D8E6;
line-height:160%;
}
.posts,
.intro,
.updates {
border: 1px solid hotpink;
box-sizing: border-box;
background: rgba(255,255,255,0.2);
overflow: scroll;
}
.posts {
flex: 2 1 500px;
height: 700px;
padding-left: 4px;
padding-right: 4px;
overflow: scroll;
}
.intro {
flex: 1 1 300px;
min-height: 700px;
}
section .updates {
width:300px;
overflow:scroll;
height:700px;
margin-top: 0;
}
.status {
font-size: 15px;
border: 1px solid hotpink;
height: auto;
}
.ugh {
width: 100%;
max-width: 200px;
height: 100px;
overflow-y: auto;
border: 1px solid hotpink;
}
.main img {
max-width: 100%;
height: auto;
}
section {
border: 8px hotpink inset;
padding: 1%;
text-align: center;
}
footer {
padding: 1%;
border: 8px hotpink inset;
}
a {
color: #300023;
text-decoration: underline;
text-decoration-style: dashed;
}
/* mobile shit */
@media (max-width: 768px) {
body {
font-size: 1em;
}
.main {
flex-direction: column;
align-items: center;
}
.posts,
.intro,
.updates {
width: 100%;
min-height: auto;
}
.sillyheader {
position: static;
float: none;
margin: 0 auto;
text-align: center;
}
header,
nav,
section,
footer {
width: 95%;
}
}

307
public/largestblog.css Normal file
View file

@ -0,0 +1,307 @@
/* 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:#cfffe8;
--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;
}
@view-transition {
navigation: auto;
}
html,
body {
padding: 0;
margin: 0 auto;
font-family:Arial;
color: var(--text-color);
background-color: var(--background-color);
font-size:26px;
}
html {
overflow-y: scroll;
}
body {
max-width: 40em;
}
header img {
width: 100px;
height: 104px;
}
.container {
margin: 0 auto;
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
/* Fluid images via https://www.zachleat.com/web/fluid-images/ */
img{
max-width: 100%;
}
img[width][height] {
height: auto;
}
img[src$=".svg"] {
width: 100%;
height: auto;
max-width: none;
}
video,
iframe {
width: 100%;
height: auto;
}
iframe {
aspect-ratio: 16/9;
}
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,
footer {
padding: 1rem;
}
main :first-child {
margin-top: 0;
}
header {
border-bottom: 1px dashed var(--color-gray-20);
align-content: center;
}
#skip-link {
text-decoration: none;
background: var(--background-color);
color: var(--text-color);
padding: 0.5rem 1rem;
border: 1px solid var(--color-gray-90);
border-radius: 2px;
}
/* Prevent visually-hidden skip link fom pushing content around when focused */
#skip-link.visually-hidden:focus {
position: absolute;
top: 1rem;
left: 1rem;
/* Ensure it is positioned on top of everything else when it is shown */
z-index: 999;
}
.links-nextprev {
display: flex;
justify-content: space-between;
gap: .5em 1em;
list-style: "";
border-top: 1px dashed var(--color-gray-20);
padding: 1em 0;
}
.links-nextprev > * {
flex-grow: 1;
}
.links-nextprev-next {
text-align: right;
}
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;
overflow-x: auto;
}
code {
word-break: break-all;
}
/* Header */
header {
display: flex;
gap: 1em;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
padding: 1em;
}
.home-link {
flex-grow: 1;
font-size: 1em; /* 16px /16 */
font-weight: 700;
}
.home-link:link:not(:hover) {
text-decoration: none;
}
/* Nav */
.nav {
display: flex;
gap: .5em 1em;
padding: 0;
margin: 0;
list-style: none;
}
.nav-item {
display: inline-block;
}
.nav-item a[href]:not(:hover) {
text-decoration: none;
}
.nav a[href][aria-current="page"] {
text-decoration: underline;
}
/* Posts list */
.postlist {
counter-reset: start-from var(--postlist-index);
list-style: none;
padding: 0;
}
.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;
}
.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;
}

1
public/post.js Normal file
View file

@ -0,0 +1 @@
const numberOfLatestPostsToShow = 3;

19
public/test.js Normal file
View file

@ -0,0 +1,19 @@
<script>
const defaultTheme = "/bigger.css";
// Set default if nothing is stored yet
if (!localStorage.getItem("theme")) {
localStorage.setItem("theme", defaultTheme);
}
// Load the selected theme
document.write(
`<link rel="stylesheet" href="${localStorage.getItem("theme")}">`
);
// Make function globally available to onclick
window.setTheme = function(themeFile) {
localStorage.setItem("theme", themeFile);
location.reload();
};
</script>

4
public/theme.js Normal file
View file

@ -0,0 +1,4 @@
function myFunction() {
let element = document.body;
element.classList.toggle("theme");
}

15
public/themeswitcher.js Normal file
View file

@ -0,0 +1,15 @@
const defaultTheme = "/bigger.css";
// Set default if nothing is sto
// Load the selected theme
document.write(
`<link rel="stylesheet" href="${localStorage.getItem("theme")}">`
);
// Make function globally available to onclick
window.setTheme = function(themeFile) {
localStorage.setItem("theme", themeFile);
location.reload();
};

View file

@ -0,0 +1,11 @@
const defaultTheme = "/bigger.css"
document.write(
`<link rel="stylesheet" href="${localStorage.getItem("theme")}">`
);
function setTheme(themeFile) {
localStorage.setItem("theme", themeFile);
location.reload();
}

View file

@ -0,0 +1,17 @@
const defaultTheme = "/bigger.css";
if (!localStorage.getItem("theme")) {
localStorage.setItem("theme", defaultTheme);
}
document.write(
`<link rel="stylesheet" href="${localStorage.getItem("theme")}">`
);
function setTheme(themeFile) {
localStorage.setItem("theme", themeFile);
location.reload();
}

23
theme-switcher.js Normal file
View file

@ -0,0 +1,23 @@
<script>
const defaultTheme = "bundle.css";
// Check if `theme` is set
if (localStorage.getItem("bundle.css") === null) {
// Set to default theme
localStorage.setItem("bundle.css", defaultTheme);
}
// Load theme CSS
document.head.insertAdjacentHTML(
'beforeend',
`<link rel="stylesheet" href="${localStorage.getItem('bundle.css')}"/>`);
document.head.insertAdjacentHTML(
'beforeend',
`<link rel="stylesheet" href="${localStorage.getItem('bigger.css')}"/>`);
//
Theme switcher
function setTheme(themeFile) {
// Set theme to new theme
localStorage.setItem('theme', themeFile);
// Refresh the page
location.reload();
}
</script>

1
vercel.json Normal file
View file

@ -0,0 +1 @@
{ "trailingSlash": true }