-
Notifications
You must be signed in to change notification settings - Fork 102
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
RFC Reusable themes #301
Comments
Do we expect our users to have a single theme for their entire site? If they will have multiple themes, would it be per collection (pages, posts etc)? And/or will they want multiple themes within one collection particularly pages. Design impact: Either we have
|
#328 took care of the breaking changes in this. |
What about some overloading mechanism? A global theme, and possibility to override per collection and/or per page? |
And we should support Jekyll's theme out of the box, so we'll get the existing huge repository. Gutenberg has so many themes thanks to Hugo's. EDIT: or enhance the Jekyll conversion to convert themes as well |
Yes, we should support a global theme and allow it to be overridden per-collection. I'd like to avoid per-page unless there is a strong use case for it. This means the directory hierarchy would be
The challenge is in the differences between us on Jekyll. I agree about the conversion utility supporting themes. |
archetypes, and these are immensely useful in any non-trivial static site. |
Cobalt supports
layouts
)includes
, see Define semantics forinclude
directive #328)layouts
).The problem is this doesn't allow easily redistributed themes
Proposal
_theme/<name>
that contains_theme.yml
for theme metadatatheme.custom
variable)_layouts
files for page wrappers_includes
directory that is available fromtheme/
include path_data
directory that is available fromsite.theme.*
_sass
directory for importable sass documentspermalink
(default istheme/slug.ext
)layouts
folder for low-overhead themeslayouts
iftheme
is not present_cobalt.yml
configuration of themestheme: <slug>
for setting the default for every collectiontheme: <slug>
theme: <slug>
is actually short-hand fortheme: { "name": <slug>, "syntax-theme": <theme>, "data": <data>}
Prior Art
Jekyll
See https://jekyllrb.com/docs/themes/
Hugo
See https://gohugo.io/themes
_layouts
overridestheme
hugo new
, see archtypesThe text was updated successfully, but these errors were encountered: