Remove need for a data file in the theme
This removes an extra step in params lookup and works around a bug in Hugo introduced after 0.37 that causes theme data files not to be found in certain circumstances.
This commit is contained in:
parent
31dca11944
commit
51623a07af
3 changed files with 22 additions and 24 deletions
24
README.md
24
README.md
|
@ -290,11 +290,11 @@ You can use all the additional slide shortcode attributes. They will be applied
|
||||||
|
|
||||||
Customize the Reveal.js presentation by setting these values in `config.toml` or the front matter of any presentation's `_index.md` file.
|
Customize the Reveal.js presentation by setting these values in `config.toml` or the front matter of any presentation's `_index.md` file.
|
||||||
|
|
||||||
- `params.reveal_hugo.theme`: The Reveal.js theme used, defaults to "black"
|
- `reveal_hugo.theme`: The Reveal.js theme used, defaults to "black"
|
||||||
- `params.reveal_hugo.custom_theme`: The path to a locally hosted Reveal.js theme
|
- `reveal_hugo.custom_theme`: The path to a locally hosted Reveal.js theme
|
||||||
- `params.reveal_hugo.highlight_theme`: The [highlight.js](https://highlightjs.org/) theme used, defaults to "default"
|
- `reveal_hugo.highlight_theme`: The [highlight.js](https://highlightjs.org/) theme used, defaults to "default"
|
||||||
- `params.reveal_hugo.reveal_cdn`: The location to load Reveal.js files from, defaults to `https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.6.0`
|
- `reveal_hugo.reveal_cdn`: The location to load Reveal.js files from, defaults to `https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.6.0`
|
||||||
- `params.reveal_hugo.highlight_cdn`: The location to load highlight.js files from, defaults to `https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0`
|
- `reveal_hugo.highlight_cdn`: The location to load highlight.js files from, defaults to `https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0`
|
||||||
|
|
||||||
This is how parameters will look in your `config.toml`:
|
This is how parameters will look in your `config.toml`:
|
||||||
|
|
||||||
|
@ -312,7 +312,17 @@ theme = "moon"
|
||||||
|
|
||||||
Include any other attributes in those sections that you'd like to be fed as arguments to `Reveal.initialize` in **snakecase**, so `slide_number` instead of `slideNumber`. Params are converted from snakecase to camelcase before passing to Reveal.js. This is necessary to maintain the proper case of the parameters.
|
Include any other attributes in those sections that you'd like to be fed as arguments to `Reveal.initialize` in **snakecase**, so `slide_number` instead of `slideNumber`. Params are converted from snakecase to camelcase before passing to Reveal.js. This is necessary to maintain the proper case of the parameters.
|
||||||
|
|
||||||
See the [extensive list of Reveal.js configuration options](https://github.com/hakimel/reveal.js/#configuration) here. Several defaults used by this theme are located in `data/reveal_hugo.toml`.
|
Here's an example of configuring Reveal.js parameters alongside a theme and highlight.js theme:
|
||||||
|
|
||||||
|
```TOML
|
||||||
|
[reveal_hugo]
|
||||||
|
theme = "moon"
|
||||||
|
highlight_theme = "solarized-dark"
|
||||||
|
slide_number = true
|
||||||
|
transition = "zoom"
|
||||||
|
```
|
||||||
|
|
||||||
|
See the [extensive list of Reveal.js configuration options](https://github.com/hakimel/reveal.js/#configuration) here.
|
||||||
|
|
||||||
## Adding HTML to the layout
|
## Adding HTML to the layout
|
||||||
|
|
||||||
|
@ -328,7 +338,7 @@ If your Hugo site already has a theme but you'd like to create a presentation fr
|
||||||
cd my-hugo-site
|
cd my-hugo-site
|
||||||
git clone git@github.com:dzello/reveal-hugo.git themes/reveal-hugo
|
git clone git@github.com:dzello/reveal-hugo.git themes/reveal-hugo
|
||||||
cd themes/reveal-hugo
|
cd themes/reveal-hugo
|
||||||
cp -r data layouts static ../../
|
cp -r layouts static ../../
|
||||||
```
|
```
|
||||||
|
|
||||||
Files and directories are named such that they shouldn't conflict with your existing content. Of course, you should double check before copying, especially the shortcodes which can't be put under a directory.
|
Files and directories are named such that they shouldn't conflict with your existing content. Of course, you should double check before copying, especially the shortcodes which can't be put under a directory.
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
[defaults]
|
|
||||||
theme = 'black'
|
|
||||||
highlight_theme = 'default'
|
|
||||||
controls = true
|
|
||||||
progress = true
|
|
||||||
history = true
|
|
||||||
center = true
|
|
||||||
transition = 'slide' # none/fade/slide/convex/concave/zoom
|
|
||||||
|
|
||||||
reveal_cdn = "https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.6.0"
|
|
||||||
highlight_cdn = "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0"
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
{{- $reveal_cdn := or .Page.Params.reveal_hugo.reveal_cdn .Site.Params.reveal_hugo.reveal_cdn .Site.Data.reveal_hugo.defaults.reveal_cdn "https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.6.0" -}}
|
{{- $reveal_cdn := or .Page.Params.reveal_hugo.reveal_cdn .Site.Params.reveal_hugo.reveal_cdn "https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.6.0" -}}
|
||||||
{{- $highlight_cdn := or .Page.Params.reveal_hugo.highlight_cdn .Site.Params.reveal_hugo.highlight_cdn .Site.Data.reveal_hugo.defaults.highlight_cdn "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0" -}}
|
{{- $highlight_cdn := or .Page.Params.reveal_hugo.highlight_cdn .Site.Params.reveal_hugo.highlight_cdn "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0" -}}
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
@ -38,9 +38,8 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
{{- block "main" . -}}{{- end -}}
|
{{- block "main" . -}}{{- end -}}
|
||||||
<script type="application/json" id="reveal-hugo-page-params">{{ jsonify .Page.Params.reveal_hugo | safeJS }}</script>
|
|
||||||
<script type="application/json" id="reveal-hugo-site-params">{{ jsonify .Site.Params.reveal_hugo | safeJS }}</script>
|
<script type="application/json" id="reveal-hugo-site-params">{{ jsonify .Site.Params.reveal_hugo | safeJS }}</script>
|
||||||
<script type="application/json" id="reveal-hugo-defaults">{{ jsonify .Site.Data.reveal_hugo.defaults | safeJS }}</script>
|
<script type="application/json" id="reveal-hugo-page-params">{{ jsonify .Page.Params.reveal_hugo | safeJS }}</script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.revealHugoDependencies = {
|
window.revealHugoDependencies = {
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
@ -71,9 +70,9 @@
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
// pattern inspired by https://github.com/RealOrangeOne/hugo-theme-revealjs
|
// pattern inspired by https://github.com/RealOrangeOne/hugo-theme-revealjs
|
||||||
var revealHugoPageParams = JSON.parse(document.getElementById('reveal-hugo-page-params').innerHTML);
|
var revealHugoDefaults = { center: true, controls: true, history: true, progress: true, transition: "slide" };
|
||||||
var revealHugoSiteParams = JSON.parse(document.getElementById('reveal-hugo-site-params').innerHTML);
|
var revealHugoSiteParams = JSON.parse(document.getElementById('reveal-hugo-site-params').innerHTML);
|
||||||
var revealHugoDefaults = JSON.parse(document.getElementById('reveal-hugo-defaults').innerHTML);
|
var revealHugoPageParams = JSON.parse(document.getElementById('reveal-hugo-page-params').innerHTML);
|
||||||
// See all options - https://github.com/hakimel/reveal.js#configuration
|
// See all options - https://github.com/hakimel/reveal.js#configuration
|
||||||
var options = Object.assign({},
|
var options = Object.assign({},
|
||||||
camelize(revealHugoDefaults),
|
camelize(revealHugoDefaults),
|
||||||
|
|
Loading…
Reference in a new issue