我开始使用http://slidify.github.io/lectureSite/。我非常喜欢这个想法和模板。然而,对于这个新手,我正在努力进行定制。
首先让我解释一下这个讲座和#39;建筑提供。主要代码基于rmarkdown
和slidify
,布局的自定义主要由css
个文件控制。 “讲座”#39;由html
网页组成,该网页作为内容页面和访问不同幻灯片的起点('讲座'),其中大部分都是自动创建的。它听起来很棒!
每个讲座都存储在一个单独的目录中,该目录中有自己的资产'目录。因此,在由10个讲座组成的课程中,一个目录有10个目录,每个目录都有自己的css
和js
。但是,为了实现整个课程的共同风格,人们希望在所有讲座中共享大多数自定义。我的主要问题是如何处理这个问题。
问题:我应该如何处理我想在所有讲座中分享的css
自定义内容?
通过在rmarkdown
和<style>
标记之间的每个</style>
文件中插入css代码,我成功地自定义了每个讲座,但现在我想将自定义设置放到某个位置他们可以分享的地方。我希望通过在slidify.css
中加入一个assets/css
文件来获取样式,但它们不是:我可能做错了什么或者我的期望是不正确的?此外,有许多assets/css
个目录,每次修改css都需要将css复制到每个目录中是很繁琐的。有没有一种机制可以设置一个覆盖assets/css
内的css的单个css文件?
我还试图做出声明&#39;在rmarkdown文件的顶部(我在那里看到的内容:http://rmarkdown.rstudio.com/html_document_format.html)with:
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>
标记之间的自定义。这种方法有什么缺点吗? btw从rmarkdown获取外部文件的代码是什么?
答案 0 :(得分: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
并假设您在其中一个讲座index.Rmd
文件中。我发现以下似乎是旁路&#39;本地资产目录来源&#39; root&#39;目录而不是:
url : {lib: "../../libraries", assets: "../../assets"}
如果您将css文件放入&#34; ../../ assets / css / custom.css&#34;,那就是&#39; master&#39;资产目录位于结构的顶部(在根目录,以不同的方式说),然后它将由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
```