Microsoft Word 本地版本控制?試試 Git + Pandoc

297 天前
 bs10081

前言

Word 作為 Office 三件套中,最滲透日常生活的軟體,你能想象,2023 年,本地依舊沒有自動存檔,也沒有版本管理,需要這些功能,都被強制綁定在 OneDrive 上,但是 OneDrive 的軟體品質又不如意,且對於有 NAS 的人來說,性價比不高,那有沒有什麼第三方解決方案,能幫 Microsoft 擦屁股的呢?

介紹

什麼是版本控制?

版本控制是一種追蹤和管理檔案變更的系統。它可以幫助您追蹤檔案的變更,恢復到以前的版本,並與其他人協作編寫檔案。

版本控制系統有兩種主要類型:集中式和分散式。集中式版本控制系統將所有檔案存儲在中央伺服器上。分散式版本控制系統將檔案存儲在所有參與者的工作電腦上。

Git

Git 是一種分散式版本控制系統,它是目前最受歡迎的版本控制系統之一。Git 易於使用,並且可用於各種專案。

以下是使用版本控制的一些好處:

Pandoc

Pandoc 是一個自由軟體,可將文字轉換成多種格式,包括 HTML 、PDF 、LaTeX 、EPUB 、Docx 等。它由 John MacFarlane 開發,可在 Windows 、Mac 和 Linux 上運行。Pandoc 是學術界和技術界廣泛使用的工具,可用於撰寫和格式化文檔、生成簡報、創建電子書等。

Power by Google Bard

實現邏輯

Git 當初被設計的初衷是對原始碼進行版本控制,純文本的內容支持非常的好,但是 Docx 這種二進制格式,就無法在 Git 中產生文字級的修改記錄,雖然還是能用,但是版本控制沒辦法預覽,那和我直接在名稱上進行 v2 v3 的命名就沒有任何區別了。

所以我們通過 Pandoc 來將 Docx 轉換成 Markdown ,並且使用 git diff 來讓 Markdown 代替 Docx 呈現文字級的預覽版本差異比較。

操作步驟

  1. 安裝 Git 和 Pandoc
  2. 設定 Git
  3. 編輯 Word
  4. Git Commit

安裝 Git 和 Pandoc

  1. 前往 Git 官網,下載並安裝相應操作系統版本的 Git 。
  2. 前往 Pandoc 官網,下載並安裝相應系統版本的 Pandoc 。

macOS 建議使用 Homebrew 安裝 Git 和 Pandoc: brew install git pandoc

設定 Git

  1. User 目錄底下,打開 .gitconfig 檔案,在最後面添加以下內容:
[diff "pandoc"]
        textconv=pandoc --to=markdown
        prompt = false[alias]
        wdiff = diff --word-diff=color --unified=1

  1. 在我們要做版本管理的 Word 資料夾中,初始化 Git:git init

  1. 新增 .gitattributes ,添加一下內容:
*.docx diff=pandoc

編輯 Word

這裡將示範文件,刪除中英文摘要中的英文摘要,然後保存檔案。

Git Commit

  1. 通過 git diff {檔名}.docx 便能將 Docx 的格式處理成 Markdown

  1. Github Desktop 等 Git GUI App 中,便能清楚地看到,這份 Docx 檔案,改動了那些內容

然後便能通過 Git commit 等指令來做版本管理了,更多的 Git 進階操作,可以到 Git 官網 來學習。


感謝 https://cdn.ipfsscan.io/ 提供 IPFS 圖床。

去中心化 xLog 原文鏈接: https://regchien.info/Microsoft-Word-ben-di-ban-ben-kong-zhi--shi-shi-Git--Pandoc

1725 次点击
所在节点    分享创造
12 条回复
Worldispow
297 天前
在 onedrive 面前就是玩具。简单说下 onedrive 。
1 、可以记录 word 、excel 、ppt 等格式的历史版本。
2 、大多数文字工作者,每年需要记录的文档至少 10g 起步
3 、平常一个方案或者标书,大概 50-500 页。
4 、有时候改的不是文字,而是格式。
bs10081
297 天前
@Worldispow 嗯哼,OneDrive 對於專業文字工作者來說,有必要性,但是我只是輕量化使用,不想為了他單獨用 OneDrive 保存,所以採用 Git 的方式來做版本管理,畢竟大部分時間,文字內容都是用 Markdown 保存。
MeMoDiv
297 天前
@Worldispow #1 同意,就第 4 点已经让 Word 和 Git 水火不容了。。如果我要写的东西是可以忽略排版和格式、只注重文字本身的内容,我压根就不会用 Word 。工具和需求严重不匹配,有种核动力奥迪双钻的沉重感。( op 这个方案的 Git 部分没啥可说的,比较标准的用法之一,Word+Pandoc 的这部分替换成 typora 甚至 VS Code 可能都要好很多)
bs10081
297 天前
@MeMoDiv 改格式一樣可以記錄的呀,一樣會顯示的 QAQ
lixile
297 天前
适合个人 所以公司到底是怎么管理文档版本的 包括格式之类的
下面我想到的 更适用的方案(或者可行的方案)是
1 、调整好一个标准模板的.docx
2 、文档开发人员编写 MD
3 、全部都上仓,通过 pandoc 根据 模板.docx 生成 最终需要的 docx
这样实现了文档标准化+CI 每次发版自动生成文档
clemente0731
296 天前
@Worldispow 和坚果云比呢
bs10081
296 天前
@lixile 有更好的商用解決方案,https://simuldocs.com ,唯一缺點就是貴
bs10081
296 天前
@lixile 但是對於平常會寫 Markdown 的人,應該是不需要最終生成 docx 吧,直接像 LaTex 那樣,生成 PDF 就好了?
lixile
296 天前
@bs10081 pdf 确实是最终产物 实际上 docx 模板 是为了排版符合某种特定格式或者要求,然后转换 pdf ,归根结底是要解决文档版本化和对应 pdf 自动生成的问题
jy28520
296 天前
@lixile 我司内部就有这样的一个脚本,然后发现表格嵌入之后的样式那真是一个非常痛苦的故事。。。
lixile
296 天前
@jy28520 所以 我很好奇大公司们到底怎么管理文档版本 以及和对应代码仓版本关联
hj18
72 天前
很棒的教程,解决我的实际问题,非常感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957202

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX