Module:Lalis
Jump to navigation
Jump to search
This module depends on the following other modules: |
Logic for {{Lalis}}.
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local lalisabr = require('Module:Lalisabr')._abbreviation
local lalislink = require('Module:Lalislink')._link
function p.lalis_format(frame)
local args = getArgs(frame)
local wikitext = args[1] or ""
local abr = mw.loadData('Module:Lalisabr/data')
local keys = {}
for index, value in ipairs(abr) do
keys[index] = value[1]
end
table.sort(keys, function (a, b) return #a > #b end)
for index, key in ipairs(keys) do
local k = "([ %(])" .. mw.ustring.gsub(key, "%.", "%%.")
wikitext = mw.ustring.gsub(wikitext, k, "%1" .. lalisabr({key}))
end
wikitext = "\n" .. wikitext
wikitext = mw.ustring.gsub(wikitext, "!!", "‖")
local multicol_break = frame:expandTemplate {title = "multicol-break", args = {}}
wikitext = mw.ustring.gsub(wikitext, "%-%-%-%-", multicol_break)
wikitext = mw.ustring.gsub(wikitext, "\n[^\n]*wst%-rule[^\n]*\n", "\n" .. multicol_break .. "\n")
wikitext = mw.ustring.gsub(wikitext, "%<<(.-)%>>", lalislink("%1"))
local function nowrap(text)
return frame:expandTemplate {title = "nowrap", args = {text}}
end
wikitext = mw.ustring.gsub(wikitext, "%(%-(%a+), %-(%a+), %-(%a+)%)", "(" .. nowrap("-<!---->%1") .. ", " .. nowrap("-<!---->%2") .. ", " .. nowrap("-<!---->%3") .. ")")
wikitext = mw.ustring.gsub(wikitext, " ([-–])(%a+)", " <b>" .. nowrap("%1%2") .. "</b>")
wikitext = mw.ustring.gsub(wikitext, "\n(%u%a-) %(", "\n<%1> (")
wikitext = mw.ustring.gsub(wikitext, "\n(%u[^\n]-),", "\n<%1>,")
local function anchor(text)
return frame:expandTemplate {title = "anchor+", args = {text}}
end
wikitext = mw.ustring.gsub(wikitext, "%<(%u.-)%>, %-(%a+)", "<b>" .. anchor("%1") .. "</b>, <b>-%2</b>")
wikitext = mw.ustring.gsub(wikitext, "%<(%u.-)%>", "<b>" .. anchor("%1") .. "</b>")
wikitext = mw.ustring.sub(wikitext, 2)
return frame:preprocess(wikitext)
end
return p