I was looking around for a static site generator (SSG) to write a blog with, and I noticed that Franklin.jl seems to be unmaintained right now, as the last commit was over a year ago.
Are there any actively maintained SSG’s written in Julia that are like Franklin?
I really like the idea of using a fully-featured programming language (especially one like Julia) inside of an SSG. The ability to write TeX commands with julia, call them from my document, and see their output rendered as markdown/KaTeX/HTML is incredibly powerful, and something I haven’t seen in an SSG before.
Franklin’s maintainership status is concerning though, especially given that it’s in so many places across our ecosystem (even the front page of julialang.org is using it).
If I pick Franklin for my own use, I would also like to be able to extend it and contribute a few features. For example, I would like to add evaluation of code blocks that are written in other languages (like C/C++ or bash). If I were to do that though, I’m not sure I would be able to get it merged, or even ask questions about how to approach it.
Has there been some kind of a status update from the Franklin maintainers that I’m not aware of? Either that, or is there another SSG (written in julia or not) that supports similar features to what I described above?
It’s true that the status of Franklin has been dormant for a while, I just haven’t had the opportunity to dedicate much time to it. The status is:
Franklin as it is now will remain in its state with the occasional bugfix & dependency updates if necessary, I’d encourage everyone who is actively using Franklin and doesn’t need much else to pin the package
There’s a pretty much complete refactor of Franklin available as a beta package: Xranklin.jl, the intention was (and still is) to make that the next big release of Franklin (and ultimatley 1.0), then life got in the way and I never quite got to that, a bunch of people have been using Xranklin for a while though (the main thing that’s missing is docs)
I haven’t given up on Franklin, just need to be pragmatic about how much time I’ll be able to dedicate to it in the future and work on it accordingly. In terms of functionality what’s in Xranklin is what I ultimately wanted to do, I’d just like to complete the docs and there’s the inevitable sanding needed for packages that haven’t seen a lot of use.
Contributors / co-maintainers are still very welcome
One thing I likely won’t really be able to do is actively develop new templates. It may be that this is easier done with LLMs these days, I haven’t tried yet.
I hope this clarifies the Franklin bit of the question. Also the extension bit would definitely better be done in Xranklin and I’d be happy to help you there if you’d like help to bring about what you have in mind.
To be fair though, that’s probably the only website that uses Bonito for static site generation.
The good thing though is, that e.g. markdown rendering support is getting improved for the Makie blog and interactive usage for Bonito Apps. E.g. I just recently added Latex support. Also, you’ll get the best WGLMakie support
For the Makie blog I also improved the rendering to not run cells again, and added some tools to generate an RSS feed.
The general approach is, that it doesn’t really use any templating and such things, but instead lets you run/hide julia blocks inside the markdown, which generates Bonito DOM objects, that you can combine with other DOM objects and style however you like
Since it’s quite modular, It’s more geared towards people creating widgets and styles independently which can be shared - but that ecosystem doesn’t really exist yet
Feel free to ask me anything though, would be cool if Bonito got more usage for static sites
I’d certainly be happy to, maybe it could be hosted in JuliaDocs, that’s already where I moved LiveServer.jl a while back after @fredrikekre 's gentle nudging. I don’t precisely remember the steps so if folks are happy for me to move it over there and someone can remind me how to do it, I can get that done
I appreciate you taking the time to write such a thorough response. I’m glad to hear that you haven’t forgotten the project, even if you have other priorities now. Life takes over sometimes and that’s just how it is!
It’s good to hear that Xranklin (“Cranklin?” ) is a recommended way to go, at least for development right now. I’ll run it for a bit and see what I can do to extend it how I need. I’m glad to know you’re still around chat spaces, so I’ll definitely send you a message if I’m not sure about anything.
About making templates - honestly, templates are cool, but if you have an architecture that makes it super easy to make your own stuff, I’d say that’s almost better than having more templates. Especially since you’ve already put together quite a few really nice ones! If enough “maker people” are using the project, more templates will be made for it without you having to lift a finger. Making Franklin part of a GitHub organization like @giordano suggested would probably help with that too, since people could make themes in other repos without adding more maintenance burden to yourself. Maybe a “Franklin.jl Themes” organization would make sense to have too. I found a list of steps [1] on the GitHub docs website that you can follow to transfer the repository if you’re still interested in doing this.
I also want to say, seriously, thank you for all the work you’ve done to bring Franklin where it is today. Over a few years of wanting to start using an SSG, I hadn’t found one with the capabilities I wanted until I saw the code tricks [2] section of the Franklin docs. No SSG I’ve seen feels as flexible or empowering as what you’ve built with Franklin. Thank you for the time and effort you’ve put into making it!
–
(references, since I do not have link permissions yet)
[1] https:// docs github com/en/repositories/creating-and-managing-repositories/transferring-a-repository#transferring-a-repository-owned-by-your-personal-account
[2] https:// franklinjl org/code/eval-tricks/
Thanks @giordano this is now done; I also did a bit of spring cleaning around the repos & github action scripts but help is welcome to chase and fix dead links (I think I need to revisit some of the github pages setup a bit later once the registry PRs have been merged).