2022-12-24 20:58:57 +00:00
|
|
|
--[[
|
|
|
|
|
|
|
|
Licensed under MIT License
|
|
|
|
* (c) 2013, Luca CPZ
|
|
|
|
* (c) 2009, Uli Schlachter
|
|
|
|
* (c) 2009, Majic
|
|
|
|
|
|
|
|
--]]
|
|
|
|
|
|
|
|
local format = string.format
|
|
|
|
local setmetatable = setmetatable
|
|
|
|
|
|
|
|
-- Lain markup util submodule
|
|
|
|
-- lain.util.markup
|
|
|
|
local markup = { fg = {}, bg = {} }
|
|
|
|
|
|
|
|
-- Convenience tags
|
2023-01-25 19:10:58 +00:00
|
|
|
function markup.bold(text)
|
|
|
|
return format('<b>%s</b>', text)
|
|
|
|
end
|
|
|
|
function markup.italic(text)
|
|
|
|
return format('<i>%s</i>', text)
|
|
|
|
end
|
|
|
|
function markup.strike(text)
|
|
|
|
return format('<s>%s</s>', text)
|
|
|
|
end
|
|
|
|
function markup.underline(text)
|
|
|
|
return format('<u>%s</u>', text)
|
|
|
|
end
|
|
|
|
function markup.monospace(text)
|
|
|
|
return format('<tt>%s</tt>', text)
|
|
|
|
end
|
|
|
|
function markup.big(text)
|
|
|
|
return format('<big>%s</big>', text)
|
|
|
|
end
|
|
|
|
function markup.small(text)
|
|
|
|
return format('<small>%s</small>', text)
|
|
|
|
end
|
2022-12-24 20:58:57 +00:00
|
|
|
|
|
|
|
-- Set the font
|
|
|
|
function markup.font(font, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span font='%s'>%s</span>", font, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set the foreground
|
|
|
|
function markup.fg.color(color, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span foreground='%s'>%s</span>", color, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set the background
|
|
|
|
function markup.bg.color(color, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span background='%s'>%s</span>", color, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set foreground and background
|
|
|
|
function markup.color(fg, bg, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span foreground='%s' background='%s'>%s</span>", fg, bg, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set font and foreground
|
|
|
|
function markup.fontfg(font, fg, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span font='%s' foreground='%s'>%s</span>", font, fg, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set font and background
|
|
|
|
function markup.fontbg(font, bg, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span font='%s' background='%s'>%s</span>", font, bg, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set font, foreground and background
|
|
|
|
function markup.fontcolor(font, fg, bg, text)
|
2023-01-25 19:10:58 +00:00
|
|
|
return format("<span font='%s' foreground='%s' background='%s'>%s</span>", font, fg, bg, text)
|
2022-12-24 20:58:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- link markup.{fg,bg}(...) calls to markup.{fg,bg}.color(...)
|
2023-01-25 19:10:58 +00:00
|
|
|
setmetatable(markup.fg, {
|
|
|
|
__call = function(_, ...)
|
|
|
|
return markup.fg.color(...)
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
setmetatable(markup.bg, {
|
|
|
|
__call = function(_, ...)
|
|
|
|
return markup.bg.color(...)
|
|
|
|
end,
|
|
|
|
})
|
2022-12-24 20:58:57 +00:00
|
|
|
|
|
|
|
-- link markup(...) calls to markup.fg.color(...)
|
2023-01-25 19:10:58 +00:00
|
|
|
return setmetatable(markup, {
|
|
|
|
__call = function(_, ...)
|
|
|
|
return markup.fg.color(...)
|
|
|
|
end,
|
|
|
|
})
|