/slidesk

Slideshow companion

Primary LanguageJavaScriptMIT LicenseMIT

SliDesk

A new talk engine like RevealJS.

I want to use a simplified language like MarkDown or AsciiDoc to generate the presentation.

The example rendering is visible on https://gouz.github.io/slidesk/

Installation

SliDesk is develop with https://bun.sh instead of Node.js

bunx slidesk <talk>

Usage

Usage: bunx slidesk [options] <talk>

Convert & present a talk

Options:
  -p, --port <int>  port (default: 1337)
  --open            open the default browser
  --save            save the html file
  --notes           open with speakers notes
  --source          add a button on slides to display its SDF code
  --gamepad         control your slide with a gamepad from the presentation
  --gamepad-sv      control your slide with a gamepad from the speaker-view
  --qrcode          add a QRCode on each slide
  -h, --help        display help for command

How to create a presentation

In a directory, create a main.sdf file which is the entry point of your presentation.

bunx slidesk <yourdirectory>

will convert the main.sdf into an html file and serve it, it will open the default browser too.

A livereload is activated per default.

sdf Syntax

# Main title

## Title of a new slide

!include(another_file)

__italic__

**bold**

!image(path or url | html attributes)

- list
-- sublist
-- sub
- end of a list

See the example directory to understand how it works or run

bun example

Customize theme

In your custom.css file, you can override this variables:

:root {
  --sd-heading1-size: 3.75em;
  --sd-heading1-line-height: 1;
  --sd-heading2-size: 2.25em;
  --sd-heading2-line-height: 1;
  --sd-heading3-size: 1.75em;
  --sd-heading3-line-height: 1;
  --sd-text-size: 40px;
  --sd-text-line-height: 1.2;

  --sd-background-color: #242424;;
  --sd-heading-color: rgba(255, 255, 255, 0.97);
  --sd-text-color: rgba(255, 255, 255, 0.87);
  --sd-primary-color: rgb(37, 186, 146);


  /* SpeakerView */
  --sd-sv-timer-size: 80px;
  --sd-sv-text-size: 40px;
  --sd-sv-text-line-height: 1.2;
  --sd-sv-background-color: #242424;
  --sd-sv-text-color: rgba(255, 255, 255, 0.87);
}

Then, in your main.sdf file you have to prepend this line:

:custom_css: location/of/your/custom.css

Custom class on slides

## My title .[my-class my-other-class]

Speakers Notes

/*
A comment in a page correspond to the notes for the speaker.
*/

Add JS on your slides & Speakers Notes

With a custom header in the main.sdf file, you can add a script file for the slide part, or the speaker notes part:

/::
custom_css: assets/custom.css
custom_js: assets/custom.js
custom_sv_js: assets/customsv.js
::/

Warning, it's very important to space this lines with a new line

Why a new tool ???

I decided to create my own tool for my talks, because:

  • It's fun to create something
  • I want to have a tool which do only the minimum
  • I want a very tiny light tool
  • I want it to be permissive a lot (you can add html tags in without any problem)