Open kadhonn opened 9 months ago
We should also think more about what kind of customizability we really need and want to support
yes, please let's define that and go from there
i had the idea, maybe we can make it customizeable by providing our own spring boot starter like in this article: https://www.codecentric.de/wissens-hub/blog/extending-spring-boot-five-steps-writing-spring-boot-starter
for what any why we want to make boudicca customizable:
To make it possible for others to host simple adaptations of Boudicca.
Two existing examples: 1) https://boudicca.events Our own site is actually an extension of the base boudicca html publisher. We extend it with the About Us and Impressum sites. 2) https://diabolical.boudicca events This not-quite-joke spinof changes a lot off css variables and adds a additional filter for events.
So currently we have 3 properties we want to extend/customize 1) Header links + actual sites 2) CSS 3) Additional filter
We need a way to make our applications extensible/customizable.
The most obvious example (but not the only one) is our html-publisher: we already do that by adding the "about us" page for example. But the way we do it right now is a bit... weird and should probably be changed.
I currently can think of the following solutions for this problem:
Detailed explanations for those points:
1) This is straightforward. Put everything in its own module and publish that. Our own html-publisher would just use t he library and wire everything together. Other people could basically clone this bare publisher and add their own classes
2) People do not modify the publisher but can extend it by dropping in their own .jar file. Has the positive effect that people can reuse our own published dockerfiles and just add the jar. Has the downside of being more tricky to test/run locally
3) I do not recommend this one. We currently depend on the finished springboot app, which causes a lot of weird things. You also need to redo the springboot-packaging yourself and the base project has to export all the springboot dependencies...
Currently I would favor 1) but I am open to suggestions