dsignr
Hi all,
I’m trying to design a new CMS using Elixir and was wondering about implementing a browsable catalog of themes that a use can just click and install - just like on Wordpress.
How would one go about this - since Elixir requires these to be compiled or in the very least would require a server restart, from my understanding.
To add to the complexity - Each theme would be unique, have a different set of variables (configurable on the CMS backend).
Currently, I have a subfoler where a user can place their theme and would need to specify the theme name in config.exs.
I thought of storing compiled HTML into the database from the themes themselves, with placeholders for variables to be injected. Eg. A compiled HTML for title would be
and then I could parse it on my backend with a HTML parser in Elixir and inject the actual value for the title. But, surely there’s gotta be a cleaner way?Any ideas are much appreciated as usual ![]()
Trending in Questions
Other Trending Topics
Latest Phoenix Threads
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #ai
- #elixirconf-us
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 5- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
moogle19
Hi.
I think you could just replace the static
:rootin:put_root_layoutwith a function, which fetches the layout dynamically, e.g:and then you need to define a matching render function handling the evaluation of the templete (for production you would probably just compile it once and call
Code.eval_quotedin the render function):When installing a new template, you then would need to download the theme file to some location and add a database entry containing the name and the path to the template file.
Not sure if that is the nicest way, but it should work.
dsignr
Thank you for your suggestion. It looks good!
dsignr
I know this is an old thread, but I eventually managed to take the Shopify route - Liquid template parser which Phoenix/Elixir has 100% support for.
victorbjorklund
Which package did you end up using for liquid templates? Saw that there are multiple libraries
dsignr
I used this one. GitHub - handlecommerce/liquex: Liquid template processor for Elixir · GitHub
To me the 100% compatibility with Liquid gem was kind of a requirement. The other alternative I considered was just exposing EEX/HEEX based templates to the developers, but I wasn’t sure of the security implications.