diff options
| Commit | ad823cc4d72edbab10f0dadf99b30df91c3f7c50 (patch) | |
|---|---|---|
| Author | 2020-08-16 08:38:04 +0300 | |
| Committer | 2020-08-16 08:38:04 +0300 | |
| Files | 6666a19acc2316d6ad5ad00291066d6d6fd42a5b /exampleSite | |
| 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
48 files changed, 2283 insertions, 0 deletions
diff --git a/exampleSite/.forestry/settings.yml b/exampleSite/.forestry/settings.yml new file mode 100644 index 0000000..8130263 --- /dev/null +++ b/exampleSite/.forestry/settings.yml @@ -0,0 +1,12 @@ +--- +new_page_extension: md +auto_deploy: false +admin_path: +webhook_url: +sections: +upload_dir: "./exampleSite/static/uploads" +public_path: "/uploads" +front_matter_path: '' +use_front_matter_path: false +file_template: ":filename:" +version: 0.38.1 diff --git a/exampleSite/assets/custom-theme.scss b/exampleSite/assets/custom-theme.scss new file mode 100644 index 0000000..4f8462a --- /dev/null +++ b/exampleSite/assets/custom-theme.scss @@ -0,0 +1,35 @@ +@import "reveal-js/css/theme/template/mixins"; +@import "reveal-js/css/theme/template/settings"; + +$backgroundColor: rgb(3, 129, 45); + +$mainColor: #fff; +$headingColor: #fff; + +$mainFontSize: 38px; +$mainFont: 'Source Sans Pro', Helvetica, sans-serif; +$headingFont: 'Source Sans Pro', Helvetica, sans-serif; +$headingTextShadow: none; +$headingLetterSpacing: normal; +$headingTextTransform: uppercase; +$headingFontWeight: 600; +$linkColor: #42affa; +$linkColorHover: lighten( $linkColor, 15% ); +$selectionBackgroundColor: lighten( $linkColor, 25% ); + +$heading1Size: 2.5em; +$heading2Size: 1.6em; +$heading3Size: 1.3em; +$heading4Size: 1.0em; + +@import "reveal-js/css/theme/template/theme"; + +section.has-light-background { + &, h1, h2, h3, h4, h5, h6 { + color: #222; + } +} + +.reveal pre { + margin: 50px auto; +} diff --git a/exampleSite/config.toml b/exampleSite/config.toml new file mode 100644 index 0000000..b201cf0 --- /dev/null +++ b/exampleSite/config.toml @@ -0,0 +1,37 @@ +baseURL = "https://example.com/" +languageCode = "en-us" +title = "A Hugo theme for creating Reveal.js presentations" +disableKinds = ["sitemap", "RSS"] +theme = "." +themesDir = "../" + +# uncomment for browsing at file:/// +# relativeURLs = true +# uglyURLs = true + +[author] +name = "Josh Dzielak" + +# currently only the unsafe mode for goldmark is supported +[markup.goldmark.renderer] +unsafe = true + +# choose between Hugo compile-time or Highlight.js +# syntax highlighting for code inside of code fences +[markup.highlight] +codeFences = false # use highlight.js +# codeFences = true # use hugo highlighting at compile time +style = "tango" # set a style for hugo highlighting + +[outputFormats.Reveal] +baseName = "index" +mediaType = "text/html" +isHTML = true + +[params.reveal_hugo] +history = true + +# used in content/template-example +[params.reveal_hugo.templates.grey] +background = "#424242" +transition = "convex"
\ No newline at end of file diff --git a/exampleSite/content/_index.md b/exampleSite/content/_index.md new file mode 100644 index 0000000..fba3be6 --- /dev/null +++ b/exampleSite/content/_index.md @@ -0,0 +1,22 @@ ++++ +title = "reveal-hugo" +description = "A Hugo theme for creating Reveal.js presentations" +outputs = ["Reveal"] +[reveal_hugo] +custom_theme = "reveal-hugo/themes/robot-lung.css" +margin = 0.2 +highlight_theme = "color-brewer" +transition = "slide" +transition_speed = "fast" +[reveal_hugo.templates.hotpink] +class = "hotpink" +background = "#FF4081" ++++ + +# đŊī¸ + +# reveal-hugo + +A Hugo theme for creating Reveal.js presentations. + +~ made by [@dzello](https://dzello.com/) ~
\ No newline at end of file diff --git a/exampleSite/content/bundle-example/continued.md b/exampleSite/content/bundle-example/continued.md new file mode 100644 index 0000000..b2a4381 --- /dev/null +++ b/exampleSite/content/bundle-example/continued.md @@ -0,0 +1,16 @@ ++++ ++++ + +If more markdown files are present in the bundle, their contents will be added to the presentation. + +--- + +Specify `weight` in the frontmatter if it's necessary to order them. + +--- + +If you don't want them to be included, specify `layout = "list"` in the front matter instead of `layout = "bundle"`. + +--- + +## THE END
\ No newline at end of file diff --git a/exampleSite/content/bundle-example/index.md b/exampleSite/content/bundle-example/index.md new file mode 100644 index 0000000..087bffe --- /dev/null +++ b/exampleSite/content/bundle-example/index.md @@ -0,0 +1,30 @@ ++++ +title = "Bundle example presentation" +outputs = ["Reveal"] +layout = "bundle" +[reveal_hugo] +theme = "night" +margin = 0.2 ++++ + +# Page Bundles + +--- + +[Hugo page bundles](https://gohugo.io/content-management/page-bundles/) are a useful way to organize content. + +--- + +To create a reveal-hugo presentation from the `index.md` file of a leaf page bundle, you need to specify the layout manually. + +```toml +layout = "bundle" +``` + +--- + +Why? By default, reveal-hugo doesn't create pages for single template types (foo.md), only for list template types (_index.md). + +--- + +This technique can also be used to output an HTML file for any section of a presentation, should you need to. diff --git a/exampleSite/content/custom-theme-example/_index.md b/exampleSite/content/custom-theme-example/_index.md new file mode 100644 index 0000000..dd09946 --- /dev/null +++ b/exampleSite/content/custom-theme-example/_index.md @@ -0,0 +1,74 @@ ++++ +title = "Custom theme example presentation" +outputs = ["Reveal"] +[reveal_hugo] +custom_theme = "custom-theme.scss" +custom_theme_compile = true ++++ + +## đ ī¸ + +## Custom Themes + +*with Hugo Pipes* + +--- + +This presentation uses a custom Reveal.js theme written in SCSS that is compiled by Hugo, using [Hugo pipes](https://gohugo.io/hugo-pipes/). + +--- + +Hugo pipes compiles the source code of the theme, located in `assets/custom-theme.scss`, into CSS. + +--- + +## đ + +No separate build process is required, which means you can iterate on your theme and your content at the same time. + +--- + +To set a custom theme and use Hugo to compile it: + +```toml +[reveal_hugo] +custom_theme = "custom-theme.scss" +custom_theme_compile = true +``` + +`custom-theme.scss` must live in the `assets` folder. + +--- + +To pass compilation options, use the `custom_theme_options` param: + +```toml +[reveal_hugo.custom_theme_options] +targetPath = "css/custom-theme.css" +enableSourceMap = true +``` + +See all the [available options](https://gohugo.io/hugo-pipes/scss-sass/#options). + +--- + +Note: to use a custom theme that doesn't need compilation, put it in the `static` directory and do not set the `custom_theme_compile` parameter. It will be served to the browser directly. + +--- + +Write a custom Reveal.js theme in four steps: + +```text +1. Import `mixins` and `settings` from the templates directory +2. Override variables and functions for colors, fonts and sizes +3. Import `theme` from the templates directory +4. Add any additional selectors to override the built CSS +``` + +--- + +See the [Reveal.js theme docs](https://github.com/hakimel/reveal.js/blob/master/css/theme/README.md) to learn what overrides are possible. + +--- + +See `assets/custom-theme.scss` or any file in `assets/reveal-js/css/theme/source` for an example. diff --git a/exampleSite/content/extending-layout-example/_index.md b/exampleSite/content/extending-layout-example/_index.md new file mode 100644 index 0000000..108d840 --- /dev/null +++ b/exampleSite/content/extending-layout-example/_index.md @@ -0,0 +1,53 @@ ++++ +title = "Extend layout with configuration" +outputs = ["Reveal"] +[reveal_hugo] +theme = "night" +margin = 0.2 +custom_css = "css/custom.css" +custom_js = "js/custom.js" ++++ + +### Extending an existing layout + +If you are using an existing theme and you want to a specific CSS class or add a dynamic function using javascript. It is possible to extend existing layout. + +--- + +### Extending CSS + +You can use `partials` or you can specify `custom_css` in your configuration : + +```toml +[reveal_hugo] +custom_css = "css/custom.css" +``` +<small> +The `custom.css` can be present in `static/css/custom.css` +</small> + +--- + +### Extending with javascript + +Same as CSS you can extend your presentation with javascript using `partials` or with `custom_js` in your configuration: + +```toml +[reveal_hugo] +custom_js = "js/custom.js" +``` + +<small> +The `custom.js` can be present in `static/js/custom.js` +</small> + +--- + +{{< slide class="custom" id="customjs" >}} +## Extend layout example +Here the slide has an additional css class `custom` using `slide` *shortcode*. This class is hosted in a custom CSS. + +If you click on this text background-color will using a custom javascript file. + + + diff --git a/exampleSite/content/highlightjs-linenumbers-example/_index.md b/exampleSite/content/highlightjs-linenumbers-example/_index.md new file mode 100644 index 0000000..a285336 --- /dev/null +++ b/exampleSite/content/highlightjs-linenumbers-example/_index.md @@ -0,0 +1,160 @@ ++++ +title = "Reveal.js 3.9.0 highlighting example" +outputs = ["Reveal"] + +[reveal_hugo] +theme = "white" +highlight_theme = "vs" ++++ + +## Multiline highlighting with Highlight.js + +--- + +This presentation shows the use of the [new highlighting features](https://github.com/hakimel/reveal.js/blob/master/README.md#step-by-step-highlights) which were introduced with Reveal.js [v3.9.0](https://github.com/hakimel/reveal.js/releases/tag/3.9.0). + +--- + +## Prerequisite + +Disable `codeFences` in to your `config.toml` to prevent Hugo's built-in highlighting for code inside of `---` fences. + +{{< highlight toml "style=github" >}} +[markup.highlight] +codeFences = false +{{< /highlight >}} + +--- + +## Theme + +Specify a theme for Highlight.js in `config.toml` + +{{< highlight toml "style=github" >}} +[params.reveal_hugo] +highlight_theme = "github" +{{< /highlight >}} + +--- + +...or in the `_index.md` front matter + +{{< highlight toml "style=github" >}} +[reveal_hugo] +highlight_theme = "github" +{{< /highlight >}} + +--- + +## Usage + +The line highlighting is configured by adding `{}` immediately after the language selection of the markdown code block. + +{{< highlight md >}} +```foo{} + +``` +{{< /highlight >}} + +--- + +## Just line numbers + +`{}` + +{{< highlight md >}} +```go{} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` +{{< /highlight >}} + +```go{} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` + +--- + +## Highlight specific lines + +`{<line numbers separated by comma>}` + +{{< highlight md >}} +```go{1,3-5} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` +{{< /highlight >}} +```go{1,3-5} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` + +--- + +## Multi step highlight + +`{<line numbers separated by pipe>}` + +{{< highlight md >}} +```go{1|2|3-5} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` +{{< /highlight >}} + +```go{1|2|3-5} +package main +import "fmt" +func main() { + fmt.Println("Hello world!") +} +``` +--- + +## Hiding the line numbers + +There is no Reveal.js parameter to use line highlighting *without* line numbers. +However it can be achieved by adding the some [custom CSS](https://github.com/dzello/reveal-hugo#adding-html-to-the-layout). + +{{< highlight html "style=github" >}} +<style> + .hljs-ln-numbers { + display: none; + } +</style> +{{< /highlight >}} + +--- + +đĄ Put the custom CSS in either of these partials: + +```text +# for all presentations +layouts/partials/reveal-hugo/body.html +``` + +```text +# for one presentation +layouts/partials/{presentation-name}/reveal-hugo/body.html +``` + +--- + +Thanks!
\ No newline at end of file diff --git a/exampleSite/content/home/configuration.md b/exampleSite/content/home/configuration.md new file mode 100644 index 0000000..1d13e9b --- /dev/null +++ b/exampleSite/content/home/configuration.md @@ -0,0 +1,170 @@ ++++ +weight = 21 ++++ + +# Configuration + +Place configuration values in `config.toml` or a presentation's front matter (`_index.md`). + +--- + +## Reveal.js themes + +Themes control the look and feel of your presentation. Set the `theme` param to any [valid Reveal.js theme](https://github.com/hakimel/reveal.js/#theming). + +```toml +[params.reveal_hugo] +theme = "moon" +``` + +--- + +## Use a custom theme + +To use a custom Reveal.js theme, place the CSS file in the `static` directory and set the `custom_theme` param. + +```toml +[params.reveal_hugo] +custom_theme = "reveal-hugo/themes/robot-lung.css" +``` + +--- + +### Use a custom theme (advanced) + +To use Hugo pipes to build a custom Reveal.js theme, place the source file (SCSS / PostCSS) in the `assets` directory and set the `custom_theme_compile` param. + +```toml +[params.reveal_hugo] +custom_theme = "reveal-hugo/themes/custom-theme.scss" +custom_theme_compile = true +``` + +<small> + +đĄ See the [custom theme example presentation](/custom-theme-example/) for more details. + +</small> + +--- + +## Bundled themes + +reveal-hugo comes with 2 extra Reveal.js themes: + +- [robot-lung](https://github.com/dzello/revealjs-themes#robot-lung) (this one) +- [sunblind](https://github.com/dzello/revealjs-themes#sunblind) + +<br> + +<small> + +They live in the `static/reveal-hugo/themes` folder and also [on Github](https://github.com/dzello/revealjs-themes). + +</small> + +--- + +## Reveal.js params + +Set **snakecase** versions of Reveal.js params, which will be camelized and passed to `Reveal.initialize`. + +```toml +[params.reveal_hugo] +history = true +slide_number = true +transition = 'zoom' +transition_speed = 'fast' +``` + +[Full list of params](https://github.com/hakimel/reveal.js/#configuration) + +--- + +## highlight.js themes + +To change the syntax highlighting theme, set the `highlight_theme` +to a valid [highlight.js theme name](https://highlightjs.org/static/demo/). + +```toml +[params.reveal_hugo] +highlight_theme = "zenburn" +``` + +--- + +## Extending the layout + +Use partials to add HTML to the page for one or all presentations at a time. + +<small> +đĄ This is the recommended way to add script and style tags to customize your presentations. +</small> + +--- + +Here is where to put partials for different presentations and places in the DOM. +<br><br> + +| Presentation | Before </head> | Before </body> | +|--------------|---------------------------------|---------------------------------| +| All | reveal-hugo/head.html | reveal-hugo/body.html | +| Root | home/reveal-hugo/head.html | home/reveal-hugo/body.html | +| Section | {section}/reveal-hugo/head.html | {section}/reveal-hugo/body.html | + + + +<small> + +đĄ You can also create an `end.html` to put content before the end of the `.reveal` div tag. + +</small> + +--- + +## Custom CSS Example + +In `home/reveal-hugo/head.html`: + +```html +<style> +.reveal section h1 { + color: blue; +} +</style> +``` + +--- + +## Custom JS Example + +In `home/reveal-hugo/body.html`: + +```html +<script type="text/javascript"> +Reveal.addEventListener('slidechanged', function(event) { + console.log("đī¸ Slide is now " + event.indexh); +}); +</script> +``` + +--- + +### Extending the layout +#### (alternative) + +You can declare a custom CSS or javascript in your configuration. + +```toml +[reveal_hugo] +custom_css = "css/custom.css" +custom_js = "js/custom.js" +``` + +<small> + +These files can be located in `static/css`, `static/js` folder + +đĄ See the [extending layout example](/extending-layout-example/#) for more details. + +</small> diff --git a/exampleSite/content/home/features.md b/exampleSite/content/home/features.md new file mode 100644 index 0000000..5d70186 --- /dev/null +++ b/exampleSite/content/home/features.md @@ -0,0 +1,25 @@ ++++ +weight = 10 ++++ + +## What's included? + +- All Reveal.js HTML, CSS and JS (v3.9.2) +- All out-of-the-box Reveal.js themes +- Two custom Reveal.js themes (including this one) + +<br> +<br> + +[see the code on github](https://github.com/dzello/reveal-hugo) + +--- + +## Features + +- Write slides in Markdown in one or more files +- Shortcodes for fragments, sections, slides & more +- All Reveal.js parameters can be customized +- Any Hugo section can be output as a presentation +- Supports offline development or using a CDN + diff --git a/exampleSite/content/home/resources.md b/exampleSite/content/home/resources.md new file mode 100644 index 0000000..e19cbc1 --- /dev/null +++ b/exampleSite/content/home/resources.md @@ -0,0 +1,43 @@ ++++ +weight = 42 ++++ + +# Resources + +--- + +## Code and docs + +- [reveal-hugo Github README](https://github.com/dzello/reveal-hugo) +- [Content for this presentation](https://github.com/dzello/reveal-hugo/tree/master/exampleSite) + +--- + +## External resources + +- [Reveal.js](https://revealjs.com/) +- [Hugo docs](https://gohugo.io/) +- [Hugo output format docs](https://gohugo.io/templates/output-formats/) + +--- + +## Designed to... + +- Deploy to [Netlify](https://netlify.com/) +- Edit with [Forestry](https://forestry.io/) + +--- + +# đ + +Contribute by opening issues and pull requests. + +--- + +# Thanks! + +--- + +# âŠī¸ + +#### [Start over](#) diff --git a/exampleSite/content/home/shortcodes/fragment.md b/exampleSite/content/home/shortcodes/fragment.md new file mode 100644 index 0000000..e53592c --- /dev/null +++ b/exampleSite/content/home/shortcodes/fragment.md @@ -0,0 +1,41 @@ ++++ +weight = 30 ++++ + +## Fragment + +The `fragment` shortcode makes content appear incrementally. + +``` +{{%/* fragment */%}} One {{%/* /fragment */%}} +{{%/* fragment */%}} Two {{%/* /fragment */%}} +{{%/* fragment */%}} Three {{%/* /fragment */%}} +``` + +{{% fragment %}} One {{% /fragment %}} +{{% fragment %}} Two {{% /fragment %}} +{{% fragment %}} Three {{% /fragment %}} + +--- + +## Frag + +The `frag` shortcode is more terse than `fragment`. It accepts a `c` attribute. + +``` +{{</* frag c="One" */>}} +{{</* frag c="Two" */>}} +{{</* frag c="Three" */>}} +``` + +{{< frag c="One" >}} +{{< frag c="Two" >}} +{{< frag c="Three" >}} + +--- + +Both `fragment` and `frag` accept two additional parameters: + +- `class`: sets the class of the wrapping `span` element +- `index`: controls the order in which sections will appear + diff --git a/exampleSite/content/home/shortcodes/introduction.md b/exampleSite/content/home/shortcodes/introduction.md new file mode 100644 index 0000000..2978a52 --- /dev/null +++ b/exampleSite/content/home/shortcodes/introduction.md @@ -0,0 +1,11 @@ ++++ +weight = 29 ++++ + +# Shortcodes + +--- + +Hugo's shortcodes are similar to functions or templates that extend what you can do with Markdown. + +[Shortcode documentation](https://gohugo.io/content-management/shortcodes/)
\ No newline at end of file diff --git a/exampleSite/content/home/shortcodes/markdown.md b/exampleSite/content/home/shortcodes/markdown.md new file mode 100644 index 0000000..0c49b4e --- /dev/null +++ b/exampleSite/content/home/shortcodes/markdown.md @@ -0,0 +1,38 @@ ++++ +weight = 36 ++++ + +{{< markdown >}} + +## Markdown + +Reveal.js has its own [markdown processor](https://github.com/hakimel/reveal.js#markdown). To use that instead of Hugo, surround a slide with the markdown shortcode. + +```markdown +{{</* markdown */>}} + +# Hello world! + +{{</* /markdown */>}} +``` + +<br> +<small> +đĄ Make sure to use the `{{</* */>}}` shortcode syntax to avoid rendering by Hugo. +</small> + +--- + +<!-- .slide: data-background="#FF4081" --> + +Reveal.js markdown uses HTML comments to change slide properties, like background color. + +```markdown +{{</* markdown */>}} +<!-- .slide: data-background="#FF4081" --> +# I'm a colorful slide +{{</* /markdown */>}} +``` + +{{< /markdown >}} + diff --git a/exampleSite/content/home/shortcodes/other.md b/exampleSite/content/home/shortcodes/other.md new file mode 100644 index 0000000..fda5276 --- /dev/null +++ b/exampleSite/content/home/shortcodes/other.md @@ -0,0 +1,49 @@ ++++ +weight = 38 ++++ + +## Notes + +Add speaker notes (with markdown) to your presentation with the `note` shortcode. Type 's' to see this slide's speaker notes. + +```markdown +--- + +{{%/* note */%}} +- You found the **speaker notes**! +{{%/* /note */%}} + +--- +``` + +{{% note %}} +- You found the **speaker notes**! +{{% /note %}} + +--- + +{{< slide notes="You found the notes!" >}} + +## Notes + +You can also add notes with the `slide` shortcode and `notes` attribute: + +```markdown +--- + +{{%/* slide notes="You found the notes!" */%}} + +--- +``` + +--- + +<section data-noprocess> + <h2>Write slides in HTML</h2> + <p>Use a <code>section</code> tag with a <code>data-noprocess</code> attribute to avoid any processing by reveal-hugo.</p> + <pre> +<section data-noprocess> + <h1>Hello world!</h1> +</section></pre> + <small>đĄ This is useful if you can't get Markdown to output exactly what you want.</small> +</section> diff --git a/exampleSite/content/home/shortcodes/section.md b/exampleSite/content/home/shortcodes/section.md new file mode 100644 index 0000000..797ba21 --- /dev/null +++ b/exampleSite/content/home/shortcodes/section.md @@ -0,0 +1,44 @@ ++++ +weight = 33 ++++ + +{{% section %}} + +## Section + +The `section` shortcode groups slides into a **vertical display**. + +<br> +<small> +use the down arrow or swipe down to continue +</small> +<br> +<a href="#" class="navigate-down">đŊ</a> + +--- + +Put the shortcode around the slides you want to group together. + +```markdown +{{%/* section */%}} + +## Section slide 1 + +--- + +## Section slide 2 + +{{%/* /section */%}} +``` + +Keep going down. + +--- + +## That's it! + +Use the right arrow or swipe right to continue. + +{{% /section %}} + + diff --git a/exampleSite/content/home/shortcodes/slide.md b/exampleSite/content/home/shortcodes/slide.md new file mode 100644 index 0000000..3ce5b8c --- /dev/null +++ b/exampleSite/content/home/shortcodes/slide.md @@ -0,0 +1,250 @@ ++++ +weight = 34 ++++ + +## Slide + +Use this shortcode when you need to customize slide attributes like id, class, background color and transition. + +--- + +{{< slide class="hello" >}} + +## Slide + +Add the shortcode above the slide's content, below the `---`. + +```markdown +--- + +{{</* slide class="hello" */>}} + +## Hello, world! + +--- +``` + +--- + +{{< slide transition="zoom" transition-speed="fast" >}} + +## Custom slide 1 + +<small>Did you notice? This slide has a fast zoom transition.</small> + +```markdown +--- + +{{</* slide transition="zoom" transition-speed="fast" */>}} + +## Custom slide 1 + +--- +``` + +--- + +{{< slide background-color="#FF4081" >}} + +## Custom slide 2 + +<small>This slide has a different background color.</small> + +```markdown +--- + +{{</* slide background-color="#FF4081" */>}} + +## Custom slide 2 + +--- +``` + +--- + +{{< slide background-image="/images/alex-litvin-790876-unsplash.jpg" background-color="#000000" >}} + +## Custom slide 3 + +<small>This slide has a background image.</small> + +```markdown +--- + +{{</* slide background-image="/images/alex-litvin-790876-unsplash.jpg" */>}} + +--- +``` + +<small>(credit <a href="https://unsplash.com/@alexlitvin">Alex Litvin</a>)</small> + +--- + +{{< slide id="custom-slide" >}} + +đĄ Tip: Setting a slide's `id` attribute makes it easy to link to from other parts of the presentation. +<br><br> + +```markdown +--- + +{{</* slide id="custom-slide" */>}} + +## Custom slide + +--- +``` + +--- + +```markdown +[Try the link](#custom-slide) +``` + +<br> + +[Try the link](#custom-slide) + +--- + +Slide attribute possibilities from the [Reveal.js docs](https://github.com/hakimel/reveal.js): + +- `autoslide` +- `state` +- `background` +- `background-color` +- `background-image` +- `background-size` +- `background-position` +- `background-repeat` + +--- + +- `background-video` +- `background-video-loop` +- `background-video-muted` +- `background-interactive` +- `background-iframe` +- `background-transition` +- `transition` (can have different in and out transitions) +- `transition-speed` +- `notes` (can also use the note shortcode) +- `timing` + +--- + +{{% section %}} + +## Slide templates + +Store sets of common slide attributes in front matter variables and apply them to slides with the template attribute. + +<br> +<small> +navigate down to learn more +</small> +<br> +<a href="#" class="navigate-down">đŊ</a> + +--- + +Create templates in config.toml, _index.md or the current page's front matter. Put them under the **templates** key with a meaningful name: + +```toml +[reveal_hugo.templates.hotpink] +class = "hotpink" +background = "#FF4081" +``` + +--- + +{{< slide template="hotpink" >}} + +Apply the template using the **template** attribute of the slide shortcode: + +```markdown +{{</* slide template="hotpink" */>}} + +# I'm a hot pink slide! +``` + +--- + +If a template exists in multiple configurations, it's properties will be merged. If a property is declared multiple times, the order of precedence is: + +- page +- section (_index.md) +- site (config.toml) + +{{% /section %}} + +--- + +{{% section %}} + +{{< slide content="home.reusable" >}} + +--- + +{{< slide content="common.nested.reusable" >}} + +{{% /section %}} + +--- + +{{% section %}} + +## Slide-specific CSS + +Add more variety to your presentation by applying slide-specific CSS. + +<br> +<small> +navigate down to learn more +</small> +<br> +<a href="#" class="navigate-down">đŊ</a> + +--- + +First, use the `slide` shortcode to give the slide a class: + +```markdown +--- + +{{</* slide class="side-by-side" */>}} + +# đ + +# đ + +--- +``` + +--- + +Next, use a layout extension partial like `reveal-hugo/head.html` to add CSS selectors: + +```html +<style> +.reveal section.side-by-side h1 { + position: absolute; +} +.reveal section.side-by-side h1:first-of-type { + left: 25%; +} +.reveal section.side-by-side h1:nth-of-type(2) { + right: 25%; +} +</style> +``` + +--- + +{{< slide class="side-by-side" >}} + +# đ + +# đ + +{{% /section %}} diff --git a/exampleSite/content/home/usage.md b/exampleSite/content/home/usage.md new file mode 100644 index 0000000..a9ebe9d --- /dev/null +++ b/exampleSite/content/home/usage.md @@ -0,0 +1,109 @@ ++++ +weight = 20 ++++ + +# Usage + +--- + +## Prerequisite + +First, add this to your `config.toml`: + +```toml +[outputFormats.Reveal] +baseName = "index" +mediaType = "text/html" +isHTML = true +``` + +--- + +### Presentation at site root + +Create `content/_index.md`: + +```markdown ++++ +outputs = ["Reveal"] ++++ + +# Slide 1 + +Hello world! +``` + +--- + +### Add slides + +Separate them by `---` surrounded by blank lines: + +``` +# Slide 1 + +Hello world! + +--- + +# Slide 2 + +Hello program! +``` + +--- + +### Add slides with other files + +Add slides to `content/home/*.md` + +```markdown ++++ +weight = 10 ++++ + +# Slide 3 + +--- + +# Slide 4 +``` + +<small>đĄ Tip: Use `weight` to specify the order that files should be considered.</small> + +--- + +### Presentation at '/{section}/' + +Add slides to `content/{section}/_index.md`: + +```markdown ++++ +outputs = ["Reveal"] ++++ + +# Slide 1 + +--- + +# Slide 2 +``` + +--- + +Add slides from other files in `content/{section}/*.md` + +```markdown ++++ +weight = 10 ++++ + +# Slide 3 + +--- + +# Slide 4 +``` + +<small>đĄ Tip: Use `weight` to specify the order that files should be considered.</small> + diff --git a/exampleSite/content/hugo-hl-example/_index.md b/exampleSite/content/hugo-hl-example/_index.md new file mode 100644 index 0000000..279254c --- /dev/null +++ b/exampleSite/content/hugo-hl-example/_index.md @@ -0,0 +1,113 @@ ++++ +title = "Hugo highlighting example" +outputs = ["Reveal"] + +[reveal_hugo] +theme = "simple" ++++ + +## Hugo Highlighter Presentation + +This is an example of a presentation using Hugo's compile-time syntax highlighter. + +--- + +Reveal.js uses Javascript for syntax highlighting (via Highlight.js). This might slow the presentation down if many slides contain code. + +--- + +Hugo has a built-in [compile-time highlighter](https://gohugo.io/content-management/syntax-highlighting/), and it's lightning fast too! + +--- + +You can enable it using the `highlight` shortcode. + +{{< highlight go >}} +{{</* highlight go */>}} + +package main + +import "fmt" + +func main() { + fmt.Println("Hello world!") +} + +{{</* /highlight */>}} +{{< /highlight >}} + +--- + +Several options are supported, check [Hugo's documentation](https://gohugo.io/content-management/syntax-highlighting/). + +{{< highlight go "style=github,linenos=inline,hl_lines=8" >}} +{{</* highlight go "style=github,linenos=inline,hl_lines=6" */>}} + +package main + +import "fmt" + +func main() { + fmt.Println("Hello world!") +} + +{{</* /highlight */>}} +{{< / highlight >}} + +--- + +You can also use Hugo's highlighter in markdown code fences, +by putting this in `config.toml`: + +{{< highlight toml "style=github" >}} + +# use Hugo's hl in markdown (with or without a language tag) +[markup.highlight] +codeFences = true +style = "github" + +{{< /highlight >}} + +(This can only be enabled globally for all presentations.) + +--- + +- Highlight.js is automatically disabled in code blocks highlighted by Hugo. +- The two highlighters can be even mixed. + +{{< highlight go >}} +package main + +import "fmt" + +func main() { + fmt.Println("Hello world!") +} +{{< / highlight >}} + +```go +package main + +import "fmt" + +func main() { + fmt.Println("Hello world!") +} +``` + +--- + +If you don't need highlight.js at all, you can prevent it from loading. + +{{< highlight toml "style=github" >}} + +# This works both in config.toml and a presentation's front +# matter. Default plugins include highlight.js, so disable them +# and load those that we want manually. + +[params.reveal_hugo] +load_default_plugins = false +plugins = [ + "reveal-js/plugin/zoom-js/zoom.js", + "reveal-js/plugin/notes/notes.js", +] diff --git a/exampleSite/content/logo-example/_index.md b/exampleSite/content/logo-example/_index.md new file mode 100644 index 0000000..d943296 --- /dev/null +++ b/exampleSite/content/logo-example/_index.md @@ -0,0 +1,103 @@ ++++ +title = "Logo presentation example" +outputs = ["Reveal"] +[logo] +src = "github-logo.png" +alt = "GitHub logo with Octocat" +[reveal_hugo] +custom_theme = "reveal-hugo/themes/robot-lung.css" +margin = 0.2 ++++ + +## logo-example + +This presentation shows how to add a logo to each slide, like the GitHub one you see above. + +You can generalize the concept to add any additional markup to your presentations. + +--- + +[See the code for this presentation](https://github.com/dzello/reveal-hugo/blob/master/exampleSite/content/logo-example/_index.md) + +--- + +First, create a partial called `body.html` and put it in this directory: + +```text +layouts/partials/{section}/reveal-hugo/body.html +``` + +--- + +Substitute `{section}` for `home` if you are adding a logo to the presentation at `content/_index.md`. Otherwise, substitute the name of the Hugo section where your presentation lives. + +--- + +The presentation you're looking at right now is in `content/logo-example`, so the partial to add the logo lives in: + +```text +layouts/partials/logo-example/reveal-hugo/body.html +``` + +--- + +đĄ Tip: to make the logo appear in every presentation, put it here: + +```text +layouts/partials/reveal-hugo/body.html +``` + +--- + +đĄ Tip: In addition to `body.html`, you can create partials `head.html` and `end.html` in any of those directories. + +--- + +- head.html: Add markup just before the closing `</head>` tag +- body.html: Add markup just before the closing `</body>` tag +- end.html: Add markup just before the closing of the Reveal.js `div.slides` container + +--- + +Once the partial exists in `body.html`, we can add our image tag to it: + +```html +<img id="logo" src="{{ .Param "logo.src" }}" alt="{{ .Param "logo.alt" }}"> +``` + +--- + +In this example, the src and alt attributes are set to values from the content's front matter or site's configuration, which you can see in `logo-example/_index.md`: + +```toml +[logo] +src = "/images/github-logo.png" +alt = "GitHub logo with Octocat" +``` + +--- + +To position the logo, we can add a style tag to `body.html`: + +```html +<style> + #logo { + position: absolute; + top: 20px; + left: 20px; + width: 250px; + } +</style> +``` + +<small> +đĄ Depending on the theme you're using, your styles will be different. <br>You may also prefer to put your CSS in an external file or your Reveal.js theme. +</small> + +--- + +# đ¤ + +That's it. + +Happy Hugo-ing!
\ No newline at end of file diff --git a/exampleSite/content/logo-example/github-logo.png b/exampleSite/content/logo-example/github-logo.png Binary files differnew file mode 100644 index 0000000..9a6e56c --- /dev/null +++ b/exampleSite/content/logo-example/github-logo.png diff --git a/exampleSite/content/plugin-example/_index.md b/exampleSite/content/plugin-example/_index.md new file mode 100644 index 0000000..507eb5a --- /dev/null +++ b/exampleSite/content/plugin-example/_index.md @@ -0,0 +1,83 @@ ++++ +title = "plugin-example" +description = "Shows how a Reveal.js plugin can be added and used" +outputs = ["Reveal"] +[reveal_hugo] +theme = "night" +margin = 0.2 +plugins = ["plugin/gallery/gallery.plugin.js"] ++++ + +# plugin-example + +--- + +This presentation demonstrates how a Reveal.js plugin can be added. + +--- + +The plugin is called [revealjs-simple-gallery](https://github.com/marcins/revealjs-simple-gallery). + +--- + +It can make any slide an image gallery. Here are a few examples. + +--- + +<ul class="gallery"> + <li><img src="sample1.jpg" alt="Default settings (Photo by Oscar Fernandez Alonso on Flickr)"></li> + <li><img src="sample2.jpg" alt="Default settings (Photo by bullcitydogs on Flickr)"></li> + <li><img src="sample3.jpg" alt="Default settings (Photo by Lance McCord on Flickr)"></li> +</ul> + +--- + +<ul class="gallery" data-iterations="0" data-interval="1"> + <li><img src="sample1.jpg" alt="Infinite iterations, fast transition (Photo by Oscar Fernandez Alonso on Flickr)"></li> + <li><img src="sample2.jpg" alt="Infinite iterations, fast transition (Photo by bullcitydogs on Flickr)"></li> + <li><img src="sample3.jpg" alt="Infinite iterations, fast transition (Photo by Lance McCord on Flickr)"></li> +</ul> + +--- + +<ul class="gallery" data-iterations="2" data-interval="2" data-mode="full-screen"> + <li><img src="sample1.jpg" alt="Full screen, two iterations, slow transition (Photo by Oscar Fernandez Alonso on Flickr)"></li> + <li><img src="sample2.jpg" alt="Full screen, two iterations, slow transition (Photo by bullcitydogs on Flickr)"></li> + <li><img src="sample3.jpg" alt="Full screen, two iterations, slow transition (Photo by Lance McCord on Flickr)"></li> +</ul> + +--- + +See the [revealjs-simple-gallery GitHub repo](https://github.com/marcins/revealjs-simple-gallery) to learn about more customization options. + +--- + +These were the steps to use this plugin for this reveal-hugo presentation. + +--- + +### 1 + +Copy the plugin CSS and JavaScript into the static directory + +--- + +### 2 + +Add the JavaScript file path to the `plugins` field in the front matter + +--- + +### 3 + +Create a `head.html` partial inside of `layouts/partials/plugin-example/reveal-hugo` + +--- + +### 4 + +In `head.html`, add a stylesheet link tag that loads the plugin CSS + +--- + +## THE END
\ No newline at end of file diff --git a/exampleSite/content/plugin-example/sample1.jpg b/exampleSite/content/plugin-example/sample1.jpg Binary files differnew file mode 100644 index 0000000..497d5d1 --- /dev/null +++ b/exampleSite/content/plugin-example/sample1.jpg diff --git a/exampleSite/content/plugin-example/sample2.jpg b/exampleSite/content/plugin-example/sample2.jpg Binary files differnew file mode 100644 index 0000000..a62dbdf --- /dev/null +++ b/exampleSite/content/plugin-example/sample2.jpg diff --git a/exampleSite/content/plugin-example/sample3.jpg b/exampleSite/content/plugin-example/sample3.jpg Binary files differnew file mode 100644 index 0000000..dad2884 --- /dev/null +++ b/exampleSite/content/plugin-example/sample3.jpg diff --git a/exampleSite/content/section-example/_index.md b/exampleSite/content/section-example/_index.md new file mode 100644 index 0000000..5d42bc3 --- /dev/null +++ b/exampleSite/content/section-example/_index.md @@ -0,0 +1,19 @@ ++++ +title = "Section presentation example" +outputs = ["Reveal"] +[reveal_hugo] +theme = "night" +margin = 0.2 ++++ + +# Section Presentation + +This is an example of a section presentation. + +--- + +Section presentations are completely separate from the root presentation and each other. + +--- + +Additional content files can be placed in the section and will be added to the presentation in the order of their weight.
\ No newline at end of file diff --git a/exampleSite/content/section-example/presentation.md b/exampleSite/content/section-example/presentation.md new file mode 100644 index 0000000..0309317 --- /dev/null +++ b/exampleSite/content/section-example/presentation.md @@ -0,0 +1,8 @@ ++++ +weight = 10 ++++ + +# Including... + +Content from files like this one. + diff --git a/exampleSite/content/template-example/_index.md b/exampleSite/content/template-example/_index.md new file mode 100644 index 0000000..5b1ec68 --- /dev/null +++ b/exampleSite/content/template-example/_index.md @@ -0,0 +1,45 @@ ++++ +title = "Template presentation" +outputs = ["Reveal"] +[reveal_hugo] +theme = "night" +margin = 0.2 +[reveal_hugo.templates.blue] +background = "#0011DD" +transition = "zoom" ++++ + +## Template Example + +--- + +This presentation shows how to take advantage of reveal-hugo's slide template feature. + +--- + +Slide templates let you specify groups of slide attributes in one place and reuse them throughout the presentation. + +--- + +{{< slide template="blue" >}} + +Here's an example of using a template called `blue`, defined in the front matter of this presentation's `_index.md` file. + +--- + +The template can contain any valid slide customization params: + +```toml +[reveal_hugo.templates.blue] +background = "#0011DD" +transition = "zoom" +``` + +--- + +Then add it to any slide using the slide shortcode: + +``` +{{</* slide template="blue" */>}} +``` + diff --git a/exampleSite/content/template-example/continued.md b/exampleSite/content/template-example/continued.md new file mode 100644 index 0000000..85ac367 --- /dev/null +++ b/exampleSite/content/template-example/continued.md @@ -0,0 +1,16 @@ ++++ ++++ + +{{< slide template="grey" >}} + +Templates can be specified in `config.toml` as well, for reusability across multiple presentations. + +``` +[params.reveal_hugo.templates.grey] +background = "#424242" +transition = "convex" +``` + +--- + +## THE END
\ No newline at end of file diff --git a/exampleSite/data/common/nested.toml b/exampleSite/data/common/nested.toml new file mode 100644 index 0000000..1d5cd59 --- /dev/null +++ b/exampleSite/data/common/nested.toml @@ -0,0 +1,19 @@ +reusable = ''' + +You can organize reusables into folder. + +An an `example` key in `data/common/nested.toml` + +```toml +example = "I'm a slide" +``` +<br> + +Set the `content` attribute to "common.nested.example": + +```markdown +{{< slide content="common.nested.example" >}} +``` + +''' + diff --git a/exampleSite/data/home.toml b/exampleSite/data/home.toml new file mode 100644 index 0000000..92a7aac --- /dev/null +++ b/exampleSite/data/home.toml @@ -0,0 +1,46 @@ +# Note: it seems that under goldmark, markdown in data templates has issues. +# In particular "---" is converted to <hr> even inside code fences! + +reusable = ''' + +## Reusable slides + +Store markdown in a [data template](https://gohugo.io/templates/data-templates/) and reuse it in multiple sections or presentations. + +<br> +<small> +navigate down to learn more +</small> +<br> +<a href="#" class="navigate-down">đŊ</a> + +--- + +Add a `example` key to data/home.toml: + +```toml +example = "I'm a slide" +``` +<br> + +Set the `content` attribute to "home.example": + +```markdown +{{< slide content="home.example" >}} +``` + +--- + +đĄ Each data template entry can contain one or more slides, separated by `---` with newlines. + +--- + +đĄ All other slide shortcode attributes (background, transition, etc.) can be used and will be applied to each slide in the data template entry. + +--- + +đĄ Adding a new file in `data` folder requires to restart `hugo` + +đĄ Symbolinc links are not allowed in `data` folder + +''' diff --git a/exampleSite/layouts/partials/highlightjs-linenumbers-example/reveal-hugo/body.html b/exampleSite/layouts/partials/highlightjs-linenumbers-example/reveal-hugo/body.html new file mode 100644 index 0000000..64a94d9 --- /dev/null +++ b/exampleSite/layouts/partials/highlightjs-linenumbers-example/reveal-hugo/body.html @@ -0,0 +1,6 @@ +<!-- hide Highlight.js line numbers --> +<style> + .hljs-ln-numbers { + display: none; + } +</style>
\ No newline at end of file diff --git a/exampleSite/layouts/partials/home/reveal-hugo/body.html b/exampleSite/layouts/partials/home/reveal-hugo/body.html new file mode 100644 index 0000000..1dba7f9 --- /dev/null +++ b/exampleSite/layouts/partials/home/reveal-hugo/body.html @@ -0,0 +1,9 @@ +<!-- This partial is included before the end of the body tag for only the 'example' presentation --> +<!-- A common use would be to add JavaScript to the page to customize interactions --> +<!-- The Reveal.js JavaScript API is located at https://github.com/hakimel/reveal.js/#api --> +<script type="text/javascript"> +// Log the current slide to the console when it changes +Reveal.addEventListener('slidechanged', function(event) { + console.log("đī¸ Slide is now " + event.indexh); +}); +</script> diff --git a/exampleSite/layouts/partials/home/reveal-hugo/end.html b/exampleSite/layouts/partials/home/reveal-hugo/end.html new file mode 100644 index 0000000..39d6fcd --- /dev/null +++ b/exampleSite/layouts/partials/home/reveal-hugo/end.html @@ -0,0 +1,4 @@ +<div class="line top"></div> +<div class="line bottom"></div> +<div class="line left"></div> +<div class="line right"></div> diff --git a/exampleSite/layouts/partials/home/reveal-hugo/head.html b/exampleSite/layouts/partials/home/reveal-hugo/head.html new file mode 100644 index 0000000..c99b743 --- /dev/null +++ b/exampleSite/layouts/partials/home/reveal-hugo/head.html @@ -0,0 +1,39 @@ +<!-- This partial is included before the end of the head tag for only the 'example' presentation --> +<!-- A common use would be to add CSS to the page to customize the theme --> +<style> +/* Add padding, margin and a hover effect on code samples */ +.reveal section pre { + box-shadow: none; + margin-top: 25px; + margin-bottom: 25px; + border: 1px solid lightgrey; +} +.reveal section pre:hover { + border: 1px solid grey; + transition: border 0.3s ease; +} +.reveal section pre > code { + padding: 10px; +} +.reveal table { + font-size: 0.65em; +} +/* For slide-specific CSS example */ +.reveal section.side-by-side h1 { + position: absolute; +} +.reveal section.side-by-side h1:first-of-type { + left: 25%; +} +.reveal section.side-by-side h1:nth-of-type(2) { + right: 25%; +} +.reveal section[data-background-image] a, +.reveal section[data-background-image] p, +.reveal section[data-background-image] h2 { + color: white; +} +.reveal section[data-background-image] a { + text-decoration: underline; +} +</style> diff --git a/exampleSite/layouts/partials/logo-example/reveal-hugo/body.html b/exampleSite/layouts/partials/logo-example/reveal-hugo/body.html new file mode 100644 index 0000000..b54ef2f --- /dev/null +++ b/exampleSite/layouts/partials/logo-example/reveal-hugo/body.html @@ -0,0 +1,9 @@ +<style> + #logo { + position: absolute; + top: 20px; + left: 20px; + width: 250px; + } +</style> +<img id="logo" src="{{ .Param "logo.src" }}" alt="{{ .Param "logo.alt" }}">
\ No newline at end of file diff --git a/exampleSite/layouts/partials/plugin-example/reveal-hugo/head.html b/exampleSite/layouts/partials/plugin-example/reveal-hugo/head.html new file mode 100644 index 0000000..7c4c42d --- /dev/null +++ b/exampleSite/layouts/partials/plugin-example/reveal-hugo/head.html @@ -0,0 +1 @@ +<link rel="stylesheet" href="/plugin/gallery/gallery.css">
\ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.content b/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.content new file mode 100644 index 0000000..f59f50f --- /dev/null +++ b/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.content @@ -0,0 +1 @@ +body{background:#03812d;background-color:#03812d}.reveal{font-family:source sans pro,Helvetica,sans-serif;font-size:38px;font-weight:400;color:#fff}::selection{color:#fff;background:#bee4fd;text-shadow:none}::-moz-selection{color:#fff;background:#bee4fd;text-shadow:none}.reveal .slides section,.reveal .slides section>section{line-height:1.3;font-weight:inherit}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{margin:0 0 20px;color:#fff;font-family:source sans pro,Helvetica,sans-serif;font-weight:600;line-height:1.2;letter-spacing:normal;text-transform:uppercase;text-shadow:none;word-wrap:break-word}.reveal h1{font-size:2.5em}.reveal h2{font-size:1.6em}.reveal h3{font-size:1.3em}.reveal h4{font-size:1em}.reveal h1{text-shadow:none}.reveal p{margin:20px 0;line-height:1.3}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal strong,.reveal b{font-weight:700}.reveal em{font-style:italic}.reveal ol,.reveal dl,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal dt{font-weight:700}.reveal dd{margin-left:40px}.reveal blockquote{display:block;position:relative;width:70%;margin:20px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:20px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 5px 15px rgba(0,0,0,.15)}.reveal code{font-family:monospace;text-transform:none}.reveal pre code{display:block;padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal table{margin:auto;border-collapse:collapse;border-spacing:0}.reveal table th{font-weight:700}.reveal table th,.reveal table td{text-align:left;padding:.2em .5em;border-bottom:1px solid}.reveal table th[align=center],.reveal table td[align=center]{text-align:center}.reveal table th[align=right],.reveal table td[align=right]{text-align:right}.reveal table tbody tr:last-child th,.reveal table tbody tr:last-child td{border-bottom:none}.reveal sup{vertical-align:super;font-size:smaller}.reveal sub{vertical-align:sub;font-size:smaller}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal a{color:#42affa;text-decoration:none;-webkit-transition:color .15s ease;-moz-transition:color .15s ease;transition:color .15s ease}.reveal a:hover{color:#8dcffc;text-shadow:none;border:none}.reveal .roll span:after{color:#fff;background:#068de9}.reveal section img{margin:15px 0;background:rgba(255,255,255,.12);border:4px solid #fff;box-shadow:0 0 10px rgba(0,0,0,.15)}.reveal section img.plain{border:0;box-shadow:none}.reveal a img{-webkit-transition:all .15s linear;-moz-transition:all .15s linear;transition:all .15s linear}.reveal a:hover img{background:rgba(255,255,255,.2);border-color:#42affa;box-shadow:0 0 20px rgba(0,0,0,.55)}.reveal .controls{color:#42affa}.reveal .progress{background:rgba(0,0,0,.2);color:#42affa}.reveal .progress span{-webkit-transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985);-moz-transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985);transition:width 800ms cubic-bezier(0.26,0.86,0.44,0.985)}@media print{.backgrounds{background-color:#03812d}}section.has-light-background,section.has-light-background h1,section.has-light-background h2,section.has-light-background h3,section.has-light-background h4,section.has-light-background h5,section.has-light-background h6{color:#222}.reveal pre{margin:50px auto}
\ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.json b/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.json new file mode 100644 index 0000000..c97ff64 --- /dev/null +++ b/exampleSite/resources/_gen/assets/scss/custom-theme.scss_b53257441d1f91bc860cc5c6b2e22276.json @@ -0,0 +1 @@ +{"Target":"_.min.debb4e7703d02f02d0510843db28b0aecb70d4c1394da8410aac6d3593ceec29.css","MediaType":"text/css","Data":{"Integrity":"sha256-3rtOdwPQLwLQUQhD2yiwrstw1ME5TahBCqxtNZPO7Ck="}}
\ No newline at end of file diff --git a/exampleSite/static/_redirects b/exampleSite/static/_redirects new file mode 100644 index 0000000..044d170 --- /dev/null +++ b/exampleSite/static/_redirects @@ -0,0 +1,2 @@ +# Redirect default Netlify subdomain to primary domain +https://reveal-hugo.netlify.com/* https://reveal-hugo.dzello.com/:splat 301!
\ No newline at end of file diff --git a/exampleSite/static/css/custom.css b/exampleSite/static/css/custom.css new file mode 100644 index 0000000..0ceb533 --- /dev/null +++ b/exampleSite/static/css/custom.css @@ -0,0 +1,11 @@ +.custom em{ + color: #a32843 +} + +.custom code{ + color: #ff2f86 +} + +.customjs { + background-color: #504e9e +}
\ No newline at end of file diff --git a/exampleSite/static/favicon.ico b/exampleSite/static/favicon.ico Binary files differnew file mode 100755 index 0000000..7d8fdf1 --- /dev/null +++ b/exampleSite/static/favicon.ico diff --git a/exampleSite/static/images/alex-litvin-790876-unsplash.jpg b/exampleSite/static/images/alex-litvin-790876-unsplash.jpg Binary files differnew file mode 100644 index 0000000..ff0712b --- /dev/null +++ b/exampleSite/static/images/alex-litvin-790876-unsplash.jpg diff --git a/exampleSite/static/js/custom.js b/exampleSite/static/js/custom.js new file mode 100644 index 0000000..01adab6 --- /dev/null +++ b/exampleSite/static/js/custom.js @@ -0,0 +1,3 @@ +document.getElementById("customjs").addEventListener("click", function(){ + this.className += " customjs" +})
\ No newline at end of file diff --git a/exampleSite/static/plugin/gallery/gallery.css b/exampleSite/static/plugin/gallery/gallery.css new file mode 100644 index 0000000..58d3514 --- /dev/null +++ b/exampleSite/static/plugin/gallery/gallery.css @@ -0,0 +1,67 @@ +.reveal ul.gallery { + position: relative; + list-style-type: none; + margin: 0; + padding: 0; + width: 960px; + height: 700px; +} + +.reveal ul.gallery[data-mode=full-screen] { + width: 100%; + height: 100%; +} + +.gallery li { + display: block; + position: absolute; + top: 0; + left: 0; + width: 960px; + height: 700px; + opacity: 0; + -webkit-transition: opacity 0.3s ease-in-out; + -moz-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} + +.gallery[data-mode=full-screen] li { + width: 100%; + height: 100%; + background-size: 100% 100%; + background-attachment:fixed; + background-position: center; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + + +.gallery .active { + opacity: 1; +} + +.gallery .inactive { + opacity: 0; +} + +.gallery img { + display: block; + position: absolute; + top: 0; + left: 0; + border: none !important; +} + +.gallery label { + display: block; + position: absolute; + bottom: 20px; + min-width: 150px; + left: 0; + padding: 10px; + background-color: rgba(0, 0, 0, 0.6); + color: #fff; + font-size: 24px; +}
\ No newline at end of file diff --git a/exampleSite/static/plugin/gallery/gallery.plugin.js b/exampleSite/static/plugin/gallery/gallery.plugin.js new file mode 100644 index 0000000..c6ba1c9 --- /dev/null +++ b/exampleSite/static/plugin/gallery/gallery.plugin.js @@ -0,0 +1,119 @@ +(function(Gallery) { + var galleryTimer, galleryMode; + + Gallery.step = function (items, iterations) { + var length = items.length, + ptr = 0, + loops = 0; + + return function () { + if (iterations > 0 && loops === iterations) { + return; + } + items[ptr].className = "inactive"; + if (ptr === length - 1) { + loops++; + if (iterations === 0 || loops < iterations) { + ptr = 0; + } + } else { + ptr++; + } + items[ptr].className = "active"; + }; + }; + + Gallery.start = function (galleryNode, contextNode) { + contextNode = contextNode || document.body.firstChild; + galleryMode = galleryNode.dataset.mode || 'normal'; + + if (galleryMode === 'full-screen') { + // FIXME remove depenency on Reveal, have a callback? function + // that will get a root node to move full screen slides to (ie. slidesNode) + + // for full screen mode we need to: + // - take the gallery out of the flow and insert it before "slides" + // - hide slides + // - make it full screen + + var placeholder = document.createElement("div"); + placeholder.id = "gallery-placeholder"; + galleryNode.parentNode.replaceChild(placeholder, galleryNode); + + if (contextNode.parentNode) { + contextNode.parentNode.insertBefore(galleryNode, contextNode); + } + } + + var items = Array.prototype.slice.apply(galleryNode.querySelectorAll("li")); + items.forEach(function (item, index) { + if (index === 0) { + item.className = "active"; + } else { + item.className = "inactive"; + } + var label = item.querySelector("label"); + var img = item.querySelector("img"); + + if (galleryMode === 'full-screen') { + img.style.display = "none"; + item.style.backgroundImage = "url(" + img.src + ")"; + } else { + img.style.display = ""; + } + + if (!label && img.attributes.alt) { + label = document.createElement("label"); + label.innerHTML = img.attributes.alt.value; + item.appendChild(label); + } + }); + + var iterations = galleryNode.dataset.iterations ? +galleryNode.dataset.iterations : 1; + var interval = (galleryNode.dataset.interval || 1) * 1000; + galleryTimer = setInterval(Gallery.step(items, iterations), interval); + }; + + // FIXME Gallery.stop should take elem and root nodes as well + Gallery.stop = function (galleryNode, contextNode) { + clearInterval(galleryTimer); + + if (galleryMode === "full-screen") { + // - put the gallery back where it was + var placeholder = document.getElementById("gallery-placeholder"); + placeholder.parentNode.replaceChild(galleryNode, placeholder); + + var items = Array.prototype.slice.apply(galleryNode.querySelectorAll("li")); + items.forEach(function (item, index) { + var img = item.querySelector("img"); + item.style.backgroundImage = ""; + img.style.display = ""; + }); + } + }; +})(window.Gallery = window.Gallery || {});(function() { + if( typeof window.addEventListener === 'function' ) { + var slidesNode = document.querySelector(".slides"); + Reveal.addEventListener("slidechanged", function (event) { + console.log(event) + var galleryNode = event.previousSlide.querySelector('.gallery') || document.querySelector('.reveal > .gallery'); + if (galleryNode) { + Gallery.stop(galleryNode, slidesNode); + } + + galleryNode = event.currentSlide.querySelector('.gallery'); + if (galleryNode) { + Gallery.start(galleryNode, slidesNode); + } + + }); + + // during initial load + if (Reveal.getCurrentSlide()) { + var galleryNode = Reveal.getCurrentSlide().querySelector('.gallery'); + if (galleryNode) { + Gallery.start(galleryNode, slidesNode); + } + } + } +})();
\ No newline at end of file diff --git a/exampleSite/static/reveal-hugo/themes/robot-lung.css b/exampleSite/static/reveal-hugo/themes/robot-lung.css new file mode 100644 index 0000000..5d94683 --- /dev/null +++ b/exampleSite/static/reveal-hugo/themes/robot-lung.css @@ -0,0 +1,340 @@ +/** + + [ robot-lung ] + + A hot pink theme for Reveal.js with Roboto fonts and a colorful border. + By Josh Dzielak, https://dzello.com/, License MIT + + The bold border is optional and requires some HTML. To use it: + + 1. Add 4 divs to your HTML page: + <div class="line top"></div> + <div class="line bottom"></div> + <div class="line left"></div> + <div class="line right"></div> + + 2. Set { margin: 0.2 } in the Reveal.js initializer to make sure + your presentation content doesn't collide with the frame. + + Like the theme but don't like the colors? Don't fret. Just change + $borderColor and/or $linkColor below to something else and rebuild. + + Or if you don't want to rebuild the theme just override the .line background + property with some CSS: + + .line { + background: <new-color>; + } + +*/ +@import url(https://fonts.googleapis.com/css?family=Roboto+Slab:300,700); +@import url(https://fonts.googleapis.com/css?family=Roboto:700); +section.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 { + color: #141414; } + +.reveal .controls { + right: 50px; + bottom: 50px; } + +.line { + content: ''; + position: fixed; + background: #FF4081; + z-index: 105; } + .line.top { + left: 0; + top: 0; + width: 100%; + height: 30px; } + @media (max-width: 840px) { + .line.top { + height: 15px; } } + .line.bottom { + left: 0; + top: auto; + bottom: 0; + width: 100%; + height: 30px; } + @media (max-width: 840px) { + .line.bottom { + height: 15px; } } + .line.left { + left: 0; + top: 0; + width: 30px; + height: 200%; } + @media (max-width: 840px) { + .line.left { + width: 15px; } } + .line.right { + left: auto; + right: 0; + top: 0; + width: 30px; + height: 200%; } + @media (max-width: 840px) { + .line.right { + width: 15px; } } + +.reveal.has-dark-background .line { + display: none; } + +/********************************************* + * GLOBAL STYLES + *********************************************/ +body { + background: #fff; + background-color: #fff; } + +.reveal { + font-family: "Roboto Slab", serif; + font-size: 32px; + font-weight: normal; + color: #363636; } + +::selection { + color: #fff; + background: #ffc0d5; + text-shadow: none; } + +::-moz-selection { + color: #fff; + background: #ffc0d5; + text-shadow: none; } + +.reveal .slides > section, +.reveal .slides > section > section { + line-height: 1.3; + font-weight: inherit; } + +/********************************************* + * HEADERS + *********************************************/ +.reveal h1, +.reveal h2, +.reveal h3, +.reveal h4, +.reveal h5, +.reveal h6 { + margin: 0 0 20px 0; + color: #141414; + font-family: "Roboto", sans-serif; + font-weight: 700; + line-height: 1.2; + letter-spacing: normal; + text-transform: uppercase; + text-shadow: none; + word-wrap: break-word; } + +.reveal h1 { + font-size: 2.6em; } + +.reveal h2 { + font-size: 2.2em; } + +.reveal h3 { + font-size: 1.7em; } + +.reveal h4 { + font-size: 1.4em; } + +.reveal h1 { + text-shadow: none; } + +/********************************************* + * OTHER + *********************************************/ +.reveal p { + margin: 20px 0; + line-height: 1.3; } + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, +.reveal video, +.reveal iframe { + max-width: 95%; + max-height: 95%; } + +.reveal strong, +.reveal b { + font-weight: bold; } + +.reveal em { + font-style: italic; } + +.reveal ol, +.reveal dl, +.reveal ul { + display: inline-block; + text-align: left; + margin: 0 0 0 1em; } + +.reveal ol { + list-style-type: decimal; } + +.reveal ul { + list-style-type: disc; } + +.reveal ul ul { + list-style-type: square; } + +.reveal ul ul ul { + list-style-type: circle; } + +.reveal ul ul, +.reveal ul ol, +.reveal ol ol, +.reveal ol ul { + display: block; + margin-left: 40px; } + +.reveal dt { + font-weight: bold; } + +.reveal dd { + margin-left: 40px; } + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: 20px auto; + padding: 5px; + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } + +.reveal blockquote p:first-child, +.reveal blockquote p:last-child { + display: inline-block; } + +.reveal q { + font-style: italic; } + +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: 20px auto; + text-align: left; + font-size: 0.55em; + font-family: monospace; + line-height: 1.2em; + word-wrap: break-word; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } + +.reveal code { + font-family: monospace; + text-transform: none; } + +.reveal pre code { + display: block; + padding: 5px; + overflow: auto; + max-height: 400px; + word-wrap: normal; } + +.reveal table { + margin: auto; + border-collapse: collapse; + border-spacing: 0; } + +.reveal table th { + font-weight: bold; } + +.reveal table th, +.reveal table td { + text-align: left; + padding: 0.2em 0.5em 0.2em 0.5em; + border-bottom: 1px solid; } + +.reveal table th[align="center"], +.reveal table td[align="center"] { + text-align: center; } + +.reveal table th[align="right"], +.reveal table td[align="right"] { + text-align: right; } + +.reveal table tbody tr:last-child th, +.reveal table tbody tr:last-child td { + border-bottom: none; } + +.reveal sup { + vertical-align: super; } + +.reveal sub { + vertical-align: sub; } + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; } + +.reveal small * { + vertical-align: top; } + +/********************************************* + * LINKS + *********************************************/ +.reveal a { + color: #FF4081; + text-decoration: none; + -webkit-transition: color .15s ease; + -moz-transition: color .15s ease; + transition: color .15s ease; } + +.reveal a:hover { + color: #ff8db3; + text-shadow: none; + border: none; } + +.reveal .roll span:after { + color: #fff; + background: #f30053; } + +/********************************************* + * IMAGES + *********************************************/ +.reveal section img { + margin: 15px 0px; + background: rgba(255, 255, 255, 0.12); + border: 4px solid #363636; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); } + +.reveal section img.plain { + border: 0; + box-shadow: none; } + +.reveal a img { + -webkit-transition: all .15s linear; + -moz-transition: all .15s linear; + transition: all .15s linear; } + +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #FF4081; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +.reveal .controls { + color: #FF4081; } + +/********************************************* + * PROGRESS BAR + *********************************************/ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); + color: #FF4081; } + +.reveal .progress span { + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } + +.reveal .progress { + z-index: 1000; + color: #FF80A1; } |
