HarmonyOS 彻底本地化 Markdown 阅读器:零联网、零数据收集,TTS 熄屏朗读 + MP3 导出 + Mermaid 离线渲染(仅申请一项后台朗读权限)
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |
harmonyos-md-reader-lite
HarmonyOS(OpenHarmony)平台上的 彻底本地化 Markdown 阅读器 — ArkTS 编写,零联网、零数据收集,仅申请一项后台朗读权限。
一款"小而美"的纯本地 Markdown 阅读应用。打开 .md 文件即可阅读:支持完整 Markdown 语法、表格自适应列宽、Mermaid 图表离线渲染(内置 minified 渲染引擎)。
本项目是 harmonyos-md-reader 的彻底本地化分支:移除全部云端分享能力,不申请联网权限,不调用任何远端 API。
✨ 核心特性
- 🚫 零联网 — 解析、渲染 100% 在设备本地完成,不申请
ohos.permission.INTERNET - 🚫 零数据收集 — 不上报任何使用数据
- 🔊 TTS 朗读 — 系统 TTS 逐段朗读,支持语速/音调调节;申请
KEEP_BACKGROUND_RUNNING+ 后台音频模式,熄屏后朗读不中断(全项目唯一权限,仅此用途) - 💾 导出 MP3 — 朗读音频可录制导出为 MP3(内置 lamejs 纯 JS 编码器,本地完成,不联网)
- 📤 本地分享 — 通过 HarmonyOS 系统分享面板(Share Kit)把 Markdown 原文交给目标应用,全程不联网
- 📝 完整 Markdown — 标题、段落、列表、引用、代码块、分割线、图片、链接、表格
- 📊 表格自适应 — 列宽自动计算、同行等高、横向滚动
- 🧜 Mermaid 离线渲染 —
```mermaid围栏块自带渲染引擎,无须联网 - 🖐️ 全屏查看 — 点击图形进入全屏,支持双指缩放
- 📱 phone 设备 — 目标设备类型:仅手机
🔍 与 harmonyos-md-reader 的差异
| 项 | harmonyos-md-reader | harmonyos-md-reader-lite |
|---|---|---|
ohos.permission.INTERNET |
已申请 | 不申请 |
| 分享实现 | 上传至自建服务生成短链 | 系统分享面板(本地) |
| 网络请求 | 仅用户主动分享时发起 | 完全没有 |
| 权限总数 | 网络 + 存储 | 仅 1 项(KEEP_BACKGROUND_RUNNING,熄屏朗读用) |
| Markdown 解析与渲染 | 自研解析器 + 离线 Mermaid | 完全相同 |
| 表格 / 手势 / 视图切换 | 支持 | 完全相同 |
| TTS 朗读 / MP3 导出 | — | lite 独有 |
除分享链路外,两个版本的渲染内核与交互体验完全一致。
📁 项目结构
harmonyos-md-reader-lite/
├── AppScope/ # 应用级配置(包名、版本、图标)
├── entry/ # 主模块
│ └── src/main/
│ ├── ets/
│ │ ├── entryability/ # 入口 Ability
│ │ ├── pages/ # 页面(Index.ets)
│ │ ├── components/ # 渲染组件(MarkdownView / MermaidView)
│ │ └── utils/ # 解析器与文件读取
│ ├── resources/rawfile/ # 内置示例文档 + 离线 Mermaid 引擎
│ └── module.json5 # 模块配置(仅声明后台朗读权限与 audioPlayback 模式)
├── hvigor/ # 构建工具
├── hvigorfile.ts # 构建脚本
├── build-profile.json5 # 构建配置(不含签名信息)
├── oh-package.json5 # 依赖声明
└── sample.md # 示例 md 文件(用于自测)
🚀 快速开始
环境要求
- DevEco Studio 5.0+
- HarmonyOS SDK API 12+(
5.0.0(12)) - hvigor 构建工具
构建步骤
# 1. 用 DevEco Studio 打开本目录
# 2. 配置自己的签名(File → Project Structure → Signing Configs)
# 3. Build → Build Hap(s) / APP(s)
命令行构建 release 包:
hvigorw assembleApp -p product=default -p buildMode=release --no-daemon
🔐 签名
重要:本仓库不包含任何签名证书,build-profile.json5 中也不含签名配置。请在本地自行配置(.p12 / .p7b),并确保不要提交到 Git —— .gitignore 已排除 signing/ 与所有证书后缀。
🧪 自测
# 启动应用 → 打开内置示例文档 → 验证:
# 1. 表格列宽自适应、宽表横向滚动
# 2. Mermaid 各类型图形离线渲染(流程图 / 时序图 / 类图 / 甘特图 / 饼图 / 时间线)
# 3. 预览 / 源码切换、图形全屏缩放
# 4. 「分享 Markdown」调起系统分享面板
🔒 隐私说明
应用无任何联网行为:不申请网络权限,不访问任何服务器,不分发任何数据。文档内容只在设备本地解析与渲染;分享动作由系统分享面板完成,接收方由用户自行选择。
权限方面仅申请 1 项:ohos.permission.KEEP_BACKGROUND_RUNNING(配合 audioPlayback 后台模式),唯一用途是熄屏后 TTS 朗读不中断。不做任何后台保活、不采集任何数据;关闭朗读功能即无任何后台行为。
📜 许可证 / License
本项目基于 Apache License 2.0 开源 — 详见 LICENSE 与 NOTICE。
Copyright 2026 白志明 (Bai Zhiming)