La documentation pour ce module peut être créée à Module:types de mots/analyse/Documentation
-- Tests: ]
local m_bases = require("Module:bases")
local m_typesDeMots = require("Module:types de mots")
local p = {}
local TYPES = m_typesDeMots.types
--- @return table
local function getAliases()
local aliases = {}
for code, valeur in pairs(TYPES) do
if aliases == nil then
aliases = {}
end
table.insert(aliases, code)
end
return aliases
end
--- @param code1 string
--- @param code2 string
--- @return boolean
local function sortTypes(code1, code2)
return code1 < code2
end
--- @return string A wiki table that lists all defined word types and their data.
function p.showWordTypes()
local keySet = {}
local n = 0
for k, _ in pairs(TYPES) do
n = n + 1
keySet = k
end
table.sort(keySet, sortTypes)
local result = {
"Cette liste est générée automatiquement à partir de ].\n\nIl y a actuellement "
.. n .. " types de mots dans cette liste.\n\n"
.. "'''Ce sont les noms au singulier qui doivent être utilisés dans le modèle ]'''.\n"
}
table.insert(result, m_bases.tableau_entete({
"Code (ancre/abréviation)", "Nom singulier", "Nom pluriel",
"Locution singulier", "Locution pluriel", "Alias possibles"
}))
local aliases = getAliases()
for _, code in ipairs(keySet) do
local data = TYPES
local alias = aliases and aliases or {}
table.insert(alias, 1, "'''" .. code .. "'''")
local aliasesText = table.concat(alias, "<br>")
local values = {
data or "-",
data or "-",
m_bases.fait_categorie(m_bases.ucfirst(data), data, true) or "-",
data or "-",
m_bases.fait_categorie(m_bases.ucfirst(data), data, true) or "-",
aliasesText
}
table.insert(result, m_bases.tableau_ligne(values))
end
table.insert(result, m_bases.tableau_fin())
return table.concat(result, "\n")
end
--- @return string
function p.showPythonReplacements()
local resul = {}
table.insert(resul, "<pre>")
local aliases = getAliases()
for code, _ in pairs(TYPES) do
local alias = aliases and aliases or {}
if #alias > 0 then
local aliasesText = table.concat(alias, "|")
local replacements = '(r"\\{\\{S\\|(' .. aliasesText .. ')\\|", "{{S|' .. code .. '|"),'
table.insert(resul, replacements)
end
end
table.insert(resul, "</pre>")
return table.concat(resul, "\n")
end
return p