lovstudio:any2docx について
python-docx を使って Markdown ファイルを編集可能な Word 文書に変換するスキルです。整形された文書を作成したい場合に向けて、コードブロック、表、画像、CJK とラテン文字の混在に対応し、表紙や目次も生成できます。
主な機能
- 01Markdown から DOCX への変換
- 02コードブロック・表・リストへの対応
- 03ローカルおよびリモート画像の埋め込み
- 04テーマと透かしの適用
- 05表紙と目次の生成
活用シーン
- 01Markdown レポートを Word 文書に変換
- 02コードや表を含む技術文書の作成
- 03表紙と目次付きの長文書の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lovstudio/ skills --skill lovstudio:any2docxインストール後、Claude Code で/lovstudio:any2docxを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdREADME.mdscripts/md2docx.py詳細
any2docx — Markdown からプロフェッショナルな DOCX へ
このスキルは、Python の python-docx ライブラリを使用して、任意の Markdown ファイルをプロフェッショナルなスタイルの Word 文書に変換します。 any2pdf と同じテーマパレットを共有し、CJK/ラテン文字のあらゆるエッジケースに適切に対応します。
使用する場面
- ユーザーが
.md→.docx(Word)への変換を希望する場合 - ユーザーが編集可能な文書(PDF ではない)を必要とする場合
- 文書に CJK 文字とラテン文字が混在している場合
- 文書にフェンス付きコードブロック、Markdown テーブル、またはリストが含まれている場合
- ユーザーが DOCX に表紙、目次、または透かしを追加したい場合
クイックスタート
python lovstudio-any2docx/scripts/md2docx.py \
--input report.md \
--output report.docx \
--title "My Report" \
--author "Author Name" \
--theme warm-academic
--input 以外のすべてのパラメーターは省略可能です。適切なデフォルト値が適用されます。
変換前のオプション(必須)
重要:変換を実行する前に、必ず AskUserQuestion ツールを使ってこれらの質問をしてください。オプションをプレーンテキストで列挙しないでください。ユーザーに適切なインタラクティブプロンプトを表示するため、ツールを使ってください。すべてのオプションを1回の AskUserQuestion 呼び出しで尋ねてください。
以下のテンプレートで AskUserQuestion を使用してください。
开始转 Word!先帮你确认几个选项 👇
━━━ 📐 设计风格 ━━━
a) 暖学术 — 陶土色调,温润典雅,适合人文/社科报告
b) 经典论文 — 棕色调,灵感源自 LaTeX classicthesis,适合学术论文
c) Tufte — 极简留白,深红点缀,适合数据叙事/技术写作
d) 期刊蓝 — 藏蓝严谨,灵感源自 IEEE,适合正式发表风格
e) 精装书 — 咖啡色调,书卷气,适合长篇专著/技术书
f) 中国红 — 朱红配暖纸,适合中文正式报告/白皮书
g) 水墨 — 纯灰黑,素雅克制,适合文学/设计类内容
h) GitHub — 蓝白极简,程序员熟悉的风格
i) Nord 冰霜 — 蓝灰北欧风,清爽现代
j) 海洋 — 青绿色调,清新自然
k) 投资报告 — 楷体+深红,专业严谨,适合投资/尽调报告
━━━ 💧 水印 ━━━
1) 不加
2) 自定义文字(如 "DRAFT"、"内部资料")
示例回复:"a, 水印:仅供内部参考"
直接说人话就行,不用记编号 😄
ユーザーの選択肢を CLI 引数に対応付ける
| 選択肢 | CLI 引数 |
|---|---|
| デザインスタイル a-k | 下表の値を指定した --theme |
| 透かしのテキスト | --watermark "文字" |
テーマ名の対応表
| 選択肢 | --theme の値 |
|---|---|
| a) 暖かみのあるアカデミック | warm-academic |
| b) クラシックな論文 | classic-thesis |
| c) Tufte | tufte |
| d) ジャーナルブルー | ieee-journal |
| e) 上製本 | elegant-book |
| f) 中国レッド | chinese-red |
| g) 水墨画 | ink-wash |
| h) GitHub | github-light |
| i) Nord | nord-frost |
| j) オーシャンブリーズ | ocean-breeze |
| k) 投資レポート | invest-report |
アーキテクチャ
Markdown → Strip frontmatter → Preprocess (split merged headings) → Parse (code-fence-aware) → python-docx Document → .docx
主なコンポーネント:
- CJK フォントの切り替え:
_split_mixed()が CJK の文字列を検出し、Songti SC/SimSun/Noto CJK を割り当てます - インライン Markdown:
_parse_inline()が 太字、斜体、code、リンク を処理します - 画像:ローカルパス(.md からの相対パス)およびリモート URL に対応します。画像は自動的にダウンロードされ、
add_picture()で埋め込まれます - コードブロック:等幅フォントと枠線を適用した、背景色付きの段落です
- テーブル:アクセントカラーの背景を適用したヘッダー行と、交互に色分けされた行
- 透かし:ヘッダーに VML ベースの斜めの透かしを配置します(Word ネイティブ)
- 目次:静的なフォールバック項目を含むフィールドコードです。
updateFields=trueにより、ファイルを開いたときに自動更新されます - YAML フロントマター:自動的に削除されます(
status: draftなどが出力に漏れることはありません) - 表紙タイトルの自動調整:長いタイトルではフォントサイズを縮小します(36pt → 22pt)
設定リファレンス
| 引数 | デフォルト | 説明 |
|---|---|---|
--input | (必須) | Markdown ファイルへのパス |
--output | output.docx | 出力 DOCX のパス |
--title | 最初の H1 から取得 | 表紙に表示する文書タイトル |
--subtitle | "" | サブタイトルのテキスト |
--author | "" | 著者名 |
--date | 今日の日付 | 日付文字列 |
--version | "" | 表紙に表示するバージョン文字列 |
--watermark | "" | 透かしのテキスト(空の場合はなし) |
--theme | warm-academic | カラーテーマ名 |
--cover | true | 表紙を生成します |
--toc | true | 目次を生成します |
--header-title | "" | ページヘッダーに表示するレポートタイトル |
--footer-left | author | フッターに表示するブランド名/著者名 |
--stats-line | "" | 表紙に表示する統計情報 |
--stats-line2 | "" | 2行目の統計情報 |
--edition-line | "" | 表紙に表示する版の行 |
--code-max-lines | 30 | コードブロックごとの最大行数 |
依存関係
pip install python-docx --break-system-packages
コメント
Markdown 対応