monero-project / monero-site

https://getmonero.org
BSD 3-Clause "New" or "Revised" License
273 stars 384 forks source link

Consider switching from Jekyll to Hugo #2140

Open erciccione opened 1 year ago

erciccione commented 1 year ago

Recently i updated the dependencies of getmonero (#2116) and as noted in the PR, there is a problem that we have to deal with: jekyll-multiple-languages-plugin which we are using to make the website multilingual has been in maintainance mode for years. It was always a bit of a problem, but now things are getting worse, as incompatibilities are starting to pop up which force us to lock some specific versions in the dependencies.

This is a problem that will only get worse and that could only be solved by somebody taking over the plugin and maintain it again. This hasn't happened yet and i feel it won't ever happen. The result could be that we will find ourselves unable to update to newer Jekyll versions or we could find ourselves stuck in a dependency hell.

I see only two solutions:

  1. We keep things as they are and we hope that the plugin will be kept in an usable state in the future
  2. We move away from Jekyll entirely

The second point would require a massive amount of work, but will also allow us to have some stability, increased performances and better and much less painful multilingual support from that moment on. In case we decide to go for two, here are some things to keep in consideration (assuming Hugo as the substitute):

PROS

CONS

So, what is people's opinion about this? I've been trying Hugo lately and was positively surprised. Beside that, switching from the Jekyll plugin is something that needs to be done sooner or later. We could look for another plugin and adapt our structure to that, but beside the pros and cons listed above, there is no assurance that we won't find ourselves in this situation again. Also, last time i checked (long ago) converting to another plugin would require a big amount of work anyway, so at that point...

Personally i think would be wise to switch, but this is a huge change that needs to be carefully considered. Would be great to gather as much feedback as possible.

plowsof commented 1 year ago

Having had some light experience with translations on -site - if what you say is true with regards to Hugos advantages in this area then i consider the switch vital to the future of the Monero project. (e,g, If existing guides can be edited easier)

There was also a push to move to a https://monerodocs.org/ style of guides (and others which i can't remember right now).

My domain expertise in this area is lacking but i'm available to provide effort where possible. Thank you for raising this issue.

MajesticBank commented 1 year ago

I have no previous experience with Jekyll or Hugo.

However Hugo does seem too new for site of scale as getmonero.org at this point.

https://github.com/kurtsson/jekyll-multiple-languages-plugin - Plugin we are currently using seems to be out of a date for year

But I see there is successor of that plugin - https://github.com/untra/polyglot on github says "Jekyll doesn't provide native support for multi-language blogs. This plugin was modeled after the jekyll-multiple-languages-plugin, whose implementation I liked, but execution I didn't."

It seems that above plugin is up to date and well maintained, I am not sure how much cross compatible and easy to apply in our scenario.

I would make sure we exhaust all options on current setup before switching to someone new because there might not be guarantee that will be alive in next year or two.

Maybe better to invite some of these people to open CCS funding to keep language plugin up to date if only language plugin is causing issues.

erciccione commented 1 year ago

because there might not be guarantee that will be alive in next year or two

I see this as much more probable with the fork of the jekyll plugin than with Hugo, a project with a team behind that has already been around for years, while the fork is a personal project that is currently not listed as raccomended from Jekyll. I wouldn't switch to the polyglot plugin.

plowsof commented 1 month ago

After noting some upcoming EOL ruby versions / issues with updating site in this comment here: https://github.com/monero-project/monero-site/pull/2237#issuecomment-2216812332

Starting in Ruby 3.2.0 the exists? (pluralized) alias for exist? seems to has been removed.

jekyll-multiple-languages-plugin contains one instance of exists? https://github.com/kurtsson/jekyll-multiple-languages-plugin

plowsof commented 1 month ago

we also can not use version 1.8.0 (stuck at 1.7.0) of jekyll-multiple-languages-plugin due to this error:

https://github.com/kurtsson/jekyll-multiple-languages-plugin/issues/201

plowsof commented 1 month ago

Another option is possibly moving to polygot like this project has done:

https://github.com/george-gca/multi-language-al-folio/pull/18