Skip to content

kite 0.1.4

Choose a tag to compare

@github-actions github-actions released this 01 Oct 05:58
· 63 commits to main since this release

A release that settles themes: the theme contract is frozen as kite/v1, a site writes its own menus, and themes can be installed, switched and started from the command line. The studio shows a post's files, compares a conflict three ways, knows when a server is read only, and opens the preview on a phone.

Highlights

  • The theme contract is frozen. What a template can call under apiVersion: kite/v1, every method and function with its signature, is listed in theme-system.md sections 6 and 7 and from now on is only added to, never renamed, removed or changed. A theme that uses something added later names the Kite it needs with requires.
  • Menus. A site writes its menus under menus in kite.yaml, apart from any theme, so they survive a change of theme. A theme names the menus it draws in theme.yaml, and the studio's new Settings → Menus fills them in, with pages and posts picked by title. A template draws one with {{ range .Site.Menus.main }}, each link already under the site's path. The built-in theme draws main in its header.
  • Themes from the command line. kite theme list, add (a release's zip or a folder), use, remove and new, with the checks the studio makes. kite theme new writes a small theme that passes kite theme verify as it stands.
  • A post's files. The Files chip in the editor lists what a post's bundle publishes and what uses each file, and copies a link, replaces a file in place, which keeps every link to it, deletes one with a warning while it is used, or adds more.
  • Conflicts compared three ways. When a save loses a race, the dialog lays out the version you loaded, yours and the stored one, part by part and the text by paragraph, and merges the two when they changed different parts. The merge goes into the editor unsaved, for you to look over.
  • Read-only servers. A server started without --write says so beside the site's name, and the studio leaves out what it would refuse; reading, previewing, searching and exporting work as before.
  • Quieter saves. The visual editor keeps the blocks an edit left alone as the file had them, so a one-word change makes a one-line diff.
  • The preview on a phone. The preview switch shows at every width, and the editor keeps its cursor and text while the preview is open.

Fixes

  • A save refused because the file had changed on disk could show your own version as the stored one when the server had not read the change yet, and merging or overwriting then replaced the change unseen. The conflict now shows the file as it stands. With --watch=false, settings refused over a changed kite.yaml reload instead of being refused until a restart.
  • A build replaces its output only when Kite wrote it, or when it holds this site's sitemap or feed, so a build.output that names a folder of other files no longer empties it.
  • Wherever a session ends, in publishing, the preview, an upload or a theme install, the studio asks you to sign in again, and what you typed comes back afterwards.
  • A post that gives no date shows none in the built-in theme, and its archive files it under Undated rather than the year 1.
  • A draft with no publish date is previewed dated as it would be published.
  • On a phone, the fields of a menu link or a docs tree group were squeezed to a few letters.

Install

Download the archive for your system below, unpack it, put kite somewhere on your PATH, and run kite run in an empty folder. On macOS, xattr -d com.apple.quarantine kite lets a downloaded program run the first time.

To run a site on a server with Docker:

docker run -d --name kite --restart unless-stopped -p 127.0.0.1:1717:1717 -v kite-data:/data ghcr.io/kite-plus/kite:0.1.4

Every archive can be checked against checksums.txt, and a given commit builds to the same binary on any machine.

Upgrading from 0.1.3

Replace the binary, or pull the new image. A few things behave differently:

  • A build refuses to replace a folder of files that Kite did not write: one with no record in .kite/outputs and neither this site's sitemap.xml nor its rss.xml. Point build.output at a folder of its own, or empty it once. The staging folders beside the output are now <output>.kite-stage and <output>.kite-previous.
  • The built-in theme, now 0.7.0, draws the site's main menu in its header once the site writes one, and shows its own links until then.
  • partialCached takes Hugo's variant keys after the data and draws the partial as partial does.
  • A theme that draws menus needs this version: requires: ">=0.1.4".

Notes

Kite is in early development; the theme contract is now the part that stays put. The reference covers the studio, themes, menus, plugins, configuration and deployment. The studio's main flows now run in a browser on every change (make e2e), which is how the conflict fixed above was found. An app center to install and update themes and plugins online is being planned in #16.

Every change in this release

Changelog

Features

Fixes

Documentation

Other

Install

Download the archive for your platform, or pin the version in a project
so that local builds and CI agree:

./kitew build

Verify a download against checksums.txt before running it.