正如标题所说,我想在Github Pages上创建交互式的R Markdown文件(即其中包含嵌入的Shiny应用程序)。在Github Pages上是否可以实现这一点?如果可以,我该怎么做?如果不行,最好的(免费)托管交互式RMD / Shiny页面的方法是什么?
正如标题所说,我想在Github Pages上创建交互式的R Markdown文件(即其中包含嵌入的Shiny应用程序)。在Github Pages上是否可以实现这一点?如果可以,我该怎么做?如果不行,最好的(免费)托管交互式RMD / Shiny页面的方法是什么?
尽管在Github页面上无法托管完整的Shiny应用程序(实际上,正如@Gregor建议的那样,shinyapps.io对此很有用),但Shiny的开发人员一直在努力通过htmlwidgets使部分功能完全在客户端运行。
这里是一个在Github页面上运行的简单示例:
README.Rmd
## Example of displaying htmlwidgets on a Github pages site
```{r}
# Source: http://www.htmlwidgets.org/showcase_plotly.html
library(plotly)
p <- ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar(position = "dodge")
ggplotly(p)
```
页面呈现的HTML
(在线版本: Github pages htmlwidget演示)
对于更复杂的交互,包括在客户端完全通信的小部件之间交流,请查看Joe Cheng最近在UserR! 2016展示的crosstalk演示。
shinylive
包在Github页面上托管Shiny应用。但是,传统的Shiny部署方式涉及到一个独立的服务器和客户端:服务器运行Python和Shiny,客户端通过Web浏览器连接。每个客户端在使用应用程序时都保持着一个打开的websocket连接。
这意味着你可以通过GitHub页面托管Shiny应用。当使用Shinylive部署应用程序时,Python和Shiny在Web浏览器中运行:浏览器实际上是应用程序的客户端和服务器。有一个Web服务器用于提供文件,但它不运行Python或Shiny-它可以是一个“愚蠢”的静态Web服务器。
shiny create myapp
app.py
,其中包含默认的shinylive示例,位于myapp
文件夹下。.
└── myapp
└── app.py
shiny static
命令构建网站。shiny static myapp docs
myapp
映射到网站文件夹 docs
(Github Pages 要求将网站名称设置为 docs
)。这将添加以下文件夹:.
├── docs
│ ├── edit
│ └── shinylive
│ ├── jquery.terminal
│ │ ├── bin
│ │ ├── css
│ │ └── js
│ ├── pyodide
│ │ └── fonts
│ ├── pyright
│ └── shiny_static
│ └── edit
└── myapp
python3 -m http.server --directory docs 8008
http://localhost:8008/
。shiny static myapp docs
来更新docs
文件夹。Settings
选项卡,并选择Pages
选项(蓝色框)。
接下来,在“构建和部署”下选择“从分支部署”选项(绿色框),然后在分支选项中选择要部署的分支和“docs”文件夹(紫色框)。YOUR_GITHUB_USER_PROFILE.github.io/YOUR_REPO_NAME