Module:HhakPersMajAccolade

Documentation du module [voir] [modifier] [purger]
La documentation de ce module Scribunto écrit en Lua est incluse depuis sa sous-page de documentation.
local szCode = ''

local function ConstruireDebutTable( frame )
  szCode = ''
  szCode = szCode .. '<div style="margin-left:20px;">'
-- Conserver si besoin de mieux calibrer l'indentation
--  szCode = szCode .. '<div'
--  if ( frame.args.mg ~= nil ) then
--    szCode = szCode .. ' style="margin-left:' .. frame.args.mg .. ';"'
--  end
--  szCode = szCode .. '>'
  szCode = szCode .. '<table style="width:auto; margin:0; border:0; padding:0; border-collapse:collapse; page-break-inside:avoid;">'
  szCode = szCode .. '<tr>'
  if frame.args.pers1 ~= nil then 
    if #frame.args.pers1 > 0 then
      szCode = szCode .. '<td style="margin:0; border:0; padding:0;">'
      a = mw.text.split(frame.args.pers1, '<br>')
      for key,value in ipairs( a ) do
        szCode = szCode .. '<div style="margin:0; border:0; padding:0; line-height:125%; font-variant:all-small-caps;" class=sc>' .. value .. ',</div>'
      end
      szCode = szCode .. '</td>'
    else
      szCode = '<span style="font-size:200%; color:red;">La liste des personnages manque.</span>'
    end
  end

  szCode = szCode .. '<td style="margin:0; border:0; padding:0; line-height:100%; vertical-align:bottom;">'
  szCode = szCode .. '<div style="margin:0; border:0; padding:0; line-height:100%; vertical-align:bottom; font-size:72%;">'
-- Conserver si besoin de mieux calibrer la taille de l'accolade
--  szCode = szCode .. '<div style="margin:0; border:0; padding:0; line-height:100%; vertical-align:bottom;'
--  if ( frame.args.fs_acco ~= nil ) then
--    szCode = szCode .. ' font-size:' .. frame.args.fs_acco .. ';'
--  else
--    szCode = '<span style="font-size:200%; color:red;">Taille d’accolade (fs_acco) ?</span>'
--  end
--  szCode = szCode .. '>'
  
  return szCode
end

-- Pas utilisée en octobre 2023
--local function EstEntier(sz)
--  b = false
--  if sz ~= nil then
--    if tonumber( sz ) ~= nil then
--      if tonumber( sz ) == math.floor( tonumber( sz ) ) then
--        b = true
--      end
--    end
--  end

--  return b
--end

local function ConstruireAccolade( frame )
  -- Code LaTeX à passer à {{#tag:math}} dans le modèle
  szCode = ''
-- Si besoin d'indiquer nombre de rangées de la table
--  if ( frame.args.h_acco ~= nil ) then
--    if ( EstEntier( frame.args.h_acco ) ) then
--      szCode = szCode .. '\\left. \\begin{matrix}'
--      for name = 1, frame.args.h_acco, 1 do szCode = szCode .. ' \\\\' end
--      szCode = szCode .. '\\end{matrix} \\right\\}'
--    else
--      szCode = '\\text{La hauteur de l\'accolade (h acco) n\'est pas un nombre entier.}'
--    end
--  else
--    szCode = '\\text{Hauteur de l\'accolade (h acco) ?}'
--  end
  if frame.args.pers2 ~= nil then 
    if #frame.args.pers2 > 0 then
      szCode = szCode .. '\\left. \\begin{matrix}'
      a = mw.text.split(frame.args.pers2, '<br>')
      for name = 1, #a do
        szCode = szCode .. ' \\\\'
      end
      szCode = szCode .. '\\end{matrix} \\right\\}'
    end
  end

  return szCode
end

local function ConstruireFinTable( frame )
  szCode = ''
  szCode = szCode .. '</div>'
  szCode = szCode .. '</td>'
  if frame.args.pers3 ~= nil then 
    if #frame.args.pers3 > 0 then
      szCode = szCode .. '<td style="margin:0; border:0; padding:0;">'
      szCode = szCode .. '<div style="font-size:90%; margin:0; border:0; padding:0 0 0 0.15em; line-height:110%;">'
      if ( #frame.args.role > 0 ) then
          szCode = szCode .. frame.args.role
      else
        szCode = '<span style="font-size:200%; color:red;">Le rôle (paramètre 2) manque.</span>'
      end
      szCode = szCode .. '</div>'
      szCode = szCode .. '</td>'
    end
  end
  szCode = szCode .. '</tr>'
  szCode = szCode .. '</table>'
  szCode = szCode .. '</div>'
  
  return szCode
end

------------
------------
local p = {}

function p.ConstruireDebutTable( frame )
  return ConstruireDebutTable( frame )
end

function p.ConstruireAccolade( frame )
  return ConstruireAccolade( frame )
end

function p.ConstruireFinTable( frame )
  return ConstruireFinTable( frame )
end

return p