Quarto输出文件子目录扁平化处理问题求助
解决方案
方法1:在项目根_quarto.yml中统一配置输出路径
保留根目录的_quarto.yml,添加render字段指定目标文件的输出位置:
project: execute-dir: project output-dir: _output render: # 针对单个notebook配置 - "R/notebooks/notebook.qmd": output-file: "notebook.html" # 若有多个notebook,可批量配置 # - "R/notebooks/*.qmd": # output-file: "{{< basename >}}.html"
这个配置会让指定的qmd文件渲染后,直接将输出文档(如notebook.html)和配套的notebook_files目录生成在_output根目录下,不再保留原R/notebooks的嵌套结构。
方法2:在单个qmd文件中单独设置输出路径
如果不想修改项目级的_quarto.yml,可以在notebook.qmd的YAML头部添加输出路径配置:
--- title: "你的笔记本标题" output: html: output-file: "../../_output/notebook.html" pdf: output-file: "../../_output/notebook.pdf" ---
解决R脚本路径依赖问题
因为你已设置execute-dir: project(执行目录为项目根),所以在qmd中调用R脚本时,必须使用基于项目根的相对路径,而非相对于qmd文件的路径:
比如你的R脚本存放在R/scripts/utils.R,在qmd中应这样调用:
source("R/scripts/utils.R")
不要使用../scripts/utils.R这类相对qmd的路径(执行目录为项目根时,这类路径会失效)。
这样既保证输出文件直接生成在_output根目录,又不会出现R脚本的路径错误。
内容的提问来源于stack exchange,提问作者Svencken
相关产品推荐
相关产品推荐

