2013-09-07 12:06:42 +02:00
|
|
|
--[[
|
2017-09-04 12:43:00 +02:00
|
|
|
|
|
|
|
Licensed under MIT License
|
|
|
|
* (c) 2013, Luke Bonham
|
|
|
|
* (c) 2009, Uli Schlachter
|
|
|
|
* (c) 2009, Majic
|
|
|
|
|
2013-09-07 12:06:42 +02:00
|
|
|
--]]
|
|
|
|
|
2017-01-22 01:15:57 +01:00
|
|
|
local string = { format = string.format }
|
2013-09-07 12:06:42 +02:00
|
|
|
local setmetatable = setmetatable
|
|
|
|
|
|
|
|
-- Lain markup util submodule
|
|
|
|
-- lain.util.markup
|
2017-01-22 01:27:24 +01:00
|
|
|
local markup = { fg = {}, bg = {} }
|
2013-09-07 12:06:42 +02:00
|
|
|
|
|
|
|
-- Convenience tags.
|
2017-01-22 01:15:57 +01:00
|
|
|
function markup.bold(text) return '<b>' .. text .. '</b>' end
|
|
|
|
function markup.italic(text) return '<i>' .. text .. '</i>' end
|
|
|
|
function markup.strike(text) return '<s>' .. text .. '</s>' end
|
|
|
|
function markup.underline(text) return '<u>' .. text .. '</u>' end
|
|
|
|
function markup.monospace(text) return '<tt>' .. text .. '</tt>' end
|
|
|
|
function markup.big(text) return '<big>' .. text .. '</big>' end
|
|
|
|
function markup.small(text) return '<small>' .. text .. '</small>' end
|
2013-09-07 12:06:42 +02:00
|
|
|
|
|
|
|
-- Set the font.
|
|
|
|
function markup.font(font, text)
|
2017-01-22 01:15:57 +01:00
|
|
|
return '<span font="' .. font .. '">' .. text ..'</span>'
|
2013-09-07 12:06:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set the foreground.
|
2017-01-22 01:27:24 +01:00
|
|
|
function markup.fg.color(color, text)
|
2017-01-22 01:15:57 +01:00
|
|
|
return '<span foreground="' .. color .. '">' .. text .. '</span>'
|
2013-09-07 12:06:42 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Set the background.
|
2017-01-22 01:27:24 +01:00
|
|
|
function markup.bg.color(color, text)
|
2017-01-22 01:15:57 +01:00
|
|
|
return '<span background="' .. color .. '">' .. text .. '</span>'
|
2013-09-07 12:06:42 +02:00
|
|
|
end
|
|
|
|
|
2017-01-22 01:15:57 +01:00
|
|
|
-- Set foreground and background.
|
|
|
|
function markup.color(fg, bg, text)
|
|
|
|
return string.format('<span foreground="%s" background="%s">%s</span>', fg, bg, text)
|
|
|
|
end
|
2013-09-07 12:06:42 +02:00
|
|
|
|
2017-01-28 23:35:27 +01:00
|
|
|
-- Set font and foreground.
|
|
|
|
function markup.fontfg(font, fg, text)
|
|
|
|
return string.format('<span font="%s" foreground="%s">%s</span>', font, fg, text)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Set font and background.
|
|
|
|
function markup.fontbg(font, bg, text)
|
|
|
|
return string.format('<span font="%s" background="%s">%s</span>', font, bg, text)
|
|
|
|
end
|
|
|
|
|
2017-01-22 01:15:57 +01:00
|
|
|
-- Set font, foreground and background.
|
|
|
|
function markup.fontcolor(font, fg, bg, text)
|
|
|
|
return string.format('<span font="%s" foreground="%s" background="%s">%s</span>', font, fg, bg, text)
|
|
|
|
end
|
2013-09-07 12:06:42 +02:00
|
|
|
|
2017-01-22 01:27:24 +01:00
|
|
|
-- link markup.{fg,bg}(...) calls to markup.{fg,bg}.color(...)
|
|
|
|
setmetatable(markup.fg, { __call = function(_, ...) return markup.fg.color(...) end })
|
|
|
|
setmetatable(markup.bg, { __call = function(_, ...) return markup.bg.color(...) end })
|
|
|
|
|
2013-09-07 12:06:42 +02:00
|
|
|
-- link markup(...) calls to markup.fg.color(...)
|
|
|
|
return setmetatable(markup, { __call = function(_, ...) return markup.fg.color(...) end })
|