Aller au contenu

Module:Italiques biologiques

Cette page est protégée.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 2 avril 2013 à 11:42 et modifiée en dernier par Hexasoft (discuter | contributions) (tests). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

Fonctions exportables :

  • titre_en_italiques(frame) – met le titre en italique, en ignorant la partie (éventuelle) homonymie. Ne met pas l'espace de nom éventuel en italique.
    • paramètre nommé optionnel : "lang=XX", qui insert un span décrivant la langue.
  • ns(frame) − prend en paramètre non nommé un nom scientifique et retourne ce nom en italique inconditionnellement, en respectant les contraintes typographiques de la biologie. (appelé par {{Taxobox taxon}})
  • nt(frame) − similaire à ns(frame) mais utilisé par {{Taxobox}}. Prend en paramètres non nommés (dans l'ordre) nom, nom2 et rang, et utilise nom2 s'il est non vide sinon nom (utile pour s'adapter à la syntaxe de {{Taxobox}} qui peut être « rang | nom » ou « rang | nom wiki | nom ». Important : éviter d'utiliser cette fonction dans un autre contexte car pour des raisons techniques elle utilise du code HTML (et non wiki) pour gérer l'italique
  • titre(frame) – prend en paramètre non nommé un nom scientifique et modifie le titre de l'article pour le mettre en italique. La fonction récupère le titre de l'article et ne met en italique que si le titre est de la forme XXXYYY, avec XXX le nom scientifique en paramètre et YYY éventuellement vide. Seule la partie XXX est passée en italique. Ne fait rien dans les autres cas, ni si la fonction est appelée depuis un autre espace de nom que l'espace encyclopédique. (appelé par {{Taxoboxoutils titre en italique}})
    • paramètre nommé optionnel : "titre=XXX" : si ce paramètre est indiqué la fonction utilise XXX comme titre de la page au lieu du titre réel. De plus le résultat est retourné dans un nowiki afin de visualiser ce qui aurait été fait (option servant pour les pages de documentation et de test).

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

  • mw.title (récupération du titre et espace de nom de la page)

Exemples

Note : ces fonctions ne testent pas s'il est pertinent d'utiliser l'italique.

Fonction ns(frame) :

{{#invoke:Italiques biologiques|ns|Citrus ×paradisi}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|×Sorbopyrus auricularis}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|Iberodorcadion (Hispanodorcadion) aguadoi}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|Pelophylax kl. esculentus}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|Brassica olearacea var. gemmifera}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|Bla ×bli var. blo kl. blu}} → Erreur de script : la fonction « ns » n’existe pas.
{{#invoke:Italiques biologiques|ns|Uroplatus (genre)}} → Erreur de script : la fonction « ns » n’existe pas. − cas de mise en italique inconditonnel


Fonction titre(frame)

Note : un retour vide (après le "→") indique que la fonction a décidé de ne pas modifié le titre, elle retourne donc une chaîne vide.

{{#invoke:Italiques biologiques|titre|Citrus ×paradisi|titre=Citrus ×paradisi}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|×Sorbopyrus auricularis|titre=×Sorbopyrus auricularis}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|Uroplatus guentheri|titre=Uroplate de Günther}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|Uroplatus guentheri|titre=Uroplatus guentheri (animal)}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|Brassica olearacea var. gemmifera|titre=Brassica olearacea var. gemmifera}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|Brassica olearacea var. gemmifera|titre=Fox à poil dur}} → Erreur de script : la fonction « titre » n’existe pas.
{{#invoke:Italiques biologiques|titre|Uroplatus|titre=Uroplatus sikorae}} → Erreur de script : la fonction « titre » n’existe pas. ⇒ limitation : la partie "homonymie" est considérée comme "YYY si le titre est XXXXYYY et que le nom scientifique indiqué est exactement XXXX". On voit ici que si on est titré genre sur l'article mais qu'on pense être l'espèce correspondante ça ne fait pas ce qui est prévu. Si c'est un problème il est possible d'imposer en plus la présence de parenthèses dans la partie homonymie. Me dire.
{{#invoke:Italiques biologiques|titre|Brassica olearacea ''var.'' gemmifera|titre=Fox à poil dur}} → Erreur de script : la fonction « titre » n’existe pas. − exemple de présence d'une mise en forme dans le nom scientifique indiqué

-- gestion de la mise en italique d'un nom scientifique, en respectant les conventions de la biologie

local p = {}


-- fonction basique mettant le titre courant en italique, sauf la partie namespace et la partie homonymie si présente
-- paramètres : lang → optionnel : ajout d'un tag de langue si présent
function p.titre_en_italiques(frame)
    local titre = mw.title.getCurrentTitle()
    local resu = ""
    local prefix = "" -- racine de la page (éventuelle)
    local page = "" -- page (éventuellement sous-page)
    -- paramètre optionnel : la langue
    local lang = frame.args["lang"] or frame:getParent().args["lang"]

    -- si c'est une sous-page : on ne traite que la partie finale
    -- (ex: Toto/Titi/tutu → italique que sur "tutu"
    if (titre.isSubpage) then
        page = titre.subpageText
        prefix = titre.baseText
    else
        page = titre.text
    end
    
    
    
    -- préparation résultat : on commence par le namespace
    resu = titre.nsText or ""
    -- on ajoute le préfix s'il y en a
    resu = resu .. prefix
    -- on ajoute le span de la langue si demandé
    if (lang) then
        resu = resu .. '<span lang="' .. lang .. '">'
    end
    
    
    -- nsText + rempl "^.* (" [text]  
    
    return resu
end



-- fonction qui prend un nom scientifique et retourne la mise en italique correspondante
-- la fonction ne se demande pas s'il faudrait le faire ou pas
function p.italiques(frame)
    return ""
end


-- fonction qui prend un nom scientifique et qui regarde si le titre de la page contient le nom scientifique
-- si oui met cette partie en italique (sans se demander s'il faudrait le faire ou pas)
function p.titre_italiques(frame)
    return ""
end





-- module
return p