Zensical – A modern static site generator built by the Material for MkDocs team

squidfunk.github.io

152 points by japhyr a day ago


finallyspeaking - 13 hours ago

I’m delighted to see this project evolving and look forward to following its development! I’ve used just about every markup technology over my (many) years as a tech writer, from troff macros, to SGML/DocBook and then XML/DITA, and finally, to Markup with the Material for MkDocs project, as a sponsor. Each has its strengths and weaknesses, but for enabling contributors outside the tech writing community, simpler source formats are the way.

That said, if pressed, I’d recommend AsciiDoc[0] over any Markup flavor for a greenfield project _today_. We had to either add or bake plugins or extensions to get features that are already included in AsciiDoc, making our Markup implementation both more complex and wholly unique. That wasn’t a huge problem, because we didn’t have a large pool of contributors to educate and support, but it would have been much easier just to point to a standard.

But, hey! The roadmap includes modules, to make way for other source formats! This is the way. :-)

[0] https://asciidoc.org/

EDIT: s/That's the way/This is the way. :-)/

maxloh - 21 hours ago

It is a very reasonable choice: your plug-in project has grown to a scale you have never anticipated. Therefore, you built your own system from the ground up, one which you have total control over, instead of keeping to rely on someone else's system as you did before. This would make new features and bug fixes more easy to be implemented.

I am also very curious about what the MKDocs future would be like. Material has been the most popular theme for MkDocs. People are not using it because they have chosen MkDocs, but using MkDocs because they have chosen Material. With Zensical promising (some kind of) MkDocs compatibility, there will be fewer reasons to stay on MkDocs instead of migrating to the new project.

irskep - 21 hours ago

I'm really excited by this development! Material for MkDocs has raised the quality level of so many projects' docs, my own included, by making good navigation the default. It's by far my favorite system to browse as a reader, and use as a project maintainer.

I hope the new theme allows for more customization than the old Material theme. It was really hard to create a unique brand identity within the constraints of Material; it just wasn't built with customization in mind beyond a color. The "modern" theme looks minimal in a way that gives me some hope for this.

Looking forward to kicking the tires on Zensical!

samwillis - 17 hours ago

I'm really intrigued by the use of differential dataflow in a static site toolkit, but there isn't much in the way written about it. If anyone from the team are here I would love it if you could explain how it's being used? Does this enable fast incremental builds, only changing the parts that change in the input? If so how do you model that? Are you using multisets as a message format inside the engine?

For context, I work on TanStack DB which is a differential dataflow / DBSP inspired reactive client datastore. Super interested in your use case.

amterp - 6 hours ago

This looks great!

I'm currently using Material for MkDocs but was thinking of switching off it, in part due to the lack of options around having custom highlighting in code blocks (my docs website is for a programming language I am working on). What are Zensical's plans here? Tree sitter highlighting would be perfect in my case.

fishgoesblub - a day ago

I was excited up until they showed what the new theme looks like. mkdocs-Material was nice in that it didn't have overly rounded corners and over travesties, a shame that custom CSS will be needed to undo the "modernisation". Overall this seems very interesting, especially the performance improvements, just a letdown visually.

adastra22 - 8 hours ago

How mature is this right now? I am just now starting a new greenfield project and might have gone with MkDocs. Should I do Zensical instead? Or would it be better to use Material for MkDocs while the bugs are being worked out, and trust in the upgrade path?

evilmonkey19 - 17 hours ago

I really like this new approach and I will give it a go on some open-source projects I have. Btw, I have looked into Zensical Spark but I did not fully understand what is it? It is just for connecting with the team so you help other teams to set it up and help them with feature requests and training?

parser_error - 11 hours ago

This looks very interesting, I'm using mkdocs+material for one site (and it's great) but trying to find a good solution for more complex docs.

Is there anything planned like 11ty's data files[1]? For example, I can pass it a JSON file, or a TOML file, and have it generate one HTML page per document in that file using their pagination system in a hacky way, and add those pages to collections for grouping in navigation and such using their templating language. This makes it a lot easier to autogenerate documentation from a combination of sources (since anything we want can emit some appropriate JSON/TOML) without having a real "source document". It's hard to tell at a glance if this is something that would be possible with the upcoming module system.

[1]: https://www.11ty.dev/docs/data-global/

bryanhogan - 21 hours ago

Interested to look into this more, but Astro Starlight[1] has been by far the best in recent times. Only Vitepress comes close.

[1]: https://starlight.astro.build/getting-started/

aerzen - 18 hours ago

Why are some files obfuscated in the ui repo? It looks like compiled typescript has been included without the original source.

A gated feature? Malicious intent?

f2hex - 9 hours ago

I would be interested to know why the radical change to move the configuration file from YAML to TOML. Is there any good reason for that change?

runningmike - 17 hours ago

The new modern static site generator and best for now seems to be Jupyter Book 2 - https://jupyterbook.org/stable/

Launched last week and build upon MyST engine. Makes Shphinx obsolete. Like to see a real comparison with Zensical.

sureglymop - 14 hours ago

Can I also use it to write blog posts and generate an RSS feed for them?

A lot of documentation sites want this but it was always hard with things like sphinx where the input must be files on disk so one couldn't e.g. load blog posts from a db.

laserbeam - 19 hours ago

Unfortunately, I require PDF outputs for some of my documentation. Right now this is possible via some plugins (I cannot remember which fork of a pdf export plugin worked, but at least one does) in Material for MkDocs. It’s not perfect, but it is good enough.

Should I expect a “good enough” pdf export experience in zensical at some point or now?

esafak - a day ago

https://github.com/zensical/zensical

eviks - 20 hours ago

the featured search engine is not typo-resistant, so unfortunately loses to google again, a bane of many sites. Wish search baseline finally caught up to the fact that humans can't type perfectly... (hopefully that's just because it's new and fresh, though)

thisisharsh7 - 19 hours ago

Hi, congrats on Zensical release. Want to ask is there any community space where people discuss ideas or what's being built?

if not I'd be happy to help get something started for folks who want to learn and contribute.

aryonoco - 3 hours ago

About 12 months ago I was looking for a SSG for our documentation website and after trying many different options settled on Material for MKDocs. I had a list of criteria such as Mermaid.js and PlantUML support which no other option easily supported, but Material for MkDocs had a plugin for everything.

Since adopting it, I’ve also grown fond of Mike, the plugin which lets users see the various different versions of a doc (without needing to resort to git).

But I’ve also experienced plenty of pain points when pushing the customisation envelop. Weird bugs appeared in many places which were clearly due to MKDocs’s poor architecture and performance was also never stellar.

Congratulations on launching Zeniscal and I’m quite excited to see the future of it, but I do very much hope that in 12 months time, one way or the other, I’m able to still have similar functionality to what the plugins provide.

portaouflop - 21 hours ago

I use docusaurus and am happy - any reason I should switch to this or does it make more sense if you have a greenfield use case?

I don’t really care how long it takes to build as long as it’s not minutes. Also don’t care about “modern” look whatever that means really. And I have lots of custom components that (I assume?) would be hard to migrate

Thev00d00 - 21 hours ago

Bold to move away from both of the things that contributed to their success initially (mkdocs, material design) at once.

xixixao - 18 hours ago

Documentation tooling for Python (especially reference docs) is… abysmal. Sphinx is the king, with no markdown support. Pdoc would be nice, it the authors didn’t reject reasonable additions, leading to forks. And mkdocs is not simple to setup. If you’re building a company for this, please fix this.

tamimio - 18 hours ago

It looks interesting, might give it a try. I currently use Zola and it’s been great so far.

mberning - 20 hours ago

The biggest issue I had with material for mkdocs was training BA type people to contribute. They had to muddle their way through python, pip, git, github, etc. just to make a one line change.