项目进展2026-09-21

MD阅读 1.1.0 新版说明

MD阅读 1.1.0 新版说明:新增语音朗读(离线合成、熄屏播放、语音导出)

欢迎使用 MD阅读。

这份文档就是应用内置的示例文档,完整展示了它所支持的全部 Markdown 语法与渲染效果。

在微信、QQ 或文件管理器中选中任意 .md 文件,选择「用其他应用打开」→ MD阅读,即可快速切换到你自己的文档。


目录

  • 一、标题层级
  • 二、行内样式
  • 三、列表
  • 四、引用与分割线
  • 五、代码块
  • 六、表格
  • 七、Mermaid 图形
  • 八、SVG 图形
  • 九、分享给其他应用
  • 十、语音朗读
  • 十一、更新日志

一、标题层级

六级标题均有独立的字号与颜色层次,层级越深颜色越浅,阅读时主次分明。

一级标题 H1

二级标题 H2

三级标题 H3

四级标题 H4

五级标题 H5
六级标题 H6

二、行内样式

这是一段普通正文。行内支持 加粗、斜体、_加粗的另一种写法_、行内代码,以及 超链接。

组合用法也很自然:加粗里可以写 代码,斜体里也能放 链接。

中英文混排时,行距与字间距都会自动适配,长段落读起来不累眼。


三、列表

无序列表:

  • 轻量、纯净的离线阅读体验
  • 支持微信「用其他应用打开」直接唤起
  • 预览与源码一键切换
  • 表格支持横向滚动,宽表不再被截断

有序列表:

  1. 打开任意 .md 文件
  2. 应用自动解析并渲染排版
  3. 点击「⋮」可切换预览 / 源码 / 全屏
  4. 点击 Mermaid 图形可进入全屏查看

四、引用与分割线

单段引用:

好的工具应该安静地待在角落,需要时一秒出现,用完就消失。

多段引用(连续多行会被合并为同一块):

第一条:所有解析都在本地完成。 第二条:文档内容不会离开你的手机。 第三条:应用不发起任何网络请求,也不申请联网权限。

引用也支持 加粗、行内代码 等行内样式。


五、代码块

ArkTS / TypeScript:

@Entry
@Component
struct Index {
  @State mode: string = 'rich';

  build() {
    Column() {
      Text('MD阅读')
        .fontSize(18)
        .fontWeight(FontWeight.Medium)
    }
  }
}

Python:

def parse_markdown(src: str) -> list:
    lines = src.replace('\r\n', '\n').split('\n')
    blocks = []
    for line in lines:
        if line.startswith('#'):
            blocks.append(('heading', line))
    return blocks

Bash:

# 构建 release 包
hvigorw assembleApp -p product=default -p buildMode=release

# 查看产物
ls -lh build/outputs/default/

SQL:

SELECT doc_id, title, block_count, parsed_at
FROM parsed_document
WHERE block_count > 100
ORDER BY parsed_at DESC
LIMIT 20;

JSON:

{
  "status": "success",
  "code": 200,
  "result": {
    "blocks": 128,
    "elapsed_ms": 12
  }
}

六、表格

窄表格(自动等分,无需滚动):

功能状态说明
标题渲染已支持H1 - H6 共 6 级
表格渲染已支持自动计算列宽
代码高亮已支持等宽字体 + 灰底
图形渲染已支持Mermaid + SVG 离线引擎

宽表格(超出屏幕宽度时横向滚动,列宽按内容自适应,不截断):

模块语法是否支持渲染方式备注
标题# ~ ######是原生组件六级字号递减
段落连续文本是原生组件自动合并软换行
代码块三反引号围栏是原生组件保留原始缩进
表格竖线分隔是原生组件超宽横向滚动
图形mermaid 围栏是Web 渲染离线,不联网
图形svg 围栏 / 裸 <svg>是Web 渲染离线,自动清洗脚本
列表- / 1.是原生组件支持连续多项
引用>是原生组件多行合并为一块
分割线---是原生组件三种写法均可

七、Mermaid 图形

所有图形均由应用内置的 Mermaid 引擎离线渲染,不连接任何服务器,也不需要网络。点击图形可进入全屏查看,支持双指缩放。

7.1 流程图(纵向)

flowchart TD
    A[收到 .md 文件] --> B{是否已知格式}
    B -->|是| C[调用解析器]
    B -->|否| D[按纯文本兜底]
    C --> E[生成 Block 列表]
    D --> E
    E --> F[懒加载渲染]
    F --> G[展示精美排版]

7.2 流程图(横向)

flowchart LR
    微信 --> 用其他应用打开 --> MD阅读 --> 渲染
    MD阅读 --> 系统分享 --> 目标应用

7.3 时序图

sequenceDiagram
    participant U as 用户
    participant A as MD阅读
    participant S as 系统分享面板
    U->>A: 打开文档
    A->>A: 本地解析渲染
    U->>A: 点击「分享 Markdown」
    A->>S: 提交文档原文
    S-->>U: 选择目标应用

7.4 类图

classDiagram
    class Block {
        +String type
        +render()
    }
    class Heading {
        +int level
    }
    class Table {
        +int[] colWidths
        +int minHeight
    }
    class Mermaid {
        +String code
    }
    Block <|-- Heading
    Block <|-- Table
    Block <|-- Mermaid

7.5 状态图

stateDiagram-v2
    [*] --> 未打开
    未打开 --> 预览: 打开文档
    预览 --> 源码: 切换视图
    源码 --> 预览: 切换视图
    预览 --> 图形全屏: 点击图形
    图形全屏 --> 预览: 返回
    预览 --> [*]: 关闭

7.6 甘特图

gantt
    title 上架进度
    dateFormat YYYY-MM-DD
    section 开发
    需求与原型      :done,    a1, 2026-08-25, 3d
    编码实现        :done,    a2, after a1, 7d
    section 上架
    发布签名        :done,    b1, 2026-09-04, 2d
    商店材料        :done,    b2, after b1, 3d
    备案与审核      :active,  b3, after b2, 10d

7.7 饼图

pie showData
    title 文档元素占比
    "正文段落" : 35
    "代码块" : 18
    "图形" : 22
    "表格" : 10
    "标题" : 15

7.8 时间线

timeline
    title 版本里程碑
    2026-08 : 项目立项 : 完成技术选型
    2026-09 : 首个可用版本 : 支持全部基础语法
    2026-09 : 图形引擎 : 内置离线 Mermaid
    2026-09 : 本地分享 : 接入系统分享面板

八、SVG 图形

除了 Mermaid,文档里也可以直接嵌入 SVG 矢量图。两种写法都支持:

  • 围栏写法:用 `svg 把 SVG 源码包起来(推荐,来源清晰、便于折叠)
  • 直接粘贴:把 .svg 文件的内容原样粘贴进文档,识别 <svg 与 </svg> 之间的部分

图形按页面宽度等比缩放,点击图形可进入全屏查看,双指缩放、拖动平移。整个渲染过程在本地完成,图形不联网加载;图形内携带的脚本与外链资源会被自动移除。

8.1 柱状图(围栏写法)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 340 180" width="340" height="180">
  <defs>
    <linearGradient id="barGrad" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#6aa9f0"/>
      <stop offset="100%" stop-color="#2a6fdb"/>
    </linearGradient>
  </defs>
  <line x1="42" y1="18" x2="42" y2="140" stroke="#d0d7e2" stroke-width="1"/>
  <line x1="42" y1="140" x2="322" y2="140" stroke="#d0d7e2" stroke-width="1"/>
  <rect x="62" y="62" width="34" height="78" rx="3" fill="url(#barGrad)"/>
  <rect x="122" y="92" width="34" height="48" rx="3" fill="url(#barGrad)"/>
  <rect x="182" y="38" width="34" height="102" rx="3" fill="url(#barGrad)"/>
  <rect x="242" y="76" width="34" height="64" rx="3" fill="url(#barGrad)"/>
  <text x="79" y="54" font-size="12" fill="#4a5568" text-anchor="middle">86</text>
  <text x="139" y="84" font-size="12" fill="#4a5568" text-anchor="middle">52</text>
  <text x="199" y="30" font-size="12" fill="#4a5568" text-anchor="middle">112</text>
  <text x="259" y="68" font-size="12" fill="#4a5568" text-anchor="middle">70</text>
  <text x="79" y="156" font-size="11" fill="#8892a0" text-anchor="middle">解析</text>
  <text x="139" y="156" font-size="11" fill="#8892a0" text-anchor="middle">排版</text>
  <text x="199" y="156" font-size="11" fill="#8892a0" text-anchor="middle">渲染</text>
  <text x="259" y="156" font-size="11" fill="#8892a0" text-anchor="middle">打开</text>
</svg>

8.2 环形进度(直接粘贴写法)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
  <circle cx="60" cy="60" r="50" fill="none" stroke="#e8eef7" stroke-width="12"/>
  <circle cx="60" cy="60" r="50" fill="none" stroke="#2a6fdb" stroke-width="12" stroke-linecap="round" stroke-dasharray="236 314" transform="rotate(-90 60 60)"/>
  <text x="60" y="58" font-size="22" font-weight="bold" fill="#2a6fdb" text-anchor="middle">75%</text>
  <text x="60" y="78" font-size="11" fill="#8892a0" text-anchor="middle">渲染完成度</text>
</svg>

上面的环形图就是直接粘贴的效果——没有围栏,识别到 <svg> 就按图形渲染。


九、分享给其他应用

点击右上角 ⋮ → 分享 Markdown,系统会弹出分享面板,你可以把当前文档的 Markdown 原文发送给微信、邮件、备忘录等任意应用。

  • 分享的是 Markdown 原文,接收方可直接存为 .md 文件
  • 分享动作由系统面板完成,应用本身不发起任何网络请求
  • 本应用不申请联网权限,也不存在任何服务器

文档只在你和设备之间流转,不经过任何中间服务器。


十、语音朗读

MD阅读 现在可以把文档读给你听。朗读基于系统离线语音引擎(Core Speech Kit)在本机完成合成与播放,不联网、不收集、不申请任何网络或录音权限。

10.1 开始朗读

打开任意文档后,点击右上角 ⋮ → 语音朗读,应用会从当前阅读位置开始朗读正文;朗读中可暂停、继续,或跳到上一段 / 下一段。

朗读内容仅在本机合成与播放,文档不会离开你的手机。

10.2 熄屏 / 后台播放

开启朗读后,即使锁屏或切换到其他应用,朗读仍会在后台继续。通知栏提供播放 / 暂停 / 上下篇控制,熄屏也能接着听。

10.3 导出为 MP3

在朗读面板选择 导出 MP3,可将整篇文档的语音导出为 .mp3 文件,保存到你在系统文件选择器里自选的位置(如「文档」目录)。导出走系统文件选择器,无需授予任何存储权限。

10.4 设计原则

特性说明
离线合成使用本机已安装语音引擎,飞行模式也可朗读
不联网不声明 INTERNET 权限,断网照常工作
不收集不上传任何文档或语音数据
熄屏播放后台长时任务 + 通知栏控制
语音导出导出 MP3 到用户自选位置,零权限

十一、更新日志

1.1.0

  • 新增 语音朗读:基于系统离线语音引擎把文档读给你听,不联网、不收集
  • 支持 熄屏 / 后台播放,通知栏可控播放、暂停与上下篇
  • 新增 导出 MP3:将整篇语音导出为 .mp3,保存到用户自选位置,零权限

1.0.4

  • 新增 SVG 图形渲染:支持 `svg 围栏写法与直接粘贴 <svg> 两种写法
  • SVG 与 Mermaid 共用同一套全屏查看交互(双指缩放、拖动平移、双击放大)
  • 图形渲染前执行两层安全清洗(字符串级 + DOM 白名单),自动移除脚本与外链资源

1.0.0

  • 自研 Markdown 解析引擎,支持标题、段落、列表、引用、代码块、表格、分割线
  • 内置离线 Mermaid 渲染引擎,流程图、时序图、饼图等一应俱全
  • 预览 / 源码双视图切换,支持横竖屏自适应
  • 支持从微信等应用「用其他应用打开」直接唤起
  • 新增「分享 Markdown」,通过系统分享面板发送给其他应用

本文档为应用内置示例,保存在安装包内,无需联网即可阅读。

有任何建议可发送邮件至 *****。

← 返回文章列表