Module:Citation/CS1/Utilities: Difference between revisions
no edit summary
m>Trappist the monk No edit summary |
m>Trappist the monk No edit summary |
||
Line 213: | Line 213: | ||
table.insert( z.maintenance_cats, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table | table.insert( z.maintenance_cats, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table | ||
end | end | ||
end | |||
--[[--------------------------< S A F E _ F O R _ I T A L I C S >---------------------------------------------- | |||
Protects a string that will be wrapped in wiki italic markup '' ... '' | |||
Note: We cannot use <i> for italics, as the expected behavior for italics specified by ''...'' in the title is that | |||
they will be inverted (i.e. unitalicized) in the resulting references. In addition, <i> and '' tend to interact | |||
poorly under Mediawiki's HTML tidy. | |||
]] | |||
local function safe_for_italics( str ) | |||
if not is_set(str) then | |||
return str; | |||
else | |||
if str:sub(1,1) == "'" then str = "<span />" .. str; end | |||
if str:sub(-1,-1) == "'" then str = str .. "<span />"; end | |||
-- Remove newlines as they break italics. | |||
return str:gsub( '\n', ' ' ); | |||
end | |||
end | |||
--[[--------------------------< W R A P _ S T Y L E >---------------------------------------------------------- | |||
Applies styling to various parameters. Supplied string is wrapped using a message_list configuration taking one | |||
argument; protects italic styled parameters. Additional text taken from citation_config.presentation - the reason | |||
this function is similar to but separate from wrap_msg(). | |||
]] | |||
local function wrap_style (key, str) | |||
if not is_set( str ) then | |||
return ""; | |||
elseif in_array( key, { 'italic-title', 'trans-italic-title' } ) then | |||
str = safe_for_italics( str ); | |||
end | |||
return substitute( cfg.presentation[key], {str} ); | |||
end | end | ||
Line 224: | Line 266: | ||
select_one = select_one, | select_one = select_one, | ||
add_maint_cat = add_maint_cat, | add_maint_cat = add_maint_cat, | ||
wrap_style = wrap_style; | |||
safe_for_italics = safe_for_italics; | |||
z = z, | z = z, | ||
} | } |