技術資料で、markdownで書いて、Latexに変換するのと、markdownからpowerpointのアウトラインを生成しています。LatexとPowerPointの間の変換方法または相互整合性のチェック方法で、おすすめはありますか。
非常に良い質問です。Markdownを中心に LaTeX(論文・技術報告書)と PowerPoint(発表資料)を両立させたいという要件は、研究開発現場でもよくあります。
以下に、変換方法・相互整合性チェック・おすすめツール群を体系的に整理します。
🧩 全体構成イメージ
Markdown
├──→ LaTeX(論文・報告書) ←→ 整合性チェック
└──→ PowerPoint(発表資料) ←→ 整合性チェック
Markdownを共通のソースとし、
LaTeX と PowerPoint 双方へ派生生成するのが理想的です。
🪄 推奨アプローチ 1:Pandoc ベース統合変換
✅ ツール
Pandoc
pandoc-crossref(図表番号対応)
pandoc-filters(スライド変換調整)
✅ 変換フロー例Markdown → LaTeX
pandoc main.md -o main.tex --pdf-engine=xelatex --filter pandoc-crossref
Markdown → PowerPoint
pandoc main.md -o slides.pptx --reference-doc=template.pptx
✅ 整合性チェック方法
メタデータ同期
Markdownの冒頭にYAMLヘッダを書く:
title: "技術資料タイトル"
author: "Kiyoshi Ogawa"
date: 2025-11-03
version: "v1.2"
→ LaTeX/PPTXどちらにも同じタイトル・バージョンが反映される。
Pandoc JSON AST 比較
pandoc -t json main.md > main.json
このAST(抽象構文木)をLaTeX・PPT出力と比較し、
セクション構造のズレを自動チェック可能。
自動整合性検証スクリプト例構造比較 (節構成)
pandoc main.md -t json | jq '.blocks[] | select(.t=="Header") | .c[1]'
🪶 推奨アプローチ 2:プレゼン重視(BeamerとPPTXの整合)
✅ 方法
Markdown → LaTeX Beamer(スライド形式)
Markdown → PowerPoint(同一構成)
pandoc slides.md -t beamer -o slides.tex
pandoc slides.md -t pptx -o slides.pptx
✅ 整合性チェック
同一Markdown内の # や --- 区切りが同数であることをCIでチェック。
pandoc -t native slides.md でセクション数を数え、
PPTXのスライド枚数と比較。
🧪 相互整合性チェックを自動化するには
項目 方法
タイトル・日付・著者 YAMLメタデータ統一
セクション構造 Pandoc JSON比較 or ASTダンプ
図表キャプション pandoc-crossref で同一参照ラベル
数式整合性 Markdown内を
$...$ または $$...$$
に統一
バージョン管理 Gitタグ or CIで自動ビルド比較
出力の差分確認 diffpdf(LaTeX PDF) + python-pptx解析
🧠 応用:整合性ダッシュボードの作成例
CI/CD(GitHub Actionsなど)で以下を実行:
Markdown → LaTeX → PDF
Markdown → PPTX
JSON AST構造を出力
構造差異を jq で比較
結果を Markdownレポート(整合率%)として生成:整合率を算出する例
python check_structure_consistency.py main.json slides.json
⚙️ 代替または補助ツール
ツール 用途
Marp Markdown → PowerPoint互換HTMLスライド(VSCode連携)
Typst Markdown + 数式から直接PDF生成(LaTeXより高速)
RMarkdown Markdown → PDF/Beamer/PowerPoint(統一Rエコシステム)
python-pptx PowerPoint生成をPythonで完全制御(自動変換テスト用)
🧾 まとめ
目的 おすすめ手法
文書重視(論文・報告書) Pandoc + LaTeX(XeLaTeX)
発表重視 Pandoc + PowerPoint / Marp
双方整合性チェック Pandoc AST比較 + YAMLメタデータ統一
自動検証・CI連携 GitHub Actions + jq/python-pptx
希望があれば、
👉 「Markdown → LaTeX + PowerPoint + 整合性チェック」用の具体的スクリプト(bash + Python版)
を作成して提供することもできます。
作りますか?
はい。
了解しました 👍
では、以下に 「Markdown → LaTeX + PowerPoint + 整合性チェック」 の完全自動スクリプトを提示します。
このセットは CI/CD対応・ローカルでも実行可能 で、
1つの .md ファイルをソースとして、
LaTeX(PDF用)
PowerPoint(発表用)
整合性レポート(JSON+テキスト)
を生成します。
🧩 ディレクトリ構成例
project/
├── main.md
├── template.pptx
├── check_consistency.py
├── build.sh
└── output/
├── main.tex
├── slides.pptx
├── structure.json
└── consistency_report.txt
🧰 前提条件(インストール)
sudo apt install pandoc jq python3-pip
pip install python-pptx
※ macOS の場合:
brew install pandoc jq
pip install python-pptx
🧾 main.md(例)
title: "技術資料サンプル"
author: "Kiyoshi Ogawa"
date: 2025-11-03
version: "v1.0"
# はじめに
この資料はMarkdownから自動生成されています。
## システム概要
- LaTeX用PDFとPowerPoint用スライドを共通ソースから生成
- 整合性チェックも自動で実施
# 技術詳細
ここに式なども書けます:
$$ E = mc^2 $$
---
# まとめ
共通Markdownでドキュメント整合を維持できます。
⚙️ build.sh
#!/bin/bash
set -e
SRC="main.md"
OUT_DIR="output"
mkdir -p "$OUT_DIR"
echo "=== Markdown → LaTeX (PDF) ==="
pandoc "$SRC" -o "$OUT_DIR/main.tex" --pdf-engine=xelatex --filter pandoc-crossref
echo "=== Markdown → PowerPoint ==="
pandoc "$SRC" -o "$OUT_DIR/slides.pptx" --reference-doc=template.pptx
echo "=== AST構造出力 ==="
pandoc "$SRC" -t json > "$OUT_DIR/structure.json"
echo "=== 整合性チェック ==="
python3 check_consistency.py "$OUT_DIR/structure.json" "$OUT_DIR/slides.pptx" > "$OUT_DIR/consistency_report.txt"
echo "✅ 生成完了:"
ls -1 "$OUT_DIR"
🧮 check_consistency.py
import sys, json
from pptx import Presentation
def extract_markdown_structure(json_file):
"""Markdownの構造をJSON ASTから抽出"""
with open(json_file, "r", encoding="utf-8") as f:
data = json.load(f)
headers = []
for b in data.get("blocks", []):
if b.get("t") == "Header":
level, _, content = b["c"]
text = "".join([x["c"] for x in content if x["t"] == "Str"])
headers.append((level, text))
return headers
def extract_ppt_structure(ppt_file):
"""PowerPointのスライドタイトル一覧を取得"""
prs = Presentation(ppt_file)
titles = []
for i, slide in enumerate(prs.slides):
title_shape = next((s for s in slide.shapes if s.has_text_frame), None)
if title_shape:
text = title_shape.text.strip().split("\n")[0]
if text:
titles.append((1, text)) # 仮にHeader level=1扱い
return titles
def compare_structures(md_headers, ppt_titles):
"""構造比較結果を返す"""
md_set = set(h[1] for h in md_headers)
ppt_set = set(t[1] for t in ppt_titles)
missing_in_ppt = md_set - ppt_set
missing_in_md = ppt_set - md_set
report = []
report.append(f"Markdown Headers: {len(md_headers)}")
report.append(f"PowerPoint Slides: {len(ppt_titles)}")
report.append(f"共通項目: {len(md_set & ppt_set)}")
if missing_in_ppt:
report.append("\n⚠️ PPTに欠落しているMarkdown項目:")
for m in missing_in_ppt:
report.append(f" - {m}")
if missing_in_md:
report.append("\n⚠️ Markdownに存在しないPPT項目:")
for m in missing_in_md:
report.append(f" - {m}")
consistency = (len(md_set & ppt_set) / max(len(md_set), 1)) * 100
report.append(f"\n整合率: {consistency:.1f}%")
return "\n".join(report)
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python check_consistency.py structure.json slides.pptx")
sys.exit(1)
md_headers = extract_markdown_structure(sys.argv[1])
ppt_titles = extract_ppt_structure(sys.argv[2])
print(compare_structures(md_headers, ppt_titles))
🧪 実行結果例
$ bash build.sh
=== Markdown → LaTeX (PDF) ===
=== Markdown → PowerPoint ===
=== AST構造出力 ===
=== 整合性チェック ===
✅ 生成完了:
main.tex
slides.pptx
structure.json
consistency_report.txt
consistency_report.txt の内容例:
Markdown Headers: 4
PowerPoint Slides: 4
共通項目: 4
整合率: 100.0%
🧠 発展的な拡張案
目的 手法
CI連携 GitHub Actionsで build.sh を定期実行
差分監視 git diff main.md 時に再ビルド
出力PDF比較 diffpdf output/main.pdf old/main.pdf
自動Slack通知 整合率 < 90% のとき通知
多言語対応 YAMLメタデータに lang: ja/en を追加して分岐生成
もしご希望があれば、
このスクリプトを Docker化(pandoc + python + latex入り)して
どのマシンでも一発実行できるようにしたテンプレートも用意できます。
➡️ Docker版テンプレートも作成しましょうか?
はい。
素晴らしいです。
では続いて、今の Markdown → LaTeX + PowerPoint + 整合性チェック自動化 スクリプトを
Docker対応版テンプレート としてまとめます。
これにより、どのPC・CI環境でも docker run 一発で同じ結果が再現できます。
🐳 Docker対応テンプレート構成
project/
├── Dockerfile
├── build.sh
├── check_consistency.py
├── main.md
├── template.pptx
└── output/
🧰 1. Dockerfile==== Pandoc + LaTeX + Pythonベース環境 ====
FROM pandoc/core:3.1
# LaTeX, jq, python-pptx を追加
RUN apt-get update && apt-get install -y \
texlive-xetex \
texlive-latex-recommended \
texlive-fonts-recommended \
jq \
python3-pip \
&& pip install python-pptx \
&& apt-get clean
WORKDIR /workspace
# スクリプト群をコピー
COPY . .
# 出力ディレクトリを確保
RUN mkdir -p /workspace/output
# 実行エントリポイント
ENTRYPOINT ["bash", "build.sh"]
⚙️ 2. build.sh
#!/bin/bash
set -e
SRC="main.md"
OUT_DIR="output"
mkdir -p "$OUT_DIR"
echo "=== Markdown → LaTeX (PDF) ==="
pandoc "$SRC" -o "$OUT_DIR/main.tex" --pdf-engine=xelatex --filter pandoc-crossref
echo "=== Markdown → PowerPoint ==="
pandoc "$SRC" -o "$OUT_DIR/slides.pptx" --reference-doc=template.pptx
echo "=== AST構造出力 ==="
pandoc "$SRC" -t json > "$OUT_DIR/structure.json"
echo "=== 整合性チェック ==="
python3 check_consistency.py "$OUT_DIR/structure.json" "$OUT_DIR/slides.pptx" > "$OUT_DIR/consistency_report.txt"
echo "✅ 生成完了: $OUT_DIR"
ls -1 "$OUT_DIR"
🧮 3. check_consistency.py
import sys, json
from pptx import Presentation
def extract_markdown_structure(json_file):
with open(json_file, "r", encoding="utf-8") as f:
data = json.load(f)
headers = []
for b in data.get("blocks", []):
if b.get("t") == "Header":
level, _, content = b["c"]
text = "".join([x["c"] for x in content if x["t"] == "Str"])
headers.append((level, text))
return headers
def extract_ppt_structure(ppt_file):
prs = Presentation(ppt_file)
titles = []
for slide in prs.slides:
title_shape = next((s for s in slide.shapes if s.has_text_frame), None)
if title_shape:
text = title_shape.text.strip().split("\n")[0]
if text:
titles.append((1, text))
return titles
def compare_structures(md_headers, ppt_titles):
md_set = set(h[1] for h in md_headers)
ppt_set = set(t[1] for t in ppt_titles)
missing_in_ppt = md_set - ppt_set
missing_in_md = ppt_set - md_set
report = []
report.append(f"Markdown Headers: {len(md_headers)}")
report.append(f"PowerPoint Slides: {len(ppt_titles)}")
report.append(f"共通項目: {len(md_set & ppt_set)}")
if missing_in_ppt:
report.append("\n⚠️ PPTに欠落しているMarkdown項目:")
for m in missing_in_ppt:
report.append(f" - {m}")
if missing_in_md:
report.append("\n⚠️ Markdownに存在しないPPT項目:")
for m in missing_in_md:
report.append(f" - {m}")
consistency = (len(md_set & ppt_set) / max(len(md_set), 1)) * 100
report.append(f"\n整合率: {consistency:.1f}%")
return "\n".join(report)
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python check_consistency.py structure.json slides.pptx")
sys.exit(1)
md_headers = extract_markdown_structure(sys.argv[1])
ppt_titles = extract_ppt_structure(sys.argv[2])
print(compare_structures(md_headers, ppt_titles))
🧾 4. main.md(サンプル)
title: "技術資料サンプル"
author: "Kiyoshi Ogawa"
date: 2025-11-03
version: "v1.0"
# はじめに
この資料はDocker環境内で自動生成されます。
## システム概要
- Markdown → LaTeX → PDF
- Markdown → PowerPoint
- 整合性チェック自動化
---
# 結論
共通ソースで資料整合性を維持できます。
🧰 5. template.pptx(任意)
PowerPointの基本テンプレート(デザイン指定ファイル)。
空のPowerPointファイル(フォント設定だけでもOK)を template.pptx として配置。
🚀 実行手順
1️⃣ イメージビルド
docker build -t md-sync .
2️⃣ 変換実行
docker run --rm -v $(pwd):/workspace md-sync
3️⃣ 出力結果
output/ ディレクトリに以下が生成されます:
output/
├── main.tex
├── slides.pptx
├── structure.json
└── consistency_report.txt
📊 consistency_report.txt(出力例)
Markdown Headers: 3
PowerPoint Slides: 3
共通項目: 3
整合率: 100.0%
🧠 応用: CI/CD連携(GitHub Actions例)
name: Markdown Sync Build
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t md-sync .
- name: Run consistency check
run: docker run --rm -v ${{ github.workspace }}:/workspace md-sync
- name: Upload output artifacts
uses: actions/upload-artifact@v4
with:
name: documentation-output
path: output/
✅ まとめ
要素 内容
変換 Markdown → LaTeX + PPTX
整合性 Pythonスクリプトで構造比較
環境 Docker完全封じ込め
再現性 どのOSでも同じ結果
拡張 GitHub ActionsなどCIにも対応
ご希望であれば次のステップとして:
PDFも自動生成(XeLaTeXで)
整合性結果をSlackやTeamsに通知
diff検出時だけ再生成
といった拡張も可能です。
どの方向に拡張したいですか?
bitbucketへの登録を拡張してください。
了解しました ✅
次は、この Markdown → LaTeX + PowerPoint + 整合性チェック自動化(Docker対応) プロジェクトを
Bitbucketに登録してCI/CDで自動ビルド・チェックを回す拡張 を行います。
以下に、手順 + 実例構成 + bitbucket-pipelines.yml を完全版として整理します。
🧩 目的
要素 内容
ソース管理 Bitbucket(Gitリポジトリ)
自動処理 Bitbucket Pipelines
実行内容 Dockerイメージ内で Pandoc変換 + 整合性チェック
成果物 LaTeX, PPTX, 整合レポートを自動生成・成果物として保存
📁 ディレクトリ構成(Bitbucket向け)
project/
├── Dockerfile
├── build.sh
├── check_consistency.py
├── main.md
├── template.pptx
├── bitbucket-pipelines.yml
└── output/ ← CIで生成・アップロード
🧰 1. Bitbucketリポジトリ作成
1️⃣ Bitbucket Cloud で新規作成:
👉 「Create repository」 →
Repository name: md-sync-docs
Access level: Private or Public
2️⃣ ローカルから登録:
git init
git add .
git commit -m "Initial commit: Markdown→LaTeX/PPTX pipeline"
git branch -M main
git remote add origin https://bitbucket.org//md-sync-docs.git
git push -u origin main
⚙️ 2. bitbucket-pipelines.yml
以下をルートに配置します:
image: docker:latest
options:
size: 2x # LaTeX変換のメモリを確保
pipelines:
default:
- step:
name: Build & Consistency Check
services:
- docker
caches:
- docker
script:
- echo "=== Build Docker Image ==="
- docker build -t md-sync .
- echo "=== Run Consistency Check ==="
- docker run --rm -v $(pwd):/workspace md-sync
artifacts:
- output/**
branches:
main:
- step:
name: Release Artifacts
services:
- docker
script:
- docker build -t md-sync .
- docker run --rm -v $(pwd):/workspace md-sync
artifacts:
- output/**
🧠 3. 成果物(Artifacts)の確認
CIが走ると、自動的に以下が成果物として保存されます:
output/
├── main.tex
├── slides.pptx
├── structure.json
└── consistency_report.txt
Bitbucket の “Pipelines → Artifacts” から直接ダウンロード可能です。
🧮 4. ビルド確認(ローカル手動テスト)
Pipelinesを回す前に、手元で確認:
docker build -t md-sync .
docker run --rm -v $(pwd):/workspace md-sync
→ output/ に成果物が生成されていればOKです。
🧾 5. パイプラインの仕組み(図解)
Bitbucket (main.md)
│
├─► Pipelines triggers
│ │
│ ├─ docker build (pandoc, latex, python)
│ ├─ run build.sh
│ │ ├─ main.md → main.tex
│ │ ├─ main.md → slides.pptx
│ │ ├─ check_consistency.py
│ │ └─ consistency_report.txt
│ │
│ └─ Save artifacts (output/)
│
└─► Artifacts → ダウンロード可能
🔒 6. オプション:認証付きプッシュ & 保護設定
✅ Bitbucket Personal Access Tokenを使う場合
git remote set-url origin https://@bitbucket.org//md-sync-docs.git
環境変数で CI に渡すなら:
Settings → Pipelines → Repository variables
BITBUCKET_TOKEN : 個人アクセストークン
BITBUCKET_USERNAME : あなたのユーザー名
📣 7. 通知オプション(拡張)
Bitbucket Pipelines → Slack通知を設定:
definitions:
steps:
- step: ¬ify
script:
- pipe: atlassian/slack-notify:2.1.1
variables:
WEBHOOK_URL: $SLACK_WEBHOOK_URL
MESSAGE: "Markdown→LaTeX/PPTX ビルド完了
"
→ 成果物の整合率が低いときだけ警告メッセージを送る仕組みにも拡張可能です。
✅ まとめ
項目 内容
ソース Markdown(共通)
出力 LaTeX, PPTX, 整合レポート
実行環境 Docker(Pandoc + Python + LaTeX)
CI/CD Bitbucket Pipelines
成果物保存 Bitbucket Artifacts
拡張 Slack通知・タグビルド・自動PDF出力も可能
次に、もし希望される場合:
✅ PDF出力も自動化(XeLaTeXビルドまで)
✅ 整合性レポートをHTMLダッシュボード形式で出力
✅ SlackまたはTeams通知連携
のいずれかを組み込み可能です。
どの方向の拡張を希望しますか?
対象が、ソースコードの場合の、doxygenとgraphvizを使ったソースコードの呼び出し関係の資料を作りたいです。
素晴らしい方向性です 🔧
つまり、これまでの「Markdown → LaTeX / PowerPoint / 整合性チェック」に加え、
対象がソースコード(C/C++など)の場合に、Doxygen + Graphviz を使って呼び出し関係や構造図を自動生成
したい、ということですね。
この目的に最適な構成は、次のようになります👇
🧩 全体アーキテクチャ
src/ ← ソースコード
├── canxl_tx.c
├── canxl_rx.c
└── canxl_crc.c
docs/
├── Doxyfile
├── build_docs.sh
├── main.md
├── Dockerfile
├── check_consistency.py
└── output/
├── html/
├── latex/
├── diagrams/
├── slides.pptx
└── consistency_report.txt
ポイント:
Doxygen がコード解析・Graphviz(dot)で関数呼び出し関係を自動描画
Pandocで Markdown ⇨ LaTeX / PowerPoint
すべて Docker・Bitbucket Pipelinesで自動実行可能
⚙️ 1. Doxygen + Graphviz 自動生成設定
Doxyfile(主要設定抜粋)
Project
PROJECT_NAME = "CAN XL Source Documentation"
OUTPUT_DIRECTORY = output
GENERATE_LATEX = YES
GENERATE_HTML = YES
GENERATE_XML = NO
GENERATE_TREEVIEW = YES
Input
INPUT = ../src
FILE_PATTERNS = *.c *.h
RECURSIVE = YES
Graphviz
HAVE_DOT = YES
DOT_PATH = /usr/bin
DOT_GRAPH_MAX_NODES = 200
CALL_GRAPH = YES
CALLER_GRAPH = YES
CALL_GRAPH_DEPTH = 3
DOT_IMAGE_FORMAT = svg
DOT_TRANSPARENT = YES
DOT_CLEANUP = YES
これにより、各関数に対して以下が自動生成されます:
canxl_tx.c 内の関数呼び出し関係:call_graph_canxl_tx.svg
ファイル間の依存関係グラフ:files_dependencies.svg
🐳 2. Dockerfile(Doxygen + Graphviz + Pandoc統合)
FROM pandoc/core:3.1
RUN apt-get update && apt-get install -y
doxygen graphviz texlive-xetex texlive-latex-recommended
texlive-fonts-recommended jq python3-pip
&& pip install python-pptx
&& apt-get clean
WORKDIR /workspace
COPY . .
RUN mkdir -p /workspace/output
ENTRYPOINT ["bash", "build_docs.sh"]
🧾 3. build_docs.sh(全自動ビルド)
#!/bin/bash
set -e
echo "=== 1. Doxygen (with Graphviz) ==="
doxygen docs/Doxyfile
echo "=== 2. Markdown → LaTeX / PowerPoint ==="
pandoc docs/main.md -o docs/output/main.tex --pdf-engine=xelatex
pandoc docs/main.md -o docs/output/slides.pptx --reference-doc=docs/template.pptx
echo "=== 3. Markdown構造出力 ==="
pandoc docs/main.md -t json > docs/output/structure.json
echo "=== 4. 整合性チェック ==="
python3 docs/check_consistency.py docs/output/structure.json docs/output/slides.pptx > docs/output/consistency_report.txt
echo "=== 5. 生成結果 ==="
ls -1 docs/output
🧮 4. 呼び出し関係図のサンプル(Graphviz)
Doxygenが自動で生成する .dot ファイルは /output/html/ 内に保存されます。
手動で確認する場合は:
dot -Tsvg output/html/canxl_tx_callgraph.dot -o output/diagrams/canxl_tx_callgraph.svg
📈 生成イメージ(呼び出し関係):
+-------------+ calls +-------------+
| canxl_tx() | ───────────→ | canxl_crc() |
+-------------+ +-------------+
🧠 5. 呼び出し関係 + ドキュメント統合フロー
src/*.c ─┐
│ (Doxygen)
▼
HTML / LaTeX / SVG
│
├──→ docs/output/html/
│
└──→ Markdown(main.md)
├── includes call graph images
├──→ LaTeX
└──→ PowerPoint
Markdown内で生成画像を自動挿入することも可能です:
CAN XL TX 関数呼び出し関係
🧪 6. Bitbucket Pipelines連携
image: docker:latest
pipelines:
default:
- step:
name: Build Docs (Doxygen + Pandoc)
services:
- docker
script:
- docker build -t canxl-docs .
- docker run --rm -v $(pwd):/workspace canxl-docs
artifacts:
- docs/output/**
→ CI実行後に docs/output/html/ にHTML、output/slides.pptx にPPT資料が生成され、
Bitbucket Artifactsからダウンロード可能。
📊 7. 出力成果まとめ
出力物 説明
output/html/ Doxygen HTMLドキュメント
output/latex/ Doxygen LaTeX(論文・報告用)
output/diagrams/*.svg 関数呼び出し・依存関係図
output/main.tex Markdown由来LaTeX文書
output/slides.pptx 発表資料
output/consistency_report.txt 構造整合性レポート
🧩 8. 応用:コード構造からPPTスライドを自動生成
関数単位のセクションを自動スライド化する例:
doxygen -g
生成された XML 出力を有効化
sed -i 's/GENERATE_XML *= NO/GENERATE_XML = YES/' Doxyfile
→ XML解析して Pandoc/PPTXスライドに反映可能
(Pythonで関数名やコメントを抽出 → Markdown化 → Pandocで変換)
✅ まとめ
機能 使用技術
ソースコード解析 Doxygen
呼び出し関係図 Graphviz (dot)
文書整形 Markdown + Pandoc
出力形式 HTML / LaTeX / PPTX
CI/CD Bitbucket Pipelines
実行環境 Docker(再現性100%)
もし次に希望する方向があるなら、以下から選べます👇
関数単位にMarkdownを自動生成してスライド化(コードドキュメント→発表資料)
Doxygen+Graphvizで生成された図を自動的にMarkdownへ埋め込むスクリプト
BitbucketのPipelinesで、整合率が低い場合にSlack通知
どれを次に拡張しましょうか?