sqzass.git

sqzass

~ A static site generator written in Rust
git clone https://github.com/debuman/sqzass.git

docs/content/start/_index.md (2156B)

      1 +++
      2 title = "Getting started"
      3 description = "From installing sqzass to building your first site"
      4 weight = 10
      5 sort_by = "weight"
      6 +++
      7 
      8 Everything you need to get a site on screen.
      9 
     10 > [!NOTE]
     11 > **Every runtime message is in Korean** — `--help`, errors, doctor findings,
     12 > the dev server's log. There is no locale switch, and the documentation quotes
     13 > the real strings rather than translating them, so what you read here is what
     14 > the binary prints. The error identifiers (`SQZASS_E_CONTENT`) and the doctor
     15 > check names (`untranslated`) are ASCII and stable, which is what a script
     16 > should match on anyway.
     17 
     18 ## Where the design differs
     19 
     20 **Markdown is transformed on the tree.** Link rewriting, heading anchors and the
     21 table of contents are AST operations via [comrak]. The common shortcut — running
     22 regexes over the finished HTML — silently skips any element whose attributes are
     23 single-quoted or unquoted, and you find out in production.
     24 
     25 **Templates cannot read a half-written file.** `templates/` is snapshotted once
     26 per build and [minijinja]'s loader resolves `include` and `extends` from that
     27 snapshot, so a rebuild triggered while you are saving sees one consistent state.
     28 
     29 **Broken references stop the build.** An unresolved `@/` link, a template that
     30 does not exist, two pages claiming the same URL, an unknown asset name — each is
     31 an error, not a warning you scroll past.
     32 
     33 **The same input produces the same bytes.** Two builds are byte-identical, and
     34 CI checks it on every push.
     35 
     36 **Korean was not bolted on afterwards.** A page's translations are linked
     37 automatically, and a language's navigation contains only pages that exist in it,
     38 so an untranslated page cannot leave a dead link behind. [Search](@/features/search.md)
     39 matches substrings rather than words, which is the only way `최적화` inside
     40 `검색엔진최적화` is ever found.
     41 
     42 ## Status
     43 
     44 Early, and honest about it: syntax highlighting, navigation, the table of
     45 contents, the asset pipeline, the dev server, search and Atom feeds all work.
     46 A theme system does not exist yet.
     47 
     48 [comrak]: https://github.com/kivikakk/comrak
     49 [minijinja]: https://github.com/mitsuhiko/minijinja