Skip to content

ymnao/scripta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scripta

ローカルファイルベースの軽量 Markdown メモアプリケーション。 Obsidian のように任意のフォルダを「ワークスペース」として開き、Markdown ファイルを Live Preview 方式で編集できるデスクトップアプリ。

Tauri v2 版 を Electron へ全書き直しした版で、Chromium 固定環境による挙動の一貫性を重視している。初回リリースは v0.2.0

コンセプト

  • ローカルファースト — データはすべてユーザーのファイルシステム上の .md ファイル。独自フォーマットや DB は使わない
  • 挙動の安定性 — Electron + Chromium で全プラットフォーム共通の描画・動作
  • Live Preview — カーソル外の Markdown をその場でインライン描画し、Split Pane なしで「書く」と「見る」を同時に実現

移行の経緯

旧 scripta は Tauri v2 で実装されており、軽量バイナリ(~5MB)というメリットがある一方で、各 OS の WebView(macOS の WKWebView、Windows の WebView2、Linux の WebKitGTK)の差異に起因する挙動不安定が継続的に発生していた。

具体的には:

  • macOS プロダクションビルドでエディタが正しく表示されない
  • リンククリックで意図した動作にならない

Chromium 固定環境で挙動を安定させるため、バンドルサイズ(~80–150MB)増加を許容して Electron へ移行した。

技術スタック

レイヤー 技術 バージョン
デスクトップフレームワーク Electron v42
フロントエンド React + TypeScript React 19
エディタ CodeMirror 6 (@uiw/react-codemirror) v6
状態管理 zustand v5
スタイル Tailwind CSS v4
ビルド Vite + electron-vite Vite 8 / electron-vite 5
Lint / Format Biome v2
テスト Vitest + Playwright latest
パッケージング electron-builder latest
パッケージマネージャ pnpm v11+

インストール

Releases からプラットフォーム別のインストーラを取得できる(v0.2.0 から配布開始)。ソースから動作確認するには pnpm dev

配布バイナリは 未署名で出荷する方針(旧 Tauri 版同等)。macOS の Gatekeeper / Windows の SmartScreen による警告が出る場合は、各 OS の手順で手動で起動許可を行う。

開発

前提条件

  • Node.js >=22.13.0(pnpm 11 の要件、Vite 8 / electron-vite 5 / Vitest 4 はもう少し緩い)
  • pnpm >= 11

コマンド

# 依存のインストール
pnpm install

# 開発サーバー起動(Electron + Vite HMR)
pnpm dev

# プロダクションビルド
pnpm build

# 配布用パッケージング
pnpm dist

# lint / format
pnpm lint
pnpm format

# 型チェック
pnpm typecheck

# テスト(ユニット)
pnpm test

# テスト(e2e)
pnpm test:e2e

ドキュメント

ライセンス

MIT

About

Electron-based local Markdown notes app (旧 Tauri 版の Electron 完全書き直し)

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages