Packages
literature
0.4.21
0.5.1
0.5.0
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
retired
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.32
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
A simple CMS / Blog
Current section
Files
Jump to
Current section
Files
lib/literature/views/layout_view.ex
defmodule Literature.LayoutView do
@moduledoc false
use Literature.Web, :view
use Phoenix.Component
import Literature.LayoutComponent
import Literature.MetaTagHelpers
alias Literature.AssetHelpers
alias Literature.Config
defp application_favicon_path(conn_or_socket, view_module) do
if function_exported?(view_module, :favicon_path, 1) do
view_module.favicon_path(conn_or_socket)
else
asset_path(conn_or_socket, "favicon/favicon.ico")
end
end
defp application_rss_path(conn_or_socket, view_module) do
if function_exported?(view_module, :rss_path, 1) do
view_module.rss_path(conn_or_socket)
else
literature_path(conn_or_socket, :rss)
end
end
defp application_css_path(conn_or_socket, view_module) do
if function_exported?(view_module, :css_path, 1) do
view_module.css_path(conn_or_socket)
else
asset_path(conn_or_socket, "css/app.css")
end
end
defp application_js_path(conn_or_socket, view_module) do
if function_exported?(view_module, :js_path, 1) do
view_module.js_path(conn_or_socket)
else
asset_path(conn_or_socket, "js/app.js")
end
end
def asset_path(conn_or_socket, asset) when asset in [:css, :js] do
hash = Literature.Assets.current_hash(asset)
literature_dashboard_path(conn_or_socket, asset, hash)
end
def asset_path(conn_or_socket, path) do
literature_path(conn_or_socket, :index) <> "/assets/" <> asset_file_name(path, Config.env())
end
@manifest_path Path.expand("static/cache_manifest.json", :code.priv_dir(:literature))
@external_resource @manifest_path
@manifest AssetHelpers.parse_manifest(@manifest_path, Config.env())
defp asset_file_name(asset, :prod) do
if String.ends_with?(asset, [".js", ".css"]) do
@manifest |> AssetHelpers.asset_file_name(asset, :prod)
else
asset
end
end
defp asset_file_name(path, _env), do: path
end