, 당신은 몇 줄에 매우 pythonically (sample code을)를 할 수있는 :
텍스트 파일 example.md
을 감안할 때, 그리고 가정 파이썬이 3.3 이상 이미 pip install pypandoc panflute
을 실행 한 다음 동일한 폴더에 샘플 코드를 놓고 쉘에서 실행하거나 게으른.
import io
import pypandoc
import panflute
def action(elem, doc):
if isinstance(elem, panflute.Image):
doc.images.append(elem)
elif isinstance(elem, panflute.Link):
doc.links.append(elem)
if __name__ == '__main__':
data = pypandoc.convert_file('example.md', 'json')
doc = panflute.load(io.StringIO(data))
doc.images = []
doc.links = []
doc = panflute.run_filter(action, prepare=prepare, doc=doc)
print("\nList of image URLs:")
for image in doc.images:
print(image.url)
단계는 다음과 같습니다
- 사용
pypandoc
이 panflute이 스트림을 너무 필요의 (a 문서 객체를 생성 panflute
로 인하 문서
- 로드가의 AST가 포함 된 JSON 문자열을 얻기 위해 우리는 StringIO를 사용합니다.
run_filter
함수를 사용하여 모든 요소를 반복하고 이미지 및 링크 객체를 추출합니다. 링크를 추출하는 정규식에 내가 검토 한 결과,하지만 난 정말 그것에 대해 자동 장치를 푸시을 필요로하는 문제로 실행 :
- 그런 다음 당신은 등
@coralv을의 URL, 대체 텍스트를 인쇄 할 수 있습니다 임의의 중첩 대괄호를 설명합니다. 파서를 만들기 전에 주로 라이브러리 솔루션을 찾고 있습니다. –
Markdown 자체는 10 년이 넘게 변경되지 않았으므로 링크 된 질문과 답변은 꽤 최신이라고합니다. – Waylan