Content deleted Content added
url-access as alias to url-access1 |
+templatestyles |
||
(15 intermediate revisions by 5 users not shown) | |||
Line 5:
|article-name=: Optional alternative text to be displayed for |article-link= link in front of catalog link.
If not specified, |article-link= is used for display as well. If both parameters are not specified, the prefix is omitted completely.
|article-
|link-prefix=: Optional prefix portion of url to external catalog item(s).
|link-
|item-prefix=: Optional text displayed in front of each external link (omitted, if not defined)
|item-
|list-separator=: Optional alternative separator displayed between list items (default: ", ", if not specified). Whitespace must be encoded.
|list-leadout=: Optional alternative leadout text displayed between the last two list items (f.e. "and", "or", "as well as", etc., default is the |list-separator= or ", ".)
|leadout-
This gets added in front of the last list item instead of the default whitespace which is added without this parameter.
This may be necessary if |list-separator= is used not only to define the list separator but also parts of the item prefix
Line 19:
new parameters that support access icons:
|allowed_icons= – comma-separated list of keywords: free, limited, registration, subscription, none, all (default;
the icons specified in the following parameters are checked agains the list in |allowed-icons=; not in the list? not displayed
|url-access-all= – applies specified icon to all items in the list; accepted keywords: free, limited, registration, subscription;
Line 26:
]]
require('
local getArgs = require ('Module:Arguments').getArgs;
local lock_icons = { --icon classes are defined in Module:Citation/CS1/styles.css
['free'] = {'
['registration'] = {'
['limited'] = {'
['subscription'] = {'
}
Line 53 ⟶ 51:
Makes a wikilinked or plain text label from arguments; when both link and display text is provided, makes a
wikilink in the form [[L|D]]; if only link is provided, makes a wikilinked label in the form [[L]]; if only display
is provided, makes a plain-text label; if neither are provided makes a label from
]=]
local function make_label (link, display,
local label = '';
if is_set (link) then
Line 70 ⟶ 68:
if is_set (label) then
return table.concat ({label,
else
return
end
end
--[[--------------------------< I C O N _ I N D E X _ G E T >--------------------------------------------------
Line 85 ⟶ 84:
<comma-separated list of allowed icons> may be any of the keywords: free, limited, registration, subscription, none, all
keyword 'all' is default condition;
keyword 'none' for use with identifiers where icons are inappropriate (isbn, issn, oclc)
Line 92 ⟶ 91:
|allow_icons=free for most identifiers;
|allow_icons=none for isbn, issn, oclc, etc
|url-access= is alias of |url-access1=
]]
Line 97 ⟶ 98:
local function icon_index_get (args, k)
local icon;
local param_name = (1 == k and is_set (args['url-access']) and 'url-access') or table.concat ({'url-access', k});
if is_set (args['url-access-all']) and lock_icons[args['url-access-all']] then -- if set and valid
Line 104 ⟶ 105:
elseif is_set (args[param_name]) and lock_icons[args[param_name]] then -- if set and valid
icon = args[param_name]; -- tentatively
else
return nil; -- neither |url-access-all= nor |url-accessn= set so return nil
Line 127:
]]
local function
local args = getArgs (frame);
local out_text = '';
Line 135:
local label;
local
local link_prefix = args['link-prefix'] or '';
local
local item_prefix = args['item-prefix'] or '';
local
local list_separator = args['list-separator'] or ', ';
local
local list_leadout;
Line 148:
if is_set (args['list-leadout']) then
list_leadout = table.concat ({
mw.ustring.
leadout_suffix,
});
else
Line 156 ⟶ 155:
end
label = make_label (args['article-link'], args['article-name'],
for k, item in ipairs (args) do -- for each of the positional parameters
Line 165 ⟶ 164:
link_prefix, -- url prefix
mw.uri.encode (item), -- item is part of url
' ', -- required space between url and label
item_prefix, -- label prefix
item, -- item as label
']' -- close ext link markup
});
Line 176 ⟶ 175:
if icon_index then
item = table.concat ({ -- add access icon markup to this item
'<span class="
lock_icons[icon_index][2], -- for an appropriate tool tip
'">', -- close the opening span tag
item,
'</span
▲ lock_icons[icon_index], -- the appropriate icon
▲ '</span>', -- and close the spans
});
end
Line 188:
item_prefix, -- label prefix
item, -- item as label
});
end
Line 195:
end
out_text = frame:callParserFunction('#tag', {'templatestyles', '', src=table.concat({
'Module:Citation/CS1',
mw.ustring.match(frame:getTitle(), '/sandbox$') or '',
'/styles.css',
})});
if is_set (args['list-leadout']) then
out_text = table.concat ({out_text, label, mw.text.listToText (result, list_separator, list_leadout)});
else
out_text = table.concat ({out_text, label, table.concat (result, list_separator)});
end
end --is_set (args[1])
return out_text
end
return
|