0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術資料で、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: &notify
script:
- pipe: atlassian/slack-notify:2.1.1
variables:
WEBHOOK_URL: $SLACK_WEBHOOK_URL
MESSAGE: "Markdown→LaTeX/PPTX ビルド完了 :rocket:"
→ 成果物の整合率が低いときだけ警告メッセージを送る仕組みにも拡張可能です。
✅ まとめ
項目 内容
ソース 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 関数呼び出し関係

CAN XL TX Call Graph
🧪 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通知
どれを次に拡張しましょうか?

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?