ktg-plugin-marketplace/plugins/voyage/tests/parsers
Kjell Tore Guttormsen fb733ae149 feat(voyage): add anchor-parser.mjs with placement validation — v4.2 Step 3
lib/parsers/anchor-parser.mjs (~190 LoC):
- parseAnchors(md) -> Anchor[] (id, target, line, snippet?, intent?)
- addAnchors(md, anchors) -> md_with_anchors
- stripAnchors(md_with_anchors) -> md (byte-identical)
- validateAnchorPlacement(md, anchors) -> errors for list-item / fenced-block / indent

Format: <!-- voyage:anchor id="ANN-NNNN" target="<slug>" line="<N>" -->
Block-level only, on its own line (col 0), blank-line separation.

Test fixture annotation-example.md with single ANN-0001 anchor — referenced by SC12 quickstart.
14 tests pass (parseAnchors, addAnchors, stripAnchors, validateAnchorPlacement).
2026-05-09 12:52:46 +02:00
..
anchor-parser.test.mjs feat(voyage): add anchor-parser.mjs with placement validation — v4.2 Step 3 2026-05-09 12:52:46 +02:00
arg-parser-profile.test.mjs feat(voyage): add --profile valued flag to arg-parser FLAG_SCHEMA — v4.1 SC #4 2026-05-09 09:22:01 +02:00