Module:Nsm/Module
Documentation du Module:Nsm/Module : v · d · m · h.
Le module Nsm/Module, est un sous-module du module principal Nsm. Reportez vous à l’aide du modèle {{Nsm}}.
- Voir aussi
- Projet:Laboratoire/Espaces de noms/Minute technique
- Namespace monitor au Labo. d’idées MetaWiki
- toollabs:fr-wikiversity-ns
- Phab:diffusion/1906
local p = require("Module:Nsm/Lib") -- Bibliothèque NameSpace Monitor
local import = require("Module:Nsm/Table/828") -- Table espace de nom
local import_talk = require("Module:Nsm/Table/829") -- Table espace de discussion 1ère minucule ATTENTION
-- Variables globales
t_prop = import.t_prop -- ns properties
t_pages = import.t_pages -- ns pages table
talk_prop = import_talk.t_prop -- ns talk properties
talk_pages = import_talk.t_talkpages -- talk pages table
label = t_prop.label -- Label de l'espace de noms
talk_label = talk_prop.label -- Label espace discussion
lang = t_prop.lang -- Global
t_root = ns_root_only(t_pages)
t_sub = ns_subpages_only(t_pages)
r_pages = split_redir(t_pages, '-r') -- table des pages sans redirection
--[[
function p.doc(frame) -- p.doc( |avec |sans |is) La fonction utilise les valeurs is_doc, have_doc et own_doc collectées avec Python ; pour afficher la liste de pages, associée à celle des sous-pages documentation quand disponible. 'avec' filtre les pages documentées, 'sans' liste les pages sans docuemntation, 'is' affiche uniquement les documentations.
t = {} -- Table des résultats
col = {'page', 'own_doc'} -- Selection des colonnes
if frame.args[1] == nil then -- Par défaut retourne les pages (module/template)
for k, v in pairs(r_pages) do -- et documentation assosciée si disponible
if v.is_doc == nil then t[k] = r_pages[k] end end end
if frame.args[1] == 'sans' then -- Filtre les pages sans sous-page documentation
for k, v in pairs(r_pages) do -- n'est pas une doc et n'a pas de doc
if v.is_doc == nil and v.have_doc == nil then t[k] = r_pages[k] end end end
if frame.args[1] == 'avec' then -- Filtre les pages qui disposent d'une documentation
for k, v in pairs(r_pages) do -- sur la base du booléen have_doc
if v.have_doc == true then t[k] = r_pages[k] end end end
if frame.args[1] == 'is' then -- Filtre uniquement les documentations
for k, v in pairs(r_pages) do if v.is_doc == true then t[k] = r_pages[k]
col = {'page'} end end end -- Retourne la liste des pages Documentation
return st_print(t, col, '-i')
end
function p.documentation(frame)
local t_docd, t_undoc = {}, {} --tables vides
local r='' --DEBUG RESULT
local motif = '/Documentation' -- Améliorer et variable tipo global (dépend du site)
for k, v in pairs(r_pages) do -- itération table sans redirection
--r=r..'*'..v.page..'\n' -- DEBUG
local docd = false -- initialise le test à chaque tour
if v.nsep == 0 then -- traitement des pages racines
for ks, vsub in pairs(t_sub) do -- itération des sous-pages
if vsub.page == v.page..motif then -- comparaison des titres
docd = true -- Documentation OK
v.sub_doc = vsub.page -- Lien pour documentation
t_docd[k] = r_pages[k] -- copier dans t_docd
--r=r..'# '..v.page..' ; '..vsub.page..'\n' --DEBUG
end
end
if docd == false then t_undoc[k] = r_pages[k] end -- table des modèles non documentés
else
--r = r ..'*'..v.page..' ; '..'\n'
-- verifie absence du motif à la fin de la chaine -len(motif)
-- la sous-page est un modèles pas une documentation
if mw.ustring.find(v.page, motif, -mw.ustring.len(motif)) == nil then
--r=r..'MATCH' -- DEBUG
--sub fx chk_sub_doc()
for ks, vsub in pairs(t_sub) do -- itération des sous-pages
if vsub.page == v.page..motif then -- comparaison des titres
docd = true -- Documentation OK
v.sub_doc = vsub.page -- Lien pour documentation
t_docd[k] = r_pages[k] -- copier dans t_docd
r=r..'# '..v.page..' ; '..vsub.page..'\n'
end
end
-- modules sans sous-page /Documentation
if docd == false then t_undoc[k] = r_pages[k] end --copier dans t_undoc
end -- sub fx chk_sub_doc()
end
end
local col = {'page', 'sub_doc'}
if frame.args[1] == 'avec' then
t = t_docd
elseif frame.args[1] == 'sans' then
t = t_undoc
elseif frame.args[1] == nil then
t = t_docd
for k, v in pairs(t_undoc) do t[k] = t_undoc[k] end -- scinde les deux tables
end
return st_print(t, col, '-i') --r
end
]]--
return p