386
edits
m>Mr. Stradivarius (tidy up the code now that we are adding colons to all the links) |
m (49 revisions imported from templatewiki:Module:Hatnote) |
||
(11 intermediate revisions by 7 users not shown) | |||
Line 28: | Line 28: | ||
-- Removes the initial colon from a string, if present. | -- Removes the initial colon from a string, if present. | ||
return s:match('^:?(.*)') | return s:match('^:?(.*)') | ||
end | |||
function p.findNamespaceId(link, removeColon) | |||
-- Finds the namespace id (namespace number) of a link or a pagename. This | |||
-- function will not work if the link is enclosed in double brackets. Colons | |||
-- are trimmed from the start of the link by default. To skip colon | |||
-- trimming, set the removeColon parameter to false. | |||
checkType('findNamespaceId', 1, link, 'string') | |||
checkType('findNamespaceId', 2, removeColon, 'boolean', true) | |||
if removeColon ~= false then | |||
link = removeInitialColon(link) | |||
end | |||
local namespace = link:match('^(.-):') | |||
if namespace then | |||
local nsTable = mw.site.namespaces[namespace] | |||
if nsTable then | |||
return nsTable.id | |||
end | |||
end | |||
return 0 | |||
end | end | ||
Line 55: | Line 75: | ||
end | end | ||
function p.makeWikitextError(msg, helpLink, addTrackingCategory) | function p.makeWikitextError(msg, helpLink, addTrackingCategory, title) | ||
-- Formats an error message to be returned to wikitext. If | -- Formats an error message to be returned to wikitext. If | ||
-- addTrackingCategory is not false after being returned from | -- addTrackingCategory is not false after being returned from | ||
Line 63: | Line 83: | ||
checkType('makeWikitextError', 2, helpLink, 'string', true) | checkType('makeWikitextError', 2, helpLink, 'string', true) | ||
yesno = require('Module:Yesno') | yesno = require('Module:Yesno') | ||
title = title or mw.title.getCurrentTitle() | |||
-- Make the help link text. | -- Make the help link text. | ||
local helpText | local helpText | ||
Line 89: | Line 109: | ||
category | category | ||
) | ) | ||
end | |||
function p.disambiguate(page, disambiguator) | |||
-- Formats a page title with a disambiguation parenthetical, | |||
-- i.e. "Example" → "Example (disambiguation)". | |||
checkType('disambiguate', 1, page, 'string') | |||
checkType('disambiguate', 2, disambiguator, 'string', true) | |||
disambiguator = disambiguator or 'disambiguation' | |||
return string.format('%s (%s)', page, disambiguator) | |||
end | end | ||
Line 133: | Line 162: | ||
local page, section = link:match('^(.-)#(.*)$') | local page, section = link:match('^(.-)#(.*)$') | ||
if page then | if page then | ||
display = page .. ' § ' .. section | display = page .. ' § ' .. section | ||
end | end | ||
end | end | ||
Line 139: | Line 168: | ||
-- Assemble the link. | -- Assemble the link. | ||
if display then | if display then | ||
return string.format('[[:%s|%s]]', link, display) | return string.format( | ||
'[[:%s|%s]]', | |||
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping | |||
display | |||
) | |||
else | else | ||
return string.format('[[:%s]]', link) | return string.format('[[:%s]]', link) | ||
Line 170: | Line 203: | ||
checkType('_hatnote', 1, s, 'string') | checkType('_hatnote', 1, s, 'string') | ||
checkType('_hatnote', 2, options, 'table', true) | checkType('_hatnote', 2, options, 'table', true) | ||
local classes = {'hatnote'} | options = options or {} | ||
local classes = {'hatnote', 'navigation-not-searchable'} | |||
local extraclasses = options.extraclasses | local extraclasses = options.extraclasses | ||
local selfref = options.selfref | local selfref = options.selfref | ||
Line 180: | Line 214: | ||
end | end | ||
return string.format( | return string.format( | ||
'<div class="%s">%s</div>', | '<div role="note" class="%s">%s</div>', | ||
table.concat(classes, ' '), | table.concat(classes, ' '), | ||
s | s |