Module:Taxobox-briques

From Wikipedia

Documentation for this module may be created at Module:Taxobox-briques/doc

-- Ce module contient le code HTML à générer. Ce sont des fonctions
-- prennant en paramètres les différents éléments à intégrer
-- (titre, taxon, ...) selon les cas et génerant en retour le code
-- wiki/HTML correspondant.
-- Le but est d'avoir toute la génération finale de code indépendante
-- du code "intelligent" afin de faciliter les évolutions ou de
-- simplifier à l'avenir l'utilisation d'autres briques existantes


local z = {}

-- génère un entête de taxobox (l'ouverture de la taxobox)
-- Paramètres :
--  style : correspond au sous-style CSS associé (le règne "normalisé")
--  titre : le texte a mettre en dans la zone de titre
function z.t_debut(style, titre)
    return '<div class="infobox_v3 large taxobox_v3 bordered ' .. style .. '" style="width: 20em">\n' .. '<p class="entete">' .. titre .. '</p>\n'
end

-- genere une entête de bloc. Ça correspond à un sous-titre de taxobox
-- Paramètres :
--   texte : texte à mettre dans la zone de sous-titre
function z.t_bloc(texte)
    return '<p class="bloc">' .. texte .. '</p>\n'
end

-- génère une zone de texte, type <p> simple
-- Paramètres :
--   texte : le texte à insérer
--   centre : si true texte centré
function z.t_texte(texte, centre)
    local res

    if (centre == true) then
        res = '<p class="center">'
    else
        res = '<p>'
    end
    res = res .. (texte or "") .. '</p>'

    return res
end


-- génère le code de la première partie d'une ligne de classification
-- (la partie gauche : le rang)
-- non utilisée directement, voir fonction suivante.
function z.t_ligne_mixte_champs(texte)
    return '<tr>\n<th scope="row">' .. (texte or "") .. '</th>\n'
end
-- génère le code de la deuxième partie d'une ligne de classification
-- (la partie droite : le nom du taxon)
-- non utilisée directement, voir fonction suivante.
function z.t_ligne_mixte_valeur(texte)
    return '<td style="width:8em;">' .. (texte or "") .. '</td>\n</tr>'
end
-- génère le code d'une ligne de classification. Utilise les deux fonctions
-- précédentes.
-- Paramètres :
--   rang  : le rang, partie gauche d'une ligne de classification
--   nom   : le nom du rang associé, partie droite d'une ligne de classification
function z.t_ligne_mixte(rang, nom)
    return z.t_ligne_mixte_champs(rang or "") .. z.t_ligne_mixte_valeur(nom or "")
end

-- cette fonction insert une ligne unique dans une table en cours. Utile uniquement pour
-- insérer une image dans la partie classification phylo. Il faudrait sans doute trouver mieux.
function z.t_ligne_unique(contenu)
    return '<tr><td colspan="2" style="align:center;">' .. (contenu or "") .. '</td></tr>'
end

-- génère un sous-titre. Il s'agit du sous-titre de l'article. En pratique ça ne
-- devrait probablement pas être dans ce module car ce n'est pas particulièrement
-- lié aux "briques de base d'une info/taxobox", mais à défaut c'est ici en attendant.
-- Paramètres :
--   texte : le texte à mettre en sous-titre. ATTENTION : il faut fournir du HTML et
--           non du code wiki si de la mise en forme est nécessaire (italique par exemple)
function z.t_sous_titre(texte)
    return '<span id="sous_titre_h1">' .. (texte or "") .. '</span>'
end


-- termine une taxobox. Bloc de fin.
-- Paramètres :
--   aucun
function z.t_end()
    return '</div>\n'
end


-- génère une taxobox d'erreur. Utilisé en cas d'erreur de paramètres. Permet
-- ainsi d'afficher une pseudo-infobox en lieu et place de la taxobox, contenant
-- un message clair indiquant qu'il y a une erreur ainsi qu'un texte décrivant
-- l'erreur en question.
-- Insert également une catégorie "Taxobox à corriger" afin de repérer ces cas.
-- Paramètres :
--   texte : le texte de description de l'erreur à afficher.
function z.t_erreur(texte, cattitle)
    local box
 
    box = '<div class="infobox_v3 large taxobox_v3 bordered error" style="width: 20em">\n'
    box = box .. '<p class="entete">' .. "Erreur d'utilisation du modèle/module taxobox.<br/>Voir [[Template:Taxobox-fr/doc|la documentation]] associée." .. '</p>\n'
    if ( nil == texte or "" == texte ) then
        texte = "Aucune description d'erreur fournie."
    end
    box = box .. '<p class="bloc">' .. texte .. '</p>\n'
    box = box .. '</div>\n'
    -- insertion de la catégorie "en erreur"
    if (nil ~= cattitle and "" ~= cattitle) then
        box = box .. "[[Category:Taxobox avec erreur|" .. cattitle .. "]]\n"
    else
        box = box .. "[[Category:Taxobox avec erreur]]\n"
    end

    return box
end


return z