Skip to content

Repository files navigation

yome

ci npm version License: MIT

English | 日本語

yomek1LoW/mo の Node.js 移植版です。.md ファイルをブラウザで開き、保存と同時にライブリロードして表示する Markdown ビューアです。

オリジナルの Go 実装の挙動を尊重しつつ、npm から npx で気軽に呼び出せるよう Node.js + React で書き直しています。

上流同期状態: mo v1.6.3 (2026-06-26) 相当まで取り込み済み。

特徴

  • 高速: v1.8.0 で全面的に最適化。CLI 起動 ~3 倍、検索コア 2〜13 倍、ブラウザ初期ロード JS 削減 (minify −42% / gzip 転送 −49%)、再読み込み時の JS 再転送ゼロ (ブラウザキャッシュ有効時) など (詳細は PERFORMANCE.md)
  • ライブリロード: ファイルを保存するとブラウザが即座に再レンダリング
  • 単一サーバー方式: 既定ポート 6275 を共有し、後続の yome 呼び出しは既存セッションにファイルを追加する
  • グループ (タブ): --target で名前付きグループに分け、URL とサイドバーを分離
  • Watch モード: ディレクトリや glob パターンを監視し、新規ファイルも自動で取り込む (パターンだけが残った空グループには解除コマンドのヒントを表示)
  • stdin 入力: パイプから渡した Markdown もその場でレンダリング
  • セッション復元: サーバー停止後も次回起動時に開いていたファイルを自動で復元
  • リッチなレンダリング:
    • GitHub Flavored Markdown
    • Mermaid 図 (フローチャート、シーケンス、ガント、Git グラフなど)
    • KaTeX 数式
    • Shiki によるシンタックスハイライト
    • GitHub Alerts (> [!NOTE] など)
    • フロントマター対応

必要要件

  • 実行 (CLI): Node.js >= 20.10.0
  • 開発 (frontend のビルド / テスト): Node.js ^20.19.0 || >= 22.12.0 (Vite 8 の要件)

インストール

# グローバルインストール
npm install -g @kongyo2/yome

# あるいは都度実行
npx @kongyo2/yome README.md

使い方

# 単一ファイルを開く
yome README.md

# 複数ファイルと glob
yome README.md CHANGELOG.md docs/*.md

# 名前付きグループで開く (URL 例: http://localhost:6275/design)
yome spec.md --target design

# ポート変更
yome draft.md --port 6276

# stdin から読む
cat notes.md | yome
some-command | yome --target output

# ディレクトリを再帰的に watch
yome -w -R docs/

サーバー操作

yome --status              # 起動中の yome サーバー一覧を表示 (orphan backup も検出)
yome --shutdown            # 起動中の yome サーバーをすべて停止 (--port 指定時はそのポートのみ)
yome --restart             # 状態を保ったまま再起動 (--port 指定時はそのポートのみ)
yome --clear               # 保存済みセッションを破棄 (確認プロンプトあり)
yome --clear --yes         # スクリプト / CI から非対話で破棄 (-y でも可)
yome --close path/to.md    # 指定ファイルだけグループから外す
yome --unwatch docs/       # watch パターンを解除

# 単発の ad-hoc プレビュー (前回 session を復元せず、今回の内容も backup に残さない)
yome SKILL.md --no-restore-session

--shutdown は次回起動でセッションを復元できるよう backup を残します。本当に忘れさせたい場合は --clear を使ってください。--status は backup だけが残っている (log は消えている) port を (saved session backup only) と表示します。

主なオプション

オプション 説明
-t, --target <name> グループ名 (既定: default)
-p, --port <number> ポート番号 (既定: 6275)
-b, --bind <addr> バインドアドレス (既定: localhost)
-w, --watch ディレクトリ / glob を watch パターンとして登録
-R, --recursive サブディレクトリも再帰的に対象にする
--open / --no-open ブラウザの自動オープン制御
--no-restore-session port のセッション backup を読み書きしない
--foreground サーバーをフォアグラウンドで動かす
--json 出力を JSON 形式で標準出力に流す
-y, --yes 確認プロンプトを自動 yes (--clear など)
--dangerously-allow-remote-access 非ループバックバインド時の警告を抑止

yome --help で全オプションが確認できます。

セキュリティ

  • サーバーは既定で localhost にのみバインドされます。非ループバックアドレスへのバインドは認証なしでファイルを公開するため、確認プロンプトと --dangerously-allow-remote-access による明示的な同意が必要です。
  • 状態を変更するすべての HTTP API (ファイル追加 / 削除 / 移動 / アップロード / watch パターン / shutdown / restart) は、ブラウザからのクロスサイトリクエストを Sec-Fetch-Site / Origin ヘッダーで検証して拒否します。

ライセンス

MIT License。

詳細は LICENSE を参照してください。

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages