2014-05-15 68 views
3

我正在使用knitr自動生成報告到mediawiki頁面。報告輸出通過pandoc以HTML格式提供。但是我在將數字上傳到wiki網站時遇到問題。所以我認爲我會使用SVG設備並將代碼包含在最終文檔中,而不是依賴於外部文檔。然而,我無法用knitr或pandoc做這件事。有人知道創建嵌入SVG而不是鏈接到圖像的pandoc或knitr選項嗎?或者甚至是一個小的shell腳本,用myFigure.svg的內容替換<img src="myFigure.svg">knitr,pandoc:直接將SVG嵌入到HTML文檔

回答

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) 
+1

我也有一個解決方案在這裏:https://github.com/yihui/knitr/issues/754#issuecomment-40335136 –

相關問題