diff options
| Commit | ad823cc4d72edbab10f0dadf99b30df91c3f7c50 (patch) | |
|---|---|---|
| Author | 2020-08-16 08:38:04 +0300 | |
| Committer | 2020-08-16 08:38:04 +0300 | |
| Files | 6666a19acc2316d6ad5ad00291066d6d6fd42a5b /layouts/partials/layout | |
| IPL-ad823cc4d72edbab10f0dadf99b30df91c3f7c50.tar IPL-ad823cc4d72edbab10f0dadf99b30df91c3f7c50.tar.gz IPL-ad823cc4d72edbab10f0dadf99b30df91c3f7c50.zip | ||
Squashed 'website/themes/reveal-hugo/' content from commit ff9f389
git-subtree-dir: website/themes/reveal-hugo
git-subtree-split: ff9f389743ae2fe5c5cc6101455db0616e8548e2
3 files changed, 98 insertions, 0 deletions
| -rw-r--r-- | layouts/partials/layout/head.html | 7 | ||||
| -rw-r--r-- | layouts/partials/layout/javascript.html | 63 | ||||
| -rw-r--r-- | layouts/partials/layout/theme.html | 28 |
diff --git a/layouts/partials/layout/head.html b/layouts/partials/layout/head.html new file mode 100644 index 0000000..085923a --- /dev/null +++ b/layouts/partials/layout/head.html @@ -0,0 +1,7 @@ +<meta charset="utf-8"> +<title>{{ or .Page.Title .Site.Title }}</title> +{{ with $.Param "description" }}<meta name="description" content="{{ . }}">{{ end }} +{{ with .Site.Author.name }}<meta name="author" content="{{ . }}">{{ end }} +<meta name="apple-mobile-web-app-capable" content="yes"> +<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
\ No newline at end of file diff --git a/layouts/partials/layout/javascript.html b/layouts/partials/layout/javascript.html new file mode 100644 index 0000000..fe99cb9 --- /dev/null +++ b/layouts/partials/layout/javascript.html @@ -0,0 +1,63 @@ +<!-- polyfill needed for IE11 and below --> +<script type="text/javascript" src={{ "reveal-hugo/object-assign.js" | relURL }}></script> +<!-- Printing and PDF exports --> +<!-- use Hugo to create the right path for the print stylesheet, then conditionally include it --> +{{- $reveal_location := $.Param "reveal_hugo.reveal_cdn" | default "reveal-js" -}} +<a href="{{ printf "%s/css/print/" $reveal_location | relURL }}" id="print-location" style="display: none;"></a> +<script type="text/javascript"> + var printLocationElement = document.getElementById('print-location'); + var link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = printLocationElement.href + (window.location.search.match(/print-pdf/gi) ? 'pdf.css' : 'paper.css'); + document.getElementsByTagName('head')[0].appendChild(link); +</script> +<!-- output Hugo parameters into JavaScript to be used when initializing Reveal.js --> +<script type="application/json" id="reveal-hugo-site-params">{{ jsonify .Site.Params.reveal_hugo | safeJS }}</script> +<script type="application/json" id="reveal-hugo-page-params">{{ jsonify .Page.Params.reveal_hugo | safeJS }}</script> +<!-- load Reveal.js javascripts --> +<script src="{{ printf "%s/js/reveal.js" $reveal_location | relURL }}"></script> +<!-- load Reveal.js plugins --> +<script type="text/javascript"> + // Hugo lowercases all params and Reveal.js needs camelcase + // So params in Hugo must be stored in snakecase and we camelize them here + function camelize(map) { + if (map) { + Object.keys(map).forEach(function(k) { + newK = k.replace(/(\_\w)/g, function(m) { return m[1].toUpperCase() }); + if (newK != k) { + map[newK] = map[k]; + delete map[k]; + } + }); + } + return map; + } + // pattern inspired by https://github.com/RealOrangeOne/hugo-theme-revealjs + var revealHugoDefaults = { center: true, controls: true, history: true, progress: true, transition: "slide" }; + var revealHugoSiteParams = JSON.parse(document.getElementById('reveal-hugo-site-params').innerHTML); + var revealHugoPageParams = JSON.parse(document.getElementById('reveal-hugo-page-params').innerHTML); + // See all options - https://github.com/hakimel/reveal.js#configuration + var options = Object.assign({}, + camelize(revealHugoDefaults), + camelize(revealHugoSiteParams), + camelize(revealHugoPageParams)); + Reveal.initialize(options); +</script> +<!-- load Reveal.js plugins after Reveal.js is initialized --> +{{ if $.Param "reveal_hugo.load_default_plugins" | default true }} + {{ $default_plugins := slice "plugin/markdown/marked.js" "plugin/markdown/markdown.js" "plugin/highlight/highlight.js" "plugin/zoom-js/zoom.js" }} + {{ range $default_plugins }} + <script type="text/javascript" src="{{ printf "%s/%s" $reveal_location . | relURL }}"></script> + {{ end }} + <!-- always use local version of the notes plugin since HTML file it requires isn't on CDN --> + <script type="text/javascript" src="{{ "reveal-js/plugin/notes/notes.js" | relURL }}"></script> +{{ end }} +<!-- load custom plugins locally only (not CDN since many plugins won't exist there) --> +{{ range $.Param "reveal_hugo.plugins" }} +<script type="text/javascript" src="{{ . | relURL }}"></script> +{{ end }} +{{- $custom_js := $.Param "reveal_hugo.custom_js" -}} +{{- if $custom_js -}} +<script type="text/javascript" src="{{ $custom_js | relURL }}"></script> +{{- end -}} diff --git a/layouts/partials/layout/theme.html b/layouts/partials/layout/theme.html new file mode 100644 index 0000000..a4f7c86 --- /dev/null +++ b/layouts/partials/layout/theme.html @@ -0,0 +1,28 @@ +<!-- Theme used for presentation --> +{{- $reveal_location := $.Param "reveal_hugo.reveal_cdn" | default "reveal-js" -}} +{{- $highlight_location := $.Param "reveal_hugo.highlight_cdn" | default "highlight-js" -}} +{{- $custom_theme := $.Param "reveal_hugo.custom_theme" -}} +<link rel="stylesheet" href="{{ printf "%s/css/reset.css" $reveal_location | relURL }}"> +<link rel="stylesheet" href="{{ printf "%s/css/reveal.css" $reveal_location | relURL }}"> +{{- $custom_theme := $.Param "reveal_hugo.custom_theme" -}} +{{- if $custom_theme -}} + {{- $custom_theme_options := $.Param "reveal_hugo.custom_theme_options" | default dict -}} + {{- if $.Param "reveal_hugo.custom_theme_compile" -}} + {{ $asset := resources.Get $custom_theme | resources.ExecuteAsTemplate "_.scss" . | toCSS $custom_theme_options | minify | fingerprint }} + <link rel="stylesheet" href="{{ $asset.Permalink | relURL }}" id="theme"> + {{- else -}} + <link rel="stylesheet" href="{{ $custom_theme | relURL }}" id="theme"> + {{- end -}} +{{ else -}} + {{- $theme := $.Param "reveal_hugo.theme" | default "black" -}} + <link rel="stylesheet" href="{{ printf "%s/css/theme/%s.css" $reveal_location $theme | relURL }}" id="theme"> +{{ end -}} +{{ if $.Param "reveal_hugo.load_default_plugins" | default true -}} + <!-- Theme used for syntax highlighting of code --> + {{- $highlight_theme := $.Param "reveal_hugo.highlight_theme" | default "default" -}} + <link rel="stylesheet" href="{{ printf "%s/%s.min.css" $highlight_location $highlight_theme | relURL }}"> +{{- end }} +{{- $custom_css := $.Param "reveal_hugo.custom_css" -}} +{{- if $custom_css -}} +<link rel="stylesheet" href="{{ $custom_css | relURL }}" id="custom_css"> +{{- end -}} |
