如何解决在一级目录中构建“bookdown”书
背景 -
我的整个 bookdown
项目都在 _source
目录中,我希望将编译好的书放在 docs
的 1-up 目录中。
完整路径是 - "C:/Users/kbc/project1/docs/_source"
可行的解决方案 -
我可以通过使用 -
对 _bookdown.yml
中的输出目录进行硬编码来做到这一点
output_dir: 'C:/Users/kbc/project1/docs'
问题 -
但是,我想通过使用 here::here()
来检索当前位置并使用 -
去除最后一个 /_source
部分来灵活处理路径
output_dir: stringr::str_remove_all(here::here(),"/_source")
。
但构建失败并出现以下错误 -
Error in file(con,"w") : cannot open the connection
Calls: <Anonymous> ... write_ref_keys -> <Anonymous> -> writeLines -> file
In addition: There were 32 warnings (use warnings() to see them)
Execution halted
Exited with status 1.
为什么 output_dir:
接受硬编码的字符数组,而不接受函数中的字符数组?我可以为灵活的方法做些什么?
解决方法
也许您可以只使用 output_dir: ../
(尾部斜杠是可选的)。两个点 ../
表示您正在寻找的内容,您不需要依赖两个额外的包(此处 和 stringr)。 >
也就是说,我不推荐这种目录结构,因为源代码包含在输出目录中。我建议将源代码与输出目录分开,以便输出目录包含纯粹的输出,否则您可能会在清理输出目录(例如,运行 bookdown::clean_book()
)时意外删除完整的源代码。您可以考虑将源放在 C:/Users/kbc/project1/Rmd
下,并设置 output_dir: ../docs/
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。