@duskmoon-dev/el-markdown

中文文档
1.10.3发布于 2026/11/11TypeScriptESM + CJS构建来源已验证近 30 天下载 2914

标记下渲染器组件,使用语法加亮、人鱼图支持和LLM输出的流出模式.

中文使用文档
文档目录25 节
  1. 安装
  2. 使用量
  3. 自动注册( 建议)
  4. 手工登记
  5. 从 URL 中
  6. 有美人鱼图
  7. 特征
  8. 主题
  9. 属性
  10. 属性
  11. 方法
  12. CSS 组件
  13. 活动
  14. CSS 自定义属性
  15. 支持的 Markdown 特性
  16. 实例
  17. 任务列表
  18. 图表
  19. 正在装入远程内容
  20. 流线模式
  21. 基本流线
  22. 使用内容属性
  23. 聆听流出事件
  24. 语法自动恢复
  25. 许可证

@duskmoon-dev/el-markdown (日语)

标记下渲染器组件,使用语法加亮、人鱼图支持和LLM输出的流出模式.

安装

bun add @duskmoon-dev/el-markdown

对于人鱼图支持( 可选) :

bun add mermaid

使用量

使用组件的最简单方式 - 只需导入即可:

<!-- Via CDN -->
<script type="module" src="https://esm.sh/@duskmoon-dev/el-markdown/register"></script>

<!-- Now use the element -->
<el-dm-markdown> # Hello World This is **markdown** content. </el-dm-markdown>

或与一捆子:

import '@duskmoon-dev/el-markdown/register';

手工登记

<script type="module">
  import { register } from '@duskmoon-dev/el-markdown';
  register();
</script>

<el-dm-markdown> # Hello World </el-dm-markdown>

从 URL 中

<el-dm-markdown src="/docs/readme.md"></el-dm-markdown>

有美人鱼图

<el-dm-markdown>
  # Flowchart Example ```mermaid graph TD A[Start] --> B{Is it?} B -->|Yes| C[OK] B -->|No|
  D[End]</el-dm-markdown
>
```

特征

  • GitHub 平面标记: 表格、任务列表、切换、自动链接
  • 软线断开: 单行新线默认为换行
  • 颜色芯片: 支持的 HEX, RGB, 和内置代码中的 HSL 值显示颜色预览
  • 前题:领先的 YAML 前置物质作为突出的 YAML 代码块
  • 语法突出显示: 由亮点驱动.js通过rehype-highlight
  • 美人鱼图: 流程图,序列图等的可选支持.
  • 多个主题: GitHub, 原子一暗, 原子一亮
  • 自动主题: 尊重 prefers-color-scheme 媒体查询
  • 删除缩进: 自动从内线内容中删除常见缩进
  • 流线模式: LLM 输出的实时渲染,并自动恢复语法错误

主题

主题说明
auto遵循系统偏好( 默认)
githubGitHub 风格的灯光主题
atom-one-dark原子一暗主题
atom-one-light原子一光主题
<el-dm-markdown theme="atom-one-dark"> ```js const dark = true;</el-dm-markdown>
```

属性

属性类型默认说明
src字符串获取标记的 URL
theme字符串auto代码语法突出显示主题
debug布尔false启用调试日志
no-mermaid布尔false禁用人鱼渲染
streaming布尔false只读, 反映流流状态

属性

财产类型说明
content字符串直接获取/设置下标内容

方法

方法说明
startStreaming()开始流出模式, 清除缓冲, 显示光标
appendContent(chunk)串流时追加一块内容
setContent(content)替换内容( 流中的工作和正常)
endStreaming()结束流出, 进行最后的纯净渲染

CSS 组件

编说明
container外容器
content显示的下限内容

活动

活动细节说明
dm-rendered{ html: string }减速后发射
dm-error{ error: string }发生错误时已开火
dm-stream-chunk{ content: string, chunk: string }当块被附加时被解除
dm-stream-end{ content: string }流出结束时被解除

CSS 自定义属性

财产说明
--dm-markdown-font-family内容字体家族
--dm-markdown-code-font-family代码字体家族
--dm-markdown-line-height线高

支持的 Markdown 特性

  • 标题(h1-h6)
  • 段 次 页 次
  • 粗体,斜体,击出
  • 链接和图像
  • 有序和无有序清单
  • 任务列表(GFM)
  • 块名
  • 代码(内含和块)
  • 语法突出显示
  • 表格(GFM)
  • 水平规则
  • 美人鱼图 (可选)
  • 内置 HEX、 RGB 和 HSL 值的颜色芯片
  • YAML 前题

实例

任务列表

<el-dm-markdown> ## Todo - [x] Complete task - [ ] Pending task - [ ] Another task </el-dm-markdown>

图表

<el-dm-markdown>
  | Feature | Status | |---------|--------| | Tables | Supported | | Strikethrough | ~~Yes~~ |
</el-dm-markdown>

正在装入远程内容

<el-dm-markdown src="https://raw.githubusercontent.com/user/repo/main/README.md"></el-dm-markdown>

流线模式

流出模式旨在实时渲染LLM输出. 它在流出时会自动处理不完整的标记下语法并显示闪烁光标.

基本流线

const md = document.querySelector('el-dm-markdown');

// Start streaming mode
md.startStreaming();

// Append chunks as they arrive from LLM
for await (const chunk of llmStream) {
  md.appendContent(chunk);
}

// End streaming (performs final clean render)
md.endStreaming();

使用内容属性

const md = document.querySelector('el-dm-markdown');

md.streaming = true; // Or call startStreaming()
let content = '';

for await (const chunk of llmStream) {
  content += chunk;
  md.content = content;
}

md.streaming = false; // Or call endStreaming()

聆听流出事件

const md = document.querySelector('el-dm-markdown');

md.addEventListener('dm-stream-chunk', (e) => {
  console.log('Received chunk:', e.detail.chunk);
  console.log('Total content:', e.detail.content);
});

md.addEventListener('dm-stream-end', (e) => {
  console.log('Streaming complete:', e.detail.content);
});

语法自动恢复

在流出过程中,不完全的标记下语法会自动被固定:

不完全模式自动Fix 动作
``` 未关闭关闭代码块
` 未关闭关闭内行代码
**text 未关闭关闭粗体
*text 未关闭关闭斜体
~~text 未关闭关闭切换
[text](url关闭链接
![alt](url关闭图像

这确保了减值即使部分内容也正确.

许可证

麻省理工学院

版本与发布记录

@duskmoon-dev/el-markdown 共发布 54 个版本,首次发布于 2026/01/04;过去 12 个月发布了 54 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.10.3latest2026/11/112 天前
1.10.22026/10/2222 天前
1.10.12026/10/1627 天前
1.10.02026/10/1628 天前
1.9.32026/10/131 个月前
1.9.22026/10/131 个月前

关于 @duskmoon-dev/el-markdown 的常见问题

@duskmoon-dev/el-markdown 是什么?

标记下渲染器组件,使用语法加亮、人鱼图支持和LLM输出的流出模式.

如何安装 @duskmoon-dev/el-markdown?

在项目目录运行 npm install @duskmoon-dev/el-markdown,或使用 pnpm add / yarn add / bun add。

@duskmoon-dev/el-markdown 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@duskmoon-dev/el-markdown 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@duskmoon-dev/el-markdown 可以商用吗?

@duskmoon-dev/el-markdown 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@duskmoon-dev/el-markdown 的下载量有多少?

根据 npm 官方下载统计,@duskmoon-dev/el-markdown 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,914 次,日均约 97 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@duskmoon-dev/el-markdown 还在维护吗?

最新版本 1.10.3 发布于 2026/11/11(2 天前);至今共发布 54 个版本,其中过去 12 个月发布了 54 个;首次发布于 2026/01/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。