I have been reviewing Hugo themes to pick something for a non-blog site and it appeared to me that one can roughly classify all themes into the following categories:
- blog-like one (Ghostwriter) or the two (Hyde) column
- documentation themes (Alabaster)
- bootstrap-like with top horizontal menu
- landing page with centered elements (hello-friend)
- graphically intensive themes
- precursors (Paper, Classless)
Some themes (like kraiklyn) combine a few things.
These types kind of mix the structure/appearance and purpose, but they look like a viable way to classify themes and make a selection easier.
- do you think this classification may be enhanced? something that helps a newcomer to navigate through the themes?
- do you know any resources/charts that show some genealogy of the themes and their ports across platforms (Wordpress has thousands, Jekyll/Hugo just first hundreds)?
To answer this question, if you look at a theme’s
theme.toml file, if it is a port, then it’ll have these lines https://github.com/zwbetz-gh/cupper-hugo-theme/blob/master/theme.toml#L14-L17
Great clue! I guess it is an optional part in
theme.toml, but important one! I was thinking about parsing the repo of themes and making a dataset of theme properties, this should definitely be one of the features. Also thought following should be the features:
- root file listing of
- date last updated
- non-blank lines in
config.toml (proxy for theme complexity)
Perhaps there are some more useful parameters for the dataset.
Only a few themes on the Hugo website are allowed to use their own
Most theme demos inherit their content from the HugoBasicExample, also note that this repo is currently in the middle of refactoring.
We had to make this change in late January due to inappropriate content in theme demos.
exampleSite/content looks like a good way to adopt a theme - as the subfolders in it are not the same.
hugoBasicExample has a strong inclination towards blogs, not really good now for testing / showing capabilities of non-blog sites, eg documentation.
My count is that there 303 themes listed, 236 have
exampleSite\\content, but I do not know how to for sure distinguish proprietary from standard content.
We are not done yet.
By the end of the week I will add content for .product catalogues and portfolio websites.
There is already a
/homepage/ headless bundle meant for Single Page Applications.
For complicated theme submissions such as Documentation, digital books, presentations etc we have a White List option so that such themes have the demo they need.
We do not promote a specific type for themes.
The HugoBasicExample used to be the way theme demos were published on the Hugo website before the exampleSite feature was added. It did have a blog structure but now it is becoming more modular.
There will also be documentation regarding how theme authors can enable/disable different sections of the HugoBasicExample and use translations.
This is very much a work in progress
They are all under Open Source licenses so their content should be CC or covered by the theme license.
With that said it has come to my attention that theme authors can be careless with the photographs they use in their themes. For example I know that at least 2 themes are using photos that they shouldn’t due to copyright.
Also note that I am a volunteer as are @digitalcraftsman and @bep
We do not have the resources to really review each theme’s content before an update is pushed.
The enforcement of the HugoBasicExample fixes these issues at the expense of theme demos presentation (meaning that some of these existing 236 themes with a custom exampleSite now have content and menu items that throw 404s.
But these 404s are a small price to pay as the enforcement of the HugoBasicExample fixes some important issues.
Also you can see which themes are allowed to have their own content over here
Thanks for explainations and pointing to the themes code - from the comments one can really see many stories developping that needed your curation.
thank you guys, this is great work! (in progress )
FWIW, I have something like that, currently with the focus on filtering by tags, Hugo version, license, and github stars, sortable by date updated, stars, and name.