So rather than try to refactor Jekyll, it would probably be a better strategy to use my re-implementation as the basis for a Jekyll 4.0, I’d say it’s 95% feature compatible with Jekyll and only about 2,500 lines of code.
While writing it, I did want to reach out to the Jekyll maintainers to talk about this option, but it wasn’t clear to me how to actually get in touch with them (e.g. no jekyll-dev mailing list that I could find), and I didn’t want to open an issue about this.
Jekyll is also one of the most popular projects on GitHub, with more than 35,000 stars; it’s not hard to find: https://github.com/jekyll/jekyll
At one point I tried switching to Hugo. I ended up moving back because I liked Liquid more than Go templates, and I liked the Jekyll plugins and ecosystem.*
Later I became frustrated with some complicated Jekyll sites that took 20 seconds to generate, so I ported Liquid, Jekyll, and some of the plugins, to Go.† This ran about twenty times faster.††
So that's kind of an apples-to-apples performance comparison between Jekyll (in Ruby) and Jekyll-like (in Go).
These days all my sites are simple, and I think Jekyll may have gotten faster too, so I've moved back to the Ruby implementation.
---
* YMMV. Many people are very happy with Hugo. Moving back to Jekyll was just my personal journey, not something I can defend with facts or figures.
† To be honest, at least as important was that I was looking for a Go learning project.
†† Presumably because (1) Go is a compiled language, and (2) goroutines.
The theme selection is also weak in comparison. So all in all it is a complete non-starter.
Jekyll however I know will work and the number of themes to choose from is huge.
What many people, myself included, are missing is some code intelligence. Textmate might simply enable lots of language smartness by implementing the Language Server Spec https://langserver.org
So all of a sudden Textmate could offer autocompletion, refactoring, go to definition for many languages with minimal effort. The language servers are there the editor author only needs to implement the spec one time and it can work for so many languages.
What do you think about it?
Allan, your changes sound awesome but I srsly hope that it can get upstreamed to Jekyll in some way so the community won’t get divided by creating a popular second fork. The most valuable asset when it comes to Open Source software is imho the community around it.
I’d create a pull request and get discussion started this way.