Changes

Jump to: navigation, search

Module:Citation/CS1/COinS

325 bytes removed, 02:52, 16 April 2016
Synch from sandbox;
--[[
History of changes since last sync: 2015-12-12
 
2016-01-10: bug fix; article title (aka chapter) missing from cite conference book metadata;
 
]]
local coins = {};
local function coins_replace_math_stripmarker (value)
local stripmarker = cfg.stripmarkers['\127UNIQ%-%-math%-[%a%d']+%-QINU\127'; -- math stripmarker pattern
local rendering = value:match (stripmarker); -- is there a math stripmarker
Cleanup parameter values for the metadata by removing or replacing invisible characters and certain html entities.
2015-12-10: there is a bug in mw.text.unstripNoWiki (). It replaced replaces math stripmarkers with the appropriate content
when it shouldn't. See https://phabricator.wikimedia.org/T121085 and Wikipedia_talk:Lua#stripmarkers_and_mw.text.unstripNoWiki.28.29
local function coins_cleanup (value)
local replaced = true; -- default state to get the do loop running
while replaced do -- loop until all math stripmarkers replaced
replaced, value = coins_replace_math_stripmarker (value); -- replace math stripmarker with text representation of the equation
end
value = value:gsub (cfg.stripmarkers['\127UNIQ%-%-math%-[%a%d']+%-QINU\127', "MATH RENDER ERROR"); -- one or more couldn't be replaced; insert vague error message
value = mw.text.unstripNoWiki (value); -- replace nowiki stripmarkers with their content
value = value:gsub ('<span class="nowrap" style="padding%-left:0%.1em;">&#39;(s?)</span>', "'s%1"); -- replace {{'s}} template with simple apostrophe-s value = value:gsub ('&zwj;\226\128\138\039\226\128\139', "'"); -- replace or {{'s}} with simple apostrophe value = value:gsub ('\226\128\138\039\226\128\139', "'"); -- replace {{'}} with simple or apostrophe (as of 2015-12-11)s
value = value:gsub ('&nbsp;', ' '); -- replace &nbsp; entity with plain space
value = value:gsub ('\226\128\138', ' '); -- replace hair space with plain space
value = value:gsub ('&zwj;', ''); -- remove &zwj; entities
value = value:gsub ('[\226\128\141\226\128\139\194\173]', '') -- remove zero-width joiner, zero-width space, soft hyphen value = value:gsub ('[\194\173\009\010\013]', ' '); -- replace soft hyphen, horizontal tab, line feed, carriage return with plain space
return value;
end
elseif 'conference' == class then -- cite conference when Periodical not set
OCinSoutput["rft.genre"] = "conference";
OCinSoutput["rft.atitle"] = data.Chapter; -- conference paper as chapter in proceedings (book) elseif in_array (class, {'book', 'citation', 'conference', 'encyclopaedia', 'interview', 'map'}) then
if is_set (data.Chapter) then
OCinSoutput["rft.genre"] = "bookitem";
Anonymous user

Navigation menu