我经常发现,以一种文件格式编辑文档,同时以另一种格式存储文档非常方便。例如,可以在 markdown 中写下文档,然后将其转换为 word 文件并在那里进行编辑。我希望提取编辑内容并将其应用回原始 markdown 文件。
因此,我会将A.md
转换为A.docx
(例如使用pandoc
),编辑为,并以某种方式将和之间B.docx
的更改集应用到。A.docx
B.docx
A.md
我的问题是:
是否有可靠/自动的方法将 Word 中的编辑(文本编辑)转回基于文本的文件?
当然,我可以直接转换B.docx
回 markdown并用B.md
覆盖。但转换过程通常会引入不可逆的变化,因此循环=> =>将产生与原始 markdown 文件不同的结果。一些效果将被添加/丢失(由于不同的换行符、字体、格式等)。我想避免这种损失,并使最终文档尽可能接近原始文件。A.md
B.md
A.md
A.docx
A2.md
A2.md
A.md
A.md
是否可以使用diff
/patch
在 Bash 脚本中执行以下转换:
A.md
=>A.docx
=>A2.md
A.docx
=> (编辑)B.docx
B.docx
=>B.md
diff B.md A2.md
以某种方式得到便携的修补将补丁文件应用到
A.md
(代替A2.md
)
我使用的经验有限git diff
,但直接使用的经验不多diff/patch
。我想知道是否有人可以帮助解释这种“转移”差异所需的命令序列。
答案1
您所问的 bash 语法(步骤 4,5)是:
diff B.md A2.md > patch.data
patch A.md patch.data
我认为你可能把文件反转了差异? 请记住修补覆盖 A.md,因此如果您需要原件,请复制一份。
无论如何,我怀疑这种方法是否能够成功。
在我看来,Word 编辑器引入了太多的不确定性,任何自动转换都不能被认为是“可靠的”。即使你让脚本运行起来,你也可能需要每次更新 Word 编辑器时都对其进行修复。