« Module:Version imprimable » : différence entre les versions
Contenu supprimé Contenu ajouté
MEP des traductions sur Commons |
Add printable version header, footer and no evaluation param if overflow |
||
Ligne 2 :
debug = false
do_not_evaluate_each_chapter = false
local p = {}
Beginning1 = require('Module:TNT').format('I18n/Module:Printable version', 'header_notice')▼
Error = ModuleTnt.format('I18n/Module:Printable version', ' ▲
sep = ModuleTnt.format('I18n/Module:Printable version', 'subpage_separator')
page_before = ModuleTnt.format('I18n/Module:Printable version', 'page_before')
page_after = ModuleTnt.format('I18n/Module:Printable version', 'page_after')
Ligne 35 ⟶ 41 :
if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end
end
if frame.args[3] ~= nil then
else
return Error
end
if frame.args[4] ~= nil and frame.args[4] ~= '' then do_not_evaluate_each_chapter = true end
if (title == nil or title == '') then return Error end
text = title.getContent(title)
Ligne 47 ⟶ 55 :
local fullPageName
local PrintVersion = {}
if (page_before ~= '') then
-- Add book header
fullPageName = BookName .. sep .. page_before
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
-- Title should be defined in the page itself
table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n')
end
end
-- Add book chapters
for i,v in ipairs(lines_) do
if mw.text.trim(v) ~= '' then
Ligne 52 ⟶ 72 :
if fullPageName ~= nil then
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and (do_not_evaluate_each_chapter or ChapterTitle.exists)) then
PageName = p.getSubpageName(BookName, fullPageName)
if (PageName ~= nil and PageName ~= '') then
if Break ~= "" then table.insert(PrintVersion, frame:expandTemplate{title = Break}) end
table.insert(PrintVersion, '\n<div style="clear:both;page-break-before:always;"></div>\n=' .. PageName .. '=\n')
end
table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n')
else
if debug then table.insert(PrintVersion, '<
end
end
Ligne 66 ⟶ 86 :
end
if (page_after ~= '') then
-- Add book footer
fullPageName = BookName .. sep .. page_after
ChapterTitle = mw.title.new(fullPageName)
if (ChapterTitle ~= nil and ChapterTitle.exists) then
-- Title should be defined in the page itself
table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n')
end
end
Templates1 = ""
if Beginning1 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning1} .. '\n' end
Ligne 93 ⟶ 123 :
chapter = mw.ustring.gsub(chapter, "_", " ")
else
if debug then chapter = '<
end
Ligne 123 ⟶ 153 :
if chapter == BookName or chapter == BookName .. sep or mw.ustring.find(chapter, "%#") ~= nil then
if debug then chapter = '<
else
if
-- Book subpages only (and ignoring the other links like "see also")
if mw.ustring.find(chapter, BookName .. sep, 1, true) == nil then
if debug then chapter = "<
end
end
end
else
if debug then chapter = "<
end
return chapter
Ligne 140 ⟶ 170 :
function p.getSubpageName(bookName, fullPageName)
k, v = mw.ustring.gsub(fullPageName, '^' .. p._escapePattern(bookName
return k
end
Ligne 189 ⟶ 219 :
if frame.args[3] == 'programming' then
if debug then table.insert(footer, " skin=programming\n\n") end
templateLeft = '{| style="width:100%; border:solid 1px #71c837; background:#c6e9af; color:#2d5016;" class="navlinks noprint"\n| style="text-align:left; width:33%; font-size:90%;" class="navprevious" |[[Image:Navigation_Left_Arrow.svg|18px|link=printf|alt=]] [[printf]]\n'
templateRight = '| style="text-align:center; width:34%;" class="navtitle" | [['..mw.title.getCurrentTitle().rootText..']]<br><b>'..mw.title.getCurrentTitle().subpageText..'</b>\n| style="text-align:right; width:33%; font-size:90%;" class="navnext" | [[printf]] [[Image:Navigation_Right_Arrow.svg|18px|link=printf|alt=]]\n|}'
end
end
Ligne 213 ⟶ 243 :
fullPageName = p.getFullPageName(BookName, rawFullPageName)
if debug then
if mw.ustring.find(fullPageName, "<
fullPageName = nil
else
Ligne 231 ⟶ 261 :
if (subpageName ~= nil and subpageName ~= "") then
if found == true or homepage == true then
if debug then table.insert(footer, "<
if homepage == false then
Ligne 246 ⟶ 276 :
break
elseif subpageName == currentPageName then
if debug then table.insert(footer, "<
found = true
elseif fullPageName ~= "" then
Ligne 252 ⟶ 282 :
previousChapter = subpageName
else
if debug then table.insert(footer, "<
end
end
else
if debug then table.insert(footer, "<
end
end
Ligne 263 ⟶ 293 :
if found == true and table.getn(footer) == 0 then
if debug then table.insert(footer, "<
theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter)
table.insert(footer, theTemplateLeft)
|