Join our Discord Server
Join the official community
           Join the Discord →
Human Rights
Support Human Rights
           Learn More →
Despera
Check out the Despera & Yotsuba Fan Project
           See Project →
Support Us
Support the wiki directly
About Page
Please check The Codex:About page to see what to do to help.
           See About page

Module:Tags

From The Codex
Jump to navigationJump to search


--- Shared module that converts <tag>s in certain areas into -- colored text or text with a specified font. -- @module tags -- @alias p -- @author KockaAdmiralac -- local p = {} -- Module dependencies. local data = mw.loadData('Module:Tags/data') -- Private logic. --- Replacer function for opening tags. -- @function replacer_open -- @param {string} tag Tag whose opening tag to replace -- @returns {string} Replacement text for the tag -- @local local function replacer_open(tag) if data.fonts[tag] then return table.concat({'<span data-font="', tag, '">'}) elseif data.colors[tag] then return table.concat({'<span data-color="', tag, '">'}) else return table.concat({'<', tag, '>'}) end end --- Replacer function for closing tags. -- @function replacer_close -- @param {string} tag Tag whose closing tag to replace -- @returns {string} Replacement text for the tag -- @local local function replacer_close(tag, text) if data.fonts[tag] or data.colors[tag] then return '</span>' else return table.concat({'</', tag, '>'}) end end --- Module's main function. -- Given a string of text, replaces all tags with text with appropriate fonts -- and colors. -- @function p.replace -- @param {string} text Text to replace -- @returns {string} Replacement text function p.replace(text) text = mw.ustring.gsub(text, '<(%w+)>', replacer_open) text = mw.ustring.gsub(text, '</(%w+)>', replacer_close) return text end return p --