Module:Harvapbrouillon
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.
--Ce module 08/02/2024 a pour base le Module:Ref qui utilise 3 positionnels
--pour une référence du contenu en bas de page.
--Devient une référence de type Harvard 5 positionnels ancrant sur un ouvrage
--et 2 paramètres nommés pour le "nom" et le "groupe" index
--plus les paramètres nommés "loc" "page" "texte" "id" "ps"
local p = {}
--
local function _xist(objet) --Cette fonction transforme localement un objet composite "qui n'existe pas" nil & '' (taille 0) en valeur false d'objet pour Ref testable sans passer par pcall
if (tostring(objet) ~= nil and #tostring(objet) > 0 ) then return objet else return false end
end --fin _xist
--
local function _coulerr (objet) -- rouge
local objet ='<span style="color:#d00000;">' .. objet .. '</span>'
return objet
end --fin _coulerr
--
local function _trx (reftext, module_args)--Cette fonction fabrique la trace conditionnée par l'argument trace=oui
if _xist (module_args["trace"])
then -- tracage
trax = '<span style="color:#F08000;">'..reftext..' Rappel: ne pas mettre de = dans le code de paramètres positionnels. Utilisez {{=}} si besoin.'..'</span>'
else -- pas trace
trax = ''
end
return trax
end --fin _trx
--
local function _mef_balRef (module_args, nb_erreurs) -- Cette fonction met en forme les balises ref name group - /ref pour le preparseur
local clefauto = '°°0'
local renvoi = 'rien'
local affiche = 'rien à afficher'
-- intégrer les paramètres nommés utiles en structure
local textbleu = 'rien dans le textbleu'
local clename = 'rien dans le clename'
local clegroupe = 'rien dans le clegroupe'
local cleid = 'rien dans cleid'
-- intégrer les paramètres nommés utiles mise en forme du rbp
local formloc = 'rien dans formloc'
local formp = 'rien dans formp'
local formps = 'rien dans formps'
-- décoder les positionnels
-- if _xist(module_args[3])
-- then -- un auteur ou une date
-- if _xist(module_args[2]) -- un auteur ou une date
-- then -- un auteur ou une date
-- if _xist(module_args[1])
-- then -- un auteur
-- --renvoi = 'un auteur 1'
-- renvoi = '<ref group="'..module_args[2]..'" name="'..module_args[3]..'">'..module_args[1]..'</ref>'
-- else --
-- --renvoi = 'un group un name pas text 2'
-- renvoi = '<ref group="'..module_args[2]..'" name="'..module_args[3]..'"/>'
-- end
-- else -- pas name
-- if _xist(module_args[1])
-- then -- un text
-- --renvoi = 'un group pas name un text 3'
-- renvoi = '<ref group="'..module_args[2]..'">'..module_args[1]..'</ref>'
-- else -- pas text
-- --renvoi = 'un group pas name pas text 4'
-- renvoi = _coulerr ('ERREUR pas de texte pas de nom (mais un groupe) en paramètres positionnels ou bien un paramètre nommé ou bien un = dans le texte du renvoi. Utilisez {{=}} si besoin.')
-- nb_erreurs = nb_erreurs + 1
-- end
-- end
-- else -- pas group
-- if _xist(module_args[3])
-- then -- un name
-- if _xist(module_args[1])
-- then -- un text
-- --renvoi = 'pas group un name un text 5'
-- renvoi = '<ref name="'..module_args[3]..'">'..module_args[1]..'</ref>'
-- else -- pas text
-- --renvoi = 'pas group un name pas text 6'
-- renvoi = '<ref name="'..module_args[3]..'"/>'
-- end
-- else -- pas name
-- if _xist(module_args[1])
-- then -- un text
-- --renvoi = 'pas group pas name un text 7'
-- renvoi = '<ref>'..module_args[1]..'</ref>'
-- else -- pas text
-- --renvoi = 'pas group pas name pas text 8'
-- renvoi = _coulerr ('ERREUR pas de texte, pas de nom (et pas de groupe) en paramètres positionnels ou bien un paramètre nommé ou bien un = dans le texte du renvoi. Utilisez {{=}} si besoin.')
-- nb_erreurs = nb_erreurs + 1
-- end
-- end
-- end
--
-- return renvoi
end --fin _mef_balRef
function _verifsyntax(article_args, nb_erreurs, liste_erreurs) -- détecter les positionnels
-- if _xist(article_args["texte"] or article_args["text"]) then liste_erreurs=liste_erreurs..'<br>ERREUR argument nommé texte= ou text=;Remplacez ce modèle avec {{Note}}, avec {{Efn}}. Utilisez {{=}} si besoin.'
-- nb_erreurs = nb_erreurs + 1 end
-- if _xist(article_args["groupe"] or article_args["group"]) then liste_erreurs=liste_erreurs..'<br>ERREUR argument nommé groupe= ou group=;Remplacez ce modèle avec {{Note}}, avec {{Efn}}. Utilisez {{=}} si besoin.'
-- nb_erreurs = nb_erreurs + 1 end
-- if _xist(article_args["nom"] or article_args["name"]) then liste_erreurs= liste_erreurs..'<br>ERREUR argument nommé nom= ou name=;Remplacez ce modèle avec {{Note}}, avec {{Efn}}. Utilisez {{=}} si besoin.'
-- nb_erreurs = nb_erreurs + 1 end
-- return nb_erreurs, liste_erreurs
--end
--
-- Cette fonction est accès p.Ref_
--
function p.Ref_ (frame) --Cette fonction fabrique un renvoi en bas de page
-- (les définitions des zones de travail à portée p sont sous p{} )
-- en fait ce qui suit est la définition des variables pour toutes fonctions
local objet = '' --pour fonctions
local pbjet = ''
-- modele_args
local modele_args = frame.args
-- article_args
local article_args = frame:getParent().args
--
local clef = '°°0' --clé automatique inutilisée
--
local nom = '' -- mettre les args article d'abord
local groupe = '' -- mettre les args article d'abord
local reftext = '' -- le texte
local trax = '' -- la trace
local cat_erreurs = ''
local liste_erreurs = ''
local nb_erreurs = 0
-- détecter les positionnels
nb_erreurs, liste_erreurs = _verifsyntax(article_args, nb_erreurs, liste_erreurs)
-- préparer l'HTML
reftext = _mef_balRef(modele_args, nb_erreurs)
-- trace éventuelle - pour doc avec trace
trax = _trx(reftext, modele_args)
-- erreurs éventuelles
if (nb_erreurs > 0) then
if _xist(modele_args['__Cat']) then cat_erreurs = modele_args['__Cat'] end
liste_erreurs = "[["..cat_erreurs.."]]".._coulerr("<br> nb erreurs: "..nb_erreurs..liste_erreurs.."<br>")
renvoi = trax..liste_erreurs
else
-- le corps du rendu
renvoi = trax..frame:preprocess(reftext)
end
return renvoi
end --fin Ref_
return p
end