[{"data":1,"prerenderedAt":650},["ShallowReactive",2],{"content-/ppt-master-extract-svg-parts":3,"all-pages-for-dir":648,"og-image-/ppt-master-extract-svg-parts":649},{"id":4,"title":5,"body":6,"category":630,"description":631,"extension":632,"meta":633,"navigation":585,"ogImage":634,"path":635,"project_name":634,"published":636,"publishedAt":637,"seo":638,"stem":639,"tags":640,"todo":646,"unpublished":636,"updatedAt":634,"__hash__":647},"pages/2026-07/2026-07-01/ppt-master-extract-svg-parts.md","PPT Masterを読んだので、SVG配布スキルに移植する部分だけ拾った",{"type":7,"value":8,"toc":615},"minimark",[9,13,17,55,58,65,68,136,139,142,230,236,239,242,246,335,339,398,401,404,407,516,519,530,534,537,543,562,568,571,574,612],[10,11,5],"h1",{"id":12},"ppt-masterを読んだのでsvg配布スキルに移植する部分だけ拾った",[14,15,16],"h2",{"id":16},"結論を先に",[18,19,20,38,41,48],"ul",{},[21,22,23,32,33,37],"li",{},[24,25,31],"a",{"href":26,"target":27,"rel":28},"https://github.com/hugohe3/ppt-master","_blank",[29,30],"noopener","noreferrer","hugohe3/ppt-master"," は AI で「PowerPoint で要素単位で編集できる本物の ",[34,35,36],"code",{},".pptx","」を生成する Python ツール。MIT ライセンス、スター 35K、フォーク 2.9K。",[21,39,40],{},"ただし自分は記事用に SVG 図解を作る運用に振り切っていて、PowerPoint を成果物にすることがない。SVG は Illustrator にも貼れるしブログにそのまま埋め込めるので、PPTX 化のニーズがない。",[21,42,43,44,47],{},"だから PPT Master 全体を導入する気はない。代わりに、内部の「SVG 設計ルール」「テンプレート事例」「SVG → DrawingML 変換スクリプト」だけを自分の ",[34,45,46],{},"svg-diagram"," スキルに切り出して移植する方針にした。",[21,49,50,51,54],{},"Codex CLI ユーザーなら ChatGPT サブスクで完結する経路もある。",[34,52,53],{},"image_gen.py"," を迂回して Codex 組み込みの画像生成ツールを使えば、追加 API キーは不要。",[14,56,57],{"id":57},"何のツールか",[59,60,61,62,64],"p",{},"PPT Master は PDF・DOCX・URL・Markdown を入力として取り、Claude Code / Cursor / Codex CLI のような AI エージェントの中で動く「スキル + Python 後処理スクリプト」のセットだ。AI が中間表現として SVG を組み立て、後処理スクリプトが SVG を DrawingML に変換して ",[34,63,36],{}," を出力する。",[59,66,67],{},"AI プレゼン生成ツールは4種類に分けられるが、PPT Master は最後のカテゴリだけを狙っている。",[69,70,71,88],"table",{},[72,73,74],"thead",{},[75,76,77,81,84],"tr",{},[78,79,80],"th",{},"カテゴリ",[78,82,83],{},"出力",[78,85,87],{"align":86},"center","PowerPoint で要素単位編集",[89,90,91,103,114,125],"tbody",{},[75,92,93,97,100],{},[94,95,96],"td",{},"テンプレ流し込み",[94,98,99],{},"固定テンプレに値を埋めた PPTX",[94,101,102],{"align":86},"テンプレに縛られて部分的",[75,104,105,108,111],{},[94,106,107],{},"画像ベース",[94,109,110],{},"スライド1枚 = 1画像の PPTX",[94,112,113],{"align":86},"画像なので不可",[75,115,116,119,122],{},[94,117,118],{},"HTML プレゼン",[94,120,121],{},"Web ベースのスライド",[94,123,124],{"align":86},"そもそも PPTX ではない",[75,126,127,130,133],{},[94,128,129],{},"ネイティブ編集型（PPT Master）",[94,131,132],{},"DrawingML 図形・テキストボックス・チャート",[94,134,135],{"align":86},"各要素クリックして編集可",[14,137,138],{"id":138},"自分のスタックとの差分",[59,140,141],{},"ここが本題。PowerPoint を出さない自分の用途とは、出力フォーマットが根本的に違う。",[69,143,144,160],{},[72,145,146],{},[75,147,148,151,157],{},[78,149,150],{},"観点",[78,152,153,154,156],{},"自分の ",[34,155,46],{}," 運用",[78,158,159],{},"PPT Master",[89,161,162,175,186,197,208,219],{},[75,163,164,167,170],{},[94,165,166],{},"最終出力",[94,168,169],{},"SVG（記事に埋め込む単発の図解）",[94,171,172,174],{},[34,173,36],{},"（複数ページのプレゼン資料）",[75,176,177,180,183],{},[94,178,179],{},"想定用途",[94,181,182],{},"ブログ本文中の図解、書籍図のベクタ化、Illustrator への貼り付け",[94,184,185],{},"講演スライド、配布資料、社内プレゼン",[75,187,188,191,194],{},[94,189,190],{},"構造単位",[94,192,193],{},"1枚の図、グリッドルール、配色",[94,195,196],{},"スライド構造（ページ送り、ノート、アニメーション、TTSナレーション）",[75,198,199,202,205],{},[94,200,201],{},"デザイン規範",[94,203,204],{},"Müller-Brockmann 寄りのモジュラーグリッド、エディトリアル指向",[94,206,207],{},"スイスグリッド・グラスモフィズム・Memphis・Risograph 等10種のテンプレ事例",[75,209,210,213,216],{},[94,211,212],{},"再編集性",[94,214,215],{},"SVG エディタ / Illustrator で触る",[94,217,218],{},"PowerPoint で要素クリックして触る",[75,220,221,224,227],{},[94,222,223],{},"中間表現",[94,225,226],{},"SVG が最終形",[94,228,229],{},"SVG を中間表現として生成し、DrawingML に変換",[59,231,232,233,235],{},"ここで気づくのは、中間表現としての SVG をきれいに作る工程が両者で完全に重なるという点だ。違うのは出力先（SVG のまま出すか、",[34,234,36],{}," に変換するか）だけ。だから PPT Master の中身は、SVG 生成のノウハウとしてそのまま使える。",[14,237,238],{"id":238},"移植候補テーブル",[59,240,241],{},"PPT Master のディレクトリを読んで、自分の環境に取り込める部分とそうでない部分を分けた。",[243,244,245],"h3",{"id":245},"取り込む候補",[69,247,248,261],{},[72,249,250],{},[75,251,252,255,258],{},[78,253,254],{},"ファイル",[78,256,257],{},"取り込み先",[78,259,260],{},"何が取れるか",[89,262,263,278,293,308,321],{},[75,264,265,270,275],{},[94,266,267],{},[34,268,269],{},"skills/ppt-master/references/canvas-formats.md",[94,271,272,274],{},[34,273,46],{}," スキル",[94,276,277],{},"16:9 / 4:3 / 小红书 / 微信など10種のキャンバス比率と推奨寸法表",[75,279,280,285,290],{},[94,281,282],{},[34,283,284],{},"skills/ppt-master/references/image-generator.md",[94,286,287,274],{},[34,288,289],{},"codex-image-gen",[94,291,292],{},"画像生成プロンプトの書き方ノウハウ",[75,294,295,301,305],{},[94,296,297,300],{},[34,298,299],{},"skills/ppt-master/SKILL.md","（73KB）",[94,302,303,274],{},[34,304,46],{},[94,306,307],{},"SVG の構造化ルール、配色、フォント選定、グリッドの実例集",[75,309,310,315,318],{},[94,311,312],{},[34,313,314],{},"skills/ppt-master/templates/",[94,316,317],{},"新規スキルとして独立も可",[94,319,320],{},"スイスグリッド、グラスモフィズム、Memphis、Risograph など6種のデザインテンプレ事例",[75,322,323,329,332],{},[94,324,325,328],{},[34,326,327],{},"scripts/svg_to_pptx.py"," 一式",[94,330,331],{},"単独のユーティリティ",[94,333,334],{},"SVG → DrawingML 変換は単体で価値がある。記事用 SVG を PPTX にしたくなったときに使える",[243,336,338],{"id":337},"取り込まない部分自分の環境では重複か不要","取り込まない部分（自分の環境では重複か不要）",[69,340,341,350],{},[72,342,343],{},[75,344,345,347],{},[78,346,254],{},[78,348,349],{},"理由",[89,351,352,363,374,388],{},[75,353,354,360],{},[94,355,356,359],{},[34,357,358],{},"image_backends/"," 16ベンダー対応",[94,361,362],{},"自分は Codex 経路で完結する。OpenAI / Gemini / Qwen / Zhipu / Volcengine / MiniMax 等の各社対応は不要",[75,364,365,371],{},[94,366,367,370],{},[34,368,369],{},"source_to_md/","（PDF / DOCX / Web → Markdown）",[94,372,373],{},"Turso + Yomitoku で書籍 OCR を既に持っているので重複",[75,375,376,385],{},[94,377,378,381,382],{},[34,379,380],{},"pptx_animations.py"," ",[34,383,384],{},"notes_to_audio.py",[94,386,387],{},"スライドアニメと TTS ナレーション。ブログ図解には使い道がない",[75,389,390,395],{},[94,391,392],{},[34,393,394],{},"pptx_template_import.py",[94,396,397],{},"既存 PPTX テンプレートを再利用する仕組み。手元に再利用したい PPTX 資産がない",[59,399,400],{},"「SVG 設計ルール」と「SVG → PPTX 変換スクリプト」だけ抜くのが筋。それ以外は自分のスタックで既に上回っている部分が多い。",[14,402,403],{"id":403},"セキュリティ面の簡易チェック",[59,405,406],{},"外部 OSS をスキル化する前に、ざっと中身を grep して確認した。Python スクリプト群を直接読んだ結果は次の通り。",[69,408,409,418],{},[72,410,411],{},[75,412,413,415],{},[78,414,150],{},[78,416,417],{},"結果",[89,419,420,437,458,465,483,499],{},[75,421,422,434],{},[94,423,424,427,428,427,431],{},[34,425,426],{},"eval"," / ",[34,429,430],{},"exec",[34,432,433],{},"os.system",[94,435,436],{},"0件",[75,438,439,444],{},[94,440,441],{},[34,442,443],{},"subprocess.run(shell=True)",[94,445,446,447,450,451,450,454,457],{},"0件。subprocess の用途は ",[34,448,449],{},"git pull","、",[34,452,453],{},"pandoc",[34,455,456],{},"ffmpeg","、ローカルサーバ起動など妥当な範囲",[75,459,460,463],{},[94,461,462],{},"テレメトリ送信（PostHog / Sentry / Mixpanel など）",[94,464,436],{},[75,466,467,477],{},[94,468,469,470,450,473,476],{},"Flask サーバ（",[34,471,472],{},"svg_editor",[34,474,475],{},"confirm_ui","）",[94,478,479,482],{},[34,480,481],{},"127.0.0.1"," 限定 bind、LAN 公開なし",[75,484,485,488],{},[94,486,487],{},"外部 API 呼び出し",[94,489,490,491,494,495,498],{},"16個の画像生成バックエンドと TTS のみ。",[34,492,493],{},".env"," で ",[34,496,497],{},"IMAGE_BACKEND"," を選んだプロバイダにしか送信されない",[75,500,501,506],{},[94,502,503],{},[34,504,505],{},"update_repo.py",[94,507,508,511,512,515],{},[34,509,510],{},"git pull --ff-only"," 後、必要時のみ ",[34,513,514],{},"pip install","。ローカル変更があると停止する保守的な作り",[59,517,518],{},"実装そのものは素直で、不審な挙動は見当たらなかった。気になる点を強いて挙げると次の2つだ。",[18,520,521,524],{},[21,522,523],{},"README に中国系の AI 中継サービス4社のアフィリエイトリンクが大量に並ぶ。これはコードの挙動とは無関係の広告だが、踏むかどうかは好みの問題。",[21,525,526,529],{},[34,527,528],{},"gemini_watermark_remover.py"," という Gemini 生成画像の透かしを取り除くスクリプトを同梱している。Google の利用規約的にはグレー。使わなければ無関係。",[14,531,533],{"id":532},"codex-cli-で動かすときの最短経路","Codex CLI で動かすときの最短経路",[59,535,536],{},"PPT Master の前提を整理すると、AI エージェントを動かすモデル（テキスト推論）と、画像を作るモデルは別物として扱われている。前者は Codex CLI 自身が ChatGPT サブスクで解決済みで、問題は後者だ。",[59,538,539,540,542],{},"PPT Master 同梱の ",[34,541,53],{}," は OpenAI の HTTP API を直叩きする実装で、ChatGPT サブスクではなく OpenAI API キー（billing 有効）が必要になる。これを回避する手段が2つある。",[18,544,545,548],{},[21,546,547],{},"画像生成をスキップしてテキスト中心のスライドにする",[21,549,550,551,553,554,557,558,561],{},"Codex に「画像は ",[34,552,53],{}," ではなく Codex 組み込みの ",[34,555,556],{},"image_gen.imagegen"," ツールで作り、",[34,559,560],{},"projects/\u003Cname>/assets/"," に保存して。SVG からは相対パスで参照して」と指示する",[59,563,564,565,567],{},"後者を採れば、Codex CLI ユーザーは API キーなしで完結できる。",[34,566,289],{}," スキルを既に持っているなら、その流儀をそのまま流し込めばいい。",[14,569,570],{"id":570},"まずやること",[59,572,573],{},"中身を読んだ上で、自分の環境では次の順に進めるのが手早そうだと判断した。",[18,575,578,588,594,603],{"className":576},[577],"contains-task-list",[21,579,582,587],{"className":580},[581],"task-list-item",[583,584],"input",{"disabled":585,"type":586},true,"checkbox"," Git_repo 直下に検証用ディレクトリを切り、UV の仮想環境で PPT Master を一度だけ動かす（ブログ本体には混ぜない）",[21,589,591,593],{"className":590},[581],[583,592],{"disabled":585,"type":586}," 1本だけ PPTX を生成して、SVG 中間表現と最終 PPTX を見比べる",[21,595,597,599,600,602],{"className":596},[581],[583,598],{"disabled":585,"type":586}," 良いと判断した SVG 設計ノウハウを ",[34,601,46],{}," スキルへ転記する（MIT なのでクレジット付きで OK）",[21,604,606,381,608,611],{"className":605},[581],[583,607],{"disabled":585,"type":586},[34,609,610],{},"svg_to_pptx.py"," を独立スクリプトとして抜き、ブログ用 SVG を PPTX にしたい場合に呼べる状態にしておく",[59,613,614],{},"PPT Master 全体を入れる必要はないが、SVG を扱うワークフローの参考事例として読む価値は十分にあった。",{"title":616,"searchDepth":617,"depth":617,"links":618},"",2,[619,620,621,622,627,628,629],{"id":16,"depth":617,"text":16},{"id":57,"depth":617,"text":57},{"id":138,"depth":617,"text":138},{"id":238,"depth":617,"text":238,"children":623},[624,626],{"id":245,"depth":625,"text":245},3,{"id":337,"depth":625,"text":338},{"id":403,"depth":617,"text":403},{"id":532,"depth":617,"text":533},{"id":570,"depth":617,"text":570},"dev","AIで編集可能なPPTXを生成するPython製ツール PPT Master の中身を読み、PowerPointを作らない自分のSVG中心ワークフローに何を移植できるかを切り分けた。","md",{},null,"/ppt-master-extract-svg-parts",false,"2026-07-01T00:00:00.000Z",{"title":5,"description":631},"2026-07/2026-07-01/ppt-master-extract-svg-parts",[641,642,643,644,645],"ppt-master","svg","claude-code","codex","skill","memo","MlY6JgprifFUQF9N5QfbM8kDjpYw98QslbhX4c9TvaA",[],"https://log.eurekapu.com/og/blog/ppt-master-extract-svg-parts.png?v=2026-07-01T00%3A00%3A00.000Z&title=PPT%20Master%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A0%E3%81%AE%E3%81%A7%E3%80%81SVG%E9%85%8D%E5%B8%83%E3%82%B9%E3%82%AD%E3%83%AB%E3%81%AB%E7%A7%BB%E6%A4%8D%E3%81%99%E3%82%8B%E9%83%A8%E5%88%86%E3%81%A0%E3%81%91%E6%8B%BE%E3%81%A3%E3%81%9F&author=Kei%20Komatsu&sig=55aa9900bb8c0c59",1782885018908]