Repository navigation
kite 0.1.2
A release for moving in: a Hugo site's content opens with its posts, summaries, anchors and old addresses intact, a Hexo site comes over with one command, and a draft saves itself as you write.
Highlights
- Bring a Hugo site as it is. Posts written as single files,
content/posts/hello.md, are read as posts, where they used to be left out without a word. Asummaryin front matter is the description, and a line holding<!--more-->ends the excerpt. Files kept in a bundle's folders, such asimages/, are published with it. Headings are anchored by their text, as Hugo and GitHub anchor them, so## 近况is at#近况. - Old addresses keep working. Each path listed under
aliasesgets a page that sends a reader on to where the item is now and tells search engines which address to keep. It is a page rather than a redirect of the host's, so it works on GitHub Pages too.build.feedAliaseswrites the feed to the files readers subscribed at, such as Hugo'sindex.xml. - Import a Hexo site.
kite import hexo ../old-blog blogreads a Hexo site and leaves it as it is. Posts and drafts become bundles holding their asset folders' files, pages become pages, the rest ofsource/becomes the site's static files, and every address Hexo published at becomes an alias. Asset tags become markdown, and the items still holding other Hexo tags are listed. - Drafts save themselves. Every edit is kept in the browser until it is saved, and comes back after a crash or a closed tab. A draft is written to its file a moment after you stop typing. Several pictures picked at once all arrive.
- Covers on cards. A page in a list carries its front matter, word count and pictures, so a theme's cards can show covers and reading times.
.Imageslists the pictures of a post's text, for a cover when none is named, and No cover in the editor writescover: false. - Pages under a path. A slug may hold a path: a page whose slug is
projects/tidelineis published at/projects/tideline/. - For themes. Dates in front matter reach templates as times and numbers as integers, on a page and in a list alike, and
time.AsTimereads a date written as text.math.*keeps integers whole, so a count compares with the8a template writes, andmath.Intandmath.Floatconvert.coll.*andstr.Jointake any list,.Pagesincluded.
Fixes
- Saving an item in the studio no longer rewrites the dates in its front matter as quoted strings.
- A picture dropped on a page, or on a post kept as a single file, goes among the site's own files instead of being refused.
- Typographer quotes and dashes no longer reach excerpts and word counts as entities.
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.2Every archive can be checked against checksums.txt, and a given commit builds to the same binary on any machine.
Upgrading from 0.1.1
Replace the binary, or pull the new image. A site's index is rebuilt the first time it opens. A few things behave differently:
- Heading anchors follow the heading's text. A heading in Chinese or another non-Latin script was
#heading,#heading-1and so on, and is now its own text; a few ASCII headings holding an underscore or a link change as well. Links into sections from elsewhere need the new anchors. math.Divof two integers drops the remainder, as in Hugo and Go; write one of them as a float,7.0, to keep the fraction.coll.*returns a list of the element type it was given, andcoll.Lenrefuses a value it cannot count rather than counting it as 0.- An item at another page's address, such as a page called
posts, and an alias at another page's address stop the build and say which, where one used to be published over the other.
Notes
Kite is in early development, and things may still change from one version to the next. The reference covers the studio, themes, plugins, configuration and deployment, and now moving from Hugo and from Hexo.
Every change in this release
Changelog
Features
- edf24f2: feat(build): write the feed where it used to be (@amigoer)
- 4413193: feat(cli): import a Hexo site (@amigoer)
- c32b762: feat(markdown): end the excerpt at a more divider (@amigoer)
- c197f15: feat(render): list the pictures of a page's body (@amigoer)
- 5af77ca: feat(store): read posts written as single files (@amigoer)
- b1d08ab: feat(web): let a post go without a cover (@amigoer)
- 72f8ab0: feat(web): save drafts as they are written (@amigoer)
Fixes
- c08d59c: fix(api): keep front matter dates as dates (@amigoer)
- e596d61: fix(build): give an old .html address its page (@amigoer)
- e734bed: fix(build): give listed pages params and length (@amigoer)
- 9398519: fix(build): publish a redirect page at every alias (@amigoer)
- d7ba7c3: fix(build): publish files in a bundle's folders (@amigoer)
- ef995cc: fix(index): keep the types of front matter values (@amigoer)
- 2fbef34: fix(markdown): anchor headings by their text (@amigoer)
- 69b953e: fix(markdown): read typographer entities as text (@amigoer)
- 189bae2: fix(store): read Hugo's summary as the description (@amigoer)
- df43b5b: fix(store): serialize writes to a project (@amigoer)
- a007d99: fix(theme): let math and coll take typed values (@amigoer)
- 1327c77: fix(url): read a slash in a slug as a path (@amigoer)
- 21cf40e: fix(web): keep every image picked at once (@amigoer)
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.