2019-04-19 21:56:39 +00:00
# Goveal
2020-12-06 11:18:42 +00:00
[![Actions Status ](https://github.com/baez90/goveal/workflows/Go/badge.svg )](https://github.com/baez90/goveal/actions)
2019-05-16 07:52:24 +00:00
2021-11-12 12:14:12 +00:00
Goveal is very small and very simple tool that reads Markdown from a given file, renders it into a HTML template and
serves it as local HTTP server. Right now Goveal uses Reveal.js 4.1.2 to create presentations and therefore also
includes all features of Reveal.js 4.1.2.
2019-04-19 21:56:39 +00:00
2021-11-12 12:14:12 +00:00
## Install
The easiest and fastest way to install Goveal is to use a pre-built binary from the [releases ](https://github.com/baez90/goveal/releases/latest ).
If you have Go in the latest version installed you can also build your own version of Goveal:
```shell
task build
```
2019-04-19 21:56:39 +00:00
2021-11-12 12:14:12 +00:00
Requirements:
- [task ](https://taskfile.dev/ )
- _Optional:_ [goreleaser ](https://goreleaser.com/ ) (for `task snapshot-release` to build all binaries)
_Note: All script tasks in the [Taskfile.yml ](Taskfile.yml ) are meant to be executed with Linux/MacOS. Binaries for Windows are provided but not tested!_
## Usage
2019-04-19 21:56:39 +00:00
```bash
goveal serve ./slides.md
```
2019-05-16 07:40:46 +00:00
| Param | Description | Default value |
| ------------------------ | ---------------------------------------------------------------------------- | ----------------------- |
| `--host` | Hostname the binary is listening on | `localhost` |
| `--port` | Port the binary is listening on | `2233` |
| `--code-theme` | highlight.js theme to use | `monokai` |
| `--transition` | Transition effect to show between slides | `none` |
| `--navigationMode` | Navigation mode to use when using the cursor keys to navigate through slides | `default` |
| `--config` | Path to the config file see [config ](#config ) | `$HOME/goveal:./goveal` |
| `--horizontal-separator` | horizontal separator to split slides | `===` |
| `--vertical-separator` | vertical separator to split slides | `---` |
| `--theme` | reveal.js theme to use | `white` |
| `-h` / `--help` | shows help | |
2019-04-19 21:56:39 +00:00
## Config
2021-11-12 12:14:12 +00:00
Goveal supports multiple configuration mechanisms. It tries to load a configuration file from `$HOME` or from `.`
i.e. `$HOME/goveal.yaml` or `$HOME/goveal.yml` or `./goveal.yaml` and so on.
2019-04-19 21:56:39 +00:00
2021-11-12 12:14:12 +00:00
Most options that can be set via commandline flags can also be set via configuration file (actually all but
the `--config` switch does not make sense in the configuration file, does it? :wink:). It is more a convenience feature
to be able to set a theme and so on and so forth for the presentation without having to pass it every time as parameter.
2019-04-19 21:56:39 +00:00
2021-11-12 12:14:12 +00:00
Furthermore goveal supports configuration hot reloading i.e. you can play around with different themes and the rendered
theme will be changed whenever you hit the save button!
2019-04-19 21:56:39 +00:00
2019-05-16 07:40:46 +00:00
See also an example at [`./examples/goveal.yaml` ](./examples/goveal.yaml ).
### Custom CSS
2021-11-12 12:14:12 +00:00
To add custom CSS as theme overrides use a config file and add the `stylesheets` property. It takes a list of relative (
mandatory!) paths to CSS files that are included automatacally after the page was loaded so that they really overload
everything added by Reveal and plugins.
2019-05-16 07:40:46 +00:00
2021-11-12 12:14:12 +00:00
the sample configuration file [`./examples/goveal.yaml` ](./examples/goveal.yaml ) also contains a sample how to add
custom CSS.