Markdown 本身是一种文本格式化工具,并不能直接运行代码。使用 ```python
只是为了对 Python 代码块进行语法高亮显示。
如果你想在 Markdown 中添加来自 Python 程序的数据,就需要借助额外的工具来执行 Python 代码!
一种方法是在 Python 脚本中生成 Markdown 文件。例如,在 generate_markdown.py
文件中:
import mymodule
mystring = mymodule.mystring
# 在此处编写代码以利用 mystring 生成 Markdown 文件
对于此类需求,一个很酷的工具是 Jinja,它是一个名为 Jinja2的 Python 包。
首先创建一个类似 example.md.j2
的 Markdown 模板文件:
Hello {{ data.mystring }}
然后可以将此文件与 mystring
一起传递给 Jinja,它将生成 example.md
文件:
Hello World
如果 mystring
包含文本 "World"。
坦诚地说,当我首次在一个项目中使用 Jinja 时,花了一段时间学习。你可以从 官方网站开始学习,并且还有一个名为 jinja-cli的命令行工具,作为熟悉该工具的一个好途径,在开始编写生成文档的 Python 代码之前可以先尝试一下。
针对你的具体需求,你甚至可以直接跳过 Jinja,对模板文件中的占位符(如 {{ data.mystring }}
或任何其他类似 MY_PLACEHOLDER
)进行查找替换,从而生成最终的 Markdown 文件。虽然 Jinja 提供了更多可能有用的特性,但如果你的需求较为简单,也可以选择自定义和简化的方法。
另一种不同方法是,如果你想让代码保留在 Markdown 文档内部,可以使用类似 Pweave 的工具生成包含 Python 代码块输出的 HTML。
据我所知,Pweave 是从 Markdown 生成 HTML 的,因此,如果你需要输出为 Markdown 文件(比如 GitHub 仓库的 README.md
),那么这可能不是适合你的工具。不过,Pweave 具备根据 Python 代码生成可视化的能力,看起来非常实用。