Skip to content
プロジェクト

jeiel85/markleaf-android

GitHubで見る

jeiel85/markleaf-android has 143 GitHub stars and 15 forks. GitHot measured +5 in 7 days. Last checked 2026-11-10 23:19 UTC. Last push 2026-11-03.

この数値の測り方

A lightweight, local-first Markdown note app for Android.

計測したスター増加

24時間
更新が遅れています
7日間
+5
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

README.ja.md

オリジナル

Markleaf

Markleaf Logo

軽やかに積もる思考、整然とした Markdown ノート
Android 向けのローカルファースト・ミニマルな Markdown メモアプリ

Platform Language UI License F-Droid Google Play GitHub stars GitHub forks

English · 한국어 · 日本語 · 简体中文 · Deutsch · Español · Français · Hrvatski · Русский · Tiếng Việt · Slovenčina

GitHub リポジトリ · Discussions(フィードバック) · GitLab ミラー(アーカイブ)

Markleaf のエディタで / を入力するとクイック挿入パレットが開き、チェックリストを選ぶと標準 Markdown が挿入され、プレビューに描画されます

/ クイック挿入 → 標準 Markdown → ライブプレビュー

タブレットの Markleaf: タグレール・ノート一覧・エディタが一画面に並び、表やチェックリスト、コールアウトを入力するとプレビューがそのまま描画します

タブレット3ペイン — タグレール · ノート一覧 · エディタが一画面に


🍃 Markleaf とは?

Markleaf は、余計なものをそぎ落とし「記録」と「整理」だけに集中できるよう設計された Android 向け Markdown メモアプリです。データは端末内にのみ保存され、標準 Markdown 形式によってデータの所有権と移植性が完全に保証されます。同期も あなたが選んだフォルダ を介してのみ行われ、Markleaf 自身が同期やアップロードを行うことはありません。

ブランディングページを見る · 現在のバージョン: v2.71.0 · プライバシーポリシー · F-Droid · Google Play


✨ 主な機能

作成 & プレビュー

  • / クイック挿入 — 行頭でコマンドを検索し、見出し、リスト、表、コールアウト、Wikiリンク、画像などを標準 Markdown として挿入
  • リアルタイム Markdown プレビュー — 編集とプレビューを即座に切り替え、または Show Markdown syntax オプションでライブのシンタックスカラーリング
  • GFM テーブル / チェックボックス / 引用 / コールアウト (> [!NOTE] …) — すべてプレビューに描画
  • コードブロックのシンタックスハイライト — Kotlin、Java、Python、JavaScript/TypeScript、Bash、JSON、YAML、XML、SQL の 10 言語をトークン単位で色分け
  • 脚注 ([^N]) の参照 ↔ 定義ジャンプ — 上付き文字をタップすると定義へスムーズにスクロール
  • 画像添付 + 代替テキスト編集 — アプリ内部ストレージに隔離されたコピーとして保管(メディア権限不要)
  • スマート Markdown フォーマットの切り替え — 選択範囲やカーソル周辺の単語を太字/斜体/取り消し線/インラインコードで囲み、すでに囲まれているテキストはもう一度タップして自然に解除
  • キーボードショートカット — ハードウェアキーボードで Ctrl/Cmd+B・I・K・Shift+S を押して太字・斜体・リンク・取り消し線
  • 目次(TOC) — プレビューモードで見出し(H1–H3)をタップし、長いノートの該当箇所へジャンプ
  • 書体の選択 — サンセリフ・セリフ・等幅、または自分で選んだ .ttf/.otf フォントファイル(端末内にのみ保存)。コードブロックは常に等幅
  • フォーカスモード / 単語・文字・読了時間の統計 / ノート内検索・置換

整理 & 探索

  • タグによる分類 + タグ補完 — 本文に #タグ を書くだけで自動インデックス、フォルダ不要。# を入力中に既存のタグを補完
  • Wikilinks ([[Title]]) + バックリンクパネル — オートコンプリート、どのノートがこのノートを参照しているか一目で把握
  • クイックスイッチャー (Ctrl+K) — Obsidian スタイルのタイトル部分一致ジャンプ
  • SQLite FTS による全文検索 — 本文まで高速に
  • ピン / アーカイブ / ゴミ箱 — ゴミ箱は完全削除の前にもう一度確認します

同期 & エクスポート(No-Cloud 原則)

  • フォルダミラー同期 — SAF で選んだフォルダ(Drive/Dropbox/Syncthing/OneDrive/NAS など)に各ノートを .md ファイルとしてミラーリング。Markleaf 自身が同期することはなく、同期は そのフォルダを同期する外部アプリ に委ねます
  • .md / .txt ファイルを開いて読む — ⋮ メニューの ファイルを開く…、またはファイルマネージャーでのタップで、レンダリングされた読み取り専用画面として開きます。ノートとして保存 を押すまでノートは作られません(保存時、見出しがなければファイル名がタイトルに)。他アプリから共有したファイルはこれまでどおりすぐに取り込みます。同期で入ってきたノートのタグもすぐに認識
  • 個別 / 全ノートの .md エクスポート
  • システムの共有シートで送信

デザイン & アクセシビリティ

  • Markleaf グリーンテーマ + Material You 切り替え — Android 12 以降ではシステム壁紙の色もオプション
  • 自動ダークモード — システム設定に追従
  • タブレット 3 ペインレイアウト — タグサイドバー · ノート一覧 · エディタ。サイドバーのタグをタップするとノート一覧をその場で絞り込み(ノート一覧は折りたたみ可能)
  • 11 言語 UI — 韓国語 / 英語 / スペイン語 / 日本語 / フランス語 / ドイツ語 / 簡体字中国語 / クロアチア語 / ロシア語 / ベトナム語 / スロバキア語のリソースを運用
  • スクリーンショット / 最近のアプリのプレビュー遮断オプション — 機密性の高いノート向け

🔗 すでにある Markdown フォルダをそのまま

Markleaf に独自のボルト形式はありません。フォルダを一つ指定すれば — Obsidian や Logseq、テキストエディタがすでに開いているフォルダでも — その中にあるファイルをそのまま扱います。

  • もとからあなたのものだった、ただのファイル。 ノート 1 つが .md(または .txt)ファイル 1 つです。既存のファイルをフォルダに置いておけば、次に Markleaf が前面に来たときノートとして取り込まれます — 取り込み操作は要りません。
  • あなたのフロントマターは残ります。 Markleaf は端末間でファイルとノートを対応づけるために小さな YAML ヘッダー(markleaf_id、タイムスタンプ、pinned/archived)を付け、自分が知らないものはすべて原文のまま書き戻します — Obsidian がタグを書くインデントされたブロックリスト、ネストしたマップ、コメントや引用符も含めてです。付けるヘッダーは Obsidian・GitHub・VS Code のいずれもが解釈できる標準 YAML の厳密な部分集合です。
  • いつも書いている記法のまま。 バックリンクパネル付きの [[ウィキリンク]]、本文に直接書く #タグ、GFM の表とチェックボックス、> [!NOTE] コールアウト、そして Obsidian 風の Ctrl+K クイックスイッチャー。
  • 自動で、しかし慎重に突き合わせます。 他所での変更は Markleaf が前面に戻ったとき(1 分に 1 回まで)取り込まれます。他のエディタが Markleaf のフロントマターに触れずに本文だけを直した場合でも気づきます — タイムスタンプだけでなく本文を比較しているからです。ファイルが実際に新しいときだけ反映され、両方が変わっていた場合は上書きせず 別のノート として取り込み、自動で削除されるものはありません。

[!IMPORTANT] 実際のボルトにつなぐ前に知っておくべき 2 点。

  • フォルダ 1 階層のみ、サブフォルダは見ません。 Markleaf は指定したフォルダの直下にあるファイルだけを読み、サブディレクトリには降りません。フォルダで整理されたボルトは最上位でしか噛み合いません — Markleaf は意図的にフォルダではなくタグで整理します。
  • ノートを編集するとファイル名が変わります。 ミラーのファイル名はノートのタイトルに追従するため、ファイル名が見出しと違う場合は Markleaf で最初に保存した時点で改名されます。ボルト内の [[リンク]] が旧ファイル名を指していれば、そのリンクは切れます。

ボルトが深く階層化されていたりリンクが多い場合は、Markleaf には 別の フォルダを指定し、ボルトを直接編集する 2 つ目のエディタではなく、後でマージするモバイル用の受信箱として使うのが無難です。


🛠 技術スタック

Markleaf は最新の Android 開発標準に準拠し、保守しやすいモダンなスタックを採用しています。

  • UI: Jetpack Compose + Material 3 + Material You ダイナミックカラー
  • アーキテクチャ: シンプルなレイヤー分離(core / data / domain / feature / ui)+ Repository パターン
  • データベース: Room — SQLite ベースのローカル永続化、FTS4 仮想テーブルで全文検索
  • Markdown パーサー: commonmark-java(CommonMark 0.30 + GFM 拡張: テーブル、取り消し線、task lists、脚注、YAML frontmatter、プレビューは単一の改行を空白ではなく改行として表示)
  • 非同期: Kotlin Coroutines & Flow
  • Storage Access Framework (SAF) — フォルダミラー同期 + 画像添付
  • 画像読み込み: Coil — F-Droid フレンドリーな Apache 2.0
  • DataStore Preferences — アプリ設定
  • Profile Installer 1.4.0 + Macrobenchmark — コールドスタートの baseline profile 計測(TB320FC で 326ms)
  • テスト: JUnit + Robolectric + Roborazzi ビジュアルリグレッションテスト(Linux ゴールデン、しきい値 0.005)
  • CI: GitHub Actions — build と instrumented tests が必須チェック、加えて launch-smoke、record-roborazzi、タグ時の署名済みリリース

🏗 アーキテクチャ

Markleaf は関心の分離とテスト容易性のため、次のレイヤー構造を採用しています。

com.markleaf.notes
├── core          # マークダウン処理、添付、同期などの共通コアロジック
├── data          # Room DB、エンティティ、Repository 実装(データソース)
├── domain        # モデル、Repository インターフェース(ビジネスロジック)
├── feature       # 画面ごとの UI と ViewModel(プレゼンテーション)
│   ├── editor    # エディタ、Find/Replace、Wikilink 補完、コールアウト、テーブル
│   ├── notes     # ノート一覧、クイックスイッチャー、アーカイブ
│   ├── search    # FTS による全文検索
│   ├── tags      # タグインデックス
│   ├── trash     # ゴミ箱 / 完全削除
│   └── settings  # テーマ、同期フォルダ、スクリーンショット遮断など
├── navigation    # Jetpack Compose Navigation の設定
└── ui            # テーマ(Markleaf green / Material You)、共通コンポーネント

🚀 はじめに

インストール方法

[!NOTE] 現在、Google Play での更新は一時保留中です。 個人開発者の韓国の事業者登録に関するポリシー要件が解決するまで、新しいバージョンは Play ストアに公開しません。最新リリースは GitHub Releases から入手してください。F-Droid のビルドが追いついた後は、F-Droid が推奨の更新経路です。(すでに Play ストアからインストール済みの場合はそのまま使えます。)

  • F-Droid (自動更新に推奨): Markleaf on F-Droid — F-Droid クライアントで検索するか、上のリンクから直接インストールできます。カタログへの公開は GitHub より遅れることがあるため、最新版がまだ表示されない場合は下の GitHub Releases を使ってください。同じ署名鍵(SHA-256 0be97352…f91a)を使用するため、最初に GitHub の APK をサイドロードしても更新は継続します。
  • APK の直接インストール: GitHub v2.71.0 リリースには APK が 2 つあります — markleaf-v2.71.0.apk は F-Droid/Play と同じビルド(自動更新なし、追加の権限なし)、markleaf-v2.71.0-sideload.apk はアプリ内での更新確認機能付きのビルドです(INTERNET、REQUEST_INSTALL_PACKAGES の権限が加わります)。アプリ内更新を使いたい場合は sideload 版をダウンロードして Android 端末で実行してインストールしてください — どちらも同じ署名鍵を使うため、後で入れ替えても再インストールではなく通常の更新として扱われます。
  • Google Play: Markleaf on Google Play — 更新は一時保留中です(上の注記を参照)。すでにインストール済みなら引き続き使えます。最新版は GitHub Releases、または反映後の F-Droid から入手してください。

開発環境の構築

自分でビルドしたり貢献したい場合は、次の手順に従ってください。

# リポジトリをクローン
git clone https://github.com/jeiel85/markleaf-android.git

# プロジェクトフォルダへ移動
cd markleaf-android

# ビルドとインストール
./gradlew installDebug

Markleaf のバグ修正は、その多くが誰かの報告から始まります。書いてくださった方々を THANKS.md に記録しています。


🔒 No-Cloud by design

Markleaf には独自のバックエンドがなく、ノートがひとりでに端末を出ることはありません。データを端末の外へ送るかどうかは 完全にあなたの選択 です。

  • ✅ ストア版(F-Droid、Google Play)は android.permission.INTERNET 権限を 宣言していません — ネットワークリクエストを一切行いません
  • ✅ Markleaf 独自のサーバー / バックエンドは ありません
  • ✅ 分析 / 広告 / トラッキング / クローズドな SDK は ありません
  • ✅ android:allowBackup="false" — Android 自動バックアップ / 端末間転送から Markleaf のデータを除外
  • ✅ データが OS の経路を通って移動するのは、あなたがエクスポート・共有・外部リンクを開く・SAF フォルダを選択したときだけ
  • ✅ 完全なオープンソース、Apache 2.0 ライセンスで誰でも監査可能

例外はこれひとつだけです。 GitHub Releases の APK は権限を2つ宣言します — INTERNET は 既定でオフのオプトイン式アップデート確認 用、REQUEST_INSTALL_PACKAGES は SHA-256 まで照合したうえで選んだアップデートをインストールするためのものです。F-Droid・Google Play 版にはどちらの権限もコードも — 無効化されているのではなく — そもそも含まれていません。 どのビルドでも、これらどのリクエストでも、ノート・タグ・添付・メタデータ・識別子・利用履歴が送信されることはありません。 この境界線は docs/AGENT_SPEC.md §15.9 に記されています。

「never leaves your device(端末から出ない)」が具体的にどう機能するかは、プライバシーポリシー と No-Cloud Certification にまとめられています。


🗺 ロードマップ

v1.x — MVP

  • 基本的な Markdown 編集と保存
  • タグによるフィルタリングと検索
  • 新しいアプリアイコンとブランディング
  • リアルタイム Markdown プレビューとダークモード
  • SQLite FTS による高性能検索
  • タブレット向け 2 ペインレイアウト最適化
  • 個別 / 全ノートの Markdown エクスポート
  • v1.0.0 正式リリース

v2.x — Bear クラスの拡張(現在)

  • v2.3 CommonMark パーサー導入 — コールアウト、GFM 取り消し線、task lists、脚注、YAML frontmatter
  • v2.4–2.5 Wikilinks ([[Title]]) + オートコンプリート + バックリンクパネル
  • v2.6 画像添付 + 代替テキスト + ライトボックス
  • v2.7 SAF フォルダミラー同期(Drive/Dropbox/Syncthing 委譲型、no INTERNET を維持)
  • v2.8 Material You 切り替え + Markleaf グリーンテーマ復元
  • v2.9 スクリーンショット遮断オプション、ビジュアルリグレッションテスト(Roborazzi)定着
  • v2.10 コードブロックのシンタックスハイライト(10 言語)
  • v2.11 GFM テーブルプレビュー復活
  • v2.12 クイックスイッチャー(Ctrl+K)
  • v2.13 ノート内の検索 / 置換
  • v2.14 脚注の参照 ↔ 定義クリックジャンプ
  • v2.15 F-Droid 提出の安定化と no-cloud ドキュメント整備
  • v2.16 ホーム画面ウィジェット、生体認証ロック、オープンソースの透明性、スマート Markdown フォーマット
  • v2.17 外部 .md/.txt ファイルの開く・共有取り込み、フォルダ同期の重複ノート・タグ認識の改善
  • v2.18 フォルダ同期のファイル名をノートのタイトルに(タイトル変更で追従)+ .md/.txt 選択
  • v2.19 初回起動時の6つのサンプルノート + PDF・Markdown 書き出しのタイトル重複を修正
  • v2.20 キーボードショートカット、#タグ 補完、目次(TOC)、セリフ書体、タブレット 3 ペイン(タグサイドバー + その場で絞り込み)レイアウト
  • v2.21 予測型戻る操作、画面・リスト・カードのモーション、折りたためるタブレットタグレール、チェックリスト切り替え
  • v2.22 / クイック挿入コマンド、タッチ・外部キーボード操作、6言語メニュー
  • Google Play 正式リリース — Play ストアで誰でもインストールできます

🌐 翻訳に協力する

Markleaf の翻訳の多くは、まだネイティブスピーカーの目を通っていません。お使いの言語で誤り・不自然な表現・途切れた文字があれば、コードに触れずに報告できます。

ファイルを直接編集したい場合は、CONTRIBUTING.md(英語)に対象ファイルとビルドの検査内容が書かれています。


📜 ライセンス

本プロジェクトは Apache License 2.0 の下でライセンスされています。詳細は LICENSE ファイルをご確認ください。


Made with ❤️ by Markleaf Team

関連プロジェクトを探す