2017-01-14 1 views
2

하스켈 필터가없는 마크 다운 파일에서 Pandoc의 메타 데이터 (제목, 날짜 등)를 추출하거나 --to=json 출력을 구문 분석 할 수 있습니까?Pandoc 마크 다운 파일에서 YAML 메타 데이터 읽기

$ pandoc -t json posts/test.md | jq '.meta | .title' 
{ 
    "t": "MetaInlines", 
    "c": [ 
    { 
     "t": "Str", 
     "c": "Test" 
    }, 
    { 
     "t": "Space" 
    }, 
    { 
     "t": "Str", 
     "c": "post" 
    } 
    ] 
} 

그렇게 제목을 읽어도 jq을 가진 후, 우리는 여전히 단어를 재구성해야하고, 어떤 강조, 코드 : 두 단어가 제목처럼 보이는 때문에

는 JSON 출력이 특히 불편 , 또는 다른 것은 단지 그것을 더 복잡하게 만들 것입니다.

답변

3

여기에 template variable $meta-json$을 사용할 수 있습니다.

변수를 파일에 붙이면 (확장명을 사용하여 Pandoc이 자신의 디렉토리를보고 멈추도록) pandoc --template=file.ext과 함께 사용합니다.

Pandoc의 출력 우리는 쉽게 분석 필터 및 jq으로 조작 할 수있는 인하 문서 등에서 키 "title", "date", "tags" 및 각 값으로 JSON 객체이다.

$ echo "\$meta-json\$" > /tmp/metadata.pandoc-tpl 
$ pandoc --template=/tmp/metadata.pandoc-tpl | jq '.title,.tags' 
"The Title" 
[ 
    "a tag", 
    "another tag" 
] 
관련 문제