2014-05-15 2 views
3

나는 knitr을 사용하여 mediawiki 페이지에 자동으로 보고서를 생성합니다. 보고서 출력은 pandoc을 통한 HTML 형식입니다. 그러나 wiki 사이트에 수치를 업로드하는 데 문제가 있습니다. 그래서 SVG 장치를 사용하고 외부 문서에 의존하지 않고 코드를 최종 문서에 포함시킬 것이라고 생각했습니다. 그러나 나는 knitr 또는 판도크로 그 일을하는 데 어려움을 겪고있다. 아무도 pandoc이나 이미지에 링크하는 대신 SVG를 만드는 knitr 옵션에 대해 알고 있습니까? 또는 <img src="myFigure.svg">myFigure.svg의 내용으로 대체하는 작은 쉘 스크립트 일 수도 있습니다.knitr, pandoc : HTML 문서에 직접 SVG 삽입

답변

1

은 내가 여기 해결책을 가지고 작업

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 –

관련 문제