将四开纸渲染为 HTML,指定输出位置缺少绘图和样式

Álv*_*aro 5 r quarto

我正在尝试将.qmd文件渲染为 HTML 并指定输出文件。我正在 MacOS 12.6 上从 RStudio 的四开本项目编译它。我在 YAML 标头中还有一个引导主题。

---
title: "quarto_output_experiment"
format:
  html:
    theme: journal
---
Run Code Online (Sandbox Code Playgroud)

如果我使用 RStudio 渲染它Cmd + Shift + K,HTML 文档将出现在与 相同的目录中,并且.qmd看起来很好。但是,如果我从指定输出目录(名为 的文件夹)的 Quarto CLI 渲染它output,则 HTML 无法渲染绘图并且缺少任何类型的格式和样式。命令是

quarto render quarto_output_experiment.qmd --output output/report.html

这是结果。

这是从 RStudio 渲染时的效果 这是通过 Quarto CLI 渲染时的情况
漂亮的 HTML HTML 损坏

我缺少什么?如何在不同的目录中渲染 HTML 并具有绘图和正确的样式?

作为参考,这是文档本身

---
title: "quarto_output_experiment"
format:
  html:
    theme: journal
---

## Quarto

Quarto enables you to weave together content and executable code into a finished document.
To learn more about Quarto see <https://quarto.org>.

```{r}
1 + 1
```

# Lorem ipsum

```{r}
library(ggplot2)
ggplot(data.frame(x = rnorm(100)), aes(x)) + geom_density()
```

Run Code Online (Sandbox Code Playgroud)

更新

指定--output-dir而不是--output生成一个带有绘图和样式的文档,但问题仍然存在,是否有办法更改输出 HTML 文件的名称?可能不是关键任务,但我仍然很好奇。

Jul*_*ian 5

这是一个非常奇怪的错误,它似乎与路径有关(请参阅此处quarto::render_quarto()。通常,您可以这样使用,

quarto::quarto_render(input = "quarto_output_experiment.qmd", output_file = "report.html")
Run Code Online (Sandbox Code Playgroud)

这可行,但是当您添加文件夹名称时

quarto::quarto_render(input = "quarto_output_experiment.qmd", output_file = "results/report.html")
Run Code Online (Sandbox Code Playgroud)

它不起作用了。问题是quarto_output_experiment_files存储库和图像的文件夹 ( ) 不会自动放置在输出文件所在的位置。

我会在这里提出问题。

目前一个可能的解决方案是self-contained生成独立的 html 文件的参数,例如

---
title: "quarto_output_experiment"
format:
  html:
    theme: journal
    self-contained: true  
---
Run Code Online (Sandbox Code Playgroud)

然后您可以file.copy将该文件移动到正确的文件夹中。

编辑:该选项self-contained已贬值,请embed-resources改用!关联