diff options
Diffstat (limited to 'site/content/blog/typst_migration.typ')
| -rw-r--r-- | site/content/blog/typst_migration.typ | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/site/content/blog/typst_migration.typ b/site/content/blog/typst_migration.typ index 50d28cd..28ee708 100644 --- a/site/content/blog/typst_migration.typ +++ b/site/content/blog/typst_migration.typ @@ -1,12 +1,50 @@ -#import "/common.typ": post +// SPDX-License-Identifier: CC-BY-SA-4.0 +// Copyright © Paweł Redman + +#import "/common.typ": post, link-self, img, static #show: post.with( title: "Migration to Typst", - date: datetime(year: 2026, month: 6, day: 14), + date: datetime(year: 2026, month: 6, day: 18), +) + +After #link-self("gsoc/index")[Google Summer of Code 2020], I began working for Nokia. As a full-time software engineer, I lost interest in programming as a hobby. Because I couldn't really blog about the cool stuff I was doing at work, this site was rotting for almost 6 years. + +#figure( + img(static("blog/site_before_typst.png")), + caption: [Rotting redman.xyz from before the migration], ) +A DokuWiki update broke my #link("https://redman.xyz/git/opticks/")[custom theme], and at some point LaTeX stopped working too. I just couldn't be bothered to fix any of it. + +Two things changed my mind: #link("https://typst.app")[Typst] and AI. + += Typst + +For the longest time, I was looking for a good and universal markup language. I tried: + +- Markdown, which is too limited. +- reStructuredText, which is slightly less limited Markdown. +- Wikitext, which is much less limited, but only because it counts raw HTML as "markup". +- HTML, which is way too verbose for writing prose or math. +- BBCode, which makes me feel old just for mentioning it. +- #link-self("blog/latex_vs_typst")[LaTeX], the tenth circle of Hell. + +Also, all but LaTeX treat math as a second-class citizen. They require plugins, extra pain, and maintenance, and still use the TeX language anyway. + +#link("https://typst.app")[Typst] is so well-designed that every other markup immediately felt obsolete. It's as simple as Markdown for prose, yet seamlessly integrates advanced typesetting, equations, diagrams, and a proper scripting language. On top of that, compile times are measured in milliseconds. + +As of this writing, HTML output is still experimental. Even so, it's already the most pleasant way to write a personal blog I've ever experienced, and by a long shot. + += AI + +Typst alone wouldn't be enough. I still had to convert tens of articles full of equations from Wikitext to Typst. This was an excellent use case for AI, though. + +LLMs are scarily good at coding if they're tightly constrained, especially when the work is very tedious. I started by writing common Typst code by hand so that every article would only have a minimal preamble that set everything up. Then I wrote a stub article. At that point, GPT 5.5 had enough context to mass-convert all my pages, making only a few minor mistakes in math. The whole process cost me \$6 and one afternoon. + +One important instruction I had in my `AGENTS.md` was: "keep text verbatim." LLMs like to fix typos and rephrase bad English, and I wanted to keep my articles 100% mine. + +This is a pattern I've been using very successfully for a while now. Write the hardest, least obvious 10% of code yourself and let the LLM do the remaining 90%. It's not blind vibe-coding if you know exactly where you're going. -Loose thoughts: += The new site -- Fully automatic DokuWiki -> Typst conversion using GPT 5.5 -- Finds typos
\ No newline at end of file |
