我正在编写一个python脚本来解析Wordpress导出XML(wpxml)的内容,以生成一个LaTex文档。到目前为止,wp-xml是通过lxml.etree解析的,代码生成一个新的xml树,由texml处理,然后生成tex文件。在
目前,我提取每一篇文章和某些元数据(标题、发布日期、标记、内容)。元数据没有问题,但是内容部分有点问题。在wpxml中,内容作为CDATA结构包含在纯HTML/Wordpress标记中。要将其转换为latex,我选择pandoc来解析内容。TeXml支持内联乳胶,因此内容作为普通乳胶添加到树中。在
我决定在本例中使用pandoc,因为它已经很好地转换了大部分html标记(a,strong,em…),我唯一的问题是它如何处理图像。在
我使用一个子流程与pandoc接口:args = ['pandoc', '-f', 'html', '-t', 'latex']
p = Popen(args, stdout=PIPE, stdin=PIPE, stderr=PIPE)
tex_result = p.communicate(input=(my_html_string).encode('utf-8'))[0]
示例帖子可能如下所示
^{pr2}$
我需要嵌入图片说明如图\begin{figure}
\includegraphics{link_to_image.jpg}
\label{fig:some_label}
\caption{Some alt text}
\end{figure}
pandoc似乎将htmlimg标记转换为简单的内联图像,丢弃任何标题或alt文本。在\href{http://link\_to\_source\_image.jpg}{\includegraphics{http://link_to_scaled_down_version.jpg}}
我确实浏览了一下源代码,看起来img只被视为内联元素。
(pandoc parsing function)。我不认识哈斯凯尔,所以这就是我能做到的。在
如果将html转换为markdown,它会保留alt和title,结果与
使用markdown,您可以在生成的latex文档中包含内联图像或图形。如果你把这个标记转换成乳胶,结果是\begin{figure}[htbp]
\centering
\includegraphics{http://link_to_scaled_down_version.jpg}
\caption{Some alt text}
\end{figure}
首先,pandoc似乎是一个简单的解析内容的解决方案,但我有点卡住了,因为pandoc也不支持html中的内联latex,所以我可以首先通过pandoc处理所有图像和其他图像。在
你们知道如何(更好地)处理html中的img标记,将其嵌入到具有标题的latex图形环境中吗?在