Packages
fermo
0.6.2
0.20.1
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.4
0.2.2
0.2.1
0.2.0
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 static site generator
Current section
Files
Jump to
Current section
Files
lib/fermo/localizable.ex
defmodule Fermo.Localizable do
def add(config) do
locales = config[:i18n]
default_locale = if Map.has_key?(config, :default_locale) do
config[:default_locale]
else
hd(locales)
end
exclude = Map.get(config, :exclude, []) ++ ["localizable/*"]
config = put_in(config, [:exclude], exclude)
templates = File.cd!("priv/source", fn ->
Path.wildcard("**/*.slim")
end)
Enum.reduce(templates, config, fn (template, config) ->
if String.starts_with?(template, "localizable/") do
target = String.replace_prefix(template, "localizable/", "")
target = Fermo.template_to_target(target, as_index_html: true)
Enum.reduce(locales, config, fn (locale, config) ->
localized_target = if locale == default_locale do
"/#{target}"
else
"/#{locale}/#{target}"
end
Fermo.add_page(config, template, localized_target, %{}, %{locale: locale})
end)
else
config
end
end)
end
end