🐫 In a startup pitch style, it's a website generator for Markdown haters.
https://discuss.ocaml.org/t/ann-soupault-a-static-website-generator-based-on-html-rewriting/4126
https://baturin.org/projects/soupault/
|
1 week ago | |
---|---|---|
.github | 7 months ago | |
examples | 2 years ago | |
sample-site | 11 months ago | |
scripts | 10 months ago | |
src | 1 week ago | |
.gitignore | 1 year ago | |
CHANGELOG.md | 1 month ago | |
LICENSE | 1 month ago | |
README.md | 10 months ago | |
dune | 3 years ago | |
dune-project | 3 years ago | |
link_widgets.ml | 11 months ago | |
soupault.opam | 2 weeks ago |
Soupault is an HTML manipulation tool. It can be any of:
or all of them at the same time.
Soupault works with the HTML element tree of the page, so it can do many things that traditionally could be done with client-side JS:
inject new HTML into existing complete pages, create a table of contents that preserves the id
elements of HTML headings and more.
It also doesn't use front matter and extracts metadata from HTML instead, using a CSS3 selector to metadata field mapping, so even hand-written static pages can be indexed rather than treated as assets. For example:
[index.fields.title]
# Try to find <h1 id="post-title"> if it exists,
# else use the first <h1>
selector = ["h1#post-title", "h1"]
[index.fields.excerpt]
selector = ["p#post-excerpt", "p"]
[index.fields.date]
selector = ["time#post-date", "time"]
extract_attribute = "datetime"
fallback_to_content = true
Extracted metadata can then be rendered and injected into pages:
[index.views.blog]
# Insert rendered data into the element that matches "#blog-index" CSS selector.
index_selector = "#blog-index"
index_item_template = """
<h2><a href="{{url}}">{{title}}</a></h2>
<p><strong>Last update:</strong> {{date}}.</p>
<p>{{excerpt}}</p>
<a href="{{url}}">Read more</a>
"""
Soupault is...
Soupault is named after the French dadaist and surrealist writer Philippe Soupault because it's based on the lambdasoup library.
Visit soupault.app for details.
For support and discussion, write a message to the mailing list.
Pre-built binaries are available for Linux, Windows, and macOS. You can download them from https://files.baturin.org/software/soupault and from Github releases (https://github.com/dmbaturin/soupault/releases).
You can verify release archive integrity using this signify/minisign key: RWRfW+gkhk/+iA7dOUtTio6G6KeJCiAEp4Zfozw7eqv2shN90+5z20Cy
.
You can also install stable release versions from OPAM:
opam install soupault
Finally, you can build the latest development version with:
opam pin add git+https://github.com/PataphysicalSociety/soupault
Bug reports and patches are always welcome. Feature requests and new features are also welcome, but please consider discussing them with the maintainer first.
You can contribute either through GitHub or through Codeberg.