Dennis
Using template engine without Phoenix?
Disclaim: I am rather new to Elxiir and Phonix, though I do have some experience in other languages.
As far as I understand, a template engine, or its compile function, is something that takes a template and assigns, replaces some specially marked elements in the template, and returns a string. So theoretically this function can be used without Phoenix and its model-view-controller architecture. Unfortunately, I cannot seem to find any example of applying it this way. The documentation only says
compile(template_path :: binary, template_name :: binary) :: Macro.t
Can anybody give me an example of how to apply this function? I tried Phoenix.Template.EExEngine.compile('.', "a.eex"), but got the error message
(ArgumentError) template paths in Phoenix require the format extension, got: a.b
(phoenix_template 1.0.4) lib/phoenix/template/eex_engine.ex:19: Phoenix.Template.EExEngine.options_for/1
(phoenix_template 1.0.4) lib/phoenix/template/eex_engine.ex:9: Phoenix.Template.EExEngine.compile/2
iex:43: (file)
Most Liked
al2o3cr
IMO that particular boundary isn’t intended to be used separately - compile/2 is an interface for template engines to “plug into” Phoenix.Template.compile_all and similar functions, so there’s a lot of supporting code needed around it.
The underlying library, EEx has significantly better documentation and would be a better place to start.
Last Post!
D4no0
The last time i stole got inspired from phoenix embedded engine, it was straightforward. You can look at the source of ~H sigil here.
Since this sigil is html aware, I think it has more than just a eex under the hood. I would just copy the sigil code with those engines to avoid headaches. If you are just interested in a engine that just escapes html, look at older versions of phoenix, the old ones they used were simple.
Popular in Questions
Other popular topics
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
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









