Squarkup Configuration

Last updated 2026 October 10

Squarkdown comes with sensible defaults out-of-the-box, but you’ll almost certainly want to configure it to suit your need.

Squarkdown reads in your configuration from 1 of 4 places:

TOML is the recommended format. JSON support is in progress!

IMPORTANT

You need a squarkup config file – even if empty – to run Squarkdown, otherwise Squarkdown can’t find your project root!


Categories

Configuration options are neatly organised into categories. Throughout the docs you’ll see them referred to as category.option, e.g. format.preserve-comments.

CategoryDescription
errorsError handling
projectProject metadata
pathsWhere Squarkdown should find files
outOutput
formatMarkdown rendering
assetsAssets preprocessing
fontsFonts preprocessing

TIP

If you’re new to Squarkdown, paths.site is the most important option to set.

From there, errors and paths are the most important categories to start with.


Errors

OptionTypeValuesDefault
strictbooleantrue
debugbooleantrue
on-errorstringwarn
kill
warn
file-already-existsstringoverwrite
error
skip
overwrite
link-brokenstringmark-invalid
strip-extension
link-to-github
error
strip-extension

strict

Enable stricter safety checks?

This includes:

  • Requiring dest(ination) to be explicitly provided in the charm squark
  • Validating charm squark only contains [Squarkdown-native fields]
  • Checking directories remain under your project root
  • Checking multiple files don’t export to the same directory

debug

Enable more helpful debug output?

This includes:

  • When a rendering error occurs, showing a snapshot of the source text pointing out the exact error

This requires Squarkdown to do more work, so has a tiny impact on performance. It’s enabled by default since the performance impact is usually negligible, and it makes error messages significantly better!

New in v4.2.

on-error

How should Squarkdown react to non-fatal errors?

Defaults to warn, meaning Squarkdown will report the error but continue processing. This means one bad page won’t bring down the entire squarkup, and you’d be able to catch more errors in a single run.

In production, you’ll probably want kill, so that you don’t get an incomplete build.

file-already-exists

How should Squarkdown react when a file to render to already exists?

Defaults to overwrite, meaning Squarkdown will overwrite the existing file.

In production, you may want error to avoid Squarkdown overwriting a handwritten +page.svx without you knowing.

How should Squarkdown handle a .md link that does not resolve to an active file?

This can happen because either:

  • The link is totally broken: the linked .md file doesn’t exist at all!
  • The link would be broken: the linked file doesn’t have #SQUARK live!, so wouldn’t have a page in the site.

Project

OptionType
namestring
githubstring

name

New in v4.2.

github

New in v4.2.


Paths

OptionTypeDefault
sitestringyour project root
sourcesstring arrayyour entire project repo
includestring array.md files
excludestring array.git/, .node_modules/, .svelte-kit/ folders

site

sources

include

exclude


Out

OptionTypeNotesDefault
folderstringpath relative to project rootsrc/routes/ in your site folder
site-data-pathstring
none
path relative to sitenone
render-page-tsbooleantrue
shorter-fieldsbooleanfalse

folder

site-data-path

render-page-ts

shorter-fields


Format

OptionTypeDefault
inject-headbooleantrue
preserve-headingbooleanfalse
preserve-commentsbooleanfalse
externalise-linksbooleantrue

inject-head

New in v4.2.

preserve-heading

preserve-comments


Assets

OptionTypeNotesDefault
folderstringpath relative to project rootyour project root
site-assets-folderstring
none
path relative to project rootnone
extensionsstring array.png, .jpg, .jpeg, .webp, .svg files

folder

site-assets-folder

extensions


Fonts

OptionTypeValues
queriesstring array

queries