Add changelog and release-notes page
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to kage are recorded here. The format follows
|
||||
[Keep a Changelog](https://keepachangelog.com/), and the project aims to follow
|
||||
[Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.1.0] - 2026-06-14
|
||||
|
||||
The first release. kage clones a live website into a self-contained folder you
|
||||
can browse offline, with every script stripped out.
|
||||
|
||||
### Added
|
||||
|
||||
- `kage clone <url>` renders each page in headless Chrome, snapshots the final
|
||||
DOM, removes every `<script>`, `on*` handler, and `javascript:` URL, and
|
||||
downloads the CSS, images, fonts, and media, rewriting them to local paths.
|
||||
- `kage serve [dir]` runs a local static file server over a cloned folder so the
|
||||
mirror's links and assets resolve the way they would on a real host.
|
||||
- Deterministic URL-to-path mapping: pages become `<slug>/index.html`
|
||||
directories, assets live under the reserved `_kage/<host>/` tree, and query
|
||||
strings fold into a short hash suffix so versioned URLs never collide.
|
||||
- Three concurrency tiers run in parallel: page-render workers (`--workers`),
|
||||
asset-download workers (`--asset-workers`), and a Chrome page pool
|
||||
(`--browser-pages`).
|
||||
- A polite crawl by default: honours `robots.txt`, seeds from `sitemap.xml`,
|
||||
and scopes to the seed host. `--scope-prefix`, `--max-depth`, `--max-pages`,
|
||||
`--subdomains`, and `--exclude` shape the frontier.
|
||||
- Idempotent, resumable crawling. Each page is keyed by the file it writes, so
|
||||
the same URL reached over http and https, with or without a trailing slash,
|
||||
or as `/index.html` versus `/`, is fetched exactly once. A re-run resumes from
|
||||
`_kage/state.json`; `--refresh` re-renders a mirror in place to pull in
|
||||
changed content; `--force` wipes and starts clean; `--no-resume` runs
|
||||
stateless.
|
||||
- Defaults to a per-user data directory (`$HOME/data/kage`), overridable with
|
||||
`-o/--out`.
|
||||
- Cross-platform distribution: prebuilt archives, `.deb`/`.rpm`/`.apk` packages,
|
||||
a multi-arch container image on GHCR (Chromium bundled), checksums, SBOMs, and
|
||||
a cosign signature, all cut from one version tag by GoReleaser.
|
||||
|
||||
[Unreleased]: https://github.com/tamnd/kage/compare/v0.1.0...HEAD
|
||||
[0.1.0]: https://github.com/tamnd/kage/releases/tag/v0.1.0
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "Release notes"
|
||||
description: "What changed in each kage release."
|
||||
weight: 40
|
||||
---
|
||||
|
||||
The authoritative, commit-level history lives in
|
||||
[`CHANGELOG.md`](https://github.com/tamnd/kage/blob/main/CHANGELOG.md) and on the
|
||||
[releases page](https://github.com/tamnd/kage/releases). This page summarises
|
||||
each version.
|
||||
|
||||
## v0.1.0
|
||||
|
||||
The first release. kage clones a live website into a self-contained folder you
|
||||
can browse offline, with every script stripped out.
|
||||
|
||||
- **`kage clone <url>`** renders each page in headless Chrome, strips all
|
||||
JavaScript, and localises CSS, images, and fonts to relative paths.
|
||||
- **`kage serve [dir]`** previews a cloned folder over a local file server.
|
||||
- **Idempotent and resumable.** Each page is keyed by the file it writes, so a
|
||||
page reached over http and https, or as `/index.html` versus `/`, is fetched
|
||||
once. Re-running resumes; `--refresh` re-renders in place; `--force` starts
|
||||
clean.
|
||||
- **Polite by default.** Honours `robots.txt`, seeds from `sitemap.xml`, scopes
|
||||
to the seed host, and runs three parallel worker tiers.
|
||||
- **Packaged everywhere.** Archives, `.deb`/`.rpm`/`.apk`, a multi-arch GHCR
|
||||
image with Chromium bundled, checksums, SBOMs, and a cosign signature.
|
||||
Reference in New Issue
Block a user