Modul:Citace: Porovnání verzí

Přidáno 691 bajtů ,  před 4 lety
podpora "background" pro odlišení test. šablony; oprava ve funkci p.lastChar; volání #time pro "datum přístupu"
(PMID explicitně místo kouzelného odkazu)
(podpora "background" pro odlišení test. šablony; oprava ve funkci p.lastChar; volání #time pro "datum přístupu")
function p.citaceInit(c)
c.r = {} -- result
c.flagsstate = {}
 
if type(c.frame.callParserFunction) == 'function' then
local aModule = require('Modul:Arguments')
c.args = aModule.getArgs(c.frame)
c.parentArgs = aModule.getArgs(c.frame:getParent())
p.frame = c.frame -- zmena reseni, 30.12.2017 12:30:06
else
c.localTest = 1
c.args = c.frame
c.parentArgs = {}
-- makety vybranych fci pro lokalni testovani
mw = {
-- debugging options
-- c.noCoins = 1
-- c.trace = 1
-- c.dbg = 1
end
table.insert(c.r, "((DBG: ")
for k, v in pairs(c.args) do
table.insert(c.r, "[citk .. "' = ' .. c.args["datum přístupu"]v .. "]")';')
end
table.insert(c.r, "((PARENT)): ")
for k, v in pairs(c.parentArgs) do
table.insert(c.r, k .. ' = ' .. v .. ';')
end
local i
 
table.insert(c.r, '<cite class="book" style="font-style:normal;' .. p.style(c) .. '"')
p.citAnchorId(c)
table.insert(c.r, '>')
local i
 
table.insert(c.r, '<cite class="book" style="font-style:normal;' .. p.style(c) .. '"')
p.citAnchorId(c)
table.insert(c.r, '>')
local i
 
table.insert(c.r, '<cite style="font-style:normal;' .. p.style(c) .. '"')
p.citAnchorId(c)
table.insert(c.r, '>')
local i
 
table.insert(c.r, '<cite style="font-style:normal;' .. p.style(c) .. '"')
p.citAnchorId(c)
table.insert(c.r, '>')
local i
 
table.insert(c.r, '<cite style="font-style:normal;' .. p.style(c) .. '"')
p.citAnchorId(c)
table.insert(c.r, '>')
function p.lastChar(s)
if p.frame then
local len =return mw.ustring.lensub(s, -1)
return mw.ustring.sub(len, len)
else
return s:string.sub(s:len(), s:len()-1)
end
end
end
 
function p.style(c)
-- *** Pomocné funkce přidávající výstup do pole c.r ***
return (not p.empty(c.args['background']) and "background:" .. c.args['background'] .. ";" or "")
end
 
-- *** Pomocné funkce přidávající výstup do pole c.r ***
-- Odkazy pro harvardské citace
-- Srovnej cs:Modul:Footnotes / core() / grep CITEREF
 
if params.honorCorporation and not p.empty(c.args["korporace"]) then
tc.lastAutorstate.lastAuthor = c.args["korporace"]
table.insert(c.r, ""
.. p.wikilink(c.args["odkaz na korporaci"], c.args["korporace"])
 
-- if not p.empty(c.args["korporace"]) or not p.empty(c.args["autor1"]) or not p.empty(c.args["příjmení1"]) then
if not p.empty(tc.state.lastAuthor) then
if not p.empty(c.args["spoluautoři"]) then
tc.lastAutorstate.lastAuthor = c.args["spoluautoři"]
table.insert(c.r, ", " .. c.args["spoluautoři"])
end
 
if c.useHarvardFormat and not p.empty(c.args["rok"]) then
tc.lastAutorstate.lastAuthor = c.args["rok"]
table.insert(c.r, ", " .. c.args["rok"])
end
 
-- pokud posledni jmeno nekonci teckou, pak ji vlozime
-- DBG
if t.lastAutor ~= nil and p.lastChar(t.lastAutor) ~= '.' then
if nil and c.state.lastAuthor then
table.insert(c.r, "[" .. c.state.lastAuthor .. "/" .. p.lastChar(c.state.lastAuthor) .. "]")
end
 
if tc.lastAutor ~= nilstate.lastAuthor and p.lastChar(tc.state.lastAutorlastAuthor) ~= '.' then
table.insert(c.r, ".")
end
function p.citAuthor(t, c, i)
if c.trace then p.trace(c, debug.getinfo(1, "n")) end
local t = {}
t["autor"] = nil
 
 
if t["autor"] ~= nil then
tc.lastAutorstate.lastAuthor = t.autor
table.insert(c.r, ""
.. (i == 1 and "" or "; ")
 
if params.honorCorporation and not p.empty(c.args["sestavující korporace"]) then
tc.lastAutorstate.lastCompiler = c.args["sestavující korporace"]
table.insert(c.r, ""
.. p.wikilink(c.args["odkaz na sestavující korporaci"], c.args["sestavující korporace"])
end
 
if not p.empty(tc.lastAuthorstate.lastCompiler) then
if not p.empty(c.args["spolusestavitelé"]) then
tc.lastAutorstate.lastCompiler = c.args["spolusestavitelé"]
table.insert(c.r, ", " .. c.args["spolusestavitelé"])
else
 
-- pokud posledni jmeno nekonci teckou, pak ji vlozime
if tc.lastAutorstate.lastCompiler ~= nil and p.lastChar(tc.state.lastAutorlastCompiler) ~= '.' then
table.insert(c.r, ".")
end
function p.citCompiler(c, t, i)
if c.trace then p.trace(c, debug.getinfo(1, "n")) end
local t = {}
t["sestavitel"] = nil
 
 
if t["sestavitel"] ~= nil then
tc.lastAutorstate.lastCompiler = t.sestavitel
table.insert(c.r, ""
.. (i == 1 and "" or "; ")
table.insert(c.r, " ")
end
if c.localTest then
table.insert(c.r, "[cit. " .. c.args["datum přístupu"] .. "]");
table.insert(c.r, "[cit. " .. c.args["datum přístupu"] .. "]")
-- TODO: {{#time: Y-m-d|{{{datum přístupu|{{{datum_přístupu}}}}}}}}] -- callParserFunction ??? // Celkove sjednotit zpracovani datumu
else
table.insert(c.r, "[cit. " .. p.frame:callParserFunction('#time', 'Y-m-d', c.args["datum přístupu"]) .. "]")
end
end
 
end
if not p.empty(t.datum) then
c.flagsstate.isDatum = true
if not p.empty(c.args["vydavatel"]) then
table.insert(c.r, ", " .. t.datum)
if c.trace then p.trace(c, debug.getinfo(1, "n")) end
if not p.empty(c.args["ročník"]) then
if c.flagsstate.isDatum then
table.insert(c.r, ", " .. (not p.empty(c.args["typ ročníku"]) and c.args["typ ročníku"] or "roč.") )
else
0

editací