diff --git a/.gitignore b/.gitignore
index a818973a..9dacd5be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
# IDE specific
.idea/
.vscode/
+resources/
diff --git a/archetypes/slides.md b/archetypes/slides.md
new file mode 100644
index 00000000..27e4f6dd
--- /dev/null
+++ b/archetypes/slides.md
@@ -0,0 +1,15 @@
++++
+title = "Slides"
+
+[slides]
+# Choose a theme from https://github.com/hakimel/reveal.js#theming
+theme = "black"
++++
+
+# Title
+
+Author Name
+
+---
+
+## Slide 2
diff --git a/assets/css/reveal.css b/assets/css/reveal.css
new file mode 100644
index 00000000..ca174e39
--- /dev/null
+++ b/assets/css/reveal.css
@@ -0,0 +1,31 @@
+/*************************************************
+ * Reveal JS
+ **************************************************/
+
+/* This is a copy of MathJax's `.mjx-chtml` with font-family added to override `.reveal span`. */
+/* See https://github.com/hakimel/reveal.js/issues/1924 */
+.reveal span.mjx-chtml {
+ display: inline-block;
+ line-height: 0;
+ text-indent: 0;
+ text-align: left;
+ text-transform: none;
+ font-style: normal;
+ font-weight: normal;
+ font-size: 100%;
+ font-size-adjust: none;
+ letter-spacing: normal;
+ word-wrap: normal;
+ word-spacing: normal;
+ white-space: nowrap;
+ float: none;
+ direction: ltr;
+ max-width: none;
+ max-height: none;
+ min-width: 0;
+ min-height: 0;
+ border: 0;
+ margin: 0;
+ padding: 1px 0;
+ font-family: MJXc-TeX-math-I,MJXc-TeX-math-Ix,MJXc-TeX-math-Iw;
+}
diff --git a/assets/css/reveal_custom.css b/assets/css/reveal_custom.css
new file mode 100644
index 00000000..e69de29b
diff --git a/exampleSite/content/slides/example-slides.md b/exampleSite/content/slides/example-slides.md
new file mode 100644
index 00000000..9de1d3f8
--- /dev/null
+++ b/exampleSite/content/slides/example-slides.md
@@ -0,0 +1,159 @@
++++
+title = "Slides"
+
+[slides]
+# Choose a theme from https://github.com/hakimel/reveal.js#theming
+theme = "black"
++++
+
+# Welcome to Slides
+
+[Academic](https://sourcethemes.com/academic/)
+
+---
+
+## Features
+
+- Efficiently write slides in Markdown
+- 3-in-1: Create, Present, and Publish your slides
+- Supports speaker notes
+- Mobile friendly slides
+
+---
+
+## Controls
+
+- Next: `Right Arrow` or `Space`
+- Previous: `Left Arrow`
+- Start: `Home`
+- Finish: `End`
+- Overview: `Esc`
+- Speaker notes: `S`
+- Fullscreen: `F`
+- Zoom: `Alt + Click`
+- [PDF Export](https://github.com/hakimel/reveal.js#pdf-export): `E`
+
+---
+
+## Code Highlighting
+
+Inline code: `variable`
+
+Code block:
+```python
+porridge = "blueberry"
+if porridge == "blueberry":
+ print("Eating...")
+```
+
+---
+
+## Math
+
+In-line math: $x + y = z$
+
+Block math:
+
+$$
+f\left( x \right) = \;\frac{{2\left( {x + 4} \right)\left( {x - 4} \right)}}{{\left( {x + 4} \right)\left( {x + 1} \right)}}
+$$
+
+---
+
+## Fragments
+
+Make content appear incrementally
+
+```
+{{%/* fragment */%}} One {{%/* /fragment */%}}
+{{%/* fragment */%}} **Two** {{%/* /fragment */%}}
+{{%/* fragment */%}} Three {{%/* /fragment */%}}
+```
+
+Press `Space` to play!
+
+{{% fragment %}} One {{% /fragment %}}
+{{% fragment %}} **Two** {{% /fragment %}}
+{{% fragment %}} Three {{% /fragment %}}
+
+---
+
+A fragment can accept two optional parameters:
+
+- `class`: use a custom style (requires definition in custom CSS)
+- `weight`: sets the order in which a fragment appears
+
+---
+
+## Speaker Notes
+
+Add speaker notes to your presentation
+
+```markdown
+{{%/* speaker_note */%}}
+- Only the speaker can read these notes
+- Press `S` key to view
+{{%/* /speaker_note */%}}
+```
+
+Press the `S` key to view the speaker notes!
+
+{{< speaker_note >}}
+- Only the speaker can read these notes
+- Press `S` key to view
+{{< /speaker_note >}}
+
+---
+
+## Themes
+
+- black: Black background, white text, blue links (default)
+- white: White background, black text, blue links
+- league: Gray background, white text, blue links
+- beige: Beige background, dark text, brown links
+- sky: Blue background, thin dark text, blue links
+
+---
+
+- night: Black background, thick white text, orange links
+- serif: Cappuccino background, gray text, brown links
+- simple: White background, black text, blue links
+- solarized: Cream-colored background, dark green text, blue links
+
+---
+
+{{< slide background-image="/img/boards.jpg" >}}
+
+## Custom Slide
+
+Customize the slide style and background
+
+```markdown
+{{* slide background-image="/img/boards.jpg" */>}}
+{{* slide background-color="#0000FF" */>}}
+{{* slide class="my-style" */>}}
+```
+
+---
+
+## Custom CSS Example
+
+Let's make headers navy colored.
+
+Create `assets/css/reveal_custom.css` with:
+
+```css
+.reveal section h1,
+.reveal section h2,
+.reveal section h3 {
+ color: navy;
+}
+```
+
+---
+
+# Questions?
+
+[Ask](https://discourse.gohugo.io)
+
+[Documentation](https://sourcethemes.com/academic/docs/)
diff --git a/exampleSite/content/talk/example-talk.md b/exampleSite/content/talk/example-talk.md
index d140a1a7..299c6c7e 100644
--- a/exampleSite/content/talk/example-talk.md
+++ b/exampleSite/content/talk/example-talk.md
@@ -38,7 +38,7 @@ tags = []
# Links (optional).
url_pdf = ""
-url_slides = ""
+url_slides = "slides/example-slides"
url_video = ""
url_code = ""
@@ -56,4 +56,14 @@ caption = "My caption :smile:"
+++
-Embed your slides or video here using [shortcodes](https://sourcethemes.com/academic/post/writing-markdown-latex/). Further details can easily be added using *Markdown* and $\rm \LaTeX$ math code.
+{{% alert note %}}
+Click on the **Slides** button above to view the built-in slides feature.
+{{% /alert %}}
+
+Slides can be added in a few ways:
+
+- **Create** slides using Academic's *Slides* feature and link using `url_slides` parameter in the front matter of the talk file
+- **Upload** an existing slide deck to `static/` and link using `url_slides` parameter in the front matter of the talk file
+- **Embed** your slides (e.g. Google Slides) or presentation video on this page using [shortcodes](https://sourcethemes.com/academic/docs/writing-markdown-latex/).
+
+Further talk details can easily be added to this page using *Markdown* and $\rm \LaTeX$ math code.
diff --git a/layouts/partials/slides.html b/layouts/partials/slides.html
new file mode 100644
index 00000000..0cdfd9a3
--- /dev/null
+++ b/layouts/partials/slides.html
@@ -0,0 +1,25 @@
+
+
+ {{/* Loop over each page. */}}
+ {{ range . }}
+ {{ if ne (len .Content) 0 }}
+
+ {{/* Must remove `` generated by Blackfriday footnotes as conflicts with slide delimiter. */}}
+ {{ $content := replace .Content "
\n\n" "
" }}
+
+ {{/* Let `` delimit slides. */}}
+ {{ range (split $content "") }}
+
+ {{/* Each `` defines a new slide. */}}
+ {{/* Only begin new slide `` if not already added by custom `slide` shortcode. */}}
+ {{ if not (in . "data-noprocess") }}
+
+ {{ end }}
+ {{ . | safeHTML }}
+
+ {{ end }}
+
+ {{ end }}
+ {{ end }}
+