如何使用 Python 提高 Markdown (Quarto) 条件代码块的效率?

问题描述 投票:0回答:0

我有一个 Markdown 文档,其中的代码块根据输出格式而采用不同的格式。这是一个例子:

::: {.content-visible when-format="html"}

```{python}
# | label: fig-scores
fig = plot_scores(grammar_dict)
fig.show()  # html version
```

:::

::: {.content-visible when-format="docx"}

```{python}
# | label: fig-scores-docx
fig = plot_scores(grammar_dict)
plot_file = "figures/scores.png"
fig.write_image(plot_file)
display(Image(filename=plot_file))
```

:::

::: {.content-visible when-format="pdf"}

```{python}
# | label: fig-scores-latex
fig = plot_scores(grammar_dict)
plot_file = "figures/scores.png"
fig.write_image(plot_file)
# Display the image plot_file in LaTeX environment, scaled to fit text width
display(Latex(r"\includegraphics[width=\textwidth]{" + plot_file + "}"))
```

:::

如您所见,每个代码块都有一个条件属性

{.content-visible when-format="html"}
{.content-visible when-format="docx"}
{.content-visible when-format="pdf"}
来确定哪个块应该在哪种输出格式中可见。这些是必要的,因为无花果是使用
plotly
创建的。

但是,我觉得这样可能更有效率。有没有更好的方法来使用 Python 在 Markdown 中编写条件代码块,也许使用可以根据所需输出格式输出不同格式的单个代码块?我尝试在 Python 中使用 knitr (

is_html_output()
) 但无法正常工作。所以条件代码块是一种解决方案,但效率不高。理想情况下,我将能够调用像
display_plots(fig)
这样的函数,它会根据输出格式自动设置正确的无花果。

提前致谢!

补充资料: 使用 Quarto 和 plotly.

python plotly markdown quarto
© www.soinside.com 2019 - 2024. All rights reserved.