I have a project where I might be doing what you’re asking: rendering HTML from fragments of eex stored in JSON files.
Here is the code we’re using:
alias Phoenix.LiveView.Engine, as: LiveViewEngine
alias Phoenix.LiveView.HTMLEngine
def render_markup(markup) do
quoted_code = EEx.compile_string(markup, engine: HTMLEngine)
{evaluated, _} =
Code.eval_quoted(quoted_code, [assigns: []],
aliases: component_aliases(),
requires: [Kernel],
functions: [
{Phoenix.LiveView.Helpers, [live_component: 1, live_file_input: 2]}
]
)
LiveViewEngine.live_to_iodata(evaluated)
end
let me know if it’s helpful!


















