No description
Find a file
Peter Kurfer 82a651cd5d
First draft of new fiber based server
- replaced previous net/http based muxer and all other components with fiber
- replaced polling with SSE to handle file changes
- auto-update custom stylesheets
- natively support mermaid diagrams
- handle custom element attributes for lists properly
- reload on config changes
- replace JS templating with actual JS code and an API
2021-12-22 11:52:02 +01:00
.github/workflows Fix build 2021-11-12 13:34:54 +01:00
api First draft of new fiber based server 2021-12-22 11:52:02 +01:00
assets First draft of new fiber based server 2021-12-22 11:52:02 +01:00
cmd/goveal First draft of new fiber based server 2021-12-22 11:52:02 +01:00
config First draft of new fiber based server 2021-12-22 11:52:02 +01:00
events First draft of new fiber based server 2021-12-22 11:52:02 +01:00
examples First draft of new fiber based server 2021-12-22 11:52:02 +01:00
fs First draft of new fiber based server 2021-12-22 11:52:02 +01:00
rendering First draft of new fiber based server 2021-12-22 11:52:02 +01:00
web First draft of new fiber based server 2021-12-22 11:52:02 +01:00
.gitattributes First draft of new fiber based server 2021-12-22 11:52:02 +01:00
.gitignore First draft of new fiber based server 2021-12-22 11:52:02 +01:00
.goreleaser.yml Add auto reload 2020-12-04 16:40:08 +01:00
go.mod First draft of new fiber based server 2021-12-22 11:52:02 +01:00
go.sum First draft of new fiber based server 2021-12-22 11:52:02 +01:00
LICENSE Initial commit 2019-04-19 14:29:55 +02:00
README.md Update Readme and Github actions pipeline 2021-11-12 13:22:35 +01:00
renovate.json chore(deps): add renovate.json 2021-11-12 12:21:27 +00:00
Taskfile.yml First draft of new fiber based server 2021-12-22 11:52:02 +01:00

Goveal

Actions Status

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.

Install

The easiest and fastest way to install Goveal is to use a pre-built binary from the releases.

If you have Go in the latest version installed you can also build your own version of Goveal:

task build

Requirements:

  • task
  • Optional: goreleaser (for task snapshot-release to build all binaries)

Note: All script tasks in the Taskfile.yml are meant to be executed with Linux/MacOS. Binaries for Windows are provided but not tested!

Usage

goveal serve ./slides.md
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 $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

Config

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.

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? 😉). 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.

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!

See also an example at ./examples/goveal.yaml.

Custom CSS

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.

the sample configuration file ./examples/goveal.yaml also contains a sample how to add custom CSS.