Module:User:Rua/langspan
Jump to navigation
Jump to search
- This module lacks a documentation subpage. You may create it.
- Useful links: root page • root page’s subpages • links • transclusions • testcases • user page • user talk page • userspace
This is a private module sandbox of Rua, for her own experimentation. Items in this module may be added and removed at Rua's discretion; do not rely on this module's stability.
local export = {}
local LangSpan = {}
LangSpan.__index = LangSpan
function export.new(text, lang, face, sc, tr)
self = setmetatable({ _text = text, _lang = lang, _face = face, _sc = sc, _tr = tr }, LangSpan)
-- Detect script
if not self._sc then
self._sc = require("Module:scripts").findBestScript(self._text, self._lang)
end
return self
end
-- Wrap text in the appropriate HTML tags with language and script class.
function LangSpan:show()
-- Add a script wrapper
if self._face == nil then
return '<span class="' .. self._sc:getCode() .. '" lang="' .. self._lang:getCode() .. '">' .. self._text .. '</span>'
elseif self._face == "term" then
return '<i class="' .. self._sc:getCode() .. ' mention" lang="' .. self._lang:getCode() .. '">' .. self._text .. '</i>'
elseif self._face == "head" then
return '<strong class="' .. self._sc:getCode() .. ' headword" lang="' .. self._lang:getCode() .. '">' .. self._text .. '</strong>'
elseif self._face == "bold" then
return '<b class="' .. self._sc:getCode() .. '" lang="' .. self._lang:getCode() .. '">' .. self._text .. '</b>'
else
error("Invalid script face \"" .. self._face .. "\".")
end
end
function LangSpan:getScript()
return self._sc
end
return export