« Initiation au Lua avec Scribunto/L'objet Frame » : différence entre les versions

Contenu supprimé Contenu ajouté
Jpgibert (discussion | contributions)
m correction des niveaux de section
Jpgibert (discussion | contributions)
→‎frame:extensionTag : ajout description de la fonction
Ligne 313 :
 
=== frame:extensionTag ===
Cette fonction permet de poser un tag autour d'un texte. Un exemple type est le tag '''<nowiki>''' interdisant à l'interpréteur de page d'exécuter un contenu. Ainsi, si un contenu renvoyé par une fonction est susceptible d'être interprété comme un modèle, un lien ou autre, on peut utiliser la fonction '''frame:extensionTag()''' pour placer de manière automatique les balises '''<nowiki>'''.
{{...}}
 
Dans l’exemple suivant, on retourne le texte <nowiki>[[texte]]</nowiki> avec et sans l'utilisation de extensionTag.
 
<syntaxhighlight lang="lua">
local p = {}
 
function p.tag(frame)
local reponse = ""
reponse = frame:extensionTag('nowiki', '[[texte]]', {})
if reponse == nil then
return "Il y a un problème, la fonction a retourné : nil"
else
return "La fonction a retourné : "..reponse.." et son type est : "..type(reponse)
end
end
 
function p.notag(frame)
local reponse = ""
reponse = '[[texte]]'
if reponse == nil then
return "Il y a un problème, la fonction a retourné : nil"
else
return "La fonction a retourné : "..reponse.." et son type est : "..type(reponse)
end
end
 
return p
</syntaxhighlight>
 
Rendu avec extensionTag : '''<nowiki>{{#invoke:Frame|tag|3|Tulipe|7|janvier}}</nowiki>''' nous indique : {{#invoke:Frame|tag|3|Tulipe|7|janvier}}
 
Rendu sans extensionTag : '''<nowiki>{{#invoke:Frame|notag}}</nowiki>''' nous indique : {{#invoke:Frame|notag}}
 
=== frame:getArgument ===