Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is soupault?
Soupault is a static website generator that treats HTML as a structured element tree rather than an opaque block of text. In practice, it works like a programmable webmaster: you define rules for how pages should be assembled or altered, and it applies them consistently across the site. The project describes itself as highly configurable and extensible, with an emphasis on giving you full control over the generation process.
What makes it different
Most static site generators turn templates plus content into finished HTML and then stop. Soupault also reads and manipulates existing HTML, which opens up a second use case: running it as a post-processor over a site you already have. That means you can add navigation, rewrite links, inject metadata, or restructure markup without migrating your whole site to a new tool.
It also decouples content format from processing. Pages can be written in Markdown, HTML, or other formats that can be converted to HTML, and soupault will call the conversion tools you configure. Its documented example wires cmark for Markdown, pandoc for reStructuredText, and Asciidoctor for AsciiDoc, so you are not locked into one authoring language.
Who it suits
- Developers comfortable editing a configuration file and defining rules, rather than picking from themes.
- People maintaining an existing HTML site who want automation without a rebuild.
- Writers who want to mix Markdown, hand-written HTML, and other formats in one project.
If you want a one-command blog with a large theme ecosystem, a conventional generator will get you there faster. Soupault's value shows up when you need precise control over the final HTML or when the site already exists.
Getting oriented
Start with the quick start: on Linux, macOS, or Windows you can download an executable, and there are ready-made blueprints for a blog or an online book. If your situation is less standard, the two guides worth reading first are "create a blog setup from scratch" and "use soupault as a post-processor for an existing website." Reading the comparison with Hugo, Zola, and Jekyll before committing is a reasonable next step, since the trade-off is mainly configuration effort versus built-in convenience. You can also compare notes with a mainstream alternative such as Hugo or Jekyll.
How does soupault differ from other static site generators like Hugo, Jekyll, or Eleventy?
Soupault differs from Hugo, Jekyll, and Eleventy mainly in when and how it touches your HTML. Most static site generators treat HTML as an output format: you feed them Markdown or templates, and they emit finished pages. Soupault treats the HTML element tree as its working material, so it can read, edit, and reorganize existing pages according to rules. That makes it both a generator and a post-processor for sites that already exist.
Where the difference shows up
- Source format flexibility. Because soupault operates on HTML trees, pages can arrive from any format that converts to HTML. It has built-in Markdown support and can call external converters per file extension, so you can mix Markdown, reStructuredText, AsciiDoc, or hand-written HTML in one project.
- Post-processing existing sites. This is the use case the other tools generally don't cover. If you have a site built by something else, soupault can be inserted into the build to inject navigation, rewrite elements, or apply consistent structure without a full migration.
- HTML-level manipulation. Instead of relying on templates to produce markup, you define rules that select and transform elements. That suits tasks like adding attributes, moving content blocks, or enforcing a shared layout across pages that were not generated together.
- Configuration and extensibility. Soupault is described as highly configurable and extensible, with the goal of giving you complete control over the generation process. That control comes with more setup decisions than a convention-driven generator.
How to choose
| If your priority is… | Consider |
|---|---|
| Fast start with a large theme/plugin ecosystem | Hugo, Jekyll, or Eleventy |
| Editing or post-processing an existing HTML site | Soupault |
| Mixing several source formats in one project | Soupault |
| Template-first authoring with minimal configuration | Eleventy or Jekyll |
A practical next step: take one existing HTML page and try a single soupault rule on it, such as adding a class to every article element. If that workflow feels natural, soupault's tree-level approach will likely fit your project; if you would rather write templates and let the generator own the markup, a conventional SSG will be less friction.
Can I use soupault to post-process an existing website without rebuilding it from scratch?
Yes. Soupault is explicitly designed for this: it can run as a post-processor over an existing site's HTML rather than regenerating pages from templates. It parses each page into an HTML element tree, applies your rules, and writes the result back out. The site's own documentation lists "Use soupault as a post-processor for an existing website" as a first-class workflow alongside building a blog from scratch.
What that looks like in practice
You point soupault at a directory of already-built HTML files (output from another generator, a CMS export, or hand-written pages) and define rules for what to change. Typical post-processing jobs:
- Inject a shared header, footer, or navigation into every page.
- Rewrite or normalize links, asset paths, or canonical URLs.
- Add
<meta>tags, analytics snippets, or structured data. - Strip or relocate scripts, or clean up markup left by an editor or CMS.
- Extract content from one element and place it elsewhere in the tree.
Because it works on the element tree rather than on text, these edits survive messy formatting and don't depend on fragile string matching.
Who benefits most
- Teams with a live site they don't want to rebuild, but that needs consistent chrome, metadata, or link fixes across many pages.
- People migrating gradually: keep the existing generator, add soupault as a cleanup pass, and move to full generation later if it's worth it.
- Anyone whose pages come from mixed sources, since soupault's preprocessor configuration lets different file extensions be converted through different external commands before the tree is manipulated.
Trade-offs to weigh
- You're adding a second stage to your build, so your pipeline and CI need to accommodate it.
- Rules are configuration you maintain; a large, irregular site can mean a fair amount of rule-writing before the output is clean.
- Post-processing is a good fit for site-wide, structural changes. One-off edits to a single page are usually faster done by hand.
Next step
Take a small, representative subset of your existing site — say ten pages covering your main templates — copy it to a scratch directory, write one or two rules (a footer injection and a link rewrite are good tests), and inspect the diff. If the rules stay short and the output is predictable, the approach scales; if you find yourself writing many exceptions, that's a signal the site's markup varies too much for rule-based processing and a rebuild may be cheaper.
For a fuller picture of how it differs from template-first generators, the project's comparison with Hugo, Zola, and Jekyll is worth reading, as is the guide to using it as a post-processor.
How do I install soupault on Linux, macOS, or Windows?
Install soupault by downloading a prebuilt executable for your platform. The project lists Linux (x86-64), macOS, and Microsoft Windows as supported targets for direct download, so installation is typically a matter of fetching the binary and putting it on your PATH — no package manager or runtime required.
Platform notes
- Linux (x86-64): Download the executable, make it runnable with
chmod +x, then move it somewhere on yourPATHsuch as/usr/local/bin. - macOS: Download the executable, clear the quarantine attribute if macOS blocks it, and place it on your
PATH. - Windows: Download the executable and either run it directly or add its folder to your
PATHso you can callsoupaultfrom any directory.
After installing
Verify the binary works, then choose a starting point:
- Grab a ready-to-use blueprint if you are building a blog or an online book.
- Follow the "create a blog setup from scratch" guide if you want a custom configuration.
- Use soupault as a post-processor if you already have an existing website and only want to manipulate its HTML.
A practical decision criterion: if you want a working site in minutes, start from a blueprint; if you need to understand the configuration model first, work through the from-scratch guide. For background on how soupault differs from template-based generators, see soupault.
Can I write pages in formats other than Markdown, such as reStructuredText or AsciiDoc?
Yes. Soupault treats HTML as its working format, so any source format you can convert to HTML can be used, and every soupault feature then applies the same way. Markdown has built-in support, and for other formats you configure conversion commands that soupault calls automatically when it loads pages.
How it works in practice
In your soupault.toml, a [preprocessors] section maps a file extension to a shell command. The page_evidence shows exactly this pattern: md mapped to cmark --unsafe --smart, rst to pandoc -f rst -t html, and adoc to asciidoctor --embedded -o -. Each command reads the source on standard input and writes HTML to standard output.
So a reStructuredText page becomes a normal page in the element tree: your templates, index generation, table of contents, and post-processing rules apply to it identically. You can also hand-write HTML pages and mix formats in one site.
Choosing a converter
| Format | Common converter | Trade-off |
|---|---|---|
| Markdown | built-in, or cmark | Built-in is simplest; an external command gives you control over flags |
| reStructuredText | pandoc | Rich feature set, but pandoc is a large dependency |
| AsciiDoc | Asciidoctor | Strong for books and long documents; needs Ruby or a packaged binary |
| HTML | none needed | Full control, but you write markup yourself |
A useful next step
Pick one non-Markdown page you already maintain, add a single preprocessor line for its extension, and run a build. If the converted page appears with your site's layout and navigation intact, the pipeline is sound, and you can migrate the rest of that format incrementally.
What are the benefits of soupault's HTML element tree manipulation for website generation?
Soupault's central benefit is that it treats HTML as structured data rather than as text output. Most static site generators render templates into finished pages and stop there; soupault parses pages into an element tree, lets rules modify that tree, and writes the result back out. That single design choice unlocks several practical advantages.
What tree manipulation actually buys you
- Post-processing of existing sites. You can point soupault at HTML you didn't generate — a hand-written site, an exported CMS dump, a legacy build — and apply consistent edits across it. Other generators generally assume they own the whole output pipeline.
- Format independence. Because the tree is the working representation, source format stops mattering. The page evidence describes built-in Markdown support plus configurable external converters, so a single site can mix Markdown, reStructuredText and AsciiDoc without changing how features behave.
- Rule-based, repeatable edits. Inserting navigation, rewriting links, injecting metadata or normalising markup becomes a declared rule applied uniformly, instead of a manual pass that drifts over time.
- Less client-side JavaScript. If a transformation can be done at build time on the tree, it doesn't need to ship to the browser. The page evidence frames this explicitly as a reason people otherwise add non-interactive scripts.
Where the trade-off sits
Tree manipulation is a better fit for people who want control and are comfortable writing configuration than for those who want a theme installed in one command. You gain precision over markup and the ability to adopt soupault incrementally on an existing site; you take on more setup decisions yourself, and you need to think in terms of selectors and rules rather than template inheritance.
A concrete scenario
Suppose you maintain a documentation site built years ago with hand-edited HTML. You want a consistent sidebar, canonical URLs and a footer on every page, but you don't want to rewrite the site. With soupault you can run the existing files through a post-processing configuration, apply the tree edits, and keep your current authoring habits. A template-first generator would push you toward migrating the whole site into its own project structure.
If you already use another generator, the comparison with Hugo, Zola and Jekyll linked from the homepage is the fastest way to judge whether the tree model matches your needs; the FAQ covers the common objections.
User reviews (0)