Open anarcat opened 6 years ago
oh, and this would make debian packaging (#200) easier as well of course. :)
I am almost convinced about removing this manual minification for all themes, and doing this in a plugin. On issue for concatenation will be to know which files to concatenate, in which order, and how to modify the HTML template. Maybe not so easy to do properly...
if we don't do this in a plugin and instead minify (on the fly, when needed, but minify) then the HTML templates can still link to the minified files without requiring any changes... I don't really see why we would ship (in the built gallery) non-minified files, so I would say that this shouldn't be a plugin...
This is a followup to the conversation we had in https://github.com/saimn/sigal/pull/280#issuecomment-355091912 about how it was somewhat difficult to make changes to the theme, because a change need to be propagated around a lot:
Steps 3 to 4 are natural and easy: just call
sigal build
, no problem there. Between step 1 to 3 (jumping over 2 for now) is expected: this is a deployment issue and I can deal with that. What I find annoying (and it makes the deployment issue worse) is that sigal actually ships minified copies of Javascript and CSS code in the original source code.In #281 this was removed from photoswipe, but I think that could be extended to all themes, which should ship only non-minified version of the static assets. Then the build command could take care of minifying the code, maybe through a plugin like the compress asset plugin (proposed in #288) which could be extended to support minification (or just a standalone plugin).
Yes, this means an extra run-time dependency, but I don't think it's that big of a deal. Minifiers are fast, and that needs to be done only once: makefile-like timestamp checks can be used to avoid rebuilding unchanged files.
The new development process would be simpler:
We could even have galleries without any minification that would allow developing directly on the static assets, which would be even faster: no build, just edit the source. This could be bridged with web browser development consoles so that we would end up having a realtime development environment. Checking the files back into version control would then be simply a matter of copying them back when we're happy with the changes.