身為工程師,我們經常需要撰寫各種文件,如需求定義書、設計書、測試規範、運作指導書等。
在這樣的情況下,我內心深處常常希望能用Markdown這樣的純文字格式來撰寫,而在AI時代,純文字格式更符合現今的需求。
但是!!!
實際上需求幾乎都是100%要求Word格式的.docx,對吧???
我作為工程經理,經常有機會與客戶進行對話,但每次都會被要求提供Word文件。
雖然有一些工具,比如pandoc,可以將Markdown轉換為Word格式,但我總是為以下問題感到困擾:
以上五項可以透過準備好樣式調整過的模板Word檔來勉強應對,但「圖表編號」這個問題,據我所知,幾乎沒有任何工具能夠適當地自動編號!
(像是自動產生「表 1.1」這種編號的功能)
無論如何,仍然需要手動進行各種調整,但我希望能在封面份的處理上簡化,而像「編號」這種只要增加一個表格就會導致後續全部錯位的情況,我還是希望能有個自動化的方法。
然而,這樣的工具目前並不存在啊~
如果有的話,那真的是太棒了~~~
其實,是可以做到的。
對,就是md2docx。
md2docx(命令名稱:mdd)是一個將Markdown文件轉換為Word(.docx)的CLI工具。它是用Rust語言編寫的。
與普通的轉換工具最大的不同在於,它專注於生成日本語的商業文件。預設包含游明朝和游ゴシック字體,支持自動編號標題,自動為表格和圖片添加圖表編號,並且可以通過單個TOML設定檔來控制所有這些設定。
需要Rust 1.70以上版本。
未來會準備安裝程式,但目前請直接克隆此倉庫並進行安裝……
cargo install --path .
這樣就會在$HOME/.cargo/bin/mdd中生成一個二進位檔。如果PATH未設置,請在~/.zshrc等文件中添加以下內容:
export PATH="$HOME/.cargo/bin:$PATH"
基本操作就是這樣!
mdd document.md
將會生成一個與輸入文件同名的.docx文件,使用起來非常簡單。
如果想要指定輸出位置或使用設置檔,可以添加選項。
# 指定輸出位置
mdd document.md -o output.docx
# 指定設置檔
mdd document.md -c mdd.toml
# 同時指定
mdd document.md -o output.docx -c mdd.toml
選項列表如下。
| 選項 | 說明 |
|---|---|
-o, --output |
指定輸出位置。省略則使用輸入文件名並將副檔名改為.docx |
-c, --config |
指定設置文件(TOML)。省略則使用預設設定 |
-h, --help |
顯示幫助信息。使用--help會顯示設置文件格式 |
-V, --version |
查詢版本號 |
可以通過TOML格式自定義字體、大小、縮排和項目符號符號。所有項目均可省略,未指定的項目將使用預設值。
[fonts]
body_ja = "游明朝" # 正文的日文字體
body_en = "Century" # 正文的英文字體
heading_ja = "游ゴシック" # 標題的日文字體
heading_en = "Century" # 標題的英文字體
[sizes] # 單位: pt
body = 10.5 # 正文
heading1 = 14.0 # 標題1
heading2 = 12.0 # 標題2
heading3 = 11.0 # 標題3
heading4 = 11.0 # 標題4
[indent] # 單位: twip (1twip = 1/20pt)
body_left = 210 # 正文的左縮排(約等於全角1字元)
body_first_line = 210 # 正文的首行縮排
body_right = 210 # 正文的右縮排
body_left_chars = 100 # 正文的左縮排(字元數×100)
heading4_left = 709 # 標題4的左縮排
heading4_hanging = 709 # 標題4的懸掛縮排
[bullet]
level0 = "●" # 項目符號級別0
level1 = "■" # 項目符號級別1
level2 = "▲" # 項目符號級別2
支援元素的列表如下。
| 元素 | 語法 | 轉換時的處理 |
|---|---|---|
| 標題 | # H1 〜 #### H4 |
自動附加編號(1, 1.1, 1.1.1, (1), (1)) |
| 段落 | 普通文本 | 使用twip單位調整縮排和邊距 |
| 項目符號 | - item |
支援嵌套,開頭字符可自定義 |
| 編號列表 | 1. item |
支援嵌套,可指定起始編號 |
| 表格 | GFM格式 | 自動編號為「表1」「表2」 |
| 圖片 |  |
自動編號為「圖1」「圖2」,格式自動轉換 |
| 程式碼區域 | ``` |
Courier New / MS ゴシック,9pt |
| 水平線 | --- |
轉換為空段落 |
| 粗體 | **text** |
支援 |
| 斜體 | *text* |
支援 |
| 行內程式碼 | `code` |
用「」包圍顯示 |
| 鏈接 | [text](url) |
轉為超連結,支援錨點鏈接 |
常用的Markdown元素幾乎都已涵蓋!
使用Markdown撰寫,只需一條命令便可生成看似用於日本傳統業務的Word文件。這是我真正想要的工具!
原文出處:https://qiita.com/nokonoko_1203/items/87a71916c155d69a336b