103 lines
2.3 KiB
Markdown
103 lines
2.3 KiB
Markdown
|
+++
|
||
|
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!
|