What's SveltePress?

SveltePress is a documentation tool built on top of SvelteKit, a "serverless-first" framework for building web applications for Svelte.

SvelteKit & Svelte's simplicity allow the user to modify SveltePress to fit their needs with little to no effort while taking advantage of the incredible performance of both of them.

How does SveltePress differ from other documentation tools?

Apart from all the super powers inherited from Svelte & SvelteKit, the main point of SveltePress is to allow less knowledgeable users to create and publish content. To achieve that, SveltePress uses a filesystem-based structure.

For example the following structure...

pages
└── cooking
    ├── allergies.md
    ├── main_dish
    │   ├── pizza.md
    │   └── spaghetti.md
    └── readme.md

will generate the following sidebar:

- Cooking
- Allergies
- Main Dish
  - Pizza
  - Spaghetti

As shown above, the sidebar is sorted alphabetically (or last modified) and categorized based on the folder structure. However, both category and post names do not only depend on the filename. This allows you to eg. have the following file names:

01 - cream.md
02 - choco.md

but have them displayed as:

- Ice Cream
- Chocolate

on the sidebar. More on that later.

How does SveltePress work?

SveltePress relies on SvelteKit's dynamic parameters to get the correct markdown file which then converts to HTML using marked.

In production mode, all markdown files, get indexed for max performance while also enabling the search function powered by FlexSearch.

Deploying is handled by SvelteKit, which allows you to choose from a plethora of adapters including node, Netlify, Vercel...

At the moment using the static adapter is not possible, as the dynamic routes won't get rendered.

Credits

SveltePress wouldn't exist without the following:

Video (YouTube)