rmarkdown - 共享文件夹中的文件无效

时间:2017-05-12 14:28:03

标签: r knitr r-markdown pandoc

我无法在共享文件夹中看到正确的rmarkdown HTML输出。

我正在使用

生成报告
rmarkdown::render('myfile.rmd')

输出HTML包含图像和DT :: datatable。当我在计算机中打开它时,render()生成的文件工作正常。如果我通过电子邮件将HTML文件发送给同事,他们可以毫无问题地看到它。

只要将HTML文件复制到服务器中的共享文件夹,它就不再正确呈现:所有DT :: datatable都丢失了,而且字体显示不正确。

我也试过了:

rmarkdown('myfile.rmd', output_dir = 'shared_folder/', output_file = 'myreport.html') 

这也行不通。 Rmd文件位于我的本地计算机中,output_dir是共享文件夹。该文件正确地写在共享文件夹中,但是当我尝试打开它时,我遇到了和以前一样的问题。

最初,共享文件夹中的网页会使Internet Explorer崩溃。我在Rmd文件中添加了mathjax:null选项并且崩溃停止了,但是字体/ DT :: datatable缺失问题仍在继续:

output:
  html_document:
    mathjax: null

我的本​​地硬盘是NTFS,共享文件夹文件系统也是NTFS。

rmarkdown显示的pandoc选项是(个人信息被抑制):

+RTS -K512m -RTS myfile.utf8.md --to html 
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash
--output myfile.html 
--smart --email-obfuscation none 
--self-contained --standalone --section-divs 
--template "C:\Users\[...]\Documents\R\win-library\3.3\rmarkdown\rmd\h\default.html" 
--no-highlight 
--variable highlightjs=1 
--variable "theme:simplex" 
--include-in-header "C:\Users\[...]\AppData\Local\Temp\Rtmpqm2YlA\rmarkdown-str18ab05327b00.html" 

在Windows 7中运行R 3.3.2。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Internet Explorer以兼容模式打开共享驱动器和文件夹中的文件。您可以通过将<meta http-equiv="X-UA-Compatible" content="IE=edge"/>添加到HTML文档的头部来覆盖此行为。

但是使用in_header YAML标记不起作用。我相信这是因为Pandoc将这些标记放在标题部分的末尾,并且IE要求此标记在标题中较早出现。为了解决这个问题,我使用以下代码生成IE兼容文件,这些文件将从网络驱动器中存储和访问:

knitr::knit("myfile.rmd")
HtmlList <- readLines("myfile.html")
HtmlList[HtmlList == "<head>"] <- "<head> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"

fileConn <- file("myfile.html")
writeLines(HtmlList, fileConn)
close(fileConn)
相关问题