katana-markdown-engine(KME)は、KatanA ecosystem のMarkdown文書モデル、外部メタデータ(metadata)、位置解決を担うlibraryです。
KMEはHTML変換器ではありません。KatanAのviewer、編集機能(editor)、出力(export)が同じ文書解釈を共有するための中核です。
分離優先順位ではP1です。P0 katana-ast-lint の共通品質ゲートを前提にして進めます。
- KME v0はCommonMark完全準拠より、現在KatanAで実現できている挙動の踏襲を優先します。
- 主fixtureは
/Users/hiroyuki_furuno/works/private/katana/assets/fixtures/sample.mdです。 - README badge、alert、description listも必須fixtureにします。
- metadataはMarkdown本文へ埋め込まず、外部ファイルとして扱います。
- KMEはKCF、KDV、KatanA、editorへ依存しません。
- KME固有の一時lintを作らず、共通AST lintを品質ゲートにします。
just checkjust check はformat、Clippy、KAL AST lint、test、OpenSpec検証を実行します。
use katana_markdown_engine::{MarkdownInput, parse_markdown};
let document = parse_markdown(MarkdownInput::from_content(
"README.md",
"# Title\n\nBody\n",
))?;
assert_eq!(document.nodes.len(), 2);
# Ok::<(), katana_markdown_engine::KmeError>(())- renderer-neutralな
KmeDocument/KmeNode/KmeNodeKind - source range、line-column、raw snippet、text fingerprint
- heading、paragraph、HTML block、badge row、list、code block、diagram block、table、blockquote、alert、description list
- 外部metadata targetと再解決API
-
katana-ast-lintを使ったrepository AST lint
