Built-In Tasks
Skier includes tasks for all common static site needs. Use them as building blocks for your pipeline.
Task Categories
Organize your pipeline in this order:
flowchart LR
Setup --> Content --> Feeds --> Assets
| Category |
Tasks |
Purpose |
| Setup |
prepareOutputTask, setGlobalsTask, setGlobalFromMarkdownTask |
Initialize directories and shared data |
| Content |
generateItemsTask, generatePaginatedItemsTask, generatePagesTask |
Process and render content |
| Feeds |
generateFeedTask, generateSitemapTask |
Create discovery/syndication files |
| Assets |
bundleCssTask, copyStaticTask |
Optimize and copy static files |
Which Task Do I Need?
flowchart TD
Start([What do you want to do?])
Start --> Static{Static files?}
Static -->|Images, fonts, etc.| copyStaticTask
Static -->|CSS files| CSS{Bundle CSS?}
CSS -->|Yes| bundleCssTask
CSS -->|No| copyStaticTask
Start --> Variables{Set variables?}
Variables -->|Key-value pairs| setGlobalsTask
Variables -->|From Markdown file| setGlobalFromMarkdownTask
Start --> Pages{Generate pages?}
Pages -->|Standalone templates| generatePagesTask
Pages -->|From Markdown collection| generateItemsTask
Pages -->|Paginated list| generatePaginatedItemsTask
Start --> Syndication{Syndication?}
Syndication -->|RSS/Atom/JSON| generateFeedTask
Syndication -->|sitemap.xml| generateSitemapTask
Task Reference
Setup Tasks
Content Tasks
Feed Tasks
Asset Tasks
Minimal Pipeline Example
import {
prepareOutputTask,
setGlobalsTask,
generatePagesTask,
copyStaticTask,
} from 'skier';
export default [
prepareOutputTask({ outDir: 'public' }),
setGlobalsTask({ values: { siteTitle: 'My Site' } }),
generatePagesTask({
pagesDir: 'src/pages',
partialsDir: 'src/partials',
outDir: 'public',
}),
copyStaticTask({ from: 'src/static', to: 'public' }),
];
Next: See Recipes for complete project examples.