You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.5 KiB
70 lines
2.5 KiB
9 years ago
|
|
||
|
--[[
|
||
|
|
||
|
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 })
|