Python Pandoc过滤器:如何利用“图像”键?

时间:2017-11-07 08:58:47

标签: python pandoc

我正在Python中编写一个用于处理图像的pandoc过滤器(实质上是在转换后更改文件位置)。

轻松处理Str键值,因为它是一个字符串(from pandocfilters documentation):

from pandocfilters import toJSONFilter, Str

def caps(key, value, format, meta):
  if key == 'Str':
    return Str(value.upper())

if __name__ == "__main__":
  toJSONFilter(caps)

我可以找到有关如何操纵Blocks但不是图像的文档。什么是数据结构?

if key == 'Image':

等?

这是我将以原生(Haskell)格式获得的:

[Image 
("",[],[("width","3.767361111111111in"),
("height","3.767361111111111in")]) 
[] 
(".doc1/media/image1.png","")
]

如何将.png中的图像扩展名替换为.jpg?

1 个答案:

答案 0 :(得分:1)

你对key =='Image'是正确的。

也就是说,您也可以使用panflute库,这样可以更轻松地操作图像。

对于example,此过滤器可以满足您的需求:

from panflute import run_filter, Image

def action(elem, doc):
    if isinstance(elem, Image):
        elem.url = elem.url.replace('.png', '.jpg')
        return elem

def main():
    return run_filter(action)