Packages
fermo
0.8.0
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/simple.ex
defmodule Fermo.Simple do
@moduledoc """
Transform non-localized files.
This module is the simplest case of tranformation:
it locates all SLIM files not handled by other modules
and adds them to the transformation queue.
"""
def add(config) do
exclude = Map.get(config, :exclude, []) ++ ["partials/*"]
exclude_matchers = Enum.map(exclude, fn (glob) ->
single = String.replace(glob, "?", ".")
multiple = String.replace(single, "*", ".*")
Regex.compile!(multiple)
end)
locales = config[:i18n]
default_locale = hd(locales)
templates = File.cd!("priv/source", fn ->
Path.wildcard("**/*.slim")
end)
Enum.reduce(templates, config, fn (template, config) ->
skip = Enum.any?(exclude_matchers, fn (exclude) ->
Regex.match?(exclude, template)
end)
if skip do
config
else
target = Fermo.template_to_target(template)
Fermo.add_page(config, template, target, %{}, %{locale: default_locale})
end
end)
end
end