mdslide

Markdown 規約 v1

---
title: 資料タイトル          # 表紙
subtitle: 副題              # 表紙 2行目(任意)
author: 開発本部            # 表紙(任意)
date: 2026-09-02            # 表紙(任意)
agenda: once                # once | per-section | none(既定 once)。章(#)が無いと出ない。見出しは Agenda
numbering: chapter          # chapter (1, 1.1) | flat(本文を通しで 1, 2, 3。章も 1, 2…)| none(既定 chapter)
layout: text                # text | 2col。本文の既定レイアウト(任意)
master: corporate.pptx      # 保管フォルダ内のマスター名。省略時は資料フォルダの master.pptx → 設定の既定。none で使わない
fontSize: 18                # 本文の既定フォントサイズ(pt)。省略時はマスターの bodyStyle、無ければ 18
imageMaxPx: 2000            # 貼り付け画像の長辺上限(px)。0 で無効
maxLines: 12                # 旧互換。指定すると行数固定で判定する
---

# 章タイトル                 → 中表紙。アジェンダの項目にもなる。直下に書いた本文は中表紙の本文枠に出る
## 本文タイトル {img=1/2 side=right}   → 本文スライド。属性は Pandoc 形式
- 箇条書き(2スペース字下げで階層)
- **太字**`コード` のみインライン対応

![キャプション](images/fig.png)   → 画像。img= も layout= も無ければ画像右 1/2(img=1/2 side=right)

---                          → 本文内の明示的なページ分割。タイトルに (1/2) が付く

エディタ操作

操作 内容
画像を貼り付け / ドロップ images/ に保存し、カーソル位置に参照を挿入
Ctrl-Space(: に続けて入力可) スニペット :body :section :2col :img :imgfull :table :note :split
]] / [[(Vim の Normal) 次 / 前のスライド見出しへ
⌘S(Windows / Linux は Ctrl-S。エディタで)/ :w(Vim) 開いている Markdown を保存(1.5 秒後に自動保存もされる)
⌘⇧C / サムネイル右クリック 表示中スライドの参照 deck.md:行 をコピー。プレビュー下の参照チップは画像パスも。コンソールのシェルが動いていれば「コンソールへ」で直接貼れる
↑ / ↓(K / J) サムネイル一覧にフォーカスがあるとき、前 / 次のスライドを選ぶ(エディタも追従)
⌥↑ / ⌥↓ 選んだスライドを上 / 下へ 1 つ移動(ドラッグと同じ moveBlock。章は中身ごと、章は章を単位に動く)
サムネイルをドラッグ ブロック(見出し 1 つ分)を移動。自動分割された (2/N) 以降のタイルも取っ手になり、掴むとブロック全体が動く。章(#)は章の間にだけ落ちる: 別の章の途中に重ねるとその章の末尾(線は最後のスライドの下)、章見出しの上半分なら手前。落とせない場所では線が出ない(src/model/dnd.tsdropTarget)。ドラッグ中は一緒に動くスライド全部が薄くなり、ドラッグ像は「2. 現状 ほか 2 枚」のような枚数付きのラベル(movingSlides
区切り線をドラッグ サムネイル幅とエディタ幅を変える。settings.jsonnavigator.width / editor.width に記憶
アイコンにポインタを重ねる 説明とショートカットが出る(Tab で移動したときも)。data-tip を持つ要素に Tooltips が表示する

本文量とフォントサイズ

プレビューに出るマスターの要素(ADR-0017)

エディタのガイド

画像レイアウト

見出し属性で指定する。layout= とは独立で、img= があれば画像スライドになる。

## 構成図 {img=3/4 side=left}
属性 既定
img 1/1 3/4 1/2(コンテンツ幅から間隔 3% を引いた幅に対する画像枠の幅。1/1 は全幅) 画像がある見出しは 1/2
side left right right

配置規則(src/layouts/geometry.ts、単位はスライド幅):

旧記法 layout=img-left|img-right|img-full|img-top は読み取り互換(それぞれ 1/2左、1/2右、1/1、1/1)。

レイアウト id とマスター側レイアウト名

種別 マスターのレイアウト名 プレースホルダ
text Body-Text title, body
image (img=) Body-Text title, body(本文枠はツールが位置変更)
2col Body-2col title, body, body

Cover: title(ctrTitle), subTitle。Agenda: title, body。Section: title, body(任意)。

本文を入れる枠は、body / obj のうち面積の大きいもの(2col は大きい 2 つを左から。表紙はサブタイトルを先に使う)。プレビュー、本文量の見積もり、書き出しで同じ規則を使う(ADR-0023)。Body-2col が無いマスターでは、2col の本文を Body-Text の本文枠にまとめて入れる。

コンソール(端末)

中央ペイン下はこのフォルダで開いた本物の端末。バーで選んだ CLI ツール(Claude Code / Codex CLI / Gemini CLI / Aider / GitHub Copilot CLI / Cursor Agent / OpenCode がプリセット、PATH 前提)がシェル起動時に自動で立ち上がる(「起動」で手動)。自動起動の切り替えと、ツールの名前・コマンド・引数の編集・追加は設定(⌘,)の「ツール」で行う。設定はすべて ~/.config/mdslide/settings.jsonXDG_CONFIG_HOME があればその下。MDSLIDE_CONFIG で変更可。ブラウザ版は localStorage)。設定シートの「settings.json を開く」から開ける。手で編集した内容はウィンドウにフォーカスが戻った時に反映される。

設定(⌘,)

アプリの設定は設定シートに集約する(ADR-0014)。一般(外観: 自動 / ライト / ダーク)、エディタ(Vim キーバインド、ペイン幅を既定に戻す)、マスター(保管フォルダの変更・Finder で表示、取り込み、見本を取り込む、既定、削除、本文枠とヘッダ・フッタの重なりの警告)、書き出し(Python と python-pptx の状態、Python の場所、入れ方。起動時にも確認し、使えなければ案内を出す。ADR-0019)、ツール(CLI ツール、自動起動)。入口はツールバーの歯車、⌘,、アプリメニュー「設定…」、コンソールバーの歯車(ツールのタブ)、ツールバーのマスターのアイコン(マスターのタブ)、Python の案内の「入れ方を見る」(書き出しのタブ)。Esc で閉じる。資料側の設定(この資料のマスター、レイアウト、文字サイズ)は Markdown に書かれるものなのでメイン画面に残す。コンソールバーの「起動するツール」の選択は、起動操作の一部としてメイン画面に残す(ADR-0024)。

メモから資料へ(下書き)

  1. 「下書き」(⌘I)に口語で書く。notes/日付-時分秒.md(例 notes/2026-09-07-140509.md)に自動保存。ファイルはエディタ以外にドロップすると notes/ に入る(エディタに落とした画像は images/ に入り、参照が挿入される)
  2. コンソールでツールを起動し、「整形して deck.md に」。渡す材料はチェックで選べる(未選択なら全部)
  3. 「図を統一テーマで生成」で ![TODO ...]()theme.json の配色の PNG になる。tools/mdslide_draw.py(matplotlib が必要)のフロー・ベン図・柱・サイクル・マトリクス・年表が使われる
  4. 「前の版に戻す」で AI に渡す直前の Markdown に戻る(.mdslide/history/。版が残るのは下書きのボタンから頼んだときだけ)

フォルダに自動生成されるもの:AGENTS.md(規約、無いときだけ作る)、CLAUDE.md@AGENTS.md の 1 行、無いときだけ作る)、theme.json(マスターから、同期)、tools/mdslide_draw.py(同期)、notes/