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