Module:JuxtaInter
La documentation pour ce module peut être créée à Module:JuxtaInter/Documentation
local p = {}
-- trim1(s): deletes whitespace at the beginning and end of s
function trim1(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
-- affichepages: module utilisé pour l'affichage de livres avec traductions
-- juxtalinéaires. Affiche, côte à côte, la transclusion de pages.
-- provenant de 2 wikisources différentes.
-- On affiche deux colonnes. À gauche la transclusion de la page d'une langue,
-- à droite celle de la page correspondante d'une autre langue.
-- Deux pages correspondantes sont alignées.
-- Argument: tab.
-- tab[1]: code de la première langue
-- tab[2]: code de la deuxième langue
-- tab[3]: nom de la page d'index. Doit être le même pour les deux langues
-- tab[4]: numéro de la première page à afficher dans la première langue
-- tab[5] : numéro de la dernière page à afficher dans la première langue
-- tab[6]: numéro de la première page à afficher dans la deuxième langue
-- tab[7]: largeur (en %) de la colonne ou la première langue est affichée.
-- tab[8]: largeur (en %) de la colonne ou la deuxième langue est affichée.
-- tab[9]: espace vertical entre deux pages (une par langue) et les deux pages suivantes
-- tab[10]: espace horizontal entre la page de droite et la page de gauche
function p.affichepages(tab)
local lang1=trim1(tab.args[1])
local lang2=trim1(tab.args[2])
local index=trim1(tab.args[3])
local ideb1=tonumber(tab.args[4])
local ifin1=tonumber(tab.args[5])
local ideb2=tonumber(tab.args[6])
local larg1=tonumber(tab.args[7])
local larg2=tonumber(tab.args[8])
local vspace=tonumber(tab.args[9])
local hspace=tonumber(tab.args[10])
retval=''
retval=retval..'<table style="border-spacing:30px 10px; table-layout:fixed;">\n'
local di=1
if ideb1<ideb2 then
di=1
else
di=-1
end
for i=ideb1,ifin1 do
local span2= mw.html.create( 'span' )
:attr('class', mw.ustring.format('iwpages lang-%s',lang2))
:attr('title',mw.ustring.format('%s|%s|%d|%d',lang2,index,i+di,i+di))
:attr('id',mw.ustring.format("%s:%s",lang2,index))
:attr('lang',lang2)
local span1= mw.html.create( 'span' )
:attr('class', mw.ustring.format('iwpages lang-%s',lang1))
:attr('title',mw.ustring.format('%s|%s|%d|%d',lang1,index,i,i))
:attr('id',mw.ustring.format("%s:%s",lang1,index))
:attr('lang',lang1)
td1=mw.ustring.format('<td width="%d%%">%s</td>',larg1,tostring(span1))
td2=mw.ustring.format('<td width="%d%%">%s</td>',larg2,tostring(span2))
if ideb1<ideb2 then
retval=retval..'<tr style="vertical-align:top;">'..td1..td2..'</tr>\n'
else
retval=retval..'<tr style="vertical-align:top;">'..td2..td1..'</tr>\n'
end
--retval=retval..mw.ustring.format('<tr style="vertical-align:top;"><td width="%d%%">%s</td><td width="%d%%">%s</td></tr>\n',larg1,tostring(span1),larg2,tostring(span2))
end
retval=retval..'</table>\n'
return retval
end
return p