Module:Alserv1
Apparence
La documentation de ce module est générée par le modèle {{Documentation module}}.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
--[[
Analyse des catégories temporelles.
Module adapté de:
https://en.wikipedia.org/wiki/Module:Year_category_type
avec les modifications suiventes:
- La fonction principale est nommée type() au lieu de main() pour permettre
une extension aisée avec de nouvelles fonctions.
- Une nouvelle fonction typede() analyse son argument au lieu du titre de
la page courante, pour faciliter les tests.
- L'analyse du titre et la valeur retournée sont traduites en français.
]]
local p = {}
--[[
Types de pages.
Cette table supporte l'analyse du titre d'une page.
Clé: le type de la page
Valeur: le pattern correspondant à ce titre
]]
local types = {
-- 1363
annee = "^%d*$",
-- 970 av. J.-C.
annee_avant = "^%d* av%. J%.%-C%.$",
-- Années 1360
decennie = "^Années %d*0$",
-- Années 970 av. J.-C.
decennie_avant = "^Années %d*0 av%. J%.%-C%.$",
-- XIVe siècle
siecle = "^[IVXLCDM]+er? siècle$",
-- Xe siècle av. J.-C.
siecle_avant = "^[IVXLCDM]+er? siècle av%. J%.%-C%.$",
-- IIe millénaire
millenaire = "^[IVXLCDM]+er? millénaire$",
-- Ier millénaire av. J.-C.
millenaire_avant = "^[IVXLCDM]+er? millénaire av%. J%.%-C%.$",
}
--[[
Retourne le type du titre d'une page.
Argument: titre à analyser
Résultat: une des valeurs suivantes:
annee, annee_avant, decennie, decennie_avant, siecle,
siecle_avant, millenaire, millenaire_avant, inconnu
Un simple string.match() serait suffisant, mais il est préférable d'utiliser
mw.ustring.match() pour se prémunir au cas où une modification ultérieure
introduirait des catégories unicode dans les patterns.
]]
local function type (chaine)
for unit, pattern in pairs(types) do
if mw.ustring.match(chaine, pattern) then
return unit
end
end
return "inconnu"
end
--[[
Retourne le type du titre passé en argument.
Argument: titre de la page
Résultat: une des valeurs suivantes:
annee, annee_avant, decennie, decennie_avant, siecle,
siecle_avant, millenaire, millenaire_avant, inconnu
Cette fonction est utile pour faire des tests sans devoir créer des pages
de test avec des titres particuliers.
]]
function p.typede (frame)
return type(frame.args[1])
end
--[[
Retourne le type du titre de la page courante.
Argument: aucun
Résultat: une des valeurs suivantes:
annee, annee_avant, decennie, decennie_avant, siecle,
siecle_avant, millenaire, millenaire_avant, inconnu
]]
function p.type (frame)
return type(mw.title.getCurrentTitle().text)
end
return p