Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Theme standards and general user experience #3433

Closed
lebarde opened this issue May 4, 2017 · 3 comments
Closed

Theme standards and general user experience #3433

lebarde opened this issue May 4, 2017 · 3 comments
Labels

Comments

@lebarde
Copy link
Contributor

lebarde commented May 4, 2017

Hello,

@bep spoke of standardizing themes. I think this is a great idea and a must-have, but I have not seen a general discussion over that.

So what is to do?

  • Build a hugo get command to get a theme?
  • Wouldn't it be nice to have a general hugo get command with the following sub-commands:
hugo get theme github.com/the-theme-url
hugo get widget github.com/the-widget-url
hugo get what else?

or even better:

hugo get theme the-theme's-unique-identifyier # (e.g. material-docs)
hugo get widget the-widget's-unique-identifyier
hugo get what else?

which would be so nice. We also would need hugo update to update themes and widgets in this case.

  • Would we need to centralize themes and widgets? How to do it? Looking at the hugoThemes repository, I think themes are already centralized and that it is ready to use with a hugo get theme command, which needs to be written.
  • Now, what would be the standards for a theme? I assume we don't need more than the following files:
themes/
└── mytheme
    ├── config.toml
    └── index.html

And inside the config.toml (or config.yaml), the assertion to extend a theme would be:

extends: someother-theme
  • I often saw that I could not switch a theme without heavily modifying the main site's config file. So, should we specify and recommend standard config vars (especially, params) to ensure that a same site would work with all themes that follow those guidelines (to draw the parallel, I would like to recommend some specific widget area names for the same reasons)?

Sum up

In my opinion, the general goal we have to aim is to enable non-developers (or not-so power users) to use Hugo and get personnalized, pretty websites. This goes by:

  1. Switching themes should not be painful (user has to experiment several themes if he/she cannot develop his/her own). This would be enabled by standard config recommendations for theme developers.
  2. Modifying a theme should be easy. One modification, in the case of theme inheritance, would need only to create one directory, one config file with one line (extends: …), and one file that replaces that of the parent theme (He/she copies the original file in the child theme and modifies it). This is easy enough for not-so power users (but not true beginners, but diving into themes cannot be that accessible in my opinion).
  3. Adding information aside of the main content should be easy. This is where widgets come into play. Widget area names should be normalized, such as that another theme would probably use that same name for the same position (e.g. sidebars, headers, footers).

And you? What do you think we need to help make the Hugo experience even happier?

@bep
Copy link
Member

bep commented May 4, 2017

Although this is a good idea and something we will do eventually, your proposal is filled with questions (this issue tracker is (mostly) for actionable/concrete issues) better suited on a discussion forum, so I suggest you copy and paste this into a thread there.

@bep bep closed this as completed May 4, 2017
@lebarde
Copy link
Contributor Author

lebarde commented May 4, 2017

OK, no problem.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 20, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants