【问题标题】:Clickable link to local folder in RmarkdownRmarkdown 中本地文件夹的可点击链接
【发布时间】:2019-07-19 07:16:39
【问题描述】:

我想知道是否可以将本地目录或文件的链接添加到 rmarkdown。我的目标是在每个页面中都有一个 png,并在某些页面上有一个可点击的链接,这些链接将我带到生成绘图的文件(特殊文件,因此没有 csv 或表格)。我不想打开该文件,但只需打开包含该文件的文件夹,以便用户可以轻松找到它并使用适当的软件打开它。 像这样的:

 {r, results='asis'}
 #Generate some plots
  for (i1 in 1:10)
 {  
   png(paste0("~/Downloads/tmp-png/",i1,".png"), width=800, height=800)
   par(mfrow=c(3,3))
   for (j1 in 1:9)
     plot(1:40)
   dev.off()
   }
  some.list <- c("2.png","5.png","7.png")
  files <- list.files(path = "~/Downloads/tmp-png", pattern = "png", 
  full.names = TRUE)
  for (f in files) {
    cat(paste0("![image_label](", f, ")\n"))
    if ( f %in% some.list)
    #Add a local hyperlink to the folder
   #
 }

【问题讨论】:

    标签: r pdf hyperlink r-markdown knitr


    【解决方案1】:

    您没有说明链接应该是什么,但您应该能够使用图片包含之类的内容生成链接。例如。如果您想要的文件f 的链接是文件夹temp/foo.wjx,那么只需包含

    folder <- "temp/foo.wjx"
    cat(paste0("[folder_label](", folder, ")\n"))
    

    if之后。

    这需要是网络服务器上的一个文件夹,其路径相对于生成链接的 PDF 文件的路径。 PDF 查看器是否跟随链接可能取决于您使用的查看器。

    folder_label 可以是图片链接而不是文本标签。

    【讨论】:

    • 我修复了 some.list。该链接只是一个文件的本地路径(即 ./temp/foo.wjx),它与我的 knitr 文件位于同一目录中。我想将此超链接添加到我的 knitr pdf 中,以便在我的第 2,5 和 7 页中有文本“folder_label”将我带到目录中的某个文件。
    • 谢谢!如果我有 foo.wjx,它就可以工作。但问题是它试图在我的浏览器中打开它,而不是用文件夹查看器打开它。当我右键单击 folder_label 时,我可以看到链接是 ./temp/foo.wjx。当我将文件夹更改为“./temp”时,单击 temp.pdf 不存在的链接后出现错误。我在 ubuntu 上使用 pdf 文档查看器(Foxit 根本不做任何事情),这可能是问题所在。
    • 我怀疑"./temp/"(带有最后一个斜线)可能比不使用它更好(虽然它对我不起作用,但它确实取决于观众)。我还怀疑没有查看器会让您在系统上运行任意命令。这会带来太大的安全风险。
    • 使用最后的斜线,它仍然试图打开一个不存在的 temp.pdf 。 knitr 中的新 xfun 包可以选择嵌入文件或文件夹,但它会尝试下载文件,而我不想这样做。我认为正如您所说,出于安全原因,这可能是不可能的。我尝试将 evince 中的默认浏览器更改为 nautilus,而不是 firefox,但它仍然在 firefox 中打开。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2020-06-05
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多