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

Task Description
prepareOutputTask Create/clean the output directory
setGlobalsTask Set site-wide variables
setGlobalFromMarkdownTask Set globals from Markdown content

Content Tasks

Task Description
generatePagesTask Render standalone page templates
generateItemsTask Generate pages from Markdown collections
generatePaginatedItemsTask Create paginated list pages

Feed Tasks

Task Description
generateFeedTask Create RSS, Atom, and JSON feeds
generateSitemapTask Generate sitemap.xml

Asset Tasks

Task Description
bundleCssTask Bundle and minify CSS
copyStaticTask Copy static files unchanged

Minimal Pipeline Example

// skier.tasks.mjs
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.