aboutsummaryrefslogtreecommitdiff
path: root/build.py
Commit message (Collapse)AuthorAgeFilesLines
* Finish the move off weblorgChristian Cleberg14 hours1-330/+55
| | | | | | | | | | | | | | | | | | | | | | | | Remove what the migration left behind, then cut build.py down to the work orgo does not do: 443 lines to 168. - Delete publish.el and theme/templates/, superseded by content/orgo.toml and content/templates/. theme/static/ stays; orgo publishes it as assets. - Drop the tag builder, the org-source copy, and the helpers that only fed them. orgo generates /tags/ and a page per tag from a collection. - Rewrite the README and the migration-era comments that explained the config by pointing at what weblorg used to do. - Serve styles.css as authored. Minifying 1KB of CSS saved 52 bytes over the wire once compressed, which did not pay for a build step and a toolchain dependency. - Stop wiping the output directory. The .orgo-cache.json inside it is what makes a build incremental, and orgo already prunes outputs whose source is gone and re-emits any that are missing. Production keeps .build/ and development gets .build-dev/, because production rewrites image URLs in the output and a shared directory would let one environment reuse pages rendered for the other. An incremental build is byte-identical to a clean one, and the site output is unchanged apart from the /uses/ stack row.
* Keep the build cache out of the deployChristian Cleberg14 hours1-1/+11
| | | | | | | | .orgo-cache.json lives in the output directory because it describes that directory, and the first orgo deploy put it on the server. Excluding it from rsync stops that, and stops --delete removing it locally between builds. The copy the first deploy left behind is gone from the server.
* Build with orgoChristian Cleberg14 hours1-216/+18
| | | | | | | | | | | | | | | | | | | | | | The generator changes; the steps around it that orgo does not do stay. Four of them go, because it does: - the blog index groups itself by year (a template, using page.year) - the tags page is a collection - the recent-posts list on the home page comes from the blog collection - the sitemap is written once site.base_url is set What remains is minifying CSS, copying the org sources for readers who want them, and rewriting img.cleberg.net to /img/ so the onion serves images from its own origin. That last one is why this script still exists. Verified against the live site before deploying: 195 pages, 186 identical in content, and every URL in the live sitemap still produced. The nine that differ are the ones we chose — the reply footer is opt-in now, /tags/ has a page per tag, and footnotes carry aria labels. publish.el and theme/templates/ are left alone. They are weblorg's, and there is no reason to delete a fallback on the same day the replacement goes live.
* fix malformed image URL and harden img rewriteChristian Cleberg9 days1-3/+8
| | | | | | | | Correct a https:/// typo in the tumblr post org source that produced a 404ing cross-origin image URL. Because the extra slash meant the string no longer matched, rewrite_img_urls() skipped it and shipped the broken URL. Make the rewrite pattern tolerate stray slashes so a source typo can't silently pass through un-rewritten again.
* serve blog images from root-relative /img/ pathChristian Cleberg9 days1-0/+21
| | | | | | | | | Rewrite absolute img.cleberg.net URLs to /img/ in production builds so the onion serves images from its own origin instead of fetching them off-onion. Dev builds keep the absolute URLs so local previews still load images. Requires the server to serve /var/www/img/ at /img/ on the cleberg.net vhost (ln -s /var/www/img /var/www/cleberg.net/img).
* serve stylesheet from root-relative pathChristian Cleberg9 days1-4/+0
| | | | | | | Emit /styles.min.css instead of the prod-absolute https://cleberg.net/styles.min.css so the onion renders standalone without fetching its stylesheet off-onion. Drop the now-dead build.py replace that rewrote the same string.
* fix python ruff formattingChristian Cleberg13 days1-12/+10
|
* ruff formattingChristian Cleberg2026-06-011-1/+3
|
* fix: refactor tags page rendering and auto-include new blog tagsChristian Cleberg2026-04-121-136/+133
|
* chore: ruff formatChristian Cleberg2026-03-231-1/+3
|
* attempt to fix buildsChristian Cleberg2026-03-231-18/+11
|
* skip ruff in prod; fix build.yml path sourcingChristian Cleberg2026-03-231-2/+3
|
* publish Domain Dig linkChristian Cleberg2026-03-231-0/+11
|
* update git linksChristian Cleberg2026-03-181-1/+1
|
* realigning commitsChristian Cleberg2026-03-181-1/+1
|
* fix css link on /tags/ pageChristian Cleberg2026-03-141-1/+1
|
* Commit from GitHub Actions (Ruff)github-actions2026-03-131-8/+29
|
* fix python syntax warningsChristian Cleberg2026-03-131-5/+11
|
* update site titleChristian Cleberg2026-03-131-2/+2
|
* fix *.org headers and revert to minimal site themeChristian Cleberg2026-03-131-38/+23
|
* fix nav on tags pageChristian Cleberg2026-03-111-0/+1
|
* add tag supportChristian Cleberg2026-03-111-0/+137
|
* Update build.py post-processing pipelineChristian Cleberg2026-03-111-8/+55
|
* switch to local deployments onlyChristian Cleberg2026-03-041-1/+1
|
* fix: ensure .org filenames match .html filenames (#16)Christian Cleberg2026-02-221-1/+21
|
* add step to copy raw org-mode to output dir (#15)Christian Cleberg2026-02-221-0/+9
| | | | | * fix image URL in latest post * add step to copy raw org-mode to output dir
* fix build.py bug (#9)Christian Cleberg2026-02-211-1/+1
|
* clean up build, deploy, and env options (#2)Christian Cleberg2026-02-121-38/+14
|
* test github actions for docker build and site deploy (#1)Christian Cleberg2026-02-121-61/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test github actions for docker build and site deploy * fix typo in codeQL * test actions on this branch * fix typo in actions path * update pkg tag * update command for sh syntax * attempt to fix build-job path * only run docker-build when relevant files are modified * update pkg tag * debug failing upload * try again to fix artifact build path * try again to fix artifact build path * upgrade codeql to v4 * optimize deployment to reduce building site twice * tweak deployment steps * remove deployment method options * try heredoc for ssh config file * try heredoc for ssh config file * move deployment step out of python entirely for github actions * fix rsync options * last tweak to polish off github workflows
* split build and deploy steps in python scriptChristian Cleberg2026-02-101-1/+6
|
* implement GitLab CIChristian Cleberg2026-02-101-5/+8
|
* move from lower() to casefold() for safer checkingChristian Cleberg2026-02-031-1/+1
|
* update themeChristian Cleberg2025-10-141-3/+2
|
* EXTREME MINIMALISMChristian Cleberg2025-09-201-24/+25
|
* shift from monospace theme to a formalized serif themeChristian Cleberg2025-09-041-3/+5
|
* remove unecessary print statement and fix deprecated UTC function callChristian Cleberg2025-08-221-2/+1
|
* FIX: update build script and generate sitemap.xmlChristian Cleberg2025-07-181-6/+10
|
* Commit from GitHub Actions (Ruff)github-actions2025-07-141-6/+10
|
* add function to generate sitemapChristian Cleberg2025-07-141-0/+46
|
* Commit from GitHub Actions (Ruff)github-actions2025-07-071-1/+1
|
* fix: ignore draft posts when publishingChristian Cleberg2025-07-071-1/+14
|
* feat(lint): added ruff.toml to automate linting and formattingChristian Cleberg2025-06-041-4/+35
|
* fix: move dynamic updates to .build dirChristian Cleberg2025-06-031-2/+7
|
* Commit from GitHub Actions (Ruff)github-actions2025-06-041-21/+23
|
* feat: upgrade build script to dynamically create latest posts sectionChristian Cleberg2025-06-031-5/+168
|
* Commit from GitHub Actions (Ruff)github-actions2025-06-041-6/+11
|
* fix: minor fixes to build scriptChristian Cleberg2025-06-031-6/+6
|
* feat: convert build script to pythonChristian Cleberg2025-06-031-0/+136