Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 18:06
· 13 commits to main since this release

The first release. Everything below is new, so this section describes what
Blogin does rather than what changed.

Commands

  • blogin build renders a content tree to static HTML. A rebuild does only the
    work the change requires and lands byte-identical to a build from scratch.
  • blogin serve previews the site on loopback and rebuilds as you edit, with
    the open page reloading itself over a WebSocket. It builds into
    .blogin-preview/, so serving never writes the directory you deploy.
  • blogin init scaffolds a site that builds with nothing to fill in first,
    against none, bootstrap5, pico, or bulma.
  • blogin new writes a post with its front matter filled in.
  • blogin clean removes both trees a build can write and refuses any target
    outside the site. Naming one with --out makes it the only target.
  • Every option has a long and a one-letter spelling, and short options combine
    as -fv. blogin --version reports the version it was built from.

Content

  • CommonMark, with GitHub Flavored Markdown for tables, task lists,
    strikethrough, and fenced code.
  • Footnotes, reference links, definition lists, and attribute lists on links and
    images.
  • Math and Mermaid diagrams, parsed into markup a client-side renderer draws.
  • Shortcodes, with youtube and figure built in and a shortcodes/ directory
    for your own.
  • Front matter for the title, date, slug, summary, ordering, drafts, table of
    contents, and redirect aliases.
  • Summaries from front matter, a <!--more--> marker, or the opening block.

Templates

  • A HAML engine with an expression language of its own: no assignment, no
    user-defined functions, and no host language to call into. Anything outside it
    is an error naming the file, line, column, and construct.
  • Layouts per section, by directory or by config.
  • Themes, a directory of layouts and assets your own files override file by
    file.
  • cache-fragment, which reuses a rendered fragment wherever the values it read
    are the same, so reuse cannot serve one page's markup to another.
  • Data files, JSON and a YAML subset, site-wide and scoped to a directory.

Output

  • Atom, RSS, and JSON feeds, site-wide and per section, plus a sitemap,
    robots.txt, and a 404 page.
  • Client-side search against a prebuilt index, with the script and its styling
    generated by the build.
  • Taxonomies, with a page per term and an index, paginated like any listing.
  • Optional extensionless URLs.
  • More than one language, each built into its own subtree with translations
    matched by filename.

Assets

  • CSS and JavaScript minified, and assets named for a hash of their content so a
    far-future cache never serves a stale file.
  • Responsive image variants with a srcset, when an image resizer is present.
  • CSS framework profiles for Bootstrap 5, Pico, and Bulma, which class the same
    semantic HTML without a layout knowing which framework is selected.

Platforms

  • macOS through Homebrew, and Linux x86_64 and arm64 as statically linked
    binaries that run on any distribution.
  • Windows through WSL2.
  • Builds from source with clang on macOS and Linux, and with GCC 14 or newer on
    Linux.
  • No runtime dependencies. Markdown, HAML, JSON, YAML, the asset pipeline, and
    the preview server are all in the binary.