Folia 0.2.0¶
The second pre-1.0 release of Folia, the Rust static-site generator behind ggirelli.info. It adds a local preview server, preview builds of drafts and scheduled posts, reproducible builds as of a moment, and the first release binary.
Read this first. Like 0.1.0, this is a release of the software. It does not mean the Jekyll site has been replaced, or is ready to be: Folia's output equals Jekyll's for most outputs and differs, on purpose or known, for the rest (known limitations). Folia is fully vibe coded: tested, not audited, and provided without warranty. It is built for one website and is not a general-purpose static-site generator.
What is new¶
-
folia servebuilds the site, serves it on a local address and builds it again when a file changes, reloading the open pages. Each rebuild is stamped with the local time of day ([14:03:22] Changed: …). See Previewing while you write and its limitations.A rebuild writes only the files whose bytes changed, and removes those the build no longer makes, instead of replacing the whole destination. On a slow disk this is the difference between minutes and seconds: a rebuild into a slow external disk drops from minutes to seconds. Each file is still replaced whole, never served half-written. - Preview builds:
folia buildandfolia servetake--future(documents dated after the build) and--unpublished(documents whose front matter sayspublished: false). A preview build is not for publishing, andfolia buildrefuses to replace a normal build with one, or the reverse. See Previewing drafts and scheduled posts. -folia build --at <TIME>builds as of an RFC 3339 timestamp instead of now, so the same sources give the same site on any day. See Building as of a moment. - Redirect stubs in the site's colours: a[redirects]table withbackgroundandcolor-schemepaints the stubs Folia writes forredirect_fromfrom their first frame, so an old URL no longer flashes a white page on a dark site. Without it, a stub is as before. See[redirects]. -page.lang: the front matterlangof a post, garden note, micro entry or page reaches templates as written ([italian]oritalian), and is absent without one. -noindex: a page's front matter may saynoindex: true, which its template sees aspage.noindex(falseby default), so a site can keep one page, such as its 404, out of search results by writing a robots tag. Before, the key was refused and the page skipped. - A release binary: a release workflow buildsfoliafor Linux x86_64 from the tag, with a SHA-256 checksum and a build-provenance attestation. See Install and Releasing. - Documentation: a user guide (getting started, content, templates, building and deploying, feeds, sitemap and search), a guide to migrating from Jekyll, and the parity tools reduced to a reference for that exercise. The design plans were removed from the docs; they remain in the git history. - Checks: the Jekyll parity checks moved out ofjust checkintojust check-parity, so the default check needs no Ruby.
Upgrading from 0.1.0¶
Nothing in a 0.1.0 site's sources or configuration needs to change. A dark site may add
[redirects] to colour its redirect stubs. If your feeds name Folia's version as their
generator, update it to 0.2.0. A destination written by a preview build (--future or
--unpublished) is refused by a normal folia build, and the reverse: build previews into a
directory of their own.
Install¶
Download folia-v0.2.0-x86_64-unknown-linux-gnu.tar.gz and its .sha256 file from this release,
or build from source (cargo build --release -p folia). See
Getting started.
Known limitations¶
Unchanged from 0.1.0, plus those of folia serve: every change rebuilds the whole site, a git
commit alone triggers nothing, and the served site's URLs are local. See
Known limitations.