slidify lectureSite:工作流程和定制
slidify lectureSite: workflow and customizations
我开始使用 http://slidify.github.io/lectureSite/。我非常喜欢这个想法和模板。然而,作为新手,我在定制方面遇到了困难。
首先让我解释一下这个 'lectureSite' 架构提供了什么。主要代码基于 rmarkdown
和 slidify
,布局的自定义主要在 css
文件中控制。 'lectureSite' 包含一个 html
网页,用作内容页面和访问不同幻灯片 ('lectures') 的起点,其中大部分是自动创建的。它看起来和听起来一样棒!
每个讲座都存储在一个单独的目录中,有自己的 'assets' 目录。因此,在由 10 个讲座组成的课程中,一个有 10 个目录,每个目录都有自己的 css
和 js
。然而,为了实现整个课程的共同风格,人们希望在所有讲座中共享大部分自定义设置。我的主要问题是如何处理这个。
问题:我想在所有讲座中共享的css
自定义设置应该如何处理?
我通过在 <style>
和 </style>
标签之间的每个 rmarkdown
文件中插入 css 代码成功定制了每个讲座,但现在我想将自定义项带到可以共享的地方。我希望通过在 assets/css
中包含一个 slidify.css
文件来获取样式,但它们并没有:我可能做错了什么或者我的期望一开始就不正确吗?此外,这些 assets/css
目录太多了,每次修改时都必须将 css 复制到每个目录中,这会很乏味。是否有一种机制可以设置单个 css 文件来覆盖 assets/css
中的 css?
我还尝试在 rmarkdown 文件的顶部制作一个 'declaration'(我在那里看到的东西:http://rmarkdown.rstudio.com/html_document_format.html),其中:
css : slidify.css
但是给出了以下错误信息:
pandoc: Could not fetch slidify.css
slidify.css: openBinaryFile: does not exist (No such file or directory)
Error: pandoc document conversion failed with error 67
Execution halted
另一种方法是 source()
一个在 <style>
和 </style>
标签之间自定义的文本文件。这种方法有什么缺点吗?顺便说一句,从 rmarkdown 获取外部文件的代码是什么?
考虑以下结构:
assets -> put custom img/js/css/layout assets
lectures -> folder containing lectures
Lecture 01
Lecture 02
Lecture 03
libraries -> frameworks, highlighters and widgets
index.Rmd -> Rmd source for home page
site.yml -> Site related configuration
并假设您位于 Lectures index.Rmd
文件之一中。我发现以下似乎 'by-pass' 本地资产目录改为来源 'root' 目录:
url : {lib: "../../libraries", assets: "../../assets"}
如果您将 css 文件放入“../../assets/css/custom.css”,即 'master' 资产目录结构(在根部,换句话说),那么它将由 slidify
提供。我删除了所有其他资产目录,但没有发现它有任何危害(它们一开始只包含一个文件 ribbons.css
)。没有经过广泛测试,但它适用于 Firefox 和 Chrome.
这样,我就可以对所有章节进行一次自定义css
。
但是,此结构似乎仅适用于 html5slides
框架,不适用于 io2012
。对于 io2012
我在这里解释我做了什么(它对我有用,但我不知道这是否是正确的方法):
https://github.com/ramnathv/slidify/issues/409
有点复杂。希望 slidify 的未来版本会让它变得更容易。将样式文件转储到根资产目录的一个问题是,使用 html5slides
框架,所有文件都是来源的。因此,我在 assets 目录中包含特定于框架的 css 文件的想法行不通,因为样式都是来源的,有些样式会相互覆盖。因此,无论如何,将自定义 css 文件保存在特定于框架的目录中可能是一种更好的方法。
我还发现了以下共享 R
自定义和 knit opts
(或任何名称)的方式
```{r 'preamble', message = FALSE, warning = FALSE, error = FALSE, echo = FALSE, tidy = FALSE, comment = NA, cache = FALSE} # probably several redundant ones in there
require(knitr)
opts_chunk$set(echo = FALSE, cache = FALSE) # example of knit options
source('../../shared/shared.R') # here I share common R code
```
我开始使用 http://slidify.github.io/lectureSite/。我非常喜欢这个想法和模板。然而,作为新手,我在定制方面遇到了困难。
首先让我解释一下这个 'lectureSite' 架构提供了什么。主要代码基于 rmarkdown
和 slidify
,布局的自定义主要在 css
文件中控制。 'lectureSite' 包含一个 html
网页,用作内容页面和访问不同幻灯片 ('lectures') 的起点,其中大部分是自动创建的。它看起来和听起来一样棒!
每个讲座都存储在一个单独的目录中,有自己的 'assets' 目录。因此,在由 10 个讲座组成的课程中,一个有 10 个目录,每个目录都有自己的 css
和 js
。然而,为了实现整个课程的共同风格,人们希望在所有讲座中共享大部分自定义设置。我的主要问题是如何处理这个。
问题:我想在所有讲座中共享的css
自定义设置应该如何处理?
我通过在 <style>
和 </style>
标签之间的每个 rmarkdown
文件中插入 css 代码成功定制了每个讲座,但现在我想将自定义项带到可以共享的地方。我希望通过在 assets/css
中包含一个 slidify.css
文件来获取样式,但它们并没有:我可能做错了什么或者我的期望一开始就不正确吗?此外,这些 assets/css
目录太多了,每次修改时都必须将 css 复制到每个目录中,这会很乏味。是否有一种机制可以设置单个 css 文件来覆盖 assets/css
中的 css?
我还尝试在 rmarkdown 文件的顶部制作一个 'declaration'(我在那里看到的东西:http://rmarkdown.rstudio.com/html_document_format.html),其中:
css : slidify.css
但是给出了以下错误信息:
pandoc: Could not fetch slidify.css
slidify.css: openBinaryFile: does not exist (No such file or directory)
Error: pandoc document conversion failed with error 67
Execution halted
另一种方法是 source()
一个在 <style>
和 </style>
标签之间自定义的文本文件。这种方法有什么缺点吗?顺便说一句,从 rmarkdown 获取外部文件的代码是什么?
考虑以下结构:
assets -> put custom img/js/css/layout assets
lectures -> folder containing lectures
Lecture 01
Lecture 02
Lecture 03
libraries -> frameworks, highlighters and widgets
index.Rmd -> Rmd source for home page
site.yml -> Site related configuration
并假设您位于 Lectures index.Rmd
文件之一中。我发现以下似乎 'by-pass' 本地资产目录改为来源 'root' 目录:
url : {lib: "../../libraries", assets: "../../assets"}
如果您将 css 文件放入“../../assets/css/custom.css”,即 'master' 资产目录结构(在根部,换句话说),那么它将由 slidify
提供。我删除了所有其他资产目录,但没有发现它有任何危害(它们一开始只包含一个文件 ribbons.css
)。没有经过广泛测试,但它适用于 Firefox 和 Chrome.
这样,我就可以对所有章节进行一次自定义css
。
但是,此结构似乎仅适用于 html5slides
框架,不适用于 io2012
。对于 io2012
我在这里解释我做了什么(它对我有用,但我不知道这是否是正确的方法):
https://github.com/ramnathv/slidify/issues/409
有点复杂。希望 slidify 的未来版本会让它变得更容易。将样式文件转储到根资产目录的一个问题是,使用 html5slides
框架,所有文件都是来源的。因此,我在 assets 目录中包含特定于框架的 css 文件的想法行不通,因为样式都是来源的,有些样式会相互覆盖。因此,无论如何,将自定义 css 文件保存在特定于框架的目录中可能是一种更好的方法。
我还发现了以下共享 R
自定义和 knit opts
(或任何名称)的方式
```{r 'preamble', message = FALSE, warning = FALSE, error = FALSE, echo = FALSE, tidy = FALSE, comment = NA, cache = FALSE} # probably several redundant ones in there
require(knitr)
opts_chunk$set(echo = FALSE, cache = FALSE) # example of knit options
source('../../shared/shared.R') # here I share common R code
```