Module:Sandbox/Andrybak and Module:Sandbox/Andrybak/sandbox: Difference between pages
(Difference between pages)
imported>Andrybak code comment |
imported>Andrybak test |
||
| Line 1: | Line 1: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
local yesno = require('Module:Yesno') | |||
local Date = require('Module:Date')._Date | |||
-- TODO use TemplateStyles | |||
p = {} | p = {} | ||
function | local function wikiError(message) | ||
local | local ret = mw.html.create('div') | ||
local | :addClass('error') | ||
:wikitext(message) | |||
return | return tostring(ret) | ||
end | |||
-- replace all newlines in the string with break tags | |||
-- slideshow only supports single line captions | |||
local function replaceNewlines(s) | |||
return mw.ustring.gsub(s, '%c', 'XXXX') | |||
end | |||
-- Extract value named "paramName" from a subpage of [[Template:POTD]] | |||
local function getPotdPart(frame, potdSubpage, paramName) | |||
return frame:expandTemplate{ | |||
title = potdSubpage, | |||
args = { paramName } | |||
} | |||
end | end | ||
-- bottom half of [[Template:Portal POTD]] for a POTD subpage | |||
local function getPotdText(frame, potdDate, moreHtml) | |||
local potdText = getPotdPart(frame, "POTD/" .. potdDate, "portal layout/text") | |||
mw.log(potdText) | |||
local debugText = "<br/>BEFORE: " .. potdText | |||
potdText = replaceNewlines(potdText) | |||
debugText = debugText .. "<br/>AFTER: " .. potdText | |||
mw.log(potdText) | |||
mw.log("---------------------------") | |||
if moreHtml | |||
then | |||
potdText = potdText .. moreHtml .. debugText | |||
end | |||
return potdText | |||
end | |||
function main(frame) | |||
local root = getPotdText(frame, "2013-10-18", "xyzzy") | |||
return frame:preprocess(root) | |||
end | |||
p.main = main | |||
return p | return p | ||