我该如何在Python 3中从Markdown文件中获取元素列表?我特别想获取Markdown文件中所有图像和链接的列表(以及相关信息,如alt-text和link text)。
这里有一些之前的参考资料(来源),但是它已经快两年没有更新了,所以我认为情况可能有所改变。
如果你设计的解析器支持多重Markdown语法,那就更好了。
这里有一些之前的参考资料(来源),但是它已经快两年没有更新了,所以我认为情况可能有所改变。
如果你设计的解析器支持多重Markdown语法,那就更好了。
pypandoc
和panflute
,那么你可以使用几行代码以Python的方式完成它(示例代码):example.md
,并且假设你已经安装了Python 3.3+并执行了pip install pypandoc panflute
,然后将示例代码放置在同一文件夹中并从shell或例如IDLE中运行它。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
获取包含 markdown 文档 AST 的 json 字符串。panflute
中以创建 Doc 对象(panflute 需要流,因此我们使用 StringIO)。run_filter
函数遍历每个元素,并提取 Image 和 Link 对象。