X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/6cce5b6fe11fe8c69b08140d645c604fef59e42a..012c6b6215d2b3aad14778e8f55c511e32960c3b:/util/markup.lua?ds=inline diff --git a/util/markup.lua b/util/markup.lua index 0fc6ef6..63f9486 100644 --- a/util/markup.lua +++ b/util/markup.lua @@ -1,53 +1,66 @@ - --[[ - - Licensed under MIT License - * (c) 2013, Luke Bonham - * (c) 2009, Uli Schlachter - * (c) 2009, Majic - + + Licensed under MIT License + * (c) 2013, Luca CPZ + * (c) 2009, Uli Schlachter + * (c) 2009, Majic + --]] -local string = { format = string.format } +local format = string.format local setmetatable = setmetatable -- Lain markup util submodule -- lain.util.markup -local markup = {} - --- Convenience tags. -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 - --- Set the font. +local markup = { fg = {}, bg = {} } + +-- Convenience tags +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 + +-- Set the font function markup.font(font, text) - return '<span font="' .. font .. '">' .. text ..'</span>' + return format("<span font='%s'>%s</span>", font, text) end --- Set the foreground. -function markup.fgcolor(color, text) - return '<span foreground="' .. color .. '">' .. text .. '</span>' +-- Set the foreground +function markup.fg.color(color, text) + return format("<span foreground='%s'>%s</span>", color, text) end --- Set the background. -function markup.bgcolor(color, text) - return '<span background="' .. color .. '">' .. text .. '</span>' +-- Set the background +function markup.bg.color(color, text) + return format("<span background='%s'>%s</span>", color, text) end --- Set foreground and background. +-- Set foreground and background function markup.color(fg, bg, text) - return string.format('<span foreground="%s" background="%s">%s</span>', fg, bg, text) + return format("<span foreground='%s' background='%s'>%s</span>", fg, bg, text) end --- Set font, foreground and background. +-- Set font and foreground +function markup.fontfg(font, fg, text) + return format("<span font='%s' foreground='%s'>%s</span>", font, fg, text) +end + +-- Set font and background +function markup.fontbg(font, bg, text) + return format("<span font='%s' background='%s'>%s</span>", font, bg, text) +end + +-- 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) + return format("<span font='%s' foreground='%s' background='%s'>%s</span>", font, fg, bg, text) end +-- 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 }) + -- link markup(...) calls to markup.fg.color(...) return setmetatable(markup, { __call = function(_, ...) return markup.fg.color(...) end })