0.8.2 • Published 1 year ago

expositio v0.8.2

Weekly downloads
-
License
GPL-3.0
Repository
gitlab
Last release
1 year ago

Expositio

A simple and lean presentation tool.

About

Expositio is a presentation tool that allows to build and package presentations as modern javascript applications.

The design phylosophy is to build a fast and reliable presentation, by utilizing modern CSS (through less) as much as possible. Only navigation features are controlled with javascript, using a reactive programming style.

Getting started

The simplest way to create a new presentation is to use scaffolding of the expositio command line tool.

[my-presentation]$ npx expositio@latest init
[my-presentation]$ npm start

Upgrading

A changelog is kept in RELEASES.md, which lists the major changes.

Configuration

Progress bar

Presentation process can be shown in an animated bar, at the bottom of the window. A process bar is rendered inside the html element with id slide-progress, if any.

This is enabled by default when using expositio init. To disable, remove the slide-process container.

Slide numbers

Expositio can also show the presentation process in terms of numbers (i.e. 1/n), in an html element with id slidenum.

To enable this, add the element to your document. While you can fully customize the element tag and its position in the document, the included themes expect an inline element (e.g. span or em) in the footer.

Theme switcher

A theme switcher will be shown in the top-left corner, if using the data-theme attribute (see below). The switcher can be disabled using theme-switcher in the config object passed to Expositio.main.

Presentations using autoload.js have no theme selector, or they would have no way to disable.

Themes

Builtin themes can be chosen with the data-theme attribute on the #expositio presention root tag.

All Expositio styling is contained within the #expositio root element, so slides can be combined with additional content on the page. As commonly the page consists of Expositio alone, the attribute expositio="standalone" can be set on the document root to take control of the full document body. expositio init generates such a standalone presentation.

Custom theme

Of course you can also create a custom theme. Create a less entrypoint (e.g. theme.less) and import the base builtin theme, and pick a terminal theme. Then customize any variables or add your own styles.

A good start would be to customize the default foreground (@default-fg) and background (@default-bg) colors, and (optionally) set a highlight color (@highlight-fg). The base theme derives the rest of the colors, but of course any variable can be overridden by the custom theme.

For example:

@import "~expositio/layout/themes/base";
@import "~expositio/layout/themes/terms/xterm";

@default-bg: #fff;
@default-fg: #000;
@highlight-fg: #00ced1;

Custom themes cannot utilize the data-theme selection, so point the stylesheet link to your custom theme and disable the builtin theme switcher.

When you create a nice theme, a PR is much appreciated :)

Creating slides

Slides and fragments are marked with style classes. A slide is a single page in the presentation. Fragments mark the boundaries of elements that become visisble at a time. I.e. fragments help control navigation flow, to prevent revealing the full slide content at once.

The slide desk is contained is an element with the slides class. Every slide is marked by the slide class. Fragments are marked with fragment.

For an example of showing bullet points one-by-one, see examples/framents.html.

Terminal

The builtin terminal view allows for using (animated) terminals in a presention, to show use of shell commands. An example is shown in the examples/terminal.html example.

Code

Code fragments can be shows in the terminal view. See examples/code.html for an example.

License

Copyright 2020-2022, Bart Bakker.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

0.8.1

1 year ago

0.8.2

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.7.0

2 years ago

0.6.0

2 years ago

0.5.1

3 years ago

0.5.0

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago