Manual of the b6+ slide editor

Version 0.1 (15 February 2026)

The b6+ slide editor is a WYSIWYG editor for HTML slides that use the b6+ slide framework. It currently still has some limitations. It may not correctly read all slide decks made with other means and it cannot yet generate all the features of b6+.

Table of contents

Source code and issues

The source of the b6+ slide editor is on GitHub. To raise issues, you can also use GitHub, or send me email.

Areas of the application window

[Screendump]
The b6+ slide editor running on MacOS. (Click on an area to jump to its description.) Toolbar Formatting bar Slides panel Slide number Editing area Element hierarchy

Toolbar

The toolbar contains:

Play button
Plays the current slide deck in the default browser.
Slide layout menu
Use this to apply a particular layout to the current slide. The available layouts depend on the style sheet of the slide deck. (If the editor doesn't know what layouts the style sheet defines, the menu will contain a handful of layouts that are likely to exist: normal slide, cover slide and final slide.
Clear button
If checked, omits the slide number and decoration from the current slide. (This sets the ‘clear’ class on the slide. The actual effect depends on the chosen style sheet.)
Text Fit
If checked, b6+ will try to reduce the font size of the current slide so that all text fits on the slide. (The effect is not visible in the editor. Try ‘Play’ to see it.)
HTML View / WYSIWYG View
[…]
Change style sheet
[…]
Custom CSS
[…]
Include b6+ script
[…]

Formatting bar

Slides panel

The slides panel contains a list of all slides and speaker notes in the current slide deck. The entries for slides are accompanied by a thumbnail image of the slide. Clicking on an entry in this list opens it in the editor.

The thumbnails may look slightly different from the full-size slide, because of limitations in the software library used to make them (html2canvas).

At the bottom of the list of slide are three buttons:

Add Slide
Adds a new slide after the current one.
Add Notes
Adds new speaker notes after the currently selected slide or speaker notes
Delete
Delete the currently selected slide or speaker notes.

Slide number

Editing area

Element hierarchy

Keyboard commands

Alt-Left / Option-Left, Alt-Right / Option-Right
Move cursor to the beginning or end of the word.
Ctrl-Left / Command-Left, Ctrl-Right / Command-Right
Move cursor to the beginning or end of the line.
Esc
Expand the selection to the surrounding element. Press Esc multiple times to expand the selection to ancestor elements.
Command-B
Toggle the current selection between bold and not bold.
Command-+, Command-➖, Command-0
Respectively, zoom in, zoom out and reset the zoom.
[…]
[…]

Preparing style sheets for the b6+ slide editor

Different style sheet provide different layouts for slides and may also provide different slide transitions. The b6+ slide editor assumes that all style sheets provide layouts for cover slides (class=cover) and final slides (class=final), but in reality that may not the case. And style sheets may also provide several other kinds of slide layouts, such as part titles or slides that are half image and half text.

To learn what a style sheet supports, the editor looks for a file with the same name as the style sheet, but with the extension ‘.json’. If it exists and it is a JSON file, the editor looks for four properties: ‘documentation’, ‘supports-clear’, ‘layouts’ and ‘transitions’. Here is an example file:

{
  "documentation": "../manual.html",
  "supports-clear": true,
  "layouts": [
    { "name": "Normal slide",
      "class": "" },
    { "name": "Cover slide",
      "class": "cover" },
    { "name": "Part title",
      "class": ["part", "title"] },
    { "name": "Slide with left image",
      "class": "side" },
    { "name": "Final slide",
      "class": "final" }
  ],
  "transitions": [
    { "name": "Default",
      "class":"" },
    { "name": "Slide In",
      "class": "slide-in" },
    { "name": "Slide Out",
      "class": "slide-out" },
    { "name": "Move Left",
      "class": "move-left" }
  ]
}

The ‘documentation’ property is the URL of the user manual of the style sheet. It may be a relative URL, in which case it is takne as relative to the JSON file itself.

If the ‘documentation’ property is absent, it is assumed there is no manual.

The ‘supports-clear’ property can be true or false. It indicates whether the style sheet defines the class ‘clear’ on slides. The purpose of that class is to suppress the slide number and possibly some decorative elements on the slide.

If the ‘supports-clear’ property is absent, it is assumed to be true.

The ‘layouts’ property contains a list of the slide layouts defined by the style sheet. Each entry in the list has a name to put in the editor's menu, and a class to add to the slide's class attribute. The class need not be a single word. And if there are multiple ways to get the same layout, there may be an array of classes. The example above declares that the style sheet defines five layouts and that the class ‘title’ is an alias for ‘part’.

If the ‘layouts’ property is absent, the editor assumes the following:

[
  { "name": "Normal slide",
    "class": "" },
  { "name": "Cover slide",
    "class": "cover" },
  { "name": "Final slide",
    "class": "final" }
]

The ‘transitions’ property contains a list of slide transitions between a slide and the next one. Like for ‘layouts’, each entry has a name, which is used in the editor's menu, and a class to put in a slide's class attribute.

If the ‘transitions’ property is absent, the editor assumes the style sheets defines no slide transitions.

Bert Bos. Created 17 February 2026. Last modified $Date: 2026/02/18 23:58:48 $