检索markdown文档结构(使用pandoc?)

时间:2015-08-12 21:35:46

标签: markdown pandoc

我有一组由一群人写的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.

我发现有用的是使用pandocmd文件转换为docbook格式,这种格式本质上是一种类似XML的格式,因此很容易解析它使用现有的XML工具检索结构。 OPML输出似乎也是一个很好的候选者。

我认为docbook或OPML都是可以接受的。我会编写一个脚本来合并相应的部分(从不同的文档中追加它们的内容)。

但是,pandoc会将所有特殊字符转换为HTML代码,例如"&amp等。我想要的是能够提取,例如,层次结构中的特定子部分,但具有与原始md文件中完全相同的文本(例如子部分的主体)。如何将HTML代码("等)转换回ASCII,以便可以使用pandoc将所有内容呈现为PDF / DOC / ...

2 个答案:

答案 0 :(得分:1)

Pandoc是用Haskell编写的,它使用Haskell数据结构作为转换文档的中间格式。您可以选择native作为输出格式来获取该数据结构。 Haskell数据结构很容易解析。您也可以使用pandoc包中的类型使用Haskell和read数据结构,或直接使用pandoc中的文档阅读器函数。

答案 1 :(得分:1)

要检查的输出格式的另外两个候选者可能是

  • JSON,使用众多JSON查看器之一
  • OPML(大纲处理器标记语言)XML格式