okkur / syna

Highly customizable open source theme for Hugo based static websites
https://syna.okkur.org/demo/
Apache License 2.0
250 stars 133 forks source link

Update subitems helper to fix multilingual issue #800

Closed mpourismaiel closed 4 years ago

mpourismaiel commented 4 years ago

What this PR does / why we need it: subitems helper didn't identify page resources correctly in multilingual websites. The problem appeared in not default language pages.

Which issue this PR fixes: fixes #799

Release note:

- Fix multilingual pages not showing subitems of fragments in non default language page
stp-ip commented 4 years ago

So what various ways of multilingual config work here? faq.<lang>.md + faq/column1.<lang>.md but not faq.<lang>.md + faq.<lang>/column1.md

Do we wanna be specific with each column having the language or the subdirectory? What do you think? Also needs better docs on how to do this or?

mpourismaiel commented 4 years ago

faq/index.<lang>.md + faq/column1.<lang>.md and faq.<lang>.md + faq.<lang>/column1.<lang>.md work. The best description I can come up with is that Hugo uses the language specific files in non default languages and assumes all other files and pages to be specific to the default language. In other words, user should create each page and resource for each language if they want that file or page to be available in that language. You can have pages for a language but not for the other and you can have pages for both languages, and the naming convention assumes pages without .<lang> to belong to the default language.

Definitely requires more documentation since I seem to forget this everytime I create multilingual websites.

Language directories are used for this very purpose but implementing them and not breaking most of our code is a challenge. I'll approach it some other time but can't think of a solution for it now.

stp-ip commented 4 years ago

Ok let's create an issue to get this documented.

Thanks for reminding me that the language directories is still on our radar, but not implemented.

lgtm