From c966b0116fca6566dedbd4a6e3832c6159b88878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9A=A9=EC=9D=80?= Date: Sun, 9 Aug 2026 23:55:48 +0900 Subject: [PATCH] docs(i18n): Simplified Chinese landing page and README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #294 adds `values-zh` to the app. The public surfaces did not follow, and they are the half a Chinese reader meets first — the landing page, the privacy policy, and the README are what you see before you install anything. Adds index.zh.html, privacy.zh.html and README.zh.md, and wires zh into the language switcher, hreflang set and og:locale alternates of the twelve pages that already existed. The "UI in 6 languages" line in all seven READMEs becomes 7, which is why this has to land after #294 and not before. Two gate changes, both because the gates caught something: - `.lang-switch` in style.css gains `flex-wrap: wrap`. A seventh chip overflows all six privacy pages by 9px at 320px, and the #187 overflow gate failed on it. landing.css already wrapped; style.css was the one that did not. - verify-landing-versions.ps1 learns index.zh.html / README.zh.md, and the demo-clip check gains a `Fallback` field. There is no zh tablet recording yet, so both zh surfaces point at the `-en` clip. Dropping them from the list would have left them unchecked — exactly the hole that check exists to close (#258) — so the borrow is declared and printed in yellow instead. THANKS.md gains a Contributed section. The existing table is about reports and its prose says so; a translation is a different kind of outside work and gets its own row rather than being filed under "Reported". Co-Authored-By: Claude Opus 5 --- README.de.md | 3 +- README.es.md | 3 +- README.fr.md | 3 +- README.ja.md | 3 +- README.ko.md | 3 +- README.md | 3 +- README.zh.md | 250 +++++++++++++++++++++ THANKS.md | 17 +- docs/index.de.html | 3 + docs/index.es.html | 3 + docs/index.fr.html | 3 + docs/index.html | 3 + docs/index.ja.html | 3 + docs/index.ko.html | 3 + docs/index.zh.html | 336 ++++++++++++++++++++++++++++ docs/privacy.de.html | 2 + docs/privacy.es.html | 2 + docs/privacy.fr.html | 2 + docs/privacy.html | 2 + docs/privacy.ja.html | 2 + docs/privacy.ko.html | 2 + docs/privacy.zh.html | 105 +++++++++ docs/style.css | 1 + scripts/verify-landing-versions.ps1 | 15 +- 24 files changed, 762 insertions(+), 10 deletions(-) create mode 100644 README.zh.md create mode 100644 docs/index.zh.html create mode 100644 docs/privacy.zh.html diff --git a/README.de.md b/README.de.md index 37e76c29..abf75b45 100644 --- a/README.de.md +++ b/README.de.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Markleaf-Grün-Theme + Material-You-Umschalter** – Systemfarben des Hintergrundbilds ab Android 12 optional - **Automatischer Dunkelmodus** – folgt der Systemeinstellung - **3-Spalten-Layout für Tablets** – Tag-Seitenleiste · Notizliste · Editor; tippe einen Tag in der Seitenleiste an, um die Notizliste direkt zu filtern (Notizliste weiterhin einklappbar) -- **Oberfläche in 6 Sprachen** – Koreanisch / Englisch / Spanisch / Japanisch / Französisch / Deutsch +- **Oberfläche in 7 Sprachen** – Koreanisch / Englisch / Spanisch / Japanisch / Französisch / Deutsch / Vereinfachtes Chinesisch - **Option zum Blockieren von Screenshots / Vorschau in zuletzt verwendeten Apps** – für vertrauliche Notizen --- diff --git a/README.es.md b/README.es.md index b2317154..1f2d6b19 100644 --- a/README.es.md +++ b/README.es.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Tema verde Markleaf + alternancia Material You** — colores del fondo de pantalla del sistema opcionales en Android 12+ - **Modo oscuro automático** — sigue la configuración del sistema - **Diseño de 3 paneles para tablet** — barra lateral de etiquetas · lista de notas · editor; toca una etiqueta en la barra lateral para filtrar la lista de notas en el momento (la lista de notas sigue siendo contraíble) -- **Interfaz en 6 idiomas** — recursos en coreano / inglés / español / japonés / francés / alemán +- **Interfaz en 7 idiomas** — recursos en coreano / inglés / español / japonés / francés / alemán / chino simplificado - **Opción de bloquear capturas de pantalla / vista previa en apps recientes** — para notas sensibles --- diff --git a/README.fr.md b/README.fr.md index a83de2c1..d827aaa8 100644 --- a/README.fr.md +++ b/README.fr.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Thème vert Markleaf + bascule Material You** — couleurs du fond d'écran système en option sur Android 12+ - **Mode sombre automatique** — suit le paramètre système - **Disposition en 3 panneaux pour tablette** — barre latérale des étiquettes · liste des notes · éditeur ; appuyez sur une étiquette dans la barre latérale pour filtrer la liste des notes sur place (la liste des notes reste réductible) -- **Interface en 6 langues** — ressources en coréen / anglais / espagnol / japonais / français / allemand +- **Interface en 7 langues** — ressources en coréen / anglais / espagnol / japonais / français / allemand / chinois simplifié - **Option de blocage des captures d'écran / aperçu dans les applications récentes** — pour les notes sensibles --- diff --git a/README.ja.md b/README.ja.md index 035f3bcc..78ed1730 100644 --- a/README.ja.md +++ b/README.ja.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Markleaf グリーンテーマ + Material You 切り替え** — Android 12 以降ではシステム壁紙の色もオプション - **自動ダークモード** — システム設定に追従 - **タブレット 3 ペインレイアウト** — タグサイドバー · ノート一覧 · エディタ。サイドバーのタグをタップするとノート一覧をその場で絞り込み(ノート一覧は折りたたみ可能) -- **6 言語 UI** — 韓国語 / 英語 / スペイン語 / 日本語 / フランス語 / ドイツ語のリソースを運用 +- **7 言語 UI** — 韓国語 / 英語 / スペイン語 / 日本語 / フランス語 / ドイツ語 / 簡体字中国語のリソースを運用 - **スクリーンショット / 最近のアプリのプレビュー遮断オプション** — 機密性の高いノート向け --- diff --git a/README.ko.md b/README.ko.md index 5f56290e..51d66fdf 100644 --- a/README.ko.md +++ b/README.ko.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Markleaf 녹색 테마 + Material You 토글** — 안드로이드 12+ 시스템 월페이퍼 색상도 옵션 - **자동 다크 모드** — 시스템 설정 따라 - **태블릿 3-Pane 레이아웃** — 태그 사이드바 · 노트 목록 · 에디터, 사이드바 태그로 노트 목록 즉석 필터링(노트 목록 접고 펴기 가능) -- **6개 언어 UI** — 한국어 / 영어 / 스페인어 / 일본어 / 프랑스어 / 독일어 리소스 운영 +- **7개 언어 UI** — 한국어 / 영어 / 스페인어 / 일본어 / 프랑스어 / 독일어 / 중국어 간체 리소스 운영 - **스크린샷 / 최근 앱 미리보기 차단 옵션** — 민감한 노트용 --- diff --git a/README.md b/README.md index 45a74317..67f5c149 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ English · 한국어 · 日本語 · + 简体中文 · Deutsch · Español · Français @@ -95,7 +96,7 @@ - **Markleaf green theme + Material You toggle** — Android 12+ system wallpaper colors optional - **Automatic dark mode** — follows the system setting - **Tablet 3-pane layout** — tag sidebar · note list · editor; tap a tag in the sidebar to filter the note list in place (note list still collapsible) -- **UI in 6 languages** — Korean / English / Spanish / Japanese / French / German resources +- **UI in 7 languages** — Korean / English / Spanish / Japanese / French / German / Simplified Chinese resources - **Block screenshots / recent-apps preview option** — for sensitive notes --- diff --git a/README.zh.md b/README.zh.md new file mode 100644 index 00000000..87451b9d --- /dev/null +++ b/README.zh.md @@ -0,0 +1,250 @@ +# Markleaf + +

+ Markleaf Logo +

+ +

+ 轻轻堆叠的想法,整洁有序的 Markdown 笔记
+ 一款面向 Android 的本地优先、极简 Markdown 笔记应用 +

+ +

+ Markleaf — Trendshift 当日 Kotlin 仓库第 1 名 +

+ +

+ Platform + Language + UI + License + F-Droid + Google Play +

+ +

+ English · + 한국어 · + 日本語 · + 简体中文 · + Deutsch · + Español · + Français +

+ +

+ GitHub 仓库 · + Discussions(反馈) · + GitLab 源码镜像 +

+ +

+ 在 Markleaf 编辑器中输入 / 会打开快速插入面板;选择任务列表后插入的是纯 Markdown,预览会直接渲染出来 +

+ +

+ / 快速插入 → 纯 Markdown → 实时预览 +

+ +

+ 平板上的 Markleaf:标签栏、笔记列表与编辑器同屏显示,输入 Markdown 表格、任务列表和提示块后预览会渲染出来 +

+ +

+ 平板三栏布局 — 标签栏 · 笔记列表 · 编辑器同处一屏 +

+ +--- + +## 🍃 Markleaf 是什么? + +**Markleaf** 是一款 Android Markdown 笔记应用,它刻意剥离多余的东西,让你只专注于两件事:记录和整理。数据只保存在你的设备上,标准 Markdown 格式则保证了完整的所有权与可迁移性。就连同步也只通过 *你自己选择的文件夹* 进行 — Markleaf 本身从不联网。 + +[**查看品牌页面**](https://jeiel85.github.io/markleaf-android/index.zh.html) · [当前版本:v2.32.2](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) · [隐私政策](https://jeiel85.github.io/markleaf-android/privacy.zh.html) · [F-Droid](https://f-droid.org/packages/com.markleaf.notes/) · [Google Play](https://play.google.com/store/apps/details?id=com.markleaf.notes) + +--- + +## ✨ 主要功能 + +### 书写与预览 +- **`/` 快速插入** — 在行首搜索命令,即可以标准 Markdown 插入标题、列表、表格、提示块、Wiki 链接、图片等 +- **实时 Markdown 预览** — 在编辑与预览之间即时切换,或开启 *显示 Markdown 语法* 选项获得实时语法着色 +- **GFM 表格 / 复选框 / 引用 / 提示块(`> [!NOTE]` …)** — 全部支持预览渲染 +- **代码块语法高亮** — 支持 10 种语言的着色:Kotlin、Java、Python、JavaScript/TypeScript、Bash、JSON、YAML、XML、SQL +- **脚注(`[^N]`)引用 ↔ 定义跳转** — 点击上标即可平滑滚动到定义处 +- **图片附件 + 替代文本编辑** — 以独立副本保存在应用内部存储中(无需媒体权限) +- **智能 Markdown 格式切换** — 为选区或光标所在单词加上粗体 / 斜体 / 删除线 / 行内代码,再次点击可干净地移除已有标记 +- **键盘快捷键** — 外接实体键盘时可用 Ctrl/Cmd+B、I、K、Shift+S 分别对应粗体、斜体、链接和删除线 +- **目录(TOC)** — 在预览模式下跳转到 H1–H3 标题,方便浏览长笔记 +- **衬线体 / 无衬线体切换** — 把书写区切换为衬线字体,获得书籍般的质感;代码块始终保持等宽字体 +- **专注模式 / 词数、字符数与阅读时长统计 / 笔记内查找替换** + +### 整理与导航 +- **基于标签的分类 + 自动补全** — 只需在正文中写 `#标签` 即可自动索引,无需文件夹;输入 `#` 时会自动补全已有标签 +- **Wiki 链接(`[[标题]]`)+ 反向链接面板** — 支持自动补全,一眼看清哪些笔记指向了当前这篇 +- **快速切换(Ctrl+K)** — Obsidian 风格的标题子串跳转 +- **SQLite FTS 全文搜索** — 快速,且能搜到正文内容 +- **置顶 / 归档 / 回收站** — 永久删除前,回收站会再确认一次 + +### 同步与导出(No-Cloud 原则) +- **文件夹镜像同步** — 把每篇笔记以 **标题命名** 的 `.md` / `.txt` 文件镜像到你通过 SAF 选择的文件夹(Drive/Dropbox/Syncthing/OneDrive/NAS 等);重命名笔记后文件名也会跟着变。Markleaf 自身始终离线,同步交给 *负责同步那个文件夹的外部应用* +- **导入外部 `.md` / `.txt` 文件** — 在文件管理器中点击文件,或从其他应用分享过来,即可作为新笔记导入(没有标题时用文件名作为标题)。同步进来的笔记中的标签会被立即识别 +- **将单篇 / 全部笔记导出为 `.md`** +- **通过系统分享面板发送** + +### 设计与无障碍 +- **Markleaf 绿主题 + Material You 切换** — 可选跟随 Android 12 及以上的系统壁纸配色 +- **自动深色模式** — 跟随系统设置 +- **平板三栏布局** — 标签侧栏 · 笔记列表 · 编辑器;点击侧栏中的标签即可就地筛选笔记列表(笔记列表仍可折叠) +- **7 种语言界面** — 韩语 / 英语 / 西班牙语 / 日语 / 法语 / 德语 / 简体中文资源 +- **屏蔽截屏 / 最近任务预览选项** — 面向敏感笔记 + +--- + +## 🔗 可以直接用你已有的 Markdown 文件夹 + +Markleaf 没有自己的知识库格式。把它指向某个文件夹 — 包括 Obsidian、Logseq 或你的文本编辑器已经在打开的那个 — 它就直接在里面已有的文件上工作。 + +- **纯文件,本来就属于你。** 一篇笔记就是一个 `.md`(或 `.txt`)文件。把已有文件放进该文件夹,Markleaf 下次回到前台时就会把它们识别为笔记 — 不需要导入步骤。 +- **你的 frontmatter 不会被破坏。** Markleaf 会添加一小段 YAML 头(`markleaf_id`、时间戳、置顶/归档状态),以便在多台设备间把文件与笔记对应起来,而 **它不认识的内容都会逐字节原样写回** — 包括 Obsidian 用来写标签的缩进块列表、嵌套映射、注释和引号写法。它添加的这段头是 Obsidian、GitHub 和 VS Code 都能解析的严格 YAML 子集。 +- **还是你已经在写的那套语法。** 带反向链接面板的 `[[Wiki 链接]]`、正文内联 `#标签`、GFM 表格与复选框、`> [!NOTE]` 提示块,以及 Obsidian 风格的 `Ctrl+K` 快速切换。 +- **自动对账,且足够谨慎。** 在别处所做的修改会在 Markleaf 回到前台时拉取进来(限流为每分钟一次)。即使其他编辑器完全没有碰 Markleaf 的 frontmatter,它的改动也能被发现 — 对账比较的是正文,而不只是时间戳。只有文件确实更新时它才会胜出;如果两边都改过,远端会作为一篇 *独立* 的笔记出现,而不会覆盖你的编辑,并且任何内容都不会被自动删除。 + +> [!IMPORTANT] +> **把 Markleaf 指向真实知识库之前,有两件事需要知道。** +> - **只读一层文件夹,不含子目录。** Markleaf 只读取你所选文件夹下的直接文件,不会递归进入子目录。用嵌套文件夹组织的知识库,Markleaf 只会在最顶层与它相遇 — 这是刻意的设计,Markleaf 用标签而不是文件夹来整理。 +> - **编辑笔记会重命名它的文件。** 镜像文件名会跟随笔记标题,因此文件名与标题不一致的文件,在你于 Markleaf 中第一次保存时就会被重命名。如果你知识库中的 `[[链接]]` 指向的是旧文件名,这些链接会失效。 +> +> 如果你的知识库层级很深或链接很密集,请把 Markleaf 指向一个 *单独的* 文件夹,把它当作可以后续合并的移动端收件箱,而不是知识库上的第二个编辑器。 + +--- + +## 🛠 技术栈 + +Markleaf 遵循当下的 Android 开发标准,采用现代且易于维护的技术栈。 + +- **UI**:[Jetpack Compose](https://developer.android.com/jetpack/compose) + Material 3 + Material You 动态取色 +- **架构**:简洁的分层划分(core / data / domain / feature / ui)+ Repository 模式 +- **数据库**:[Room](https://developer.android.com/training/data-storage/room) — 基于 SQLite 的本地持久化,使用 FTS4 虚拟表实现全文搜索 +- **Markdown 解析器**:[commonmark-java](https://github.com/commonmark/commonmark-java)(CommonMark 0.30 + GFM 扩展:表格、删除线、任务列表、脚注、YAML frontmatter) +- **异步**:[Kotlin 协程](https://kotlinlang.org/docs/coroutines-overview.html) 与 [Flow](https://kotlinlang.org/docs/flow.html) +- **Storage Access Framework(SAF)** — 文件夹镜像同步与图片附件 +- **图片加载**:[Coil](https://coil-kt.github.io/coil/) — 对 F-Droid 友好的 Apache 2.0 许可 +- **DataStore Preferences** — 应用设置 +- **Profile Installer 1.4.0 + Macrobenchmark** — 冷启动基准配置文件测量(在 TB320FC 上为 326ms) +- **测试**:JUnit + Robolectric + [Roborazzi](https://github.com/takahirom/roborazzi) 视觉回归测试(Linux 基准图,阈值 0.005) +- **CI**:GitHub Actions + GitLab CI — 独立构建与签名发布、launch-smoke、record-roborazzi + +--- + +## 🏗 架构 + +为了分离关注点并便于测试,Markleaf 采用如下分层结构。 + +```text +com.markleaf.notes +├── core # 共享核心逻辑:Markdown 处理、附件、同步 +├── data # Room 数据库、实体、Repository 实现(数据源) +├── domain # 模型、Repository 接口(业务逻辑) +├── feature # 各屏幕的 UI 与 ViewModel(表现层) +│ ├── editor # 编辑器、查找/替换、Wiki 链接补全、提示块、表格 +│ ├── notes # 笔记列表、快速切换、归档 +│ ├── search # FTS 全文搜索 +│ ├── tags # 标签索引 +│ ├── trash # 回收站 / 永久删除 +│ └── settings # 主题、同步文件夹、屏蔽截屏等 +├── navigation # Jetpack Compose Navigation 配置 +└── ui # 主题(Markleaf 绿 / Material You)、共享组件 +``` + +--- + +## 🚀 开始使用 + +### 安装 + +> [!NOTE] +> **Google Play 更新目前处于暂停状态。** 在个人开发者的韩国营业执照政策要求解决之前,新版本不会推送到 Play 商店。要获取当前版本,请使用 **GitHub Releases**。当 F-Droid 的构建跟上后,它仍是推荐的更新渠道。(如果你已从 Play 商店安装,应用会继续正常使用。) + +- **F-Droid** *(推荐,可自动更新)*:[F-Droid 上的 Markleaf](https://f-droid.org/packages/com.markleaf.notes/) — 在 F-Droid 客户端中搜索,或通过上面的链接安装。它的目录可能晚于 GitHub 发布;如果暂时还没有显示当前版本,请使用下面的 GitHub Releases。它使用相同的签名密钥(SHA-256 `0be97352…f91a`),因此即使你先侧载了 GitHub 的 APK,后续更新也能无缝衔接。 +- **直接安装 APK**:从 [GitHub v2.32.2 发布页](https://github.com/jeiel85/markleaf-android/releases/tag/v2.32.2) 下载 APK,然后在你的 Android 设备上运行。 +- **Google Play**:[Google Play 上的 Markleaf](https://play.google.com/store/apps/details?id=com.markleaf.notes) — **更新已暂停**(见上方说明)。如果你已经安装,它会继续可用;当前版本请用 GitHub Releases,或等 F-Droid 上架后使用 F-Droid。 + +### 从源码构建 +如果你想构建或参与贡献,请按以下步骤操作。 + +```bash +# 克隆仓库 +git clone https://github.com/jeiel85/markleaf-android.git + +# 进入项目目录 +cd markleaf-android + +# 构建并安装 +./gradlew installDebug +``` + +Markleaf 的缺陷修复大多始于别人的一份报告。写下这些报告的人都记录在 [THANKS.md](THANKS.md) 中。 + +--- + +## 🔒 No-Cloud by design + +Markleaf 自身从不访问网络。你的数据是否离开设备,*完全由你决定*。 + +- ✅ **没有** 声明 `android.permission.INTERNET` — Markleaf 自身不发起任何网络请求 +- ✅ **没有** Markleaf 服务器 / 后端 +- ✅ **没有** 分析 / 广告 / 跟踪 / 闭源 SDK +- ✅ `android:allowBackup="false"` — Markleaf 的数据被排除在 Android 自动备份 / 设备迁移之外 +- ✅ 只有当 *你* 导出、分享、打开外部链接或选择 SAF 文件夹时,数据才会经由系统路径移动 +- ✅ 完全开源,任何人都可依据 Apache 2.0 审查 + +“绝不离开你的设备”具体是如何做到的,记录在 [隐私政策](docs/PRIVACY.md) 和 [No-Cloud 认证](docs/NOCLOUD_CERTIFICATION.md) 中。 + +--- + +## 🗺 路线图 + +### v1.x — MVP +- [x] 基础的 Markdown 编辑与保存 +- [x] 基于标签的筛选与搜索 +- [x] 新的应用图标与品牌形象 +- [x] 实时 Markdown 预览与深色模式 +- [x] 高性能 SQLite FTS 搜索 +- [x] 平板双栏布局优化 +- [x] 单篇 / 全部笔记的 Markdown 导出 +- [x] v1.0.0 稳定版发布 + +### v2.x — Bear 级别的扩展(进行中) +- [x] **v2.3** CommonMark 解析器 — 提示块、GFM 删除线、任务列表、脚注、YAML frontmatter +- [x] **v2.4–2.5** Wiki 链接(`[[标题]]`)+ 自动补全 + 反向链接面板 +- [x] **v2.6** 图片附件 + 替代文本 + 灯箱 +- [x] **v2.7** SAF 文件夹镜像同步(委托给 Drive/Dropbox/Syncthing,仍然不需要 INTERNET) +- [x] **v2.8** Material You 切换 + 恢复 Markleaf 绿主题 +- [x] **v2.9** 屏蔽截屏选项,建立视觉回归测试(Roborazzi) +- [x] **v2.10** 代码块语法高亮(10 种语言) +- [x] **v2.11** 恢复 GFM 表格预览 +- [x] **v2.12** 快速切换(Ctrl+K) +- [x] **v2.13** 笔记内查找 / 替换 +- [x] **v2.14** 脚注引用 ↔ 定义的点击跳转 +- [x] **v2.15** F-Droid 提交稳定化与 no-cloud 文档 +- [x] **v2.16** 主屏幕小组件、生物识别锁、开源透明度、智能 Markdown 格式化 +- [x] **v2.17** 支持打开 / 分享方式导入外部 `.md`/`.txt` 文件,修复文件夹同步的重复笔记与标签识别问题 +- [x] **v2.18** 文件夹同步的文件以笔记标题命名(重命名会跟随)+ 可选 `.md`/`.txt` +- [x] **v2.19** 首次启动时提供六篇示例笔记 + PDF/Markdown 导出不再重复标题 +- [x] **v2.20** 键盘快捷键、`#标签` 自动补全、目录、衬线字体、平板三栏(标签侧栏 + 就地筛选)布局 +- [x] **v2.21** 预测式返回、更精致的过渡动画、列表/卡片动效、可折叠设备的标签栏、任务列表勾选 +- [x] **v2.22** `/` 快速插入命令,支持触摸与实体键盘选择,并提供六种语言的本地化菜单 +- [x] **Google Play 公开上架** — 任何人都可以从 Play 商店安装 + +--- + +## 📜 许可证 + +本项目基于 **Apache License 2.0** 授权。详情请参阅 `LICENSE` 文件。 + +--- + +

+ Made with ❤️ by Markleaf Team +

diff --git a/THANKS.md b/THANKS.md index facb8a3d..b9cfcfc5 100644 --- a/THANKS.md +++ b/THANKS.md @@ -15,6 +15,8 @@ the inside: a crash on a device I don't own, a language I don't read laying out backwards, a duplicate-file bug that only shows up when the same folder is opened by two apps. +## Reported + Listed by first report. | | Reported | @@ -42,6 +44,19 @@ Not every request here was accepted — a couple were declined, and saying no to thoughtful suggestion is its own kind of debt. Being told what you want from the app is useful whether or not it gets built, so those reports are listed too. +## Contributed + +A report describes the problem; a patch decides the answer. Translations are the +sharpest version of that, because they are the one contribution the maintainer +cannot actually check. I can diff the file, count the keys, and match the format +specifiers — I cannot tell you whether the words sound like something a person +would write. Those languages are in the app on someone else's judgement. + +| | Contributed | +|---|---| +| [@ALILEX-1](https://github.com/ALILEX-1) | [#294](https://github.com/jeiel85/markleaf-android/pull/294) — Simplified Chinese | + Reporting something new? [Issues](https://github.com/jeiel85/markleaf-android/issues) for bugs, [Discussions](https://github.com/jeiel85/markleaf-android/discussions) -for ideas and questions. +for ideas and questions. A translation, or a fix for one, is welcome as a pull +request. diff --git a/docs/index.de.html b/docs/index.de.html index d4bb656f..ca05f315 100644 --- a/docs/index.de.html +++ b/docs/index.de.html @@ -10,6 +10,7 @@ + @@ -19,6 +20,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.es.html b/docs/index.es.html index 4c70bf65..c16d48ef 100644 --- a/docs/index.es.html +++ b/docs/index.es.html @@ -10,6 +10,7 @@ + @@ -19,6 +20,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.fr.html b/docs/index.fr.html index 403d23aa..7b3f590a 100644 --- a/docs/index.fr.html +++ b/docs/index.fr.html @@ -10,6 +10,7 @@ + @@ -19,6 +20,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.html b/docs/index.html index b62510bf..d0b269fd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,6 +10,7 @@ + @@ -18,6 +19,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.ja.html b/docs/index.ja.html index 35e25cd2..3c7d4c12 100644 --- a/docs/index.ja.html +++ b/docs/index.ja.html @@ -10,6 +10,7 @@ + @@ -18,6 +19,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.ko.html b/docs/index.ko.html index dfa5fdea..0a9c2b1a 100644 --- a/docs/index.ko.html +++ b/docs/index.ko.html @@ -10,6 +10,7 @@ + @@ -18,6 +19,7 @@ + @@ -72,6 +74,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/index.zh.html b/docs/index.zh.html new file mode 100644 index 00000000..23d00302 --- /dev/null +++ b/docs/index.zh.html @@ -0,0 +1,336 @@ + + + + + + Markleaf — 留在你设备上的 Android Markdown 笔记 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Android · Markdown · Local-first

+

笔记留在设备上。
思考写成 Markdown。

+

无需账户和服务器即可快速书写,用标签串联想法,所有内容都以标准 .md 文件保存在你手里。

+ +

当前 v2.32.2 · 免费 · Apache-2.0

+ + Markleaf — Trendshift 当日 Kotlin 仓库第 1 名 + +
+ +
+
+ Markleaf 的实际界面,笔记列表与 Markdown 编辑器并排显示 +
+
+ LOCAL FILE + 我的笔记.md + plain text · portable +
+
Markleaf v2.23.0 的实际界面
+
+
+
+ +
+
+
+

当前版本

+ v2.32.2 + 发布于 2026-08-05 +
+
+

网络权限

+ 0 + 没有账户、分析、广告或跟踪 +
+
+

文件归属

+ .md + 导出与文件夹镜像 +
+
+
+ +
+
+
+

真实的写作流程

+

工具退到后面,
文字持续流动。

+

打开、书写、整理、查找、导出 — 全部在一台设备上自然衔接。

+
+ +
+
+

01 · 书写

+

语法活了起来,工具只在需要时出现。

+

Markdown 原文保持不变,标题和强调在编辑过程中依然清晰易读。一个小小的 Aa 按钮、随选区出现的操作,以及行首的 / 命令,让你在不弄乱屏幕的前提下添加格式。

+
    +
  • 实时 Markdown 与 CommonMark/GFM 预览
  • +
  • 13 种格式化操作与实体键盘快捷键
  • +
  • 表格、提示块与 Wiki 链接的快速插入
  • +
+
+
+ +
标签栏、笔记列表与编辑器同处一块平板屏幕。
+
+
+ +
+
+

02 · 整理与查找

+

在纠结文件夹之前,先打标签、建链接、做搜索。

+

正文里的 #标签 就是你的分类方式,SQLite FTS 搜索与快速切换让你在大量笔记之间也能迅速跳到下一个想法。

+
    +
  • 嵌套标签与按标签浏览笔记
  • +
  • Wiki 链接与反向链接
  • +
  • 置顶、归档与从回收站恢复
  • +
+
+
+ Markleaf 标签界面,显示多个标签以及每个标签下的笔记数量 +
思考的结构,从正文里的标签开始。
+
+
+ +
+
+

03 · 拥有与迁移

+

留下离开应用也能读的文件。

+

把所有笔记导出为标准 Markdown,或镜像到你自己选择的 SAF 文件夹。即使需要分享 PDF,原始的 .md 也原样保留。

+
    +
  • 单篇与全部笔记的 Markdown 导出
  • +
  • 镜像到你选择的文件夹
  • +
  • PDF 与 Android 系统分享面板
  • +
+
+
+
+ + Markleaf export +
+
notes/
+├─ 项目计划.md
+├─ 阅读记录.md
+└─ 会议记录.md
+
+# 项目计划
+
+- [x] 拟定大纲
+- [ ] 下一步
+
+#project #writing
+
UTF-8 · 纯 Markdown · 其他工具也能打开
+
+
+ +
+
+

04 · 沿用你自己的文件夹

+

直接指向你已经在用的 Markdown 文件夹。

+

Markleaf 没有自己的知识库格式。Obsidian、Logseq 或文本编辑器已经写好的文件会被直接当作笔记接管,而它们自带的 frontmatter 会原封不动地写回去。

+
    +
  • 接管现有的 .md 文件,而不是复制一份
  • +
  • 其他工具写入的 frontmatter 字段往返后依然保留
  • +
  • 只读取一层文件夹,不递归子目录 — Markleaf 用标签来整理
  • +
+ 指向真实知识库之前需要知道的事 +
+
+
+ + 你的文件夹 +
+
your-folder/
+├─ 阅读记录.md
+└─ 项目计划.md
+
+---
+tags: [reading]
+aliases: [log]
+markleaf_id: 7f3c…
+---
+
+# 阅读记录
+
你的字段照旧 · Markleaf 只加一个
+
+
+
+
+ +
+
+
+

Privacy by architecture

+

什么都不发送,
就是最清晰的保护。

+

Markleaf 本身不声明任何联网权限。笔记、标签、附件与设置都留在应用私有存储中,直到你自己决定把它们移出去。

+ android.permission.INTERNET = false + 阅读完整隐私政策 +
+ +
+
    +
  1. + 1 + 存储在设备上 +

    Room 数据库与应用私有的附件存储

    +
  2. +
  3. + 2 + 由你明确选择 +

    导出 · 分享 · SAF 文件夹

    +
  4. +
  5. + 3 + 沿着你选的路径移动 +

    没有 Markleaf 服务器或后端

    +
  6. +
+
+ Markleaf 的实际界面,显示一篇说明数据保留在设备上的笔记 +
应用本身就把数据的去向讲清楚。
+
+
+
+
+ +
+
+
+

安装

+

我们优先推荐
最透明的那条路径。

+

Markleaf 是一款免费的开源应用。请从 F-Droid 或 GitHub Releases 获取最新版本。

+
+ +
+ + + +
+
+
+
+ + + + diff --git a/docs/privacy.de.html b/docs/privacy.de.html index ee1d4d96..4d5d3bd6 100644 --- a/docs/privacy.de.html +++ b/docs/privacy.de.html @@ -9,6 +9,7 @@ + @@ -33,6 +34,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.es.html b/docs/privacy.es.html index ce181a05..6a6c122f 100644 --- a/docs/privacy.es.html +++ b/docs/privacy.es.html @@ -9,6 +9,7 @@ + @@ -33,6 +34,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.fr.html b/docs/privacy.fr.html index 43d0f4e9..d5354e73 100644 --- a/docs/privacy.fr.html +++ b/docs/privacy.fr.html @@ -9,6 +9,7 @@ + @@ -33,6 +34,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.html b/docs/privacy.html index c8f1bc75..777a890f 100644 --- a/docs/privacy.html +++ b/docs/privacy.html @@ -9,6 +9,7 @@ + @@ -33,6 +34,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.ja.html b/docs/privacy.ja.html index 72a24a45..83cb5345 100644 --- a/docs/privacy.ja.html +++ b/docs/privacy.ja.html @@ -9,6 +9,7 @@ + @@ -36,6 +37,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.ko.html b/docs/privacy.ko.html index a3deab05..99797bd0 100644 --- a/docs/privacy.ko.html +++ b/docs/privacy.ko.html @@ -9,6 +9,7 @@ + @@ -36,6 +37,7 @@ EN KO JA + ZH DE ES FR diff --git a/docs/privacy.zh.html b/docs/privacy.zh.html new file mode 100644 index 00000000..61663f8a --- /dev/null +++ b/docs/privacy.zh.html @@ -0,0 +1,105 @@ + + + + + + Privacy Policy - Markleaf + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Markleaf 隐私政策

+

最后更新:2026 年 5 月 26 日 · 适用于 Markleaf Android v2.x

+ +

核心原则

+

Markleaf 是一款本地优先的 Markdown 笔记应用。Markleaf 本身不具备 android.permission.INTERNET 权限,不运行任何自有服务器,也绝不会自动把笔记、标签、附件或元数据上传到任何外部服务器。

+ +

Markleaf 不收集的信息

+
    +
  • 姓名、电子邮件、通讯录、位置
  • +
  • 账户或登录信息
  • +
  • 笔记正文、标题、标签、附加图片、文件名、元数据
  • +
  • 使用统计、遥测数据、分析事件、广告标识符
  • +
  • 崩溃报告或设备标识符
  • +
+

应用中也不包含分析、广告、跟踪、远程配置、Firebase 或闭源的崩溃报告 SDK。

+ +

网络

+

Markleaf 不声明任何联网权限。

+
android.permission.INTERNET   none
+ +

数据存储位置

+
    +
  • 笔记正文、标题与标签索引存储在应用内部的 Room 数据库中。
  • +
  • 用户设置存储在 DataStore 中。
  • +
  • 附加的图片会复制到应用的内部存储,保存时会剥离敏感的 EXIF 元数据。
  • +
+ +

Android 系统备份策略

+

Markleaf 设置了 android:allowBackup="false",将应用数据排除在 Android 自动备份和设备间迁移之外。如果你需要更换新设备或在多台设备上使用,请自行选择 Markdown 导出、分享或 SAF 文件夹镜像。

+ +

由用户发起的数据移动

+

以下操作只有在你亲自执行时才会发生,并且都会经过 Android 的明确权限对话框或由你做出的界面选择。

+
    +
  • 将单篇或全部笔记导出为 Markdown(.md
  • +
  • 通过 Android 系统分享面板分享笔记文本或文件
  • +
  • 点击正文中的外部链接,交由系统或默认浏览器处理
  • +
  • 复制到剪贴板
  • +
  • 将 Markdown 文件镜像到你选择的 SAF 文件夹
  • +
+

SAF 文件夹是否会被 Drive、Dropbox、OneDrive、Syncthing 或 NAS 挂载等外部同步客户端同步,由那个外部应用负责。Markleaf 自身不执行该同步。

+ +

权限

+

Markleaf 声明的唯一运行时类权限是用于触感反馈的 android.permission.VIBRATE。它不声明位置、麦克风、摄像头、通讯录、通知、外部存储读取、媒体读取或网络权限。

+ +

联系方式

+

如有疑问或需要提交安全 / 隐私报告,请通过 GitHub Issues 与我们联系。

+
+
+ +
+

Markleaf · 一款轻量、本地优先的 Android Markdown 笔记应用。

+

首页 · GitHub · Apache-2.0

+
+ + diff --git a/docs/style.css b/docs/style.css index b7f2f331..b7c5b390 100644 --- a/docs/style.css +++ b/docs/style.css @@ -98,6 +98,7 @@ nav a:focus-visible, .lang-switch { align-items: center; display: flex; + flex-wrap: wrap; gap: 0.3rem; } diff --git a/scripts/verify-landing-versions.ps1 b/scripts/verify-landing-versions.ps1 index b30ee66b..cb7057b2 100644 --- a/scripts/verify-landing-versions.ps1 +++ b/scripts/verify-landing-versions.ps1 @@ -71,7 +71,7 @@ Write-Host "기대 버전: v$ExpectedVersion (app/build.gradle.kts versionName)" # ---- 랜딩 페이지 ---- $docsPath = Resolve-UnderRoot $DocsDir -$landingFiles = @("index.html", "index.ko.html", "index.ja.html", "index.de.html", "index.es.html", "index.fr.html") +$landingFiles = @("index.html", "index.ko.html", "index.ja.html", "index.zh.html", "index.de.html", "index.es.html", "index.fr.html") $releasePatterns = [ordered]@{ 'softwareVersion' = '"softwareVersion":\s*"([0-9]+\.[0-9]+\.[0-9]+)"' 'release-line' = 'class="release-line">[^<]*?v([0-9]+\.[0-9]+\.[0-9]+)' @@ -114,7 +114,7 @@ foreach ($file in $landingFiles) { } # ---- README ---- -$readmeFiles = @("README.md", "README.ko.md", "README.ja.md", "README.de.md", "README.es.md", "README.fr.md") +$readmeFiles = @("README.md", "README.ko.md", "README.ja.md", "README.zh.md", "README.de.md", "README.es.md", "README.fr.md") $releaseLinkPattern = '(?:releases/tag/|-/releases/)v[0-9]+\.[0-9]+\.[0-9]+' Write-Host "`nREADME ($($readmeFiles.Count)개)" @@ -197,16 +197,23 @@ if ($expectedDate) { # webp)로 바뀌었고 — 자동재생 GIF 는 `prefers-reduced-motion` 을 존중할 방법이 # 없고 방문당 ~930KB 였다 — README 는 GitHub 가 마크다운을 그대로 렌더하므로 # `