Show HN: Ferrite – Rust製のMarkdownエディタでネイティブのMermaidダイアグラムレンダリングをサポート
96日前原文(github.com)
概要
Ferriteは、Rustとeguiで構築された高速・軽量なテキストエディタ。
Markdown、JSON、YAML、TOMLファイルの多機能編集に対応。
Windows向けに主に開発・テストされており、Linux/macOSも利用可能。
AIによる自動生成コードを活用し、最新技術を体験可能。
GitHubでインストール・貢献ができ、多彩な機能と拡張性を提供。
Ferrite 概要
- Rustとeguiによるネイティブ・レスポンシブなテキストエディタ
- Markdown、JSON、YAML、TOMLのマルチフォーマット対応
- Windows優先開発、Linux・macOSもサポート(未検証部分あり)
- すべてのコード・ドキュメントはAI(Claude/Anthropic)生成
- プロダクト指向、AI開発の学習・実験プロジェクト
主な機能
- WYSIWYG Markdown編集:ライブプレビュー、クリック編集、シンタックスハイライト
- 多形式サポート:Markdown、JSON、YAML、TOMLのネイティブ編集
- ツリービューア:JSON/YAML/TOMLを階層表示、インライン編集、パスコピー
- 検索・置換:正規表現対応、ハイライト付き
- Undo/Redo:タブごとに完全サポート
- 分割ビュー:生テキスト+プレビューを同時表示、リサイズ可能
- Zenモード:集中執筆用、中央寄せ表示
- 同期スクロール:生テキストとプレビュー間で双方向同期
エディタ機能
- シンタックスハイライト:40以上の言語に対応
- コードフォールディング:見出し・コードブロック・リストの折りたたみ指標
- ミニマップ:VS Code風ナビゲーションパネル、クリックジャンプ・検索ハイライト
- 括弧マッチング:()[]{}<>や強調記号の対応強調表示
- 自動保存:一時ファイル安全機能付き、設定可能
- 行番号表示:オプションで切り替え
- MermaidJSダイアグラム:11種類の図をプレビュー内でネイティブ描画
最新リリース情報
- v0.2.2:安定性・CLI強化、CJKフォント対応、Undo/Redo改善、コマンドラインファイルオープン、ログレベル・初期表示設定追加
ワークスペース機能
- ワークスペースモード:フォルダ/ファイルツリー、クイックスイッチャー、全文検索
- Git連携:変更・追加・未追跡・無視ファイルの状態表示
- セッション保持:タブ・カーソル・スクロール位置を再起動時に復元
追加機能
- ライト/ダークテーマ:実行時切替対応
- ドキュメントアウトライン:大規模文書のアウトラインパネル
- エクスポート:HTML書き出し、HTMLコピー
- フォーマットツールバー:太字・斜体・見出し・リスト・リンク等のショートカット
- ライブパイプライン:JSON/YAMLをシェルコマンドにパイプ可能
- カスタムウィンドウ:枠なしウィンドウ・独自タイトルバー・リサイズ対応
インストール方法
-
GitHub Releasesから各OS向けバイナリをダウンロード
- Windows: ferrite-windows-x64.zip
- Linux: ferrite-editor_amd64.deb(推奨)、ferrite-linux-x64.tar.gz
- macOS: ferrite-macos-x64.tar.gz
-
Linux .debパッケージ
sudo apt install ./ferrite-editor_amd64.debでインストール/usr/bin/ferriteに配置、デスクトップエントリ・関連付け・アイコン自動登録
-
Arch Linux
- AURパッケージ ferrite / ferrite-bin
- 例:
yay -Sy ferriteまたはyay -Sy ferrite-bin
-
tar.gz利用
tar -xzf ferrite-linux-x64.tar.gz展開後、./ferrite実行
-
ソースビルド
- Rust 1.70+ 必須(rustup.rsからインストール)
- Windows: Visual Studio Build Tools 2019+
- Linux: build-essential, pkg-config, libgtk-3-dev, libxcb-shape0-dev, libxcb-xfixes0-dev など
- macOS: xcode-select --install
- ビルド手順
git clone https://github.com/OlaProeis/Ferrite.gitcd Ferritecargo build --release- バイナリは
target/release/配下
使い方
- 起動:
cargo run --releaseまたはビルド済みバイナリ実行 - ファイル指定起動:
./ferrite path/to/file.md - 複数ファイルタブ:
./ferrite file1.md file2.md - ワークスペース(フォルダ)起動:
./ferrite path/to/folder/ - バージョン表示:
./ferrite --version - ヘルプ表示:
./ferrite --help - CLI詳細:docs/cli.md参照
ビューモード
- Raw:プレーンテキスト編集+ハイライト
- Rendered:WYSIWYGプレビュー編集
- Split:生テキストとプレビューの同時表示
- 切り替え:ツールバーまたはショートカット使用
主なキーボードショートカット
-
ファイル操作
- Ctrl+N:新規作成
- Ctrl+O:開く
- Ctrl+S:保存
- Ctrl+Shift+S:名前を付けて保存
- Ctrl+W:タブを閉じる
-
ナビゲーション
- Ctrl+Tab:次のタブ
- Ctrl+Shift+Tab:前のタブ
- Ctrl+P:クイックファイル切替
- Ctrl+Shift+F:全文検索
-
編集
- Ctrl+Z:Undo
- Ctrl+Y / Ctrl+Shift+Z:Redo
- Ctrl+F:検索
- Ctrl+H:検索と置換
- Ctrl+B:太字
- Ctrl+I:斜体
- Ctrl+K:リンク挿入
-
表示
- F11:全画面切替
- Ctrl+,:設定
- Ctrl+Shift+[:すべて折りたたみ
- Ctrl+Shift+]:すべて展開
設定
-
保存場所
- Windows:
%APPDATA%\ferrite\ - Linux:
~/.config/ferrite/ - macOS:
~/Library/Application Support/ferrite/ - ワークスペース設定は
.ferrite/フォルダ内
- Windows:
-
設定パネル
- Ctrl+, またはギアアイコンからアクセス
- 外観:テーマ、フォントファミリ、サイズ
- エディタ:ワードラップ、行番号、ミニマップ、括弧マッチング、コードフォールディング、シンタックスハイライト
- ファイル:自動保存、履歴
今後のロードマップ・貢献
- ROADMAP.mdで開発予定・既知課題を公開
- 貢献歓迎:CONTRIBUTING.md参照
- クイックスタート
- Fork/Clone
- ブランチ作成・変更・ビルド・テスト
- コミット・プッシュ
技術スタック
- Rust 1.70+
- GUI:egui 0.28 + eframe 0.28
- Markdown:comrak 0.22
- シンタックスハイライト:syntect 5.1
- Git連携:git2 0.19
- CLIパース:clap 4
- ファイルダイアログ:rfd 0.14
- クリップボード:arboard 3
- ファイル監視:notify 6
- ファジーマッチ:fuzzy-matcher 0.3
ライセンス・謝辞
- MITライセンス
- 主要ライブラリ:egui, comrak, syntect, git2, Inter, JetBrains Mono
- 開発支援ツール:Claude (Anthropic), Cursor, Task Master
Ferriteの特徴まとめ
- 高速・軽量な起動、約15MBバイナリ
- 即時起動、大規模ファイルにも最適化
- Windows/Linux/macOS対応
- ネイティブMermaidダイアグラム描画
- GitHubで最新版・詳細情報・貢献募集
- https://github.com/OlaProeis/Ferrite
フィードバック・今後の展望
- v0.2.2以降、大規模ファイル対応のパフォーマンス改善予定
- ユーザーからのフィードバック歓迎