Swift Markdown Kit · DOCS

主题与语法

主题与语法

主题

命名预设加逐 token 覆盖。theme 控制深浅色模式,markdownTheme 控制预设与 token,两者都在运行时生效。

let theme = MarkdownTheme.github
    .linkColor(light: .systemIndigo, dark: .systemTeal)
    .codeCornerRadius(8)
    .headingSize(level: 1, em: 2.2)

let options = MarkdownRenderOptions(
    theme: .auto,            // light / dark / auto
    markdownTheme: theme     // 预设 + token 覆盖
)

MarkdownRenderView(markdown: "# Hello", options: options)

基线外观(默认 CSS)需要重新构建渲染器并重新打包 framework;运行时的预设 选择与逐 token 覆盖不需要。

自定义行内语法

声明式注册行内扩展,不需要任何代码跨越 bridge。每个匹配渲染为完全转义的 .md-ext-{name} span,点击以事件回传。

let options = MarkdownRenderOptions(
    extensions: [
        .mention(),    // @handle
        .ticker(),     // $AAPL(仅大写,"$5" 不受影响)
        .wikilink(),   // [[Page]]
        .prefix(name: "issue", trigger: "#", body: .upperDigit, action: "issue"),
        .delimiter(name: "spoiler", open: "||", close: "||", action: "spoiler")
    ]
)

两种模式:prefix(触发字符加受限的正文字符类)与 delimiter(开闭定界符)。 捕获值由核心统一 HTML 转义与标识符清洗。样式走同一套主题 token —— 每个扩展暴露 --md-ext-{name}-color-bg-radius-padding-weight-decoration