# AniMarkdownReader **Repository Path**: zuiyuewentian/ani-markdown-reader ## Basic Information - **Project Name**: AniMarkdownReader - **Description**: AniMarkdownReader,一款基于 Tauri v2 (Rust) + Vite 构建的轻量级桌面 Markdown 阅读器,对标 Typora,定位"免费+轻量+云服务"。 - **Primary Language**: HTML - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ani Markdown Reader > 轻若微蚁,快如闪电 — 优雅的 Markdown 阅读器 Ani Markdown Reader 是一款基于 Tauri v2 + Vite 构建的轻量级桌面 Markdown 阅读器,采用 Rust 后端 + ES Modules 前端架构,模块化清晰、启动迅速、资源占用极低。 ## 特性 - **多文件标签页** — 同时打开多个 Markdown 文件,支持拖拽打开、右键关闭、脏文件检测 - **原生拖拽打开** — 将文件直接拖入窗口即可打开,Tauri v2 原生拖拽事件支持 - **实时渲染** — Markdown 实时解析预览,支持数学公式(KaTeX)、代码高亮(highlight.js) - **三种视图** — 阅读模式、源码编辑模式、分栏模式(左编辑右预览,可拖拽分割线) - **目录导航** — 自动生成 TOC 侧栏,支持分组折叠、滚动追踪 - **深色/浅色主题** — CSS 变量驱动,平滑过渡切换 - **智能编码检测** — 自动识别 UTF-8、GBK、GB2312、Big5、Shift_JIS 等编码 - **多格式导出** — PDF(Windows 原生 WebView2)、DOCX、HTML、Markdown - **文件关联** — 双击 `.md` 文件直接打开,支持单实例运行 - **全文搜索** — 浮动搜索栏,上下导航,高亮匹配 - **自定义标题栏** — 无边框窗口,Windows 原生按钮风格 - **模块化架构** — Vite + ES Modules,功能分层清晰,支持 HMR 热重载 ## 支持的文件格式 | 类型 | 格式 | |------|------| | Markdown | `.md` `.markdown` `.mdown` `.mkd` `.mkdn` `.txt` `.rmd` `.qmd` | | 图片 | `.png` `.jpg` `.jpeg` `.gif` `.svg` `.webp` `.bmp` `.ico` | | 导出 | PDF, DOCX, HTML, Markdown | ## 快捷键 | 快捷键 | 功能 | |--------|------| | `Ctrl+O` | 打开文件 | | `Ctrl+N` | 新建文件 | | `Ctrl+F` | 搜索 | | `Ctrl+B` | 切换侧栏 | | `Ctrl+U` | 编辑模式 | | `Ctrl+\` | 分栏视图 | | `Ctrl+S` | 保存文件 | | `Escape` | 关闭搜索/分栏 | ## 技术栈 ### 后端 (Rust / Tauri v2) - **tauri** 2 — 桌面应用框架 - **tauri-plugin-dialog** / **tauri-plugin-fs** / **tauri-plugin-shell** / **tauri-plugin-single-instance** - **encoding_rs** + **chardetng** — 字符编码检测与解码 - **webview2-com** (Windows) — 原生 PDF 导出 ### 前端 (Vite + ES Modules) - **Vite** 8 — 构建工具,HMR 热重载,代码分割 - **Marked.js** 12 — Markdown 解析 (npm) - **KaTeX** 0.16 (+ mhchem) — 数学公式渲染 (npm) - **highlight.js** 11 — 代码语法高亮 (npm) - **html-docx-js** — Word 导出 - **html2pdf.js** — PDF 截图式导出(fallback) ## 项目结构 ``` ani-markdown-reader/ ├── index.html # 入口 HTML(仅 body) ├── vite.config.js # Vite 配置 ├── package.json # 依赖 + 脚本 ├── public/ # 静态资源(原样复制) │ ├── logo.png │ ├── pdf-export.html # PDF 导出专用窗口 │ └── lib/html2pdf.bundle.min.js ├── app/ # 前端源码(ES Modules) │ ├── main.js # 入口:初始化 + 事件监听 │ ├── state.js # 全局状态:$, S, M │ ├── tauri.js # Tauri API 适配 │ ├── utils.js # 工具函数 │ ├── core/ │ │ ├── renderer.js # Markdown 渲染管线 │ │ ├── editor.js # 源码/分栏编辑器 │ │ └── search.js # 搜索 + 代码复制 │ ├── services/ │ │ ├── file.js # 文件管理 │ │ └── export.js # 全格式导出 │ ├── components/ │ │ ├── sidebar.js # 侧栏 + TOC │ │ ├── tabs.js # 标签页管理 │ │ └── toolbar.js # 工具栏 + 窗口控制 │ └── styles/ │ ├── base.css # 基础样式 │ └── themes/ │ ├── dark.css # 暗色主题 │ └── light.css # 亮色主题 └── src-tauri/ # Rust 后端 ├── src/main.rs ├── Cargo.toml ├── tauri.conf.json ├── capabilities/default.json └── icons/ ``` ## 开发 ### 环境要求 - Node.js + pnpm - Rust 工具链 (rustup) - Windows: WebView2 Runtime ### 常用命令 ```bash # 安装依赖 pnpm install # 前端开发(Vite HMR 热重载) pnpm dev # 前端构建 pnpm build # Tauri 开发模式(前端 HMR + Rust 编译 + 窗口启动) pnpm tauri:dev # 生产构建(Vite 打包 + Rust 编译 + NSIS 安装包) pnpm tauri:build ``` ## 设计风格 - **金色点缀** — 主色调 `#d4a853`(深色)/ `#b07d2e`(浅色) - **噪点纹理** — SVG feTurbulence 背景纹理 - **径向渐变** — 内容区装饰性光晕 - **微交互** — 标签页悬停/激活、代码复制按钮、搜索高亮动画 ## 许可证 MIT License --- [English](README.en.md)