Getting Started with Skier

Welcome to Skier — an opinionated, minimal, and extensible static site generator for modern web projects. This guide will help you get up and running quickly.


What is Skier?

Skier is a modular static site generator (SSG) designed for reliability, extensibility, and minimalism. It powers the ripixel-website and is intended for developers who want full control over their build pipeline without bloat.


Prerequisites


Installation

Install Skier as a dev dependency in your project:

npm install --save-dev skier

Or, to use it globally:

npm install -g skier

Project Structure

A typical Skier-powered site might look like:

my-site/
  src/
    pages/            # Your page templates (e.g., about.html, contact.html)
    partials/         # Shared partial templates (e.g., header.html, footer.html)
    blog/             # Blog posts or content collections (Markdown or HTML)
    static/           # Static assets (images, fonts, etc.)
  skier.tasks.js      # Skier pipeline config
  package.json
  public/             # (Generated) Output site
  ...

Minimal Configuration

Create a skier.tasks.js (or .ts/.cjs) file at your project root:

// skier.tasks.js
const { generatePagesTask, generateItemsTask, copyStaticTask } = require('skier/builtins');

module.exports = [
  generatePagesTask({
    pagesDir: 'src/pages',
    partialsDir: 'src/partials',
    outDir: 'public',
  }),
  generateItemsTask({
    itemsDir: 'src/blog',
    template: 'src/pages/blog-post.html', // or your preferred template
    partialsDir: 'src/partials',
    outDir: 'public/blog',
  }),
  copyStaticTask({
    staticDir: 'src/static',
    outDir: 'public',
  }),
];

Running Skier

Add a script to your package.json:

"scripts": {
  "build": "skier"
}

Then build your site:

npm run build

Next Steps


Need help? Check out the FAQ or open an issue on GitHub.