gio*_*mai 9 r knitr r-markdown
如果我创建一个没有图像或代码的非常基本的R Markdown文件并编织此HTML,我最终得到的输出文件大小超过700kb.有没有办法减少HTML文件的大小?
最小例子:
---
title: "Hello world!"
output:
html_document: default
html_notebook: default
---
Nothing else to say, really.
Run Code Online (Sandbox Code Playgroud)
输出文件的html_document
大小html_notebook
为708.6 kb ,而765.7 kb.
文件大小的原因是knit默认创建自包含文件,因此包含javascript依赖(bootstrap,highlight,jquery,navigation)作为base64编码的字符串.请参阅:http://rmarkdown.rstudio.com/html_document_format.html#document_dependencies
在您的简单情况下,不需要javascript功能,因此您可以执行以下操作:
---
title: "Hello world!"
output:
html_document:
self_contained: false
lib_dir: libs
---
Nothing else to say, really.
Run Code Online (Sandbox Code Playgroud)
这将创建一个大小为~2.7kB的html文件和一个带有javascript文件的单独的libs文件夹.但是libs文件夹的大小接近4MB.虽然你不一定需要javascript库,但html文件仍然会尝试加载它们.
如果您对真正的最小版本感兴趣,可以查看html_fragment
输出选项(http://rmarkdown.rstudio.com/html_fragment_format.html):
---
title: "Hello world!"
output:
html_fragment: default
---
Nothing else to say, really.
Run Code Online (Sandbox Code Playgroud)
但是,这不会创建一个完整的html页面,而是可以包含在另一个网站中的html内容.该test.html
文件只有36个字节.仍然可以浏览器显示它.
作为最后的手段,您可以为pandoc创建自定义html模板:http: //rmarkdown.rstudio.com/html_document_format.html#custom_templates
html_vignette
如果您想要较小的文件大小,该格式是完美的。如功能文档中所述:
HTML 小插图是 html_document 的轻量级替代品,适合包含在要发布到 CRAN 的包中。它将基本小插图的大小从 100k 减少到 10k 左右。
对于您的示例:
---
title: "Hello world!"
output: rmarkdown::html_vignette
---
Nothing else to say, really.
Run Code Online (Sandbox Code Playgroud)
结果输出为 6kB:
您可以在此处的在线文档中阅读有关该软件包的更多信息。
防止将引导库不必要地插入 HTML 文档的前导码的最简单、最直接的方法是添加额外的 markdown 标志“theme: null”。
output:
html_document:
theme: null
Run Code Online (Sandbox Code Playgroud)
这是更理想的,self_contained: false
因为它不会阻止插入图像或需要保留便携式文档的其他组件。
在我看来,它比更改为更可取,html_vignette
因为它不会吸收该处理器施加的其他更改。
请记住,如果您的文档使用模板,则主题参数将被忽略,您需要theme=NULL
在rmarkdown::render
函数中指定。
归档时间: |
|
查看次数: |
1248 次 |
最近记录: |