我希望能够从Python文件中获取多行字符串并在Markdown中显示它,这样我就不必不断更新Markdown文件来匹配文件。我是新使用Markdown的,所以我没有太多经验。
我尝试了两件事:
```{python}
import mymodule
print(mymodule.mystring)
字符串
和
import mymodule
print(mymodule.mystring)
型
我希望它只显示`mystring`表示的数据,但它只显示python代码本身。
请注意,mymodule是同一文件夹中的另一个文件,mystring是该文件中的多行字符串。
2条答案
按热度按时间m0rkklqb1#
Markdown本身是一个格式化工具,不运行代码。
````python
仅帮助语法突出显示Python代码块。 如果你想从python程序中添加数据,你需要使用一个额外的工具来运行python! 一个选择是用python代码创建markdown文件。你可以在
generate_markdown.py`文件中这样做:字符串
Jinja
是一个很酷的工具,它可以作为python包Jinja2使用。从像
example.md.j2
这样的markdown模板文件开始:型
你可以通过
mystring
将这个文件传入Jinja
,它将生成example.md
:型
如果
mystring
包含文本“World”。老实说,我记得当我在一个项目中使用Jinja时,我花了一点时间来学习它。你可以从thier site开始,还有一个命令行工具作为一个名为jinja-cli的Python包,这是一个很好的方式来介绍这个工具,然后再开始编写生成文档的Python。
对于您的用例,您可以跳过Jinja,并在模板文件中查找和替换占位符,如
{{ data.mystring }}
(或其他任何东西,如MY_PLACEHOLDER
),以产生最终的markdown文件。Jinja有更多的功能,您可能会发现有用的,但如果符合您的需求,您也可以选择自定义和简单的东西!如果你想将代码保留在markdown文档中,另一种方法是使用类似于Pweave的东西来生成包含````python
代码块输出的html。 据我所知,Pweave从 * markdown生成html *,所以如果你需要你的输出是一个markdown文件(像GitHub仓库的
README.md`),这可能不是你的工具。它看起来真的很整洁,尽管有从python代码生成可视化的能力。izkcnapc2#
AFAIK,Markdown不支持你正在尝试做的事情。
但在MyST Markdown中,您可以使用
{eval}
指令构建Inline Expressions:在
mymodule.py
中:字符串
在Interferlab中(* 安装this扩展后 *):
型
的数据
你有另一个选择与
{code-cell}
指令(* 阅读更多here*)的x1yter Book。