spz-markdown Markdown 渲染

将 Markdown 格式文本实时渲染为带样式的 HTML 内容

布局

  • 需要将 Markdown 格式的文本内容渲染为 HTML 展示给用户。
  • 文章详情、商品描述等内容由后端以 Markdown 字符串下发,需要在前端解析并渲染。
  • 需要混合使用 Markdown 和原生 HTML 片段,对部分内容跳过 Markdown 解析。

通过 text 属性传入 Markdown 字符串,组件会自动解析并渲染为 HTML。支持标题、粗体、斜体、列表、行内代码、代码块、链接和水平线等常用 Markdown 语法。

<spz-markdown
  id="spz-markdown-base"
  layout="container"
  text=""
></spz-markdown>

<script>
  (function () {
    var el = document.getElementById('spz-markdown-base');
    if (el) {
      el.setAttribute('text', [
        '## spz-markdown 示例',
        '',
        '支持常见 Markdown 语法,包括**标题**、列表和行内代码。',
        '',
        '### 无序列表',
        '',
        '- 条目一',
        '- 条目二',
        '- 条目三',
        '',
        '### 有序列表',
        '',
        '1. 第一步',
        '2. 第二步',
        '3. 第三步',
        '',
        '使用 `行内代码` 可以高亮关键词。'
      ].join('\n'));
    }
  })();
</script>

对组件内部的子元素添加 markdown-ignore 属性,可以使该子元素保留原始 HTML 内容,不被 Markdown 解析器处理。

这段内容带有 markdown-ignore 属性,HTML 标签会原样保留,不会被 Markdown 解析器处理。

<spz-markdown layout="container" text="# 混合内容示例

这段文字会被 Markdown **解析**渲染。">
  <div markdown-ignore class="raw-html-block">
    <p>这段内容带有 <code>markdown-ignore</code> 属性,<strong>HTML 标签</strong>会原样保留,不会被 Markdown 解析器处理。</p>
  </div>
</spz-markdown>
属性名 说明 类型 默认值 是否必需
layout 布局方式,必须设置为 container string container
text 要渲染的 Markdown 字符串,支持动态绑定 string -
markdown-ignore 设置在子元素上,标识该子元素不进行 Markdown 转换,原样保留其 HTML 内容 - -
本页目录