Packages
fermo
0.20.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/paths.ex
defmodule Fermo.Paths do
@source_path "priv/source"
@file_impl Application.compile_env(:fermo, :file_impl, File)
def filename_to_path(path, opts \\ [])
def filename_to_path(filename, as_index_html: true) do
cond do
filename == "index.html" ->
"/"
String.ends_with?(filename, "/index.html") ->
String.replace(filename, "index.html", "")
String.ends_with?(filename, ".html") ->
String.replace(filename, ".html", "")
true ->
filename
end
end
def filename_to_path(path, _opts), do: path
def path_to_filename(path, opts \\ [])
def path_to_filename(path, as_index_html: false), do: path
def path_to_filename(path, _opts) do
cond do
path == "index.html" ->
path
String.ends_with?(path, "/index.html") ->
path
String.ends_with?(path, "/") ->
path <> "index.html"
String.ends_with?(path, ".html") ->
String.replace(path, ".html", "/index.html")
true ->
path <> "/index.html"
end
end
def template_to_filename(template, opts) do
without_templating_extension = String.replace(template, ~r(\.[a-z]+$), "")
path_to_filename(without_templating_extension, opts)
end
def source_file_exists?(path) do
@source_path
|> Path.join(path)
|> @file_impl.exists?()
end
end