knitr,pandoc:将SVG直接嵌入HTML文档

4
我正在使用knitr自动生成报告并发布到Mediawiki页面。报告输出是通过pandoc生成的HTML格式。但我在上传图片到wiki网站时遇到了问题。因此,我决定使用SVG设备,并将代码包含在最终文档中,而不是依赖外部文档。然而,我在使用knitr或pandoc时遇到了困难。是否有人知道使用pandoc或knitr选项创建嵌入式SVG而不是链接图像的方法?或者一个小的shell脚本,用myFigure.svg的内容替换<img src="myFigure.svg">
1个回答

1
我最终使用了一个简单的 Python 脚本来完成这项工作。
from sys import argv
import re
import os

def svgreplace(match):
    "replace match with the content of a filename match"
    filename = match.group(1)
    with open(filename) as f:
        return f.read()

def svgfy(string):
    img = re.compile(r'<img src="([^"]*\.svg)"[^>]*>')
    return img.sub(svgreplace, string)

if __name__ == "__main__":
    fname = argv[1]
    with open(fname) as f:
        html = f.read()
        out_fname = fname + ".tmp"
        out = open(out_fname, 'w')
        out.write(svgfy(html))
        out.close()
        os.rename(out_fname, fname)

2
我在这里也有一个解决方案:https://github.com/yihui/knitr/issues/754#issuecomment-40335136 - Yihui Xie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接