Ok, it is really simple to generate SASS/SCSS with a working site, but how do you guys are generating these files for a theme?
The only way I can imagine to do that is:
- Build the exampleSite with my theme
- Copy the generated files to theme folder
- Commit & Profit
There is another option? Can I build these files without building a full site?
I have certainly thought about this.
What I would do, and note that this is not something I have any first-hand experience with, but it should work:
As themes now can (and should) provide default configuration via
config.toml I would treat the theme as a project. For this use case you probably do not need /content – generate a home page only would probably be Ok. So:
- Add config.toml with params, menus, media types etc. that are needed.
hugo from the theme folder (not the exampleSite) and commit the
i’m also using the
-d flags to build my assets.
in the root of
myTheme i can do these:
to build my
main scss assets, i run
hugo -b build
to build my
docs scss assets, i run
hugo -b build-docs
-d flags useful, if you want to output the files to specific folder like
hugo -b build -d static
you can see the basic concept of it on my repo here
The problem with this approach is that most themes have a
exampleSite/ with a
config.toml. So you have to run
exampleSite/ and commit
exampleSite/resources/. This is a lot of manual work to do for theme maintainer.
Do hugo look for resources in the theme resources directory?
I’ve noticed (and documented in another recent post) that you don’t need to run and commit the resources in the theme if you don’t want to, just instruct theme users to do this themselves.
assets from the theme “compile” nicely into the
resources folder for the site.
But this requires all users to install the extended version and every additional dependency like post-css and autoprefixer
Yes it does. I didn’t say that would work for everyone. But it may work for some. It works for me since I’m the only person using my theme!