Skip to content

macdoc convert 產的 docx 不帶 w14:paraId — 自產物永遠無法 DSL 升級(刻意還是缺口?) #160

Description

@kiki830621

Problem

macdoc convert --to docx 產出的 .docx 完全不帶 w14:paraId,導致 macdoc 自己的產物永遠無法通過 word reverse 的 DSL 升級門檻,只能落在 raw channel。

實測(2026-08-19):

$ printf '# Test\n\nHello world paragraph one.\n\nSecond paragraph here.\n' > simple.md
$ macdoc convert simple.md --to docx --output simple.docx
$ unzip -p simple.docx word/document.xml | grep -o 'w14:paraId' | wc -l
0
$ macdoc word reverse simple.docx --to-mdocx simple.mdocx.swift --coverage
--- Aggregate: 0.0% DSL (0 / 8572 XML bytes across 9 parts) ---

一份只有兩個純段落、零表格的文件——理論上是 DSL 升級最理想的輸入——仍然 0.0%,因為段落沒有 w14:paraId 就不具升級資格。

對照組:真實 Word 產生的 REC-O-01 官方表單有 115 個 w14:paraId(但因含表格,part-level 全有全無而整份降 raw)。

Type

bug

Expected

需要先裁定這是哪一種情況(本 issue 的第一個任務就是回答它):

  1. 刻意如此w14:paraId 屬 Word 2010 transitional 擴充,md→docx 這條路徑刻意不發。若是,該把「macdoc 自產的 docx 無法 DSL 升級」寫進文件,而不是讓使用者自己踩。
  2. 缺口 — 應該發但沒發。若是,md-to-word-swift 的段落生成應補上 w14:paraId

Actual

不發,且此事實未見於任何文件。

Impact

使用者最自然的驗證路徑就是「用 macdoc 產一份 docx,再 word reverse 看看」——而這條路必然得到 0.0% DSL,看起來像功能壞掉。實際上是前提不滿足,但沒有任何訊息說明。

#158 相關但不同#158 是「表格導致 part-level 降 raw」(已寫在既有文件的邊界內);這裡是「macdoc 自產物連基本資格都沒有」,且未被任何文件涵蓋。

來源:surfaced during /idd-diagnose #158 sister concern surfacing (Step 3.6)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions