The shared notes had no way out: everything lived in the SQLite row and the
only reader was the panel itself. Add two export endpoints and buttons for
them at the bottom of the note panel.
GET /api/notes/{page_id}/export returns one page as .md, and
GET /api/notes/export returns every page as a zip laid out as
<section>/<NN>_<title>.md. Pages are not concatenated into a single file on
purpose - the headings inside a page would collide with whatever heading
level we used as a page separator, so each page stays a verbatim file and the
numeric prefix carries the tab order instead.
Titles reach the filesystem here, so strip the Windows-forbidden characters
and control characters, cap the length, and send Content-Disposition with an
RFC 5987 filename* so Japanese titles survive. The front end deliberately
omits the anchor's download attribute to let that name win.
notes store: flush() now returns a promise so the download can wait for
pending edits to be saved before asking the server for the file.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5.0 KiB
共有ノートの使い方
ユーザーとAIが同じノートを一緒に編集できる機能。ページをタブで切り替え、関連するページ同士は
セクションでグループ化できる。実装の詳細は docs/architecture.md の「共有ノート」節、
API 仕様は docs/api.md の「共有ノート」節を参照。
開き方
画面右上ヘッダーの 「ノート」 ボタンをクリックすると、右側にノートパネルが開く。 もう一度クリックすると閉じる。
ページの操作
| 操作 | 方法 |
|---|---|
| ページを開く | タブをクリック |
| ページを新規作成 | タブ列右端の + をクリック(末尾に「新しいページ」が追加される) |
| タイトルを変更 | タブをダブルクリックすると入力欄になるので書き換えて Enter(または欄外をクリック) |
| ページを削除 | タブ内の × をクリック(確認ダイアログあり) |
| 本文を編集 | ページを開いた状態で下の編集エリアに直接入力 |
| ページを1つ保存 | パネル下部の ⬇ このページ (.md) をクリック |
| 全ページを保存 | パネル下部の ⬇ すべて (.zip) をクリック |
本文は入力を止めてから少し待つと自動保存される。保存待ちの間はタブに ●(未保存マーク)が付く。 ページが1つも無い場合は「+ 最初のページを作成」から始められる。
手元にダウンロードする
パネル下部の ⬇ ボタンでノートをファイルとして保存できる。未保存の編集があっても、 保存してから書き出すので取りこぼしはない。
| ボタン | 出てくるもの |
|---|---|
| ⬇ このページ (.md) | 開いているページの本文そのままの Markdown ファイル。ファイル名はページのタイトル |
| ⬇ すべて (.zip) | 全ページをまとめた ZIP。1 ページ 1 Markdown で、セクションはフォルダになる |
ZIP の中のファイル名には 01_, 02_ … と通し番号が付く。タブの並び順を残すためで、
展開したときも画面と同じ順番で並ぶ。ファイル名に使えない文字(/ や : など)は _ に置き換わる。
複数ページを 1 つのファイルに連結せず ZIP にしているのは、ページ内の見出し(#)が
ページ間の見出しと混ざって階層が壊れるのを避けるため。
セクションでまとめる
複数のページを1つのグループとしてタブ上にまとめられる。
| 操作 | 方法 |
|---|---|
| ページをセクションに入れる | タブにマウスを乗せると出てくる 🏷 をクリックし、セクション名を入力 |
| セクション名を変更する | セクションのラベル(タブ群の左上に表示される名前)をクリックし、新しい名前を入力 |
| セクションを解除する | 🏷 またはセクションラベルをクリックした際、名前を空欄にして確定 |
同じセクションに入れたページは、タブ列上で必ず隣り合って表示される (新しくセクションに追加したページは、そのセクションの末尾に自動的に移動する)。 セクション名を変更すると、そのグループに属する全ページのラベルが一括で変わる。
タブをドラッグで動かす
タブはドラッグ&ドロップでも操作できる(🏷 やセクションラベルのクリックと同等の結果になる)。
| 操作 | 方法 |
|---|---|
| 同じグループ内で順番を変える | タブを掴んで、移動先のタブの左半分/右半分にドロップ(左=そのタブの前、右=後ろに入る) |
| 別のセクションへ移動する | 移動先のセクション内のタブにドロップ(そのタブと同じセクションに入る) |
| セクションから外す | 未分類のタブにドロップ、またはタブ列の一番右(+ボタンの手前の細い枠)にドロップ |
ドラッグ中はドロップ位置に青い線が表示される。タイトル編集中(ダブルクリックで入力欄になっている間)のタブはドラッグできない。
AIとの連携
- 全ページのタイトル一覧は、会話のたびに自動でAIに渡される(セクションがあれば見出し付きで)。 ただし本文はここには含まれない。
- AIは
read_noteツールでページ本文を読み、write_noteツールで追記・置き換え・新規ページ作成ができる。 「ノートに書いておいて」「〇〇について記録して」のように頼むと、AIが該当ページを判断して書き込む。 - AIがノートを書き換えると、開いているノートパネルは自動的に最新の内容へ更新される。
- 自分が編集中(未保存)のページは、AIの更新で上書きされない。