Aller au contenu

Module:HhakP

La bibliothèque libre.
Documentation du module [voir] [modifier] [purger]
La documentation de ce module Scribunto écrit en Lua est incluse depuis sa sous-page de documentation.

Utilisation

[modifier]

Fonctions exportables

[modifier]
  • Construire( frame ) : met en page les paramètres passés à Modèle:HhakP

Autres fonctions

[modifier]
  • ConstruireEnPage( frame ) : met en page les paramètres passés à Modèle:HhakP lorsqu'inscrit dans une page
  • ConstruireHorsPage( frame ) : met en page les paramètres passés à Modèle:HhakP lorsque PAS inscrit dans une page (par transclusion le plus souvent)

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

[modifier]

(Rien)

Exemples

[modifier]

Voir les exemples dans Modèle:HhakP.

local p = {}
local szCode = ''
local nLONGUEUR_REPLIQUE_MAX = 250
local szNom = ''
local szRepl = ''
local szDida = ''
local szDebut = ''
local szFin = ''
local szLong = ''

function p.Construire( frame )
  --------------------------------------------------------------------------------------------------------
  -- Noter les paramètres évalués dans le code du modèle :
  --   |2={{{1}}}  |3={{{2}}}  |4={{{di}}}  |5={{{début}}}  |6={{{fin}}}  |7={{{long}} |8={{{3}}} (de trop)
  ---------------------------------------------------------------------------------------------------------
  szNom = frame.args[2] 
  szRepl = frame.args[3] 
  szDida = frame.args[4] 
  szDebut = frame.args[5]
  szFin = frame.args[6] 
  if szDebut ~= '' and szFin ~= '' then szCode = '<span style="color:red; font-size:200%;">Ne pas utiliser |fin= et |début= dans l’appel de modèle.</span>' end
  szLong = frame.args[7] 
  if ( mw.ustring.len(frame.args[8]) > 0 ) then szCode = '<span style="color:red; font-size:200%;">HhakP, trop de paramètre(s).</span>' end
  
  if mw.ustring.len(szCode) == 0 then
    --------------------------------------
    -- Choisir fonction selon le namespace
    --------------------------------------
    if (frame.args[1] == 'Page') then
      szCode = p.ConstruireEnPage()
    else
      szCode = p.ConstruireHorsPage()
    end
  end
   
  return szCode
end

function p.ConstruireEnPage( )
  -------------------------
  -- Créer le wikicode/HTML
  -------------------------
  -- Si paramètre long=1 ou longueur de la réplique plus grande que ..., alors le nom du personnage et la réplique sont distincts ds PDF
  if szLong ~= '' or nLONGUEUR_REPLIQUE_MAX < mw.ustring.len(szRepl) then 
    szCode = '<div>'
  else 
    szCode = '<div style="page-break-inside:avoid;">'
  end
  if szNom ~= '' then szCode = szCode .. '<div style="text-align:center; line-height:115%; margin:0; border:0; padding:0.5em 0 0 0;"><span style="font-variant:all-small-caps; font-weight:bold;" class=sc>' .. szNom .. '</span>' end
  if szDida ~= '' then szCode = szCode .. '<span style="font-size:90%; ">' .. szDida .. '</span>' end
  if szNom ~= '' then szCode = szCode .. '</div>' end
  
  if szRepl ~= '' then 
    if szDebut ~= '' then szCode = szCode .. '<p class=hhakp_vio style="margin:0; border:0; padding:0;">' .. szRepl .. '</p>' end
    if szFin ~= '' then szCode = szCode .. '<div class=hhakp_vio style="margin:0; border:0; padding:0;">' .. szRepl .. '</div>' end
    if szDebut == '' and szFin == '' then szCode = szCode .. '<p class=hhakp_rou style="margin:0; border:0; padding:0;">' .. szRepl .. '</p>' end
  end
  
  szCode = szCode .. '</div>'

  return szCode
end

function p.ConstruireHorsPage( )
  -------------------------
  -- Créer le wikicode/HTML
  -------------------------
  if szDebut ~= '' and szFin == '' then 
    -- Si paramètre long=1 ou longueur de la réplique plus grande que ..., alors le nom du personnage et la réplique sont distincts
    if szLong ~= '' or nLONGUEUR_REPLIQUE_MAX < mw.ustring.len(szRepl) then 
      szCode = '<div>'
    else 
      szCode = '<div style="page-break-inside:avoid;">'
    end
    if szNom ~= '' then szCode = szCode .. '<div style="text-align:center; line-height:115%; padding:0.5em 0 0 0;"><span style="font-variant:all-small-caps; font-weight:bold;" class=sc>' .. szNom .. '</span>' end
    if szDida ~= '' then szCode = szCode .. '<span style="font-size:90%;">' .. szDida .. '</span>' end
    if szNom ~= '' then szCode = szCode .. '</div>' end

    if szRepl ~= '' then 
      szCode = szCode .. '<p class=hhakp_rou style="margin:0;">' .. szRepl
    end
  end

  if szDebut == '' and szFin ~= '' then 
    if szRepl ~= '' then 
      szCode = szCode .. szRepl
    end
    szCode = szCode .. '</p>'
    szCode = szCode .. '</div>'
  end

  if szDebut == '' and szFin == '' then 
    -- Si paramètre long=1 ou longueur de la réplique plus grande que ..., alors le nom du personnage et la réplique sont distincts
    if szLong ~= '' or nLONGUEUR_REPLIQUE_MAX < mw.ustring.len(szRepl) then 
      szCode = '<div>'
    else 
      szCode = '<div style="page-break-inside:avoid;">'
    end
    if szNom ~= '' then szCode = szCode .. '<div style="text-align:center; line-height:115%; padding:0.5em 0 0 0;"><span style="font-variant:all-small-caps; font-weight:bold;" class=sc>' .. szNom .. '</span>' end
    if szDida ~= '' then szCode = szCode .. '<span style="font-size:90%;">' .. szDida .. '</span>' end
    if szNom ~= '' then szCode = szCode .. '</div>' end

    if szRepl ~= '' then 
      szCode = szCode .. '<p class=hhakp_ver style="margin:0;">' .. szRepl .. '</p>'
    end
      szCode = szCode .. '</div>'
  end

  return szCode
end

return p