Module:Citation/CS1: Difference between revisions
self rv, the mw.text library isn't installed? well joy
m>Dragons flight (I think this should work for nowiki, restore previous edit) |
m>Dragons flight (self rv, the mw.text library isn't installed? well joy) |
||
Line 7: | Line 7: | ||
local z = { | local z = { | ||
wikitext = require("Module:Wikitext"), | wikitext = require("Module:Wikitext"), | ||
mw = require("Module:Mw") | |||
} | } | ||
Line 35: | Line 18: | ||
end | end | ||
function nowiki(frame, content) | |||
function | return z.mw.text.tag({name="nowiki",contents=content,params={}}, frame) | ||
text | |||
end | end | ||
function | function externallinkid(frame, args) | ||
local sep = args.separator or " " | local sep = args.separator or " " | ||
args.suffix = args.suffix or "" | args.suffix = args.suffix or "" | ||
Line 89: | Line 31: | ||
local t0 = onlyinprint(args.label .. sep .. args.id) | local t0 = onlyinprint(args.label .. sep .. args.id) | ||
local t1 = hideinprint("[[" .. args.link .. "|" .. args.label .. "]]" .. sep .. "[" .. args.prefix .. url_string .. args.suffix .. " " .. nowiki(args.id) .. "]") | local t1 = hideinprint("[[" .. args.link .. "|" .. args.label .. "]]" .. sep .. "[" .. args.prefix .. url_string .. args.suffix .. " " .. nowiki(frame, args.id) .. "]") | ||
return t0 .. t1 | return t0 .. t1 | ||
end | end | ||
function internallinkid(args) | function internallinkid(frame, args) | ||
local sep = args.separator or " " | local sep = args.separator or " " | ||
args.suffix = args.suffix or "" | args.suffix = args.suffix or "" | ||
local t0 = onlyinprint(args.label .. sep .. args.id) | local t0 = onlyinprint(args.label .. sep .. args.id) | ||
local t1 = hideinprint("[[" .. args.link .. "|" .. args.label .. "]]" .. sep .. "[[" .. args.prefix .. args.id .. args.suffix .. "|" .. nowiki(args.id) .. "]]") | local t1 = hideinprint("[[" .. args.link .. "|" .. args.label .. "]]" .. sep .. "[[" .. args.prefix .. args.id .. args.suffix .. "|" .. nowiki(frame, args.id) .. "]]") | ||
return t0 .. t1 | return t0 .. t1 | ||
end | end | ||
function amazon(id, domain) | function amazon(frame, id, domain) | ||
if ( nil == domain ) then | if ( nil == domain ) then | ||
domain = "com" | domain = "com" | ||
Line 108: | Line 50: | ||
domain = "co." .. domain | domain = "co." .. domain | ||
end | end | ||
return externallinkid({link="Amazon Standard Identification Number",label="ASIN",prefix="//www.amazon."..domain.."/dp/",id=id,encode=false}) | return externallinkid(frame, {link="Amazon Standard Identification Number",label="ASIN",prefix="//www.amazon."..domain.."/dp/",id=id,encode=false}) | ||
end | end | ||
function doi(id, inactive, nocat) | function doi(frame, id, inactive, nocat) | ||
local cat = "" | local cat = "" | ||
local text; | local text; | ||
Line 119: | Line 61: | ||
inactive = " (inactive " .. inactive .. ")" | inactive = " (inactive " .. inactive .. ")" | ||
else | else | ||
text = externallinkid({link="Digital object identifier",label="doi",prefix="http://dx.doi.org/",id=id,separator=":"}) | text = externallinkid(frame, {link="Digital object identifier",label="doi",prefix="http://dx.doi.org/",id=id,separator=":"}) | ||
inactive = "" | inactive = "" | ||
end | end | ||
Line 129: | Line 71: | ||
end | end | ||
function url(id) | function url(frame, id) | ||
local t0 = onlyinprint(id) | local t0 = onlyinprint(id) | ||
local t1 = hideinprint("[" .. id .. " " .. nowiki(id) .. "]") | local t1 = hideinprint("[" .. id .. " " .. nowiki(frame, id) .. "]") | ||
return t0 .. t1 | return t0 .. t1 | ||
end | end | ||
Line 224: | Line 166: | ||
end | end | ||
function openlibrary(id) | function openlibrary(frame, id) | ||
local cat = "" | local cat = "" | ||
local prefix = "" | local prefix = "" | ||
Line 238: | Line 180: | ||
cat = cat .. "[[Category:Pages with OL errors]]" | cat = cat .. "[[Category:Pages with OL errors]]" | ||
end | end | ||
local text = externallinkid({link="Open Library",label="OL",prefix=prefix,id=id}) | local text = externallinkid(frame, {link="Open Library",label="OL",prefix=prefix,id=id}) | ||
return text .. cat | return text .. cat | ||
end | end | ||
Line 292: | Line 234: | ||
end | end | ||
if ( "scap" == format ) then result= | if ( "scap" == format ) then result= z.mw.text.tag({name="span", contents=result, params={class="smallcaps", style="font-variant:small-caps;"}}) end -- if necessary wrap result in <span> tag to format in Small Caps | ||
return result, count | return result, count | ||
end | end | ||
Line 404: | Line 346: | ||
end | end | ||
function citation0( config, args) | function citation0(frame, args) | ||
local config = {}; | |||
for k, v in pairs( frame.args ) do -- the arguments passed BY the template, in the wikitext of the template itself | |||
config[k] = v; | |||
end | |||
--------------------------------------------------- Get parameters | --------------------------------------------------- Get parameters | ||
local PPrefix = config.PPrefix or "p. " | local PPrefix = config.PPrefix or "p. " | ||
Line 861: | Line 807: | ||
if ( SubscriptionRequired ~= nil and | if ( SubscriptionRequired ~= nil and | ||
SubscriptionRequired ~= "" ) then | SubscriptionRequired ~= "" ) then | ||
SubscriptionRequired = sepc .. " " .. | SubscriptionRequired = sepc .. " " .. z.mw.text.tag({name="span", contents="(subscription required)", params={style="font-size:0.95em; font-size: 90%; color: #555"}}) | ||
else | else | ||
SubscriptionRequired = "" | SubscriptionRequired = "" | ||
end | end | ||
if ( ARXIV ~= nil and ARXIV ~= "" ) then | if ( ARXIV ~= nil and ARXIV ~= "" ) then | ||
ARXIV = sepc .. " " .. externallinkid({label="arXiv",link="arXiv",prefix="http://arxiv.org/abs/",id=ARXIV,separator=":",encode=false}) else ARXIV = "" end | ARXIV = sepc .. " " .. externallinkid(frame, {label="arXiv",link="arXiv",prefix="http://arxiv.org/abs/",id=ARXIV,separator=":",encode=false}) else ARXIV = "" end | ||
if ( ASIN ~= nil and ASIN ~= "" ) then | if ( ASIN ~= nil and ASIN ~= "" ) then | ||
ASIN = sepc .. " " .. amazon(ASIN, ASINTLD) else ASIN = "" end | ASIN = sepc .. " " .. amazon(frame, ASIN, ASINTLD) else ASIN = "" end | ||
if ( BIBCODE ~= nil and BIBCODE ~= "" ) then | if ( BIBCODE ~= nil and BIBCODE ~= "" ) then | ||
BIBCODE = sepc .. " " .. externallinkid({label="Bibcode",link="Bibcode",prefix="http://adsabs.harvard.edu/abs/",id=BIBCODE,separator=":"}) else BIBCODE = "" end | BIBCODE = sepc .. " " .. externallinkid(frame, {label="Bibcode",link="Bibcode",prefix="http://adsabs.harvard.edu/abs/",id=BIBCODE,separator=":"}) else BIBCODE = "" end | ||
if ( DOI ~= nil and DOI ~= "" ) then | if ( DOI ~= nil and DOI ~= "" ) then | ||
DOI = sepc .. " " .. doi(DOI, DoiBroken) else DOI = "" end | DOI = sepc .. " " .. doi(frame, DOI, DoiBroken) else DOI = "" end | ||
if ( ID ~= nil and ID ~="") then ID = sepc .." ".. ID else ID="" end | if ( ID ~= nil and ID ~="") then ID = sepc .." ".. ID else ID="" end | ||
if ( ISBN ~= nil and ISBN ~= "") then | if ( ISBN ~= nil and ISBN ~= "") then | ||
ISBN = sepc .. " " .. internallinkid({label="ISBN",link="International Standard Book Number",prefix="Special:BookSources/",id=ISBN}) else ISBN = "" end | ISBN = sepc .. " " .. internallinkid(frame, {label="ISBN",link="International Standard Book Number",prefix="Special:BookSources/",id=ISBN}) else ISBN = "" end | ||
if ( ISSN ~= nil and ISSN ~="" ) then | if ( ISSN ~= nil and ISSN ~="" ) then | ||
ISSN = sepc .. " " .. externallinkid({label="ISSN",link="International Standard Serial Number",prefix="//www.worldcat.org/issn/",id=ISSN,encode=false}) else ISSN = "" end | ISSN = sepc .. " " .. externallinkid(frame, {label="ISSN",link="International Standard Serial Number",prefix="//www.worldcat.org/issn/",id=ISSN,encode=false}) else ISSN = "" end | ||
if ( JFM ~= nil and JFM ~="" ) then | if ( JFM ~= nil and JFM ~="" ) then | ||
JFM = sepc .." " .. externallinkid({label="JFM",link="Jahrbuch über die Fortschritte der Mathematik",prefix="http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:",id=JFM}) else JFM = "" end | JFM = sepc .." " .. externallinkid(frame, {label="JFM",link="Jahrbuch über die Fortschritte der Mathematik",prefix="http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:",id=JFM}) else JFM = "" end | ||
if ( JSTOR ~= nil and JSTOR ~="") then | if ( JSTOR ~= nil and JSTOR ~="") then | ||
JSTOR = sepc .." " .. externallinkid({label="JSTOR",link="JSTOR",prefix="http://www.jstor.org/stable/",id=JSTOR}) else JSTOR = "" end | JSTOR = sepc .." " .. externallinkid(frame, {label="JSTOR",link="JSTOR",prefix="http://www.jstor.org/stable/",id=JSTOR}) else JSTOR = "" end | ||
if ( LCCN ~= nil and LCCN ~="" ) then | if ( LCCN ~= nil and LCCN ~="" ) then | ||
LCCN = sepc .." " .. externallinkid({label="LCCN",link="Library of Congress Control Number",prefix="http://lccn.loc.gov/",id=LCCN,encode=false}) else LCCN = "" end | LCCN = sepc .." " .. externallinkid(frame, {label="LCCN",link="Library of Congress Control Number",prefix="http://lccn.loc.gov/",id=LCCN,encode=false}) else LCCN = "" end | ||
if ( MR ~= nil and MR ~="" ) then | if ( MR ~= nil and MR ~="" ) then | ||
MR = sepc .." " .. externallinkid({label="MR",link="Mathematical Reviews",prefix="http://www.ams.org/mathscinet-getitem?mr=",id=MR}) else MR = "" end | MR = sepc .." " .. externallinkid(frame, {label="MR",link="Mathematical Reviews",prefix="http://www.ams.org/mathscinet-getitem?mr=",id=MR}) else MR = "" end | ||
if ( OCLC ~= nil and OCLC ~="") then | if ( OCLC ~= nil and OCLC ~="") then | ||
OCLC = sepc .." " .. externallinkid({label="OCLC",link="OCLC",prefix="//www.worldcat.org/oclc/",id=OCLC}) else OCLC = "" end | OCLC = sepc .." " .. externallinkid(frame, {label="OCLC",link="OCLC",prefix="//www.worldcat.org/oclc/",id=OCLC}) else OCLC = "" end | ||
if ( OL ~= nil and OL ~="") then | if ( OL ~= nil and OL ~="") then | ||
OL = sepc .." " .. openlibrary(OL) else OL = "" end | OL = sepc .." " .. openlibrary(frame, OL) else OL = "" end | ||
if ( OSTI ~= nil and OSTI ~="") then | if ( OSTI ~= nil and OSTI ~="") then | ||
OSTI = sepc .." " .. externallinkid({label="OSTI",link="Office of Scientific and Technical Information",prefix="http://www.osti.gov/energycitations/product.biblio.jsp?osti_id=",id=OSTI}) else OSTI = "" end | OSTI = sepc .." " .. externallinkid(frame, {label="OSTI",link="Office of Scientific and Technical Information",prefix="http://www.osti.gov/energycitations/product.biblio.jsp?osti_id=",id=OSTI}) else OSTI = "" end | ||
if ( PMC ~= nil and PMC ~="") then | if ( PMC ~= nil and PMC ~="") then | ||
PMC = sepc .." " .. externallinkid({label="PMC",link="PubMed Central",prefix="//www.ncbi.nlm.nih.gov/pmc/articles/PMC",suffix=" ",id=PMC}) else PMC = "" end | PMC = sepc .." " .. externallinkid(frame, {label="PMC",link="PubMed Central",prefix="//www.ncbi.nlm.nih.gov/pmc/articles/PMC",suffix=" ",id=PMC}) else PMC = "" end | ||
if ( PMID ~= nil and PMID ~="") then | if ( PMID ~= nil and PMID ~="") then | ||
PMID = sepc .." " .. externallinkid({label="PMID",link="PubMed Identifier",prefix="//www.ncbi.nlm.nih.gov/pubmed/",id=PMID,encode=false}) else PMID = "" end | PMID = sepc .." " .. externallinkid(frame, {label="PMID",link="PubMed Identifier",prefix="//www.ncbi.nlm.nih.gov/pubmed/",id=PMID,encode=false}) else PMID = "" end | ||
if ( RFC ~= nil and RFC ~="") then | if ( RFC ~= nil and RFC ~="") then | ||
RFC = sepc .." " .. externallinkid({label="RFC",link="Request for Comments",prefix="//tools.ietf.org/html/rfc",id=RFC,encode=false}) else RFC = "" end | RFC = sepc .." " .. externallinkid(frame, {label="RFC",link="Request for Comments",prefix="//tools.ietf.org/html/rfc",id=RFC,encode=false}) else RFC = "" end | ||
if ( SSRN ~= nil and SSRN ~="") then | if ( SSRN ~= nil and SSRN ~="") then | ||
SSRN = sepc .." " .. externallinkid({label="SSRN",link="Social Science Research Network",prefix="http://ssrn.com/abstract=",id=SSRN}) else SSRN = "" end | SSRN = sepc .." " .. externallinkid(frame, {label="SSRN",link="Social Science Research Network",prefix="http://ssrn.com/abstract=",id=SSRN}) else SSRN = "" end | ||
if ( URL ~= nil and URL ~="") then | if ( URL ~= nil and URL ~="") then | ||
URL = " " .. url(URL) | URL = " " .. url(frame, URL) | ||
else | else | ||
URL = "" | URL = "" | ||
end | end | ||
if ( ZBL ~= nil and ZBL ~="") then | if ( ZBL ~= nil and ZBL ~="") then | ||
ZBL = sepc .." " .. externallinkid({label="Zbl",link="Zentralblatt MATH",prefix="http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:",id=ZBL}) else ZBL = "" end | ZBL = sepc .." " .. externallinkid(frame, {label="Zbl",link="Zentralblatt MATH",prefix="http://www.zentralblatt-math.org/zmath/en/search/?format=complete&q=an:",id=ZBL}) else ZBL = "" end | ||
if ( Quote and Quote ~="" ) then | if ( Quote and Quote ~="" ) then | ||
if Quote:sub(1,1) == '"' and Quote:sub(-1,-1) == '"' then | if Quote:sub(1,1) == '"' and Quote:sub(-1,-1) == '"' then | ||
Line 1,104: | Line 1,050: | ||
end | end | ||
text = | text = z.mw.text.tag({name="span", contents=text, params=args}) | ||
local empty_span = | local empty_span = z.mw.text.tag( {name="span", contents=" ", params={style="display: none;"}} ); | ||
-- Note: Using display: none on then COinS span breaks some clients. | -- Note: Using display: none on then COinS span breaks some clients. | ||
local OCinS = | local OCinS = z.mw.text.tag({name="span", contents=empty_span, params={class="Z3988",title=OCinStitle }}) | ||
return text .. OCinS | return text .. OCinS | ||
Line 1,120: | Line 1,066: | ||
if ( page ~= nil ) then | if ( page ~= nil ) then | ||
local contents = ":" .. page | local contents = ":" .. page | ||
p = | p = z.mw.text.tag({name="sup",contents=contents,params={class="reference",style="white-space:nowrap;"}}) | ||
end | end | ||
return | return z.mw.text.tag({name="ref",contents="",params={name=name,group=group}}, frame) .. p | ||
end | end | ||
Line 1,153: | Line 1,099: | ||
params.style = params.style .. " " .. z.wikitext.columnwidthstyle(width) | params.style = params.style .. " " .. z.wikitext.columnwidthstyle(width) | ||
end | end | ||
local references = | local references = z.mw.text.tag({name="references",contents=contents,params={group=group}}, frame) | ||
return | return z.mw.text.tag({name="div",contents=references,params=params}) | ||
end | end | ||
Line 1,209: | Line 1,155: | ||
local pframe = frame:getParent() | local pframe = frame:getParent() | ||
local id = pframe.args.id or pframe.args[1] or "" | local id = pframe.args.id or pframe.args[1] or "" | ||
return doi(id) | return doi(frame, id) | ||
end | end | ||
Line 1,216: | Line 1,162: | ||
local pframe = frame:getParent() | local pframe = frame:getParent() | ||
local Name = pframe.args[1] or "" | local Name = pframe.args[1] or "" | ||
return hideinprint("[[International Standard Serial Number|ISSN]] [http://www.worldcat.org/search?fq=x0:jrnl&q=n2:" .. Name .. " " .. Name .. "]") | return hideinprint(frame, "[[International Standard Serial Number|ISSN]] [http://www.worldcat.org/search?fq=x0:jrnl&q=n2:" .. Name .. " " .. Name .. "]") | ||
end | end | ||
Line 1,239: | Line 1,185: | ||
args[k] = v; | args[k] = v; | ||
end | end | ||
return citation0(frame, args) | |||
return citation0( | |||
end | end | ||
Line 1,253: | Line 1,193: | ||
local content = crossref(frame, pframe.args) | local content = crossref(frame, pframe.args) | ||
local args = { name = refid(pframe.args) } | local args = { name = refid(pframe.args) } | ||
return | return z.mw.text.tag({name = "ref", contents = content, params = args}, frame) | ||
end | end | ||
Line 1,287: | Line 1,227: | ||
params.class="reference" | params.class="reference" | ||
if ( args.noid == nil or args.noid == "" ) then params.id = "ref_" .. P1 .. P3 end | if ( args.noid == nil or args.noid == "" ) then params.id = "ref_" .. P1 .. P3 end | ||
return | return z.mw.text.tag({name="sup",contents=contents,params=params}) | ||
end | end | ||
Line 1,300: | Line 1,240: | ||
local contents | local contents | ||
if arrow ~= "" then | if arrow ~= "" then | ||
local sup_arrow = | local sup_arrow = z.mw.text.tag({name="sup",contents=arrow,params={}}) | ||
contents = "[[#ref_" .. id .. arrow .. "|<b>" .. sup_arrow .. "</b>]]" .. postscript | contents = "[[#ref_" .. id .. arrow .. "|<b>" .. sup_arrow .. "</b>]]" .. postscript | ||
if "none" == arrow then arrow = "^" end -- Change this AFTER using it in the ID parameter and the contents. | if "none" == arrow then arrow = "^" end -- Change this AFTER using it in the ID parameter and the contents. | ||
Line 1,310: | Line 1,250: | ||
params.id = mw.uri.anchorEncode("endnote_" .. id .. arrow) | params.id = mw.uri.anchorEncode("endnote_" .. id .. arrow) | ||
end | end | ||
return | return z.mw.text.tag({name="span",contents=contents,params=params}) | ||
end | end | ||
Line 1,342: | Line 1,282: | ||
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself | local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself | ||
local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template | local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template | ||
return | return z.mw.text.tag({name="ref",contents=(args[1] or ""),params={name=args.name,group=config.default_group}}, frame) | ||
end | end | ||