热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于r:LinktoalocalhtmlfileonRMarkdownwithShiny

LinktoalocalhtmlfileonRMarkdownwithShiny


Link to a local html file on RMarkdown with Shiny


我有一个带有闪亮的交互式 RMarkdown 文档(即在 YAML 标头中使用 runtime: shiny 行),在其中我想创建一个指向本地 html 文件的链接。但到目前为止我没有尝试过任何工作。

为了这个例子,假设我的工作目录中有以下文件:



  • 工作目录/



    • 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="https://www.codenong.com/60326689/my_file.html", target="_blank"))

    renderUI(tags$a("link_5", href="https://www.codenong.com/60326689/www/my_file.html", target="_blank"))

    renderUI(tags$a("link_6", href="file://www/my_file.html", target="_blank"))

    shinyAppFile("shiny_app.R")

    ```



最后一行 shinyAppFile("shiny_app.R") 我可以嵌入一个包含工作链接的应用程序(当应用程序单独运行时),但一旦嵌入它就不再工作了。这是 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="https://www.codenong.com/60326689/my_file.html", target="_blank"))

    }

    shinyApp(ui = ui, server = server)



令人困惑的部分是,如果这行 [link_1](www/my_file.html) 只是 rmarkdown 而没有闪亮,它会起作用。如果它只是一个闪亮的应用程序renderUI(tags$a("single_link", href="https://www.codenong.com/60326689/my_file.html", target="_blank")),这条线会起作用。但是在带有 runtime: shiny 的 rmarkdown 文件中,这些都不起作用。

如果有人能告诉我如何在 rmarkdown 闪亮文件中链接本地 html 文件,我将不胜感激。特别是如果有办法使用闪亮的函数而不是 MarkDown 语法来做到这一点。但无论哪种解决方案都受到欢迎,只要它创建一个有效的链接。



相关讨论




  • 我知道您说文件名为 rmarkdown_with_shiny.Rmd,但只是想检查它是否绝对正确。当文件名包含空格时,我遇到了 runtime: shiny 的一些奇怪行为。所以我的建议是确保文件名中没有空格或非ASCII字符。


  • 是的,文件名只包含字母和下划线,它就是rmarkdown_with_shiny.Rmd。没有空格或非 ascii 字符。






基本上,当我们运行 Shiny 应用程序时,www 文件夹的内容是在内部嵌入的,我们不需要将 www 文件夹包含到 href 属性中。

但是,如果我们想通过 runtime: shiny"公开"这些内容,我们需要添加 shiny::addResourcePath() 函数并指定其文件夹:










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="https://www.codenong.com/60326689/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")

    ```



有关原始解决方案和讨论,请参见此处。另外,致敬这里的包。






推荐阅读
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • KVC:Key-valuecodingisamechanismforindirectlyaccessinganobject’sattributesandrelations ... [详细]
author-avatar
mobiledu2502924873
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有