--[[
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 '' .. tostring(text) .. '' end
function markup.italic(text) return '' .. tostring(text) .. '' end
function markup.strike(text) return '' .. tostring(text) .. '' end
function markup.underline(text) return '' .. tostring(text) .. '' end
function markup.monospace(text) return '' .. tostring(text) .. '' end
function markup.big(text) return '' .. tostring(text) .. '' end
function markup.small(text) return '' .. tostring(text) .. '' end
-- Set the font.
function markup.font(font, text)
return '' .. tostring(text) ..''
end
-- Set the foreground.
function fg.color(color, text)
return '' .. tostring(text) .. ''
end
-- Set the background.
function bg.color(color, text)
return '' .. tostring(text) .. ''
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 })