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}
}
|