Commit Graph
100 Commits
Author SHA1 Message Date
andwati cae62d4a66 Apply Biome formatting across the workspace
Fixes the formatting deltas from the initial Astro/Strapi scaffold
and brings the legacy generate-og-images/generate-llms/validate-post
scripts in line with Biome's style. No behavioral changes.
2026-08-30 17:59:30 +03:00
andwati 8be678d488 Define shared content schema for writings, portfolio, bookshelf, blogs
Adds content/README.md documenting the TOML frontmatter contract each
content type must follow, plus one seed entry per type to lock the
schema in a runnable form. Bookshelf entries use a kind field ("book"
or "paper") so academic papers (DOI/arXiv id) are first-class
alongside ISBN-driven books, not bolted on later.
2026-08-30 17:58:10 +03:00
andwati 80e1d55ea1 Scaffold Astro/Strapi monorepo for the site rebuild
Set up a pnpm workspace with apps/site (Astro) and apps/cms (Strapi,
SQLite-backed) as the foundation for the new digital-legacy site.
Switches package management to pnpm and adds Biome for linting/
formatting, replacing npm/no-linter setup. Existing Zola site stays
in place for now and will be migrated/removed progressively.
2026-08-30 17:56:36 +03:00
andwatiandGitHub 7a2853a44b Merge pull request #3 from andwati/migrate-security-headers-to-sws
Serve security headers via static-web-server, drop Cloudflare deploy path
2026-08-19 13:20:58 +03:00
andwati f87b818201 Serve security headers via static-web-server, drop Cloudflare deploy path
Production (Dokploy/Docker) was sending no security headers at all -
static/_headers and wrangler.toml were Cloudflare Pages/Workers
config that static-web-server never reads. Added sws.toml with the
same CSP/security headers and the two redirects from _redirects,
wired into the Dockerfile. Removed wrangler.toml, static/_headers,
static/_redirects, the wrangler devDependency/deploy script, and
related .gitignore/.dockerignore entries since Cloudflare deploy is
no longer used.

Also fixed a console error in theme.js where the Utterances
postMessage call could fire before the comments iframe navigated to
utteranc.es.
2026-08-19 12:31:44 +03:00
andwati a49aa02886 Auto-generate per-post OG images
Renders a 1200x630 social card per post (satori + resvg-js, using the
site's own self-hosted fonts) instead of reusing one generic og-image.png
for every post. Wired into npm run build via a new generate:og step;
templates/page.html falls back to the per-slug image unless extra.image
is set, and non-post pages keep the generic fallback.
2026-08-19 10:56:40 +03:00
andwati 6b8b926730 added article "Self-Hosting Gitea and Automating GitHub Mirrors" 2026-08-19 10:37:55 +03:00
andwatiandGitHub 18a6b5b4d9 Merge pull request #2 from andwati/zola-0.23-migration
Migrate templates to Zola 0.23 / Tera v2
2026-08-07 10:59:16 +03:00
andwati bf4ef2aa29 Add Dockerfile for self-hosted deployment, bump build.sh to Zola 0.23.1
Adds a multi-stage Dockerfile (Node for llms.txt generation, the
official Zola image to build, static-web-server to serve) for
deploying via Dokploy/Docker instead of Cloudflare Pages. This is an
additional path, not a replacement - wrangler.toml and the Cloudflare
build.sh remain in place as an option.

Also bumps build.sh's pinned ZOLA_VERSION from 0.22.1 to 0.23.1: the
prior commit migrated every template to Tera v2 syntax (components,
spread operator, native slicing), which 0.22.1 can't parse - confirmed
by a live Cloudflare build failure on this branch. Keeping build.sh
and the Dockerfile on the same Zola version avoids maintaining two
template dialects across the two deploy paths.

Verified: `docker build` succeeds, the container serves the homepage,
a post, the youtube embed, and a proper 404; `build.sh` also runs
clean standalone (simulating the Cloudflare build) and produces a
fully populated public/.
2026-08-07 10:54:38 +03:00
andwati e992baf2d2 Migrate templates to Zola 0.23 / Tera v2
bin/update-zola always installs the latest release, which as of
v0.23.0 rewrote the template engine to Tera v2. That broke the whole
site: removed filters (slice, concat, escape), test calls now require
named args, shortcodes are gone in favor of Tera components, and
content itself is now Tera-templated before markdown runs.

- slice(end=n) -> native [:n] slicing; concat(with=x) -> spread [...arr, x]
- escape -> escape_html; starting_with/containing -> named `pat` arg
- get_taxonomy_url `name` -> `term` (old name is deprecated)
- %+ date format no longer recognized; replaced with explicit RFC3339 pattern
- shortcodes (note/tip/warning/danger/youtube) rewritten as components;
  content call sites updated to component invocation syntax
- {% include %} no longer inherits for-loop-local variables (only ambient
  page/section context) - post-card.html converted to a component that
  takes page/index explicitly instead of relying on implicit `page`/`loop`
- two content code blocks with literal Jinja-style {{ }} syntax (Netlify
  CMS config, a Flask template snippet) wrapped in {% raw %} so Tera
  doesn't try to render them, since content is now templated too
- fixed a real content corruption bug along the way: the youtube
  shortcode's multi-line <iframe> tag had a conditional that could
  collapse to a whitespace-only line, which prematurely closed the
  HTML block under CommonMark rules and got the rest of the tag
  syntax-highlighted as code instead of rendered

Verified with a clean `zola build` and `zola serve` on v0.23.1, plus a
spot-check of the rendered HTML for both callouts and the video embed.
`zola check` only reports pre-existing external link rot, unrelated to
this change.
2026-08-07 10:46:09 +03:00
andwati e0a7feed3e fix _redirects: drop absolute-URL www redirect breaking deploy
Cloudflare Workers static assets rejects the www->apex redirect rule
with "Only relative URLs are allowed" (Pages allows absolute source
URLs for cross-host redirects, but this project deploys via wrangler's
static assets, not Pages, which doesn't). The www/apex canonicalization
needs to be handled via Cloudflare's dashboard Redirect Rules instead.
2026-07-17 16:50:12 +03:00
andwati 9917059437 add missing alt text, remove broken image links
15 screenshots in the ScriptCTF writeup had empty alt text. Also removed
two <img> references in the semver post pointing at files that never
existed in the repo (leftover from the old Netlify CMS media setup).
2026-07-17 15:59:46 +03:00
andwati 3e1c643283 fix zola.toml config table scoping bug and JSON-LD safety
[[extra.menu]] silently swallowed ~20 later extra.* keys (posts_page_title,
search_placeholder, show_rss_link, notfound_*, etc.) into the last menu
entry/tag_descriptions table, since TOML absorbs bare keys into the last
open table until a new header appears. show_rss_link was the only visibly
broken one (RSS link missing from homepage); the rest were masked by
matching template defaults.

Also replaced Tera's default() filter with explicit if/else where values
feed into JSON-LD, since default()'s fallback gets escaped in a way `safe`
can't undo. Added author/dateModified to BlogPosting list entries.
2026-07-17 15:59:27 +03:00
andwati 3b7cca3cc7 remove cc banner. added llms.txt 2026-07-17 15:01:48 +03:00
andwati f84a09bda7 fix lighthouse issues 2026-07-17 14:49:19 +03:00
andwati 4fb5fae2ba fix xml 2026-07-17 14:37:04 +03:00
andwati f5df752429 fix youtube embedd 2026-07-17 14:12:16 +03:00
andwati d48835a270 fix json ld 2026-07-17 13:59:48 +03:00
andwati 4d7e55bf90 fix json ld errors 2026-07-17 11:11:44 +03:00
andwati 36d916e930 update author information from "mockingspectre" to "andwati" across multiple files 2026-07-16 16:41:56 +03:00
andwati bb5ddeffc0 fix build script 2026-07-16 16:22:57 +03:00
andwati b4c52ee98d added pgp keys 2026-07-16 16:09:20 +03:00
andwati b2a61483dc remove Dockerfile and .dockerignore; add security.txt, _headers, and _redirects for deployment 2026-07-16 15:48:56 +03:00
andwati 1230de9387 remove workflow 2026-07-16 14:42:19 +03:00
andwati d8b898ca4a fix node version 2026-07-16 14:37:57 +03:00
andwati f14ec8942e workflow changes 2026-07-16 14:34:52 +03:00
andwati 741086acfd cloudflare build 2026-07-16 14:17:47 +03:00
andwati 512a54ba2d yolo 2026-07-16 12:28:42 +03:00
andwati e1f7c33692 updated 2026-07-16 12:28:42 +03:00
andwati a51671d7e4 redesign site as "case file" theme
- new paper/ink palette with single red accent, replacing catppuccin
- self-hosted IBM Plex Serif (display) + Source Serif 4 (body), drop Outfit
- rebuilt homepage masthead, numbered post index, navbar with active states
- switch syntax highlighting + utterances to gruvbox, synced via postMessage
- remove terminal/404 easter egg chrome, clean up remaining inline styles
- fix stray syntax.css link causing a 404
2026-07-16 12:28:34 +03:00
andwati 57462869ec switch ga tag 2026-07-02 23:53:03 +03:00
andwati 7b9eea35dd created dockerfile 2026-07-02 23:30:10 +03:00
andwati b27529c6a5 added observability configs 2026-07-02 22:37:21 +03:00
andwati daea141a2d updated to andwati.com 2026-07-02 22:36:00 +03:00
andwati fa83134413 updated to andwati.com 2026-07-02 21:34:28 +03:00
andwati 28cd44119e fix heading space 2026-04-16 23:14:03 +03:00
andwati 25c03231da fix space 2026-04-16 23:12:48 +03:00
andwati 630e7fa9a4 new article 2026-04-16 22:53:42 +03:00
andwati cac6ca890d fixed formatting 2026-04-08 23:32:05 +03:00
andwati efca88dacd publish article 2026-04-08 16:17:12 +03:00
andwati f131dd116e created manim project 2026-04-06 19:04:45 +03:00
andwati c3a686f152 sitemap edit 2026-04-02 14:18:44 +03:00
andwati e31dbbb16c switched theme 2026-04-02 13:14:18 +03:00
andwati 0c26d89eae scriptctf publish 2025-08-18 08:52:13 +03:00
andwati 8a188943f1 scriptctf publish 2025-08-18 08:43:10 +03:00
andwati fc3ea8f58d scriptctf draft 2025-08-17 22:31:50 +03:00
andwati a8e28af9fa stylings 2025-08-06 12:34:16 +03:00
andwati a99eff511f edited blogs 2025-08-05 03:28:45 +03:00
andwati 64bfc4f439 edited blogs 2025-08-05 03:25:00 +03:00
andwati eb4fdaff78 init2 2025-08-04 23:41:17 +03:00
andwati a1f6a1fa6f init1 2025-08-04 23:27:49 +03:00
andwati 770f7e4874 clean before merge 2025-08-04 23:23:06 +03:00
andwati 32abfb86a0 Merge branch 'zola-temp' 2025-08-04 23:20:12 +03:00
andwati 44f9d4e2cd added mmuctf writeup 2025-08-03 17:26:05 +03:00
andwati e09794e424 updates 2025-08-03 05:10:13 +03:00
andwati 82c2ea9498 fixed site url 2025-06-16 21:53:40 +03:00
andwati 5cf23cbeac merge commit 2025-06-14 18:55:08 +03:00
andwati 297c058ad1 chore: upgrade to 7.3.0 2025-06-14 16:43:25 +03:00
andwati c5faf6bab3 article: inertia 2025-02-26 17:46:17 +03:00
andwati 99a714d5e8 migrated old tailwindcss vue blog from medium 2025-02-26 17:11:01 +03:00
andwatiandGitHub ce50912211 Update _index.md 2025-02-15 11:00:24 +03:00
andwati 39dc146055 added katex support 2025-02-11 01:28:26 +03:00
andwati 2d3d2dc70e cleanup 2025-02-10 13:50:46 +03:00
andwati 399cec8734 added readme instructions 2025-02-10 13:21:21 +03:00
andwati 37466b4067 css change 2025-02-06 21:47:31 +03:00
andwati 511a22f9a9 future head progress 2025-01-27 12:11:14 +03:00
andwati ba68d100ab fix self.webp 2025-01-27 12:06:36 +03:00
andwati d3b289934a cleanup 2025-01-27 11:54:17 +03:00
andwati b348d95a0e added goatcounter analytics 2025-01-27 11:45:55 +03:00
andwati 8c952e8282 added search console tag 2025-01-27 11:27:14 +03:00
andwati 7a44f86693 added search console tag 2025-01-27 11:22:51 +03:00
andwati 65188c2b7b commencement date 2025-01-17 00:05:39 +03:00
andwati 616f503bae created archive page 2025-01-17 00:02:28 +03:00
andwati 1a45797ef6 added word count and read time 2025-01-14 23:34:02 +03:00
andwati 79f67874c2 added comments by utterances 2025-01-14 23:29:11 +03:00
andwatiandGitHub 34e5c86c6f Update _index.md 2025-01-04 21:13:05 +03:00
andwati 5cbf67a25f Create main.yml 2024-12-20 17:39:47 +03:00
andwati 2a6c6eb698 added posts 2024-12-20 17:37:29 +03:00
andwati 2fae21648f yolo 2024-12-20 17:22:18 +03:00
andwati 64f49ea003 yolo 2024-12-20 17:20:01 +03:00
andwati fe92fd832f yolo 2024-12-20 17:15:26 +03:00
andwati 57011aa837 yolo 2024-12-20 17:08:44 +03:00
andwati 5015b2d568 yolo 2024-12-20 17:05:53 +03:00
andwati ff30caa19c yolo 2024-12-20 17:01:50 +03:00
andwati 3b7064a978 yolo 2024-12-20 16:43:34 +03:00
andwati 407b819aca try jekyll 2024-12-20 16:35:04 +03:00
andwati 7286dda1ec init 1 2024-12-20 16:23:37 +03:00
andwati 7704f0532b Merge branch 'main' of github.com:andwati/andwati.github.io 2024-12-18 23:03:50 +03:00
andwati ed92acfae3 typos 2024-12-18 23:02:45 +03:00
andwatiandGitHub 44d6639b3d Update _config.yml 2024-12-18 22:59:48 +03:00
andwatiandGitHub cf342ca958 Update _config.yml 2024-12-18 22:57:12 +03:00
andwatiandGitHub 92abceeef2 Create _config.yml 2024-12-18 22:55:32 +03:00
andwati f1e346e053 yolo 2024-12-18 22:42:51 +03:00
andwati 952aeda6e9 yolo 2024-12-18 22:40:16 +03:00
andwati 4f3fd302de once upon a time 2024-12-18 22:34:50 +03:00
andwatiandGitHub b850418669 Merge pull request #17 from andwati/dev
completed
2024-12-18 22:24:17 +03:00
andwatiandGitHub 3c9c86aea8 Merge pull request #16 from andwati/dev
moved
2024-12-18 22:22:08 +03:00
andwati ba95acb632 completed 2024-12-18 22:20:44 +03:00
andwati 990ef1c022 deleted files 2024-12-18 22:11:53 +03:00
andwatiandGitHub e498bc50d4 Update README.md 2024-11-29 03:40:42 +03:00