2

我开始使用http://slidify.github.io/lectureSite/。我非常喜欢这个想法和模板。然而,作为新手,我正在努力定制。

让我首先解释一下这个“lectureSite”架构提供了什么。主要代码基于rmarkdownslidify布局的自定义主要控制在css文件中。“lectureSite”由一个html网页组成,该网页用作内容页面和访问不同幻灯片(“讲座”)的起点,其中大部分是自动创建的。它看起来和听起来一样棒!

每个讲座都存储在一个单独的目录中,并带有自己的“资产”目录。因此,在一门由 10 个讲座组成的课程中,一个有 10 个目录,每个目录都有自己的cssjs. 然而,为了实现整个课程的共同风格,人们希望在所有讲座之间共享大部分定制。我的主要问题是如何处理这个问题。

问题:我应该如何处理css我想在所有讲座中共享的自定义?

通过将 css 代码插入到和标签rmarkdown之间的每个文件中,我已经成功地自定义了每个讲座,但是现在我想将自定义带到可以共享它们的地方。我希望通过在样式中包含一个文件会被选中,但事实并非如此:我可能做错了什么还是我的期望一开始就不正确?此外,这些目录太多了,每次修改时都必须将 css 复制到每个目录中,这会很乏味。是否有一种机制可以设置一个可以覆盖内部 css 的 css 文件?<style></style>slidify.cssassets/cssassets/cssassets/css

我还尝试在 rmarkdown 文件(我在那里看到的东西: 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()之间进行自定义的文本文件。这种方法有什么缺点吗?顺便说一句,从 rmarkdown 获取外部文件的代码是什么?<style></style>

4

1 回答 1

4

考虑以下结构:

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

并假设您在其中一个 Lecturesindex.Rmd文件中。我发现以下内容似乎“绕过”了本地资产目录以获取“根”目录:

url         : {lib: "../../libraries", assets: "../../assets"}

如果您将 css 文件放入“../../assets/css/custom.css”,即结构顶部的“主”资产目录(在根目录,换一种说法),那么它将由slidify. 我删除了所有其他资产目录,并没有发现它有任何危害(它们最初只包含一个文件ribbons.css)。没有经过广泛测试,但它适用于 Firefox 和 Chrome。

通过这种方式,我可以对所有章节进行单一定制css

但是,这种结构似乎只适用于html5slides框架而不适用于io2012. 因为io2012我在这里解释了我做了什么(它对我有用,但我不知道这是否是正确的方法):

https://github.com/ramnathv/slidify/issues/409

涉及的比较多。希望未来版本的 slidify 将使它更容易。将样式文件转储到根资产目录的一个问题是,对于html5slides框架,所有文件都是有源的。所以我在资产目录中拥有特定于框架的 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 
```
于 2015-01-09T21:57:07.673 回答