Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyMd

全离线 Android Markdown 编辑器,专为 GPT 数学公式渲染而生。

EasyMd 是一款完全离线运行的 Android Markdown 编辑器,采用原生编辑器 + WebView 实时预览的架构,无需任何网络权限。特别针对 GPT 输出的数学公式格式进行了深度优化,一键渲染 [...] 格式的 LaTeX 公式。

下载

Download


核心特色

🤖 GPT 数学公式一键渲染

GPT 输出的数学公式直接复制时,通常使用 [...] 和 '(...)' 包裹,而非标准的 $$...$$。EasyMd 内置 GptMathPreprocessor 预处理器,自动识别并转换:

GPT 输出(难读):                      EasyMd 渲染(清晰):
( E = mc^2 )                          $ E = mc^2 $
[\frac{d}{dx}f(x) = \lim_{h \to 0}    $$\frac{d}{dx}f(x) = \lim_{h \to 0}
 \frac{f(x+h)-f(x)}{h}]                \frac{f(x+h)-f(x)}{h}$$
[\begin{cases}                        $$\begin{cases}
 5x_1 + 2x_2 + x_3 = -12 \\            5x_1 + 2x_2 + x_3 = -12 \\
 -x_1 + 4x_2 + 2x_3 = 20 \\            -x_1 + 4x_2 + 2x_3 = 20 \\
 2x_1 - 3x_2 + 10x_3 = 3               2x_1 - 3x_2 + 10x_3 = 3
\end{cases}]                          \end{cases}$$

支持检测的数学特征$ 内联公式、\begin 环境、\frac\sum\int\alpha\beta\sqrt\left\right、数字表达式。

只需在工具栏中开启 GPT 模式开关,粘贴 GPT 的数学输出,即可实时看到渲染后的专业公式。

✨ 更多特性

  • 📐 完整 LaTeX 支持 — 基于 MathJax 3.2.2,支持行内公式、块级公式、矩阵、环境等
  • 💻 代码高亮 — 基于 Prism.js,支持 11+ 编程语言语法高亮
  • 📊 Mermaid 图表 — 支持流程图、时序图、甘特图等图表渲染
  • 🌓 深色/浅色主题 — 一键切换,预览区和编辑器同步响应
  • 📱 三种布局模式 — 左右分屏、上下分屏、编辑/预览切换
  • 🔤 可调字体 — 编辑器支持捏合缩放(8sp–36sp)
  • 📂 文件导入导出 — 支持打开和保存 .md 文件
  • 📴 完全离线 — 所有 JS 库均打包在 APK 中,零网络依赖

环境搭建

1. 克隆项目

git clone https://github.com/ArrogHie/EasyMarkdown.git
cd EasyMarkdown

2. 下载前端资源

项目依赖以下离线 JS 库,需手动下载并放入 app/src/main/assets/js/ 目录:

MathJax 3.2.2(数学公式渲染)

# 从 GitHub 下载 MathJax 3.2.2 发布包
# 下载地址:https://github.com/mathjax/MathJax/releases/tag/3.2.2
# 解压后将 es5/ 目录下所有文件复制到:
app/src/main/assets/js/mathjax/

markdown-it(Markdown 解析器)

# 下载 markdown-it 的浏览器独立版本
# https://cdn.jsdelivr.net/npm/markdown-it@14/dist/markdown-it.min.js
# 放入:
app/src/main/assets/js/markdown-it.min.js

Prism.js(代码高亮)

需要三个文件:

文件 下载地址(jsDelivr CDN)
prism-core.min.js https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-core.min.js
prism-languages.min.js Prism 官网 自选语言后下载
prism-theme-light.css https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism.css
prism-theme-dark.css https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism-tomorrow.css

放入 app/src/main/assets/js/prism/ 目录。

Mermaid(图表渲染)

# 下载 Mermaid 独立版本
# https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js
# 放入:
app/src/main/assets/js/mermaid/mermaid.min.js

3. 资源目录结构

下载完成后,app/src/main/assets/js/ 目录应如下:

app/src/main/assets/js/
├── app.js                          # 项目自有(已在仓库中)
├── markdown-it.min.js              # 下载
├── mathjax/                        # 下载(es5/ 完整目录)
│   ├── tex-svg.js
│   ├── core.js
│   ├── input/tex/extensions/ams.js
│   └── ...(约 100 个文件)
├── mermaid/
│   └── mermaid.min.js              # 下载
└── prism/
    ├── prism-core.min.js           # 下载
    ├── prism-languages.min.js       # 下载(自选语言)
    ├── prism-theme-light.css       # 下载
    └── prism-theme-dark.css        # 下载

4. 构建与安装

# 构建 Debug APK(可直接安装测试)
./gradlew assembleDebug

# APK 输出位置
# app/build/outputs/apk/debug/app-debug.apk

# 运行单元测试
./gradlew test

环境要求

  • Android: 7.0+ (API 24)
  • JDK: 17+
  • Gradle: 9.4.1
  • AGP: 9.2.1

架构概览

MainActivity
  └─ MdEditorScreen (Compose)
       ├─ Toolbar (主题 / GPT / 布局切换)
       ├─ EditorPanel (原生 EditText + 行号侧栏)
       └─ PreviewPanel (WebView 实时预览)
            ├─ markdown-it → HTML
            ├─ MathJax 3 → SVG 公式
            ├─ Prism.js → 代码高亮
            └─ Mermaid → 图表
  • 架构: MVVM,单一 MdEditorViewModel 作为数据源
  • 渲染管线: Kotlin HtmlRenderer → JS 模板字面量 → app.js 处理 → WebView DOM
  • 同步策略: 编辑器内容变化 → 自适应防抖(300/500/1000ms)→ 预览更新

GPT 数学模式详解

转换规则

输入格式 检测条件 输出格式
[公式] (单行,含数学特征) $\frac、数字等 $$公式$$
[公式](多行,含数学特征) $\begin、数字等 $$\n公式\n$$
[公式] (不含数学特征) 无匹配 保持原样
行尾单个 \ GPT 错误换行 \\(LaTeX 换行)

使用场景

  1. 粘贴 GPT 数学回答 → 开启 GPT 模式 → 自动渲染公式
  2. 查看 GPT 输出的方程组[...\begin{cases}...] 自动转为矩阵排版
  3. 编辑 Markdown 笔记 → 关闭 GPT 模式 → 标准 Markdown 编辑体验

技术栈

组件 技术
语言 Kotlin 2.2.10
UI Jetpack Compose + Material 3
编辑器 原生 EditText(MdEditText)
预览 WebView + markdown-it
数学渲染 MathJax 3.2.2 (SVG)
代码高亮 Prism.js
图表 Mermaid
设置持久化 Jetpack DataStore (Preferences)

开源协议

MIT License

About

轻量级Markdown编辑预览APP

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages