Can someone, please, do a "This" is the typical problem we face with HTML in Static Site Generators and "this" does "something" to solve that?
Can someone, please, do a "This" is the typical problem we face with HTML in Static Site Generators and "this" does "something" to solve that?
Most SSGs force a blog-oriented directory structure like assets/ static/ theme/ posts/ public/. But soupault only needs an input/ and output/.
Most SSGs convert markdown to HTML. But soupault is good at processing (or ignoring) any sort of source content, which is nice for excluding one-off pages, or parsing non-markdown, or using existing HTML content.
>Maybe this table of comparisons should go on the landing page
The elephant in the room is that none of the popular tools' websites make any sense to people who aren't already familiar with that class of tools. I happened to accidentally come up with a tool that's too unlike anything else to be easy to explain by "it's like {alreadyPopularTool} but with {importantDifference}".
I also hope that people from the Web 1.0 revivalist circles who hate typical SSGs for their hostility to handwritten HTML on board, although that development was ironic: the reason I included the HTML post-processor mode was to help those folks inject consistent navigation into otherwise handwritten pages or similar — in reality they just told me they were _proud_ of wasting their time on that completely automatable task, but the post-processor mode was a surprise hit with people who wanted to fix up outputs of inflexible HTML generators.
The comparison table is not very helpful for people who might not have seen an SSG before, placing it on the main page might create a confrontational tone (because it's focused on things that soupault made possible compared to other tools), and I'd have to constantly watch those projects to see if anything is no longer true.
For example, it would be pretty easy to allow Hugo call AsciiDoc and other external processes with custom CLI options — I'm sure someone will eventually do it and it will be a big improvement for those who want to use Hugo.
In many static site generators, if there is a page in a collection of pages (say, a product page) that you want to add a custom layout to (but without affecting other pages in that collection), you often need to create a separate template, or modify the default template to allow for this exception. With Soupault, page content is typically written in HTML and giving a specific page a custom layout is as simple as including an <html> element in that page’s content file and it will be treated as a completely standalone page. In other words, a content file is not as different from a template as in typical static site generators.
This flexibility and HTML-first approach cuts down on complex or sprawling templates introduced to deal with many exceptions. And as a result, someone only needs to know HTML to make most edits to a website. Of course, you can make certain patterns more efficient with “widgets” (basically snippets to insert content dynamically) defined in the main configuration file, but it is not requisite.
At the end of the day, the website is mostly just HTML with a simple project directory structure, which makes it understandable to a wider audience, which is important to me since I want the website to be easily understandable for future maintainers of it.
Edit: Another benefit is that Soupault is a single statically-linked executable with no dependencies, and therefore can be downloaded via a simple link. This also extends the longevity of websites built with it (i.e. it is easy to get the development environment setup).
My single executable is called 'docker' for these kind of tools. No need to download anything at all.
I get why people want to write their content in Markdown (well, specifically, I get why tech people want to write their content in Markdown, but not normal humans who almost always want a WYSIWYG) - but what I just can't get my head around is the vast complexity that almost all these tools seem to bring to the table.
I've looked at it for so long now I think I've basically got a terrible mental block - for most scenarios, I just don't get it. I don't see what the problem is that is being solved. Booting up a bunch of HTML files, or a simple WordPress site, or a manually built PHP thing that pulls Markdown files and uses a couple of includes to solve the "how do we replicate menus?" question - this makes sense to me.
I'm not talking about this tool (like you I have no idea what it actually does) but the whole Hugo/Gatsby/Jekyll/etc thing. Having (what looks like!) a steep learning curve, then a whole bunch of build steps, lots of dependencies, frameworks, templates etc etc - in order to get what is being sold here as the end game (a fast, dependency free, "just html", no risk website) just feels like ...madness.
I badly need someone to explain to me why all these tools are doing something better. That's a serious request, btw, would love for someone to enlighten me!
This applies to all software - and most other things that humans make that have large numbers of users, like governments, countries, or other systems.
Hugo has two different Markdown libraries baked in and you have to choose them, and it also had hardcoded commands to call rST and AsciiDoc processors. If you are migrating from a different SSG, Markdown processors behavior differences can bite you and there's no way out.
With soupault, you just configure a command to convert a file with a certain extension to HTML, and all features (ToC, footnotes, anything provided by plugins...) work the same because they they are implemented by manipulating the parsed HTML element tree.
Want a CSS preprocessor? You can pipe <style> tag contents through any external program if you feel like it. Want to re-compress or manipulate images? You can write a Lua script that gets their paths from <img> and <picture> tags and calls an external program on their files. And so on.
> Markdown processors behavior differences can bite you and there's no way out.
is under appreciated. The lack of “surprises” in Soupault is very appreciated.