R 在上一级目录中生成“bookdown”book

R 在上一级目录中生成“bookdown”book,r,stringr,bookdown,R,Stringr,Bookdown,背景- 我的整个bookdown项目都在\u source目录中,我想把编译好的书放在docs的1-up目录中。 完整路径是-“C:/Users/kbc/project1/docs/\u source” 工作解决方案- 我可以通过使用-在\u bookdown.yml中对输出目录进行硬编码来实现这一点 output\u dir:'C:/Users/kbc/project1/docs' 问题- 但是,我希望通过使用here::here()检索当前位置并使用-剥离最后一个/\u源代码部分,灵活地处理

背景-
我的整个
bookdown
项目都在
\u source
目录中,我想把编译好的书放在
docs
的1-up目录中。 完整路径是-
“C:/Users/kbc/project1/docs/\u source”

工作解决方案-
我可以通过使用-
\u bookdown.yml
中对输出目录进行硬编码来实现这一点
output\u dir:'C:/Users/kbc/project1/docs'

问题-
但是,我希望通过使用
here::here()
检索当前位置并使用-
剥离最后一个
/\u源代码
部分,灵活地处理路径
output\u dir:stringr::str\u remove\u all(here::here(),“/\u 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.
文件(con,“w”)中出现错误:无法打开连接 电话:。。。写入参考键->->写入线->文件 此外:有32个警告(使用warnings()查看它们) 停止执行 已退出,状态为1。

为什么
output\u dir:
接受硬编码字符数组,但不接受函数中的字符数组?对于灵活的方法,我能做些什么?

也许您可以使用
输出目录:../
(尾部斜杠是可选的)。两点
。/
正是您想要的,您不需要依赖另外两个软件包(这里是stringr


也就是说,我不推荐这种目录结构,因为源代码包含在输出目录中。我建议将源代码与输出目录分开,以便输出目录包含纯输出,否则在清理输出目录时可能会意外删除完整的源代码(例如,运行
bookdown::clean_book()
)。您可以考虑将源放在<代码>:/kb/kb/Prjuts1/ Rmd < /代码>,并设置<代码> OutPuthDIR:/DOCS/

< P>也许您可以只使用<代码> OutPuthDIr:.. /<代码>(尾随斜线是可选的)。两点
。/
正是您想要的,您不需要依赖另外两个软件包(这里是stringr


也就是说,我不推荐这种目录结构,因为源代码包含在输出目录中。我建议将源代码与输出目录分开,以便输出目录包含纯输出,否则在清理输出目录时可能会意外删除完整的源代码(例如,运行
bookdown::clean_book()
)。您可以考虑将源放在<代码>://BC/KBC/PARCTIOS1/Rmd ,并设置<代码> OutPuxdir:/DOCS/< /COD> < < /P>谢谢@易慧勰,以解决问题。我还喜欢你关于将源代码与输出代码分离的建议。现在,我使用
docs-source
作为源代码,使用
docs
作为我在GitHub repo中的代码文档的输出。再次感谢你的帮助。另外,我是你工作的忠实粉丝,你对开源项目的承诺非常感谢谢谢@Yihui Xie,谢谢你的解决方案。我还喜欢你关于将源代码与输出代码分离的建议。现在,我使用
docs-source
作为源代码,使用
docs
作为我在GitHub repo中的代码文档的输出。再次感谢你的帮助。另外,我是你工作的忠实粉丝,你对开源项目的承诺非常感谢