emil0r / reverie

77 stars 8 forks source link

theming (?) #21

Open emil0r opened 8 years ago

emil0r commented 8 years ago

Open ended enhancement, hence the question.

While hiccup is pretty awesome, it also complects output with how things are done unless strict discipline is undertaken. Enlive enforces a strict decoupling of how input is calculated and how it is presented, but is in some ways more cumbersome to work with than hiccup. Neither offers an easy path for theming, especially as reverie can be extended to use any type of rendering.

Quick'n'dirty would be to able to override functions for rendering (supported before the rewrite), but experience tells me it becomes a heavy burden for anything that is even remotely inherently complex.

Is it possible to have theming?

jmfirth commented 8 years ago

I took this question to mean themes for the CMS rather than content created by it, so apologies if my assumption is off base.

There are tons of Bootstrap themes out there and swapping them would be trivial to do. How good of an overall solution this might be would depend greatly on your willingness to leverage Bootstrap for just about all of your decorative styles.

These are a nice set: https://bootswatch.com/ Information on how to include them in your LESS pipeline (Customize section): https://bootswatch.com/help/

emil0r commented 8 years ago

Both really.

Yes, you can have basic theming support where you write your code in accordance with the styling offered by the theme. Have a bunch of themes that are done the same way and you can now switch between them. I'm more interested in finding a way where I can pick any theme from the multitude of themes that are out there, any app/object/module written by someone else and easily adjust them to the theme. This would include being able to adjust the HTML being put out.

There's also the compiled nature of Clojure to take into account. I'm not sure how feasible it would be to support theming on the web master level, where I could switch between themes with the click of a button. Probably doable, but is it worth it?

Food for thought and I apologize if I appear to be rambling. This is more of a brain dump than a structured argument.