harmonyos-md-reader-lite:基于 HarmonyOS 生态的本地 Markdown 阅读器项目

HarmonyOS 彻底本地化 Markdown 阅读器:零联网、零数据收集,TTS 熄屏朗读 + MP3 导出 + Mermaid 离线渲染(仅申请一项后台朗读权限)

分支1Tags0
文件最后提交记录最后更新时间
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)

项目介绍

HarmonyOS 彻底本地化 Markdown 阅读器:零联网、零数据收集,TTS 熄屏朗读 + MP3 导出 + Mermaid 离线渲染(仅申请一项后台朗读权限)

定制我的领域