--[[
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 = {}
--[[ clean this as soon as you document it
+-- markup
|
|`-- bold() Set bold.
|`-- italic() Set italicized text.
|`-- strike() Set strikethrough text.
|`-- underline() Set underlined text.
|`-- monospace() Set monospaced text.
|`-- big() Set bigger text.
|`-- small() Set smaller text.
|`-- font() Set the font of the text.
|
|`--+ bg
| |
| |`-- color() Set background color.
| |`-- focus() Set focus background color.
| |`-- normal() Set normal background color.
| `-- urgent() Set urgent background color.
|
|`--+ fg
| |
| |`-- color() Set foreground color.
| |`-- focus() Set focus foreground color.
| |`-- normal() Set normal foreground color.
| `-- urgent() Set urgent foreground color.
|
|`-- focus() Set both foreground and background focus colors.
|`-- normal() Set both foreground and background normal colors.
`-- urgent() Set both foreground and background urgent colors.
]]
-- 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 })