`blogdown::serve_site()` 如何设置其本地服务器(Apache/Python/something else)?

How does `blogdown::serve_site()` setup its local server (Apache/Python/something else)?

如果我使用 R Studio Addins > Serve Site,或者 blogdown::serve_site(),我是否设置了 Apache/Python/etc。我本地机器上的服务器?还是发生了其他事情? R Studio and/or blogdown 如何设置这个本地网络服务器?

我正在尝试在不使用 R Studio > Addins > Serve Site 的情况下重新创建此设置,只是想知道它是如何工作的。

[编辑] - 我应该提到我主要使用 Ubuntu 和 Windows 个人电脑。

它 运行s hugo which is a requirement for blogdown, bookdown and related projects. And hugo 是它自己的(嵌入式)网络服务器。

这实际上非常方便——我经常直接在命令行上 运行 hugo server。同样,它还允许您仅通过 hugo 工具链创建网站,或与 R 包混合,或在它们之间切换。

根据您的编辑,这是我目前(在 Ubuntu)用于网站的脚本:

#!/bin/bash
hugo server --destination docs --renderToDisk

这有 --destination docs 目录,因为我正在使用 GitHub 的嵌入式服务器。

编辑:我描述的本身是正确的,是一个简单的替代方案,但不是易辉提供的问题的答案。我倾向于写比 Rmarkdown 更多的 markdown,所以我描述的更适合我。

在书的 the preface of the blogdown book, I recommended that all readers read at least Chapter 1 and Section 3.1 of this book. This question was answered in Section 1.2 中:

LiveReload is implemented via blogdown::serve_site(), which is based on the R package servr.

servr 包依次调用 R 包 httpuv 来启动本地 HTTP 服务器(你可以用 servr::httd() 测试它来服务任何本地浏览器中的目录)。它不使用 Apache、Python 或其他系统。 blogdown 中的默认服务器也不基于 hugo server

在 1.2 节那句话之后,我插入了一个脚注 (#7),其中我说如果你想利用 Hugo 的内置服务器(即 hugo server),你需要看Appendix D.2.

如果你的网站项目中有任何R Markdown文档,你不能简单地运行 hugo server。来自 blogdown 书的 Section 2.1

Although we think Hugo is a fantastic static site generator, there is really one and only one major missing feature: the support for R Markdown. That is basically the whole point of the blogdown package. This missing feature means that you cannot easily generate results using R code on your web pages, since you can only use static Markdown documents.

基本上 blogdown::serve_site() 做两件事:编译 R Markdown 文档(如果有的话),并提供输出页面。服务器可以通过两种方式启动。默认方式是通过 httpuv,如果您请求 blogdown 通过 R 选项(再次,见附录 D.2)。在这两种方式中,R Markdown 文档将在更新时自动重新编译。

请注意 blogdown 也(部分)支持 two other static site generators、Jekyll 和 Hexo。 blogdown::serve_site()推出的服务器也考虑到了他们。这不仅仅是关于 Hugo,尽管我猜绝大多数 blogdown 用户都使用 Hugo。