本ドキュメントは、Markdown と Pandoc によるドキュメント発行のサンプル、運用方法およびノウハウをまとめたものである。
日本語と英語を同一の Markdown に記載できる。
発行する際に、それぞれの言語別タグを切り替えて処理を行うことから、成果物は単一言語向けとすることができる。
特殊タグで囲わない限り、 Markdown はニュートラル言語として扱われ、日英双方の成果物に含まれる。
以下のタグで囲うことにより、それぞれの言語別の成果物にのみ表示される。
<!--ja:
日本語 (編集プレビューで非表示状態)
:ja-->
<!--ja:-->
日本語 (編集プレビューで表示状態)
<!--:ja-->
<!--en:
English Hidden in Markdown
:en-->
<!--en:-->
English Visible in Markdown
<!--:en-->編集時の表示・非表示は、発行後の表示状態に影響しない。
English Hidden in Markdown
English Visible in Markdown
以下の Visual Studio Code 拡張機能により、編集時の言語切替作業の効率化が可能。
文章に詳細情報を記載する場合は以下のタグを利用する。
<!--details:
詳細 (編集プレビューで非表示状態)
:details-->
<!--details:-->
詳細 (編集プレビューで表示状態)
<!--:details-->編集時の表示・非表示は、発行後の表示状態に影響しない。
以下の Visual Studio Code 拡張機能により、編集時の詳細切替作業の効率化が可能。
\toc コマンドを使用して、指定された階層以下の Markdown ファイルから自動的にインデックス (目次) を生成できる。
\toc現在のディレクトリにある Markdown ファイルのインデックスを生成する。
\toc depth=1 exclude="temp.md" exclude="draft/*"depth=0: 現在のディレクトリのみ (デフォルト)depth=1: 現在のディレクトリ + 1階層下までdepth=2: 現在のディレクトリ + 2階層下までdepth=-1: 制限なし (全階層を掘り下げ)\toc exclude="temp.md" # 単一ファイル除外
\toc exclude="draft/*" # パターン除外
\toc exclude="temp.md" exclude="draft/*" # 複数除外"README.md": 特定ファイル"draft/*": ディレクトリ配下全て"*.tmp": 拡張子による除外# タイトル がフォルダの表示名として使用される\toc depth=-1 による実際の出力例を以下に示す。
dot.exe 自動展開 (同梱 Graphviz) 仕様extern と実体の理解画像を図として挿入する場合、[ ] による図のタイトルを Markdown に記載する。
Pandoc にて、タイトルが定義されていない画像は図として扱われず、書式が設定されないため。
PlantUML は各プラグインとの親和性を考慮し、以下の通り Markdown に記載する。
plantuml とする。
puml は使用しない。
@startuml @enduml は必ず記載する。
PlantUML プラグインにて、ドキュメント内の PlantUML を出力する際の識別に使いるため。
@startuml に続いてファイル名を記載する。
Visual Studio Code の PlantUML プラグインにて、エクスポートする際のファイル名に使いられる。
また、上記とは別に caption キーワードにてタイトルを記載する。
PlantUML の図の見出しとして使いられる。
Pandoc での発行時には図のキャプションとなる。
背景色は、pandoc 側で透明にしている。
skinparam backgroundColor transparent を自動付与している。
すでに skinparam backgroundColor が定義されている場合は、置換する。
以下の Chrome 拡張機能により、GitBucket での PlantUML 図形のレンダリングが可能。
企業内のイントラネット環境等で利用する場合、PlantUML サーバの指定を必ず行うこと。
Mermaid 記法について、以下の通り Markdown に記載する。
Mermaid と PlantUML は実現できることが重複する。PlantUML を優先して採用すること。
コードブロックのファイル名として記載する。
draw.io は各プラグインとの親和性を考慮し、以下の通り Markdown に記載する。
Markdown から引用して用いるため、drawio.svg とする。
Markdown から引用して表示した場合には代表シートのみ表示されるため、1 つの drawio.svg ファイルには複数シートを定義しない。
原則、drawio.svg ファイルは、Markdown から参照する。
単一ファイルとしての drawio.svg ファイルは、docx フォーマットや html-self-contained フォーマットの出力結果には含まれない。
docx 変換後に Text is not SVG - cannot display と表示されるケースがある。これは draw.io が .svg の高度な機能 (foreignObject) を利用しているためである。
Why text in exported SVG images may not display correctly
この問題を回避するため、テキスト記入時は以下とする。
Draw.io Integration プラグインを使用している場合は、hediet.vscode-drawio.simpleLabels の設定を行うことでデフォルトの動作を変更する。
この設定を行っても、.svg へのエクスポート時の挙動が変わるのみで .drawio.svg ファイルの挙動は変わらないため、上記テキストの属性設定を行う必要がある。
Draw.io Integration のテーマを loght テーマ (例: kennedy - light) に変更する。
Visual Studio Code ステータスエリア (右下) の Theme: 部分をクリックすることで、拡張機能の設定を経由せずにテーマの変更ができる。
OpenAPI ファイルは、widdershins により Markdown に変換後、Pandoc に渡される。
現段階で、AsyncAPI の発行は未サポート。
AsyncAPI 1.0 形式については、widdershins により変換できる可能性があるが未検証。
Markdown 内のリンクは、.html や .docx への変換時も維持される。
echo "Hello"Debug.WriteLine("Test");
Debug.WriteLine("日本");列幅の指定方法 により、ページ幅に収まらなかった場合の列幅を指定できる。
表に続いて、Table: または : を記載して表のキャプションを指定する。
| No. | 内容 |
|---|---|
| 1 | てすと |
| 2 | テスト |
| 3 | Test |
| No. | 内容 |
|---|---|
| 1 | てすと |
| 2 | テスト |
| 3 | Test |
セル内に改行を挿入する場合は、<br /> を使用する。
| No. | ヘッダ1行目 ヘッダ2行目 |
|---|---|
| 1 | 内容1 内容2 |
| 2 | テスト |
| 3 | Test |
以下の形式 (Markdown pipe tables) も Pandoc ではサポートされる。
ただし、Markdown Preview Enhanced プラグインでのプレビューは現時点で非サポートのため、編集時の使い勝手を判断して使用すること。
Table: support grid tables
| Distance (km) |
Time (s) |
|---|---|
| 12 | 34 |
| 56 | 78 |
| L1 | L2 and L3 | |
|---|---|---|
| L2 | L3 | |
| AAA | BBB | CCC |
| DDDDD | ||
| EEEEE | FFF | |
| GGG | ||
Markdown の先頭に以下のように記載する。
---
author:
- author <- 「作成者」プロパティ
- author2 <- 複数人定義可能
subject: "subject" <- 「件名」プロパティ
description: "description" <- 「コメント」プロパティ
abstract-title: "Abstract" <- 「概要タイトル」プロパティ
abstract: "概要" <- 「概要」プロパティ
---
docx 変換時に改ページを挿入したい場合は、\newpage を挿入する。
これは 1 つ目のパラグラフです。
これは 2 つ目のパラグラフです。
bin/styles 以下にカスタマイズされた Pandoc テンプレートがある。
pandoc -D 'html' コマンドで出力されたデフォルトテンプレートに置き換えることで、デフォルトの出力に変更できる。
pandoc -o custom-reference.docx --print-default-data-file reference.docx コマンドで出力したサンプルを Word テンプレート形式 (.dotx) で出力したものに置き換えることで、デフォルトの出力に変更できる。
図の幅はページサイズおよび余白に基づいて Pandoc で調整される。とじしろ (w:gutter) は考慮されないため、とじしろを定義した場合は図の横幅が期待通りとならない。テンプレート作成時は留意すること。
→ Pandoc 3.1.6 より、ページ設定の余白のとじしろが反映されていないバグが修正された。Gutters on margin specs not picked up from custom-reference.docx (HTML to .docx) #8946
成果物は、/docs 配下に、言語別、フォーマット別に生成される。