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