我有一组由一群人写的md
文件。每个md
文件都是对象的特征描述/描述,并且具有相同的结构(部分,每个部分具有相同的标题)。你可以把它想象成用Markdown写的形式。
每个文件看起来像:
# Object "foobar"
## Color
The object is red with pink dots.
## Shape
Square-like
## Texture
Smooth like a glass.
,比方说,snafoo.md
:
# Object "snafoo"
## Color
The object is green with black stripes.
## Shape
Ball-like
## Texture
Rough. A bit like sandpaper.
依旧......
我想自动"合并"这些文件使得匹配部分的内容连接在一起。基于上面的两个文件,我想获得如下输出:
# Color
The object is red with pink dots.
The object is green with black stripes.
# Shape
Square-like
Ball-like
# Texture
Smooth like a glass.
Rough. A bit like sandpaper.
我发现有用的是使用pandoc
将md
文件转换为docbook
格式,这种格式本质上是一种类似XML的格式,因此很容易解析它使用现有的XML工具检索结构。 OPML输出似乎也是一个很好的候选者。
我认为docbook或OPML都是可以接受的。我会编写一个脚本来合并相应的部分(从不同的文档中追加它们的内容)。
但是,pandoc
会将所有特殊字符转换为HTML代码,例如"
,&
等。我想要的是能够提取,例如,层次结构中的特定子部分,但具有与原始md
文件中完全相同的文本(例如子部分的主体)。如何将HTML代码("
等)转换回ASCII,以便可以使用pandoc
将所有内容呈现为PDF / DOC / ...
答案 0 :(得分:1)
Pandoc是用Haskell编写的,它使用Haskell数据结构作为转换文档的中间格式。您可以选择native
作为输出格式来获取该数据结构。 Haskell数据结构很容易解析。您也可以使用pandoc包中的类型使用Haskell和read
数据结构,或直接使用pandoc中的文档阅读器函数。
答案 1 :(得分:1)
要检查的输出格式的另外两个候选者可能是