如何将Python程序中的数据添加到Markdown?

7jmck4yq  于 3个月前  发布在  Python
关注(0)|答案(2)|浏览(444)

我希望能够从Python文件中获取多行字符串并在Markdown中显示它,这样我就不必不断更新Markdown文件来匹配文件。我是新使用Markdown的,所以我没有太多经验。
我尝试了两件事:

```{python}  
import mymodule  
print(mymodule.mystring)  
字符串
和
import mymodule  
print(mymodule.mystring)  
型
我希望它只显示`mystring`表示的数据,但它只显示python代码本身。
请注意,mymodule是同一文件夹中的另一个文件,mystring是该文件中的多行字符串。
m0rkklqb

m0rkklqb1#

Markdown本身是一个格式化工具,不运行代码。
````python仅帮助语法突出显示Python代码块。 如果你想从python程序中添加数据,你需要使用一个额外的工具来运行python! 一个选择是用python代码创建markdown文件。你可以在generate_markdown.py`文件中这样做:

import mymodule  
mystring = mymodule.mystring

# write code here to generate your markdown file using mystring

字符串
Jinja是一个很酷的工具,它可以作为python包Jinja2使用。
从像example.md.j2这样的markdown模板文件开始:

Hello {{ data.mystring }}


你可以通过mystring将这个文件传入Jinja,它将生成example.md

Hello World


如果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代码生成可视化的能力。

izkcnapc

izkcnapc2#

AFAIK,Markdown不支持你正在尝试做的事情。
但在MyST Markdown中,您可以使用{eval}指令构建Inline Expressions
mymodule.py中:

mystring = """StackOverflow
https://stackoverflow.com/"""

字符串
在Interferlab中(* 安装this扩展后 *):

# first cell (code)
import mymodule

# second cell (markdown)
{eval}`mymodule.mystring`

  • 注意:由于打印的字符串被视为纯文本,因此不呈现中断线 *


的数据
你有另一个选择与{code-cell}指令(* 阅读更多here*)的x1yter Book。

相关问题