I made a customawesome_title_tag
view helper function because I wanted to support both controller views and live views.
View
Inlib/mnishiguchi_web/views/layout_view.ex
defmoduleMnishiguchiWeb.LayoutViewdouseMnishiguchiWeb,:view@site_name"Mnishiguchi"defsite_name(),do:@site_namedefawesome_title_tag(conn,assigns)dolive_title_tag(page_title(conn,assigns)||@site_name,suffix:" ·#{@site_name}")end# live viewdefppage_title(_conn,%{page_title:page_title}=_assigns)dopage_titleend# controller viewdefppage_title(conn,assigns)doiffunction_exported?(view_module(conn),:page_title,2)doview_module(conn).page_title(view_template(conn),assigns)else@site_nameendendend
Template
In/lib/mnishiguchi_web/templates/layout/root.html.leex
<meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <%= csrf_meta_tag() %>- <%= live_title_tag assigns[:page_title] || "Home", suffix: " · Masatoshi Nishiguchi" %>+ <%= awesome_title_tag(@conn, assigns) %>
Resources
Because of breaking changes between Phoenix 1.4 and 1.5, many examples out there did not work with Phoenix 1.5.
Here are some resources I referenced:
- Page title via live view route that’s compatible with existing code in regular views?
- @view_template meaning changed in phoenix 1.5
- Phoenix Live View 0.10.0 Backwards incompatible changes
That's it.
Top comments(0)
Subscribe
For further actions, you may consider blocking this person and/orreporting abuse