summaryrefslogtreecommitdiff
path: root/lain/util/markup.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lain/util/markup.lua')
-rw-r--r--lain/util/markup.lua69
1 files changed, 69 insertions, 0 deletions
diff --git a/lain/util/markup.lua b/lain/util/markup.lua
new file mode 100644
index 0000000..d367bca
--- /dev/null
+++ b/lain/util/markup.lua
@@ -0,0 +1,69 @@
+
+--[[
+
+ Licensed under MIT License
+ * (c) 2013, Luke Bonham
+ * (c) 2009, Uli Schlachter
+ * (c) 2009, Majic
+
+--]]
+
+local beautiful = require("beautiful")
+local tostring = tostring
+local setmetatable = setmetatable
+
+-- Lain markup util submodule
+-- lain.util.markup
+local markup = {}
+
+local fg = {}
+local bg = {}
+
+-- Convenience tags.
+function markup.bold(text) return '<b>' .. tostring(text) .. '</b>' end
+function markup.italic(text) return '<i>' .. tostring(text) .. '</i>' end
+function markup.strike(text) return '<s>' .. tostring(text) .. '</s>' end
+function markup.underline(text) return '<u>' .. tostring(text) .. '</u>' end
+function markup.monospace(text) return '<tt>' .. tostring(text) .. '</tt>' end
+function markup.big(text) return '<big>' .. tostring(text) .. '</big>' end
+function markup.small(text) return '<small>' .. tostring(text) .. '</small>' end
+
+-- Set the font.
+function markup.font(font, text)
+ return '<span font="' .. tostring(font) .. '">' .. tostring(text) ..'</span>'
+end
+
+-- Set the foreground.
+function fg.color(color, text)
+ return '<span foreground="' .. tostring(color) .. '">' .. tostring(text) .. '</span>'
+end
+
+-- Set the background.
+function bg.color(color, text)
+ return '<span background="' .. tostring(color) .. '">' .. tostring(text) .. '</span>'
+end
+
+-- Context: focus
+function fg.focus(text) return fg.color(beautiful.fg_focus, text) end
+function bg.focus(text) return bg.color(beautiful.bg_focus, text) end
+function markup.focus(text) return bg.focus(fg.focus(text)) end
+
+-- Context: normal
+function fg.normal(text) return fg.color(beautiful.fg_normal, text) end
+function bg.normal(text) return bg.color(beautiful.bg_normal, text) end
+function markup.normal(text) return bg.normal(fg.normal(text)) end
+
+-- Context: urgent
+function fg.urgent(text) return fg.color(beautiful.fg_urgent, text) end
+function bg.urgent(text) return bg.color(beautiful.bg_urgent, text) end
+function markup.urgent(text) return bg.urgent(fg.urgent(text)) end
+
+markup.fg = fg
+markup.bg = bg
+
+-- 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 })