コンテンツにスキップ

Rust Core API の状況

前提: Document IR。このページは mdi-core/src/lib.rs にあるものだけを記載します。自動 cargo doc site は Planned です。食い違いがあれば source を正としてください。

  • MDI_SPEC_VERSION: &str = "2.0"
  • MDI_IR_VERSION: &str = "1.0"
  • MDI_STYLESHEET: &strrender_html に埋め込まれる CSS。 stylesheet parity を参照。
  • parse_document(source: &str) -> Document — 完全な一回解析。
  • parse_output(source: &str) -> ParseOutput — versioned envelope。
  • parse_json(source: &str) -> String — FFI が渡る JSON。
  • parse_inlines(source: &str) -> Vec<Inline> — MDI inline 専用。
  • parse_mdi_syntax(source: &str) -> MdiSyntaxDocumentdeprecated 互換 API。

serialize_mdi(source: &str) -> String / serialize_mdi_document(document: &Document) -> String は canonical MDI/Markdown に serialize します。例えば 《《text》》 を `text` に正規化します。

  • render_html / render_html_document → standalone HTML
  • render_text / render_text_document → plain txt
  • render_text_format(source, format: TextFormat, indent_prefix)txttxt-rubynaroukakuyomuaozora
  • render_epub / render_epub_documentResult<Vec<u8>, String> EPUB 3
  • render_docx / render_docx_documentResult<Vec<u8>, String> DOCX
  • render_pdf(source, options: &PdfOptions) → local Chromium による PDF
  • find_chromium() -> Option<PathBuf> → Chromium の best-effort search

current-generation API は ParseOutputParserCapabilitiesDiagnosticSourceSpanDocumentFrontmatterPdfOptions です。旧 shape は MdiSyntaxDocumentMdiBlockPagebreakVariantInlineRubyReading です。

  • parse_output と別個の validation API はありません。
  • serialize_mdi と別個の normalize API はありません。
  • export-profile-aware EPUB/DOCX(cover、chapter split、page geometry、font)はありません。
  • DOCX の ruby run、boten style、page geometry はありません。現在は typography を plain text に flatten します。