katana-markdown-engine

Renderer-neutral Markdown document model for the KatanA ecosystem


Keywords
document-model, katana, markdown, metadata
License
MIT

Documentation

katana-markdown-engine

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 check

just 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