https://github.com/rrwen/rvslides
Minimalistic command line tool for templating and PDF rendering of reveal.js presentations.
https://github.com/rrwen/rvslides
bower deck decktape js minimal node npm pdf phantom presentation render reveal rrwen rvslides slides template
Last synced: about 1 month ago
JSON representation
Minimalistic command line tool for templating and PDF rendering of reveal.js presentations.
- Host: GitHub
- URL: https://github.com/rrwen/rvslides
- Owner: rrwen
- License: mit
- Created: 2017-04-10T09:09:33.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-15T03:58:54.000Z (over 8 years ago)
- Last Synced: 2025-04-03T07:19:56.413Z (about 1 year ago)
- Topics: bower, deck, decktape, js, minimal, node, npm, pdf, phantom, presentation, render, reveal, rrwen, rvslides, slides, template
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/rvslides
- Size: 2.15 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rvslides
Richard Wen
rrwen.dev@gmail.com
* [HTML Slides](https://rrwen.github.io/rvslides/slides)
* [PDF Slides](https://github.com/rrwen/rvslides/blob/master/slides/pdf/index.pdf)
Minimalistic command line tool for templating and PDF rendering of [reveal.js](https://github.com/hakimel/reveal.js/) presentations.
```
npm install rvslides -g
rvslides create
rvslides pdf
```
**WARNING:** No longer installs properly due to changes from [decktape](https://github.com/astefanutti/decktape).
## Install
1. Ensure [Node.js](https://nodejs.org) is installed
2. Install via npm:
```
npm install rvslides -g
```
For the latest developer version, see [Developer Install](#developer-install).
## Usage
Generate slides **index.html** in the current directory:
```
rvslides create
```
* Edit the **index.html** file to modify slides
* Replace the **img/logo.svg** file to change the logo
Render **index.html** slides as a PDF **pdf/index.pdf**:
```
rvslides pdf
```
For usage help, use `rvslides -h`
## Advanced Usage
### Render Portable Document File (PDF)
PDF support is based on [decktape](https://github.com/astefanutti/decktape).
* Generate *pdf/index.pdf* for *index.html* with `rvslides pdf`
* Generate a PDF with different html slides and output with `rvslides pdf path/to/slides.html path/to/slides.pdf`
## Manage JavaScript (JS) Packages
The JS packages are contained in **js/** with package management based on [bower](https://bower.io/).
* Install bower `npm install bower -g`
* Install JS packages with `bower install `
* Update JS packages with `bower update `
* Uninstall JS packages with `bower uninstall `
## Developer Notes
### TO DO
* Incorporate a templating engine
* Document Github hosting
* Create unit tests
### Developer Install
1. Ensure [git](https://git-scm.com/) is installed
2. Install via git:
```
git clone https://github.com/rrwen/rvslides
cd rvslides
npm install -g
```
### Developer Maintenance
1. Update package and slide dependencies
2. Check **slides/index.html**
3. Commit and push changes
```
npm update --save
npm run bower update --save
npm add .
npm commit -a -m "Maintenance update"
npm push
```
## Implementation Notes
### PDF Support Implementation
PDF generation is based on [decktape](https://github.com/astefanutti/decktape), which requires [pre-compiled phantomjs files](https://github.com/astefanutti/decktape/releases) for different operating systems. The [npm](https://slides.npmjs.com/cli/npm) command is used to install decktape directly from the Github repository. The [node](https://nodejs.org/api/cli.html) command is then used to call **scripts/pdf/install.js** to download (via [request](https://www.npmjs.com/package/request)) the pre-compiled files. The pre-compiled files are located under *node_modules/decktape*. The **scripts/pdf** files can then be used by [node](https://nodejs.org/api/cli.html) to run decktape with `rvslides pdf`.
### JS Package Management Implementation
Client-end packages are installed and updated with [bower](https://bower.io/) inside **bower_components**. Bower is installed inside this folder to avoid an unwanted global installation, however it can be installed globally by running `npm install bower -g`. The **bower.json** file is used to specify package dependencies and [node](https://nodejs.org/api/cli.html) is used to run updates with [npm commands](https://slides.npmjs.com/misc/scripts#examples) (inside **package.json**) assigned to `npm run bower update`, `npm bower js install`, and `npm run bower uninstall`. These commands are for updating client-end packages on the developer side.
### CSS Implementation
The theme is defined by Cascading Style Sheets (CSS) inside **css**, the original [reveal.js white theme](https://github.com/hakimel/reveal.js/blob/master/css/theme/white.css), [components-font-awesome](https://github.com/components/font-awesome), and a logo file inside **img**.