Link to a local html file on RMarkdown with Shiny
我有一个带有闪亮的交互式 RMarkdown 文档(即在 YAML 标头中使用
为了这个例子,假设我的工作目录中有以下文件:
-
工作目录/
- rmarkdown_with_shiny.Rmd
- 闪亮的应用程序.R
-
万维网/
- my_file.html
我想做的是在 rmarkdown_with_shiny.Rmd 中创建一个链接,单击该链接会打开文件 www/my_file.html。
文件 rmarkdown_with_shiny.Rmd 中的代码如下,包括我尝试过的所有内容,但到目前为止没有任何效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | --- title:"Rmarkdown with shiny" output: html_document runtime: shiny --- [link_1](www/my_file.html) [link_2](my_file.html) [link_3](file://www/my_file.html) ```{r shiny_links, echo=F, eval=T} renderUI(tags$a("link_4", href="my_file.html", target="_blank")) renderUI(tags$a("link_5", href="www/my_file.html", target="_blank")) renderUI(tags$a("link_6", href="file://www/my_file.html", target="_blank")) shinyAppFile("shiny_app.R") ``` |
最后一行
中的代码
1 2 3 4 5 6 7 8 9 10 | library('shiny') ui <- fluidPage( htmlOutput("link") ) server <- function(input, output) { output$link <- renderUI(tags$a("single_link", href="my_file.html", target="_blank")) } shinyApp(ui = ui, server = server) |
令人困惑的部分是,如果这行
如果有人能告诉我如何在 rmarkdown 闪亮文件中链接本地 html 文件,我将不胜感激。特别是如果有办法使用闪亮的函数而不是 MarkDown 语法来做到这一点。但无论哪种解决方案都受到欢迎,只要它创建一个有效的链接。
基本上,当我们运行 Shiny 应用程序时,
但是,如果我们想通过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | --- title:"Rmarkdown with shiny" output: html_document runtime: shiny --- ```{r setup, include = FALSE} library(knitr) library(shiny) library(here) shiny::addResourcePath(prefix ="www", directoryPath = here::here("www")) ``` Relative File Path: [My HTML file](www/my_file.html) Relative File Path: My HTML file Absolute File Path: shinyapps.io Relative File Path: ```{r shiny-relative-links, echo = FALSE, eval = TRUE} tags$a(href="www/my_file.html", tags$span(style ="color: #03a9f4","My HTML file"), target ="_blank") ``` Absolute File Path: ```{r shiny-absolute-links, echo = FALSE, eval = TRUE} tags$a(href="http://www.shinyapps.io/", tags$span(style ="color: #03a9f4","shinyapps.io"), target ="_blank") ``` |
有关原始解决方案和讨论,请参见此处。另外,致敬这里的包。