local M = {}
M.__index = M
function M.site_builder(header, footer)
local config = {}
local site_config = {}
local fes_mod = package.loaded.fes
if fes_mod and fes_mod.config then
config = fes_mod.config
if config.site then
site_config = config.site
end
end
local self = {
version = site_config.version or "",
header = header or [[
]],
footer = footer or [[
]],
parts = {}
}
return setmetatable(self, M)
end
function M:custom(str)
table.insert(self.parts, str)
return self
end
function M:g(str)
self:custom(str)
return self
end
function M:h1(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:h2(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:h3(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:h4(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:h5(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:h6(str)
str = str or ""
self:custom("" .. str .. "
")
return self
end
function M:p(str)
str = str or ""
table.insert(self.parts, "" .. str .. "
")
return self
end
function M:note(content)
content = content or ""
self:custom('' .. content .. '
')
return self
end
function M:a(link, str)
str = str or ""
table.insert(self.parts, "" .. str .. "")
return self
end
function M:version()
return self.version
end
function M:build()
return self.header .. table.concat(self.parts) .. self.footer
end
M.__tostring = function(self)
return self:build()
end
return M