pandoc:过滤器中的“RawBlock”

pandoc: `RawBlock` in filter

Pandoc 过滤器中 RawBlock 函数的正确用法是什么?

#!/usr/bin/env python

from pandocfilters import toJSONFilter, Str, Para, Emph, Header, RawBlock
import re

def replace(key, value, format, meta):
    if key == 'Str':
        if value.startswith('Hello'):
            #return Str("Hi")  # this works
            return RawBlock("opendocument", "Hi")  # this doesn't

if __name__ == '__main__':
    toJSONFilter(replace)

您正在尝试用 值 (RawBlock 替换 内联 值 (Str) ).只能用相同类型的元素替换元素。使用 RawInline 而不是 RawBlock.