On-disk structure
The rules
- In the top level directory, there must be a
project.yaml
. - In the top level directory, there must be an
index.html
file representing the welcome slide. - In the top level directory, there must be a directory named
sections
. - Each directory within
sections
represents a section. The directory name becomes the "key" of the section. Choosing these keys carefully is important. - Within each Section directory (e.g.
sections/<section_name>/
), there must be a directory namedslides
. - Each directory within
slides
represents a slide. You'll use the directory name to refer to the slide inproject.yaml
. - Common files for use throughout the whole deck - such as
css
,js
andhooks
files, will need to be referenced as such in the project file (project.yaml). - (Optional) at the same level as the sections folder, there can be a directory named
templates
. These are for reusable slide layouts. Read more about templates here. - Other directories don't have any special meaning. An example would be a
fixtures
directory to hold any feed or context fixture files.
Basic structure
.
├── sections
│ └── section_1
│ ├── index.html
│ └── slides
│ └── slide_1
│ └── index.html
├── templates
│ └── template_1
│ ├── index.html
│ └── slide.css
├── index.html
└── project.yaml
note
This is the expected format when publishing your deck to a server. If using the Starting Point deck as a base, the gulp task will automatically create the deck in this format. If you use your own, make sure the output looks like the above.
Here’s an example of a deck with common CSS and JS, hooks, images, assets and two sections - one containing three slides:
.
├── css
│ ├── core.css
│ └── img
│ └─ ─ navigation-btns.png
├── js
│ ├── deck.js
│ ├── hooks
│ │ ├── fieldsets.js
│ │ ├── selectionRules.js
│ │ └── selections.js
│ └── hooks.js
├── sections
│ ├── were_innovative
│ │ ├── index.html
│ │ ├── slide.css
│ │ └── slides
│ │ ├── introduction
│ │ │ ├── index.html
│ │ │ ├── slide.css
│ │ │ └── img
│ │ │ └── clipart.png
│ │ ├── super_stats
│ │ │ ├── index.html
│ │ │ ├── slide.css
│ │ │ ├── stats-loader.js
│ │ │ └── stats.pdf
│ │ └── fancy_infographic
│ │ ├── index.html
│ │ └── slide.css
│ └── product_suite
│ ├── index.html
│ ├── slide.css
│ └── img
│ └── section-bg.jpg
├── index.html
├── project.yaml
├── slide.css
├── fixtures
│ ├── feeds.json
│ └── context.json
├── img
│ └── welcome-bg.jpg
└── assets
└── asset.pdf
note
that per the point above, the assets
directory has no special meaning. It’s just a directory with stuff in it.
info
The path to hooks.js can be modified in the project.yaml file, but is generally set to
js/hooks.js
.
For more information, see project file.