File: relative_to_absolute.lua

package info (click to toggle)
apostrophe 3.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,408 kB
  • sloc: python: 5,733; xml: 226; sh: 66; javascript: 50; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 755 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
local base_path = "/"

function string.starts(String, Starts)
  any_start_with = false
  for i, Start in ipairs(Starts) do
    any_start_with = any_start_with or string.sub(String,1,string.len(Starts[i]))==Starts[i]
  end
  return any_start_with
end

function fix_path (path)
  if base_path == "/" or string.starts(path, {"/", "www.", "http", "file://", "#", "mailto:"}) then
    return path
  else
    return base_path .. "/" .. path
  end
end

function Meta(meta)
  base_path = tostring(meta.base_path or "/")
end

function Link (element)
  element.target = fix_path(element.target)
  return element
end

function Image (element)
  element.src = fix_path(element.src)
  return element
end

return {
  {Meta = Meta},
  {Link = Link},
  {Image = Image}
}