Configuration

Customize Swifty to your liking.

Swifty believes in sensible defaults, but when you want to tweak things, the config file is your friend. Create a config.yaml (or config.yml or config.json if that's your jam) in your project root.

The Full Config Menu

Here's everything you can configure, with the defaults shown:

sitename: Swifty
author: Taylor Swift
breadcrumb_separator: "»"
breadcrumb_class: swifty_breadcrumb
link_class: swifty_link
tag_class: tag
default_layout_name: default
default_link_name: links
max_image_size: 800
turbo: false

dateFormat:
  weekday: short
  month: short
  day: numeric
  year: numeric

What Does What?

Option What it does
sitename Your site's name - use {{ sitename }} anywhere to display it
author Your name (or whoever's taking credit)
breadcrumb_separator The character between breadcrumb links
breadcrumb_class CSS class for breadcrumb links
link_class CSS class for auto-generated links
tag_class CSS class for tag links
default_layout_name The fallback layout when no other applies
default_link_name The partial used for generating link lists
max_image_size Maximum width for optimized images (in pixels)
turbo Enable Turbo for SPA-like navigation
dateFormat How dates are formatted throughout your site

Using Config Values in Pages

Any config value can be dropped into your pages or layouts using double curly braces:

Welcome to {{ sitename }}!
Written by {{ author }}.

Simple as that.

Turbo Mode

By default, Swifty generates good old-fashioned HTML pages. But if you want that slick single-page-app feel with instant page transitions, flip on Turbo:

turbo: true

When enabled, Turbo intercepts link clicks, fetches pages in the background, and smoothly swaps content. It even prefetches links when you hover over them. Your visitors will think you're some kind of wizard.

For most sites though, plain HTML is already plenty fast. Only enable Turbo if you really want those buttery transitions.

Folder-Level Config

Here's a neat trick: you can add a config.yaml inside any folder in pages/ to set defaults for all pages in that folder. Great for giving a whole section its own author or layout without repeating yourself.

RSS Feeds

Want to offer RSS feeds for your blog or news section? Easy. Just add the folders you want feeds for:

site_url: https://yoursite.com
rss_feeds:
  - blog
  - news

This generates /blog/rss.xml and /news/rss.xml automatically, including all pages within those folders.

Custom Feed Options

Need more control? Use the expanded format:

rss_feeds:
  - folder: blog
    title: My Awesome Blog
    description: Thoughts on code, coffee, and chaos
  - folder: news
    title: Company Updates
    description: The latest from our team

RSS Config Options

Option What it does
site_url Required for RSS. The full URL of your site (used for absolute links in feeds)
rss_feeds List of folders to generate feeds for
rss_max_items Maximum items per feed (default: 20)
language Feed language code (default: "en")

Each feed includes the page title, URL, publication date, and a description snippet. Feeds are sorted by date with the newest items first.