An open API service indexing awesome lists of open source software.

https://github.com/sdsc-ordes/technical-presentation

Technical presentations with Reveal.js and tooling to produce PDF/HTML output
https://github.com/sdsc-ordes/technical-presentation

Last synced: 4 months ago
JSON representation

Technical presentations with Reveal.js and tooling to produce PDF/HTML output

Awesome Lists containing this project

README

        


Technical Presentation


Make technical presentations in Markdown/HTML etc.

This uses [`revealjs`](https://github.com/hakimel/reveal.js) with some
modifications to package to PDF and standalone HTML format. Also it includes a
company `scss` file for design modifications.

**This is a fork of
[`technical-presentation`](https://github.com/gabyx/technical-presentation.git)
with some small modifications for SDSC.**

- **See the
[demo presentation here](https://sdsc-ordes.github.io/technical-presentation/gh-pages/demo)**.
- **See some other
[Rust Workshop](https://sdsc-ordes.github.io/technical-presentation/gh-pages/rust-workshop/part-1/#/title-slide)**
[src](https://github.com/sdsc-ordes/technical-presentation/tree/feat/rust-workshop).
- **See some other
[C++ presentation here](https://gabyx.github.io/tech-pr-cpp-value-catergories)**
[src](https://github.com/gabyx/tech-pr-cpp-value-catergories).

Authors:

- [Gabriel Nützi](https://github.com/gabyx)

> [!WARNING]
>
> This is the `pandoc` tooling branch, if you want a simpler version with
> `reveal.js` only, use `main-simple`.

Current [`revealjs`](https://github.com/hakimel/reveal.js) version: `4.6.1`

## Requirements

### Using [`nix`](https://nixos.org)

You can enter a development shell with

```shell
nix develop './tools/nix#default'
```

where all requirements are installed to start working on your first
presentation.

### DevContainer

There is a [`.devcontainer`](.devcontainer) to be run over `code` or the
[devcontainer](https://github.com/devcontainers/cli) CLI. First build the
container:

```shell
just build-dev-container
```

or with `docker` instead of `podman`:

```shell
just container_mgr=docker build-dev-container
```

### Manual

You need the following tools:

- `bash`
- `just`
- `rsync`
- `watchman`
- `npm`
- `yarn`

## Usage

1. **`just init`** -> Init the `build` folder with the pinned
[`reveal.js`](.gitmodules) source and inject some [changed files](src/mixin)
(styles, fonts, etc.) and install dependencies inside the build folder.

2. **`just watch`** -> Watch the files in [`src`](src/) and synchronize changes
to the `build` folder. This is needed to continuously update your changes
source files and make the browser reload the page.

3. **`just present`** -> Serve the presentation in the browser and continuously
reload the page.

4. **`just package`** -> Export the presentation as HTML and PDF inside a `.zip`
file to the [`publish`](publish) folder.

5. **`just publish`** -> Build and upload the (selected) presentation to the
`publish` **branch** in the folder `docs/gh-pages` which can then be served
by Github pages. The
[`.publish.yaml`](./src/presentations/presentation-1/.publish.yaml) helps in
defining the name and output folder in `docs/gh-pages` to host multiple
presentations alongside.

## Make a Presentation

- Write your presentation in Markdown in
[`src/presentations`](src/presentations). All images and other assets needed
by the presentation should go into the respective `assets` directory (e.g.
[`presentation-1/assets`](/src/presentations/presentation-1/assets))

## Resources

Check the following resources with additional slide materials:

- [Documentation](https://revealjs.com/)
- [Markdown from a C++ presentation](https://github.com/gabyx/tech-pr-cpp-value-catergories/blob/main/files/cpp-meeting/Vortrag.md)
[View](https://gabyx.github.io/tech-pr-cpp-value-catergories)

## Modifications

- Edit the design in [`company.scss`](css/theme/source/company.scss).

- Company Logo: Edit the file
[`company-logo.svg`](css/theme/source/files/company-logo.svg).

- Replace embedded image in [`company.scss`](css/theme/source/company.scss)
with

```shell
just bake-logo
```