Moduł:Sandbox/Draco flavus/quicktest
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Sandbox/Draco flavus/quicktest/opis
p={}
function p.test(frame)
local ms = ''
ms = k(frame.args[1])
return ms
end
function p.tekststrony(frame)
local ms
ms = mw.title.makeTitle('User', 'Draco flavus/brudnopis179'):getContent()
return ms
end
function p.tekststrony2(frame)
local ms = ''
ms = mw.title.makeTitle('Index', frame.args[1]):getContent()
ms = ms:gsub('^.*\n|Strony=(.*)\n|Spis treści=.*$', '%1')
return ms
end
function p.tekststrony3(frame)
local ms = ''
ms = mw.title.makeTitle(frame.args[1],frame.args[2]):getContent()
ms = ms:gsub(']]', ']]')
ms = ms:gsub("''", '''')
ms = ms:gsub('}}', '}}')
ms = ms:gsub('.-<pre><nowiki>(.-)</nowiki></pre>.*', '%1')
ms = ms:gsub('⟅ *pages(.-)/⟆', '%1')
return ms
end
function p.tekststrony4(frame)
local ms
ms = mw.title.makeTitle(frame.args[1],frame.args[2]):getContent()
return ms
end
local HighRomans = {
{ 1000, 'M' },
{ 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' },
{ 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' },
{ 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, 'I' }
}
local Romans = {
{ 1000, 'm' },
{ 900, 'cm' }, { 500, 'd' }, { 400, 'cd' }, { 100, 'c' },
{ 90, 'xc' }, { 50, 'l' }, { 40, 'xl' }, { 10, 'x' },
{ 9, 'ix' }, { 5, 'v' }, { 4, 'iv' }, { 1, 'i' }
}
local function ToHighRoman(num)
local ret = {}
for _, v in ipairs(HighRomans) do
local val, letter = unpack(v)
while num >= val do
num = num - val
table.insert(ret, letter)
end
end
return table.concat(ret)
end
local function ToRoman(num)
local ret = {}
for _, v in ipairs(Romans) do
local val, letter = unpack(v)
while num >= val do
num = num - val
table.insert(ret, letter)
end
end
return table.concat(ret)
end
function informat(p, q)
local strona = tonumber(p)
local aspekt = q
local Y = ''
if aspekt == "normal" then
Y = tostring(strona)
elseif aspekt == "roman" then
Y = ToRoman(strona)
elseif aspekt == "highroman" then
Y = ToHighRoman(strona)
elseif aspekt == "folio" then
Y = tostring((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
elseif aspekt == "folioroman" then
Y = ToRoman((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
elseif aspekt == "foliohighroman" then
Y = ToHighRoman((strona + strona % 2) / 2) .. ((strona % 2 == 0) and 'ᵛ' or 'ʳ')
else
Y = aspekt
end
return Y
end
local function pages_from_index(arg)
local index_typ = false
local index_strony = {}
local index_etykiety = {}
local itxt = ''
local test_abc = ''
local maximal
local t_arg = {}
local i
local j
local numeracja = {}
local etykiety = {}
local a1
local a2
local a3
local w
itxt = mw.title.makeTitle('Indeks', arg):getContent() -- tekst strony indeksowej
itxt = itxt:gsub('^.*\n|Strony=(.*)\n|Spis treści=.*$', '%1') -- tylko fragment z linkami do stron
if itxt:find("<pagelist[/ ]") then
-- nowy typ
index_typ = true
local title = mw.title.new('File:' .. arg)
maximal = #title.file.pages
else
maximal = -1
end
return maximal
end
function p.drukuj(frame)
local strony={}
local etykiety={}
local typ
--strony, etykiety, typ = pages_from_index(frame.args[1])
--return table.concat(strony, ", ") .. '\n\n' .. table.concat(etykiety, ", ")
typ = pages_from_index(frame.args[1])
return typ
end
return p