lua - 将样式 ID/名称从 HTML 转移到 .docx?
问题描述
是否有可能以某种方式告诉pandoc
将样式名称从原始 HTML 转移到 .docx?
我知道为了调整实际样式,我应该使用reference.docx
由pandoc
. 但是,reference.docx
仅限于它所具有的样式:标题、正文、块文本等。
我想:
在输入的 HTML 中指定“myStyle”样式(通过“class”属性,通过任何其他 HTML 属性,甚至通过用 Lua 编写的过滤器代码),
<html> <body> <p>Hello</p> <p class="myStyle">World!</p> </body> </html>
添加自定义“myStyle”以
reference.docx
使用 Word,运行
html->docx
转换,期望pandoc
生成一个带有“myStyle”的段落元素(而不是BodyText
,我相信它默认设置),所以最终结果看起来像这样(为简洁起见word/document.xml
,结果内部的内容output.docx
被删减):<w:p> <w:pPr> <w:pStyle w:val="BodyText" /> </w:pPr> <w:r> <w:txml:space="preserve">Hello</w:t> </w:r> </w:p> <w:p> <w:pPr> <w:pStyle w:val="myStyle" /> </w:pPr> <w:r> <w:txml:space="preserve">World!</w:t> </w:r> </w:p>
有一些证据 styleId
可以传递,但我并不真正理解它,也无法找到任何关于它的文档。
关于Lua 中过滤的文档指出您可以attrs
在操作 a 时访问pandoc.div
,但它没有说明 pandoc 是否会以任何有意义的方式解释任何属性。
解决方案
最后,找到了我需要的东西——自定义样式。它是有限的,但比我之前到达的要好,当然也比什么都没有要好得多:)
我会在这里留下一个分步指南,以防有人偶然发现类似的问题。
首先,生成一个reference.docx
像这样的文件:
pandoc --print-default-data-file reference.docx > styles.docx
然后在 MS Word 中打开文件(我使用的是 macOS 版本)你会看到:
单击右侧的“新建样式...”按钮,然后创建您喜欢的样式。就我而言,我将文本样式更改为蓝色粗体:
由于我正在从 HTML 转换为 DOCX,这是我的input.html
:
<html>
<body>
<div>Page 1</div>
<div custom-style="eugene-is-testing">Page 2</div>
<div>Page 3</div>
</body>
</html>
跑:
pandoc --standalone --reference-doc styles.docx --output output.docx input.html
最后,享受结果:
推荐阅读
- typescript - 在 TEAMCITY 上构建 IONIC 失败
- machine-learning - 随着测试集中负标签的增加,如何提高精确召回分数
- javascript - 更改反应虚拟化表中服务器端数据的格式
- javascript - 图片未在弹出窗口中显示(CSS、HTML、Javascript)
- c# - 我们可以根据登录的不同用户在c#中选择数据库连接吗?
- c# - Android 设备监视器在层次结构视图的树视图中未显示任何内容以检查 xamarin 表单 ui 性能
- firebase - 定义简单函数时谷歌云函数错误
- javascript - 使用 html onclick 提交按钮,搜索 js 数组,然后在原始 html div 中显示特定数据
- c# - ValueTuple 对于大型对象有多好?
- azure - 获取安全中心在 azure vm 上进行威胁检测的电子邮件警报