编译 reveal.js-based 没有 RStudio 的 R markdown 演示文稿
Compiling reveal.js-based R markdown presentation without RStudio
最近,RStudio 添加了对从 RMarkdown 生成的 beautiful reveal.js-based HTML presentations 的支持(带有一些扩展)。这些与 rmarkdown
R 包提供的早期 HTML 演示格式不同,后者依赖于 ioslides 或 Slidy。
是否可以在不求助于 RStudio 的情况下将这样的演示文稿编译为 HTML? IE。是否有一个纯 R 函数,给定一个 R 表示源文件,它会生成与 IDE 相同的结果?
P.S。我想进行转换的底层 R 包是 JJ Allaire 的 revealjs
,但就其本身而言,它无法识别某些语法扩展(例如,通过将 css: custom.css
放在标题下来自定义外观的那些第一张幻灯片的),这让我觉得它必须有一个额外的包装。
您可以在 YAML header 中使用具有 revealjs::revealjs_presentation
格式的标准 rmarkdown::render()
函数。 custom.css
等资源是相对于 Rmd 位置引用的,因此无需在 render()
步骤中指定这些资源。
关于原生 RStudio 和脚本版本之间具体实现差异的用户说明
虽然它不是 drop-in 的替代品。 revealjs
包,因为它可以从 CRAN 获得,它附带了一个不同(更新)版本的 reveal.js 库,而不是 RStudio 内部使用的库(3.2 对 2.4,截至 2016 年 3 月 8 日)。默认设置(例如过渡)也不同,因此需要调整。
作为 Markdown → HTML 转换的主力 pandoc 版本也需要谨慎,因为 RStudio 可能在内部使用具有不同模板的旧版本。所有这些意味着您可能需要重新进行自定义(例如 css 调整)。
也存在语法差异——元数据不能位于演示文稿的第一个标题(即标题)下:
Presentation title
==================
author: Foo Bar
css: custom.css
相反,它们必须放入传统的 RMarkdown YAML header:
---
author: Foo Bar
css: custom.css
---
我不确定 per-slide 像 incremental: true
这样的特殊设置(以 RPresentation 格式放在相应幻灯片的标题下)是否完全被识别。
我使用这样的脚本来呈现我的 reveal.js markdown 幻灯片:
library(rmarkdown)
library(revealjs)
file.name <- "index"
path.to.file <- "."
rmarkdown::render(file.path(path.to.file, paste0(file.name, ".Rmd")),
revealjs_presentation(theme="white", highlight="tango", slideNumber = TRUE),
encoding = "UTF-8")
# Open the generated HTML file in the browser
browseURL( file.path(path.to.file, paste0(file.name, ".html")))
最近,RStudio 添加了对从 RMarkdown 生成的 beautiful reveal.js-based HTML presentations 的支持(带有一些扩展)。这些与 rmarkdown
R 包提供的早期 HTML 演示格式不同,后者依赖于 ioslides 或 Slidy。
是否可以在不求助于 RStudio 的情况下将这样的演示文稿编译为 HTML? IE。是否有一个纯 R 函数,给定一个 R 表示源文件,它会生成与 IDE 相同的结果?
P.S。我想进行转换的底层 R 包是 JJ Allaire 的 revealjs
,但就其本身而言,它无法识别某些语法扩展(例如,通过将 css: custom.css
放在标题下来自定义外观的那些第一张幻灯片的),这让我觉得它必须有一个额外的包装。
您可以在 YAML header 中使用具有 revealjs::revealjs_presentation
格式的标准 rmarkdown::render()
函数。 custom.css
等资源是相对于 Rmd 位置引用的,因此无需在 render()
步骤中指定这些资源。
关于原生 RStudio 和脚本版本之间具体实现差异的用户说明
虽然它不是 drop-in 的替代品。 revealjs
包,因为它可以从 CRAN 获得,它附带了一个不同(更新)版本的 reveal.js 库,而不是 RStudio 内部使用的库(3.2 对 2.4,截至 2016 年 3 月 8 日)。默认设置(例如过渡)也不同,因此需要调整。
作为 Markdown → HTML 转换的主力 pandoc 版本也需要谨慎,因为 RStudio 可能在内部使用具有不同模板的旧版本。所有这些意味着您可能需要重新进行自定义(例如 css 调整)。
也存在语法差异——元数据不能位于演示文稿的第一个标题(即标题)下:
Presentation title
==================
author: Foo Bar
css: custom.css
相反,它们必须放入传统的 RMarkdown YAML header:
---
author: Foo Bar
css: custom.css
---
我不确定 per-slide 像 incremental: true
这样的特殊设置(以 RPresentation 格式放在相应幻灯片的标题下)是否完全被识别。
我使用这样的脚本来呈现我的 reveal.js markdown 幻灯片:
library(rmarkdown)
library(revealjs)
file.name <- "index"
path.to.file <- "."
rmarkdown::render(file.path(path.to.file, paste0(file.name, ".Rmd")),
revealjs_presentation(theme="white", highlight="tango", slideNumber = TRUE),
encoding = "UTF-8")
# Open the generated HTML file in the browser
browseURL( file.path(path.to.file, paste0(file.name, ".html")))