# KanjiVG: source and changes

Generated by `npm run lexicon -- build`. Do not edit by hand: the unit
tests check every file here against `index.json` and against the address
the folder is served at (see below).

## Source

- Dataset: KanjiVG, https://kanjivg.tagaini.net/
- Copyright: Ulrich Apel
- License: Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0), https://creativecommons.org/licenses/by-sa/3.0/ (terms: https://kanjivg.tagaini.net/)
- File: https://github.com/KanjiVG/kanjivg/releases/download/r20260714/kanjivg-20260714.xml.gz
- Release: 2026-07-14
- SHA-256 of the file as downloaded: `d4a8e5e11533fe6a5d81a158b2c153964322641d2982c90a919461f3c06dca6b` (3608635 bytes)
- Adopted into Kiku: 2026-10-08

## What Kiku changed

- Kept per character: the SVG path data of each stroke, in stroke order, with runs of whitespace collapsed to one space.
- Dropped: the component tree, stroke types, radical annotations and variant drawings.
- Split into `strokes/` by code point (the code point divided by 256, in hex).

## What is here

| | |
|---|---|
| entries | 6703 |
| strokes | 79921 |

The record format is documented in `docs/LEXICON.md` and typed in
`src/lexicon/types.ts` in the Kiku repository.

## Where it is served

Kiku serves this folder at `/data/kanjivg/<version>/`, where `<version>` is a
hash of every file in it, this one included, so a changed file always has a
new address. `data/lexicon.json` in the Kiku repository records the version.

## Rebuilding

    npm run lexicon -- fetch    # download, or reuse the cached copy, and check its SHA-256
    npm run lexicon -- build    # rewrite data/derived/ from it

A rebuild from the same file is byte-identical. To move to a newer release:

    npm run lexicon -- update kanjivg
