Modul:Hatnote: Unterschied zwischen den Versionen

split out the namespace-detecting part of formatLink to a new function
(split out the namespace-detecting part of formatLink to a new function)
Zeile 35: Zeile 35:
-- Helper functions
-- Helper functions
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
local function findNamespaceId(link)
-- 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 or if
-- the link has been escaped with the colon trick.
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end


local function formatLink(link, display)
local function formatLink(link, display)
Zeile 45: Zeile 59:
-- colon trick for categories and files, as otherwise category links
-- colon trick for categories and files, as otherwise category links
-- categorise the page and file links display the file.
-- categorise the page and file links display the file.
local namespace = link:match('^(.-):')
local namespace = findNamespaceId(link)
local colon
local colon
if namespace and mw.site.namespaces[namespace] then
if namespace == 6 or namespace == 14 then
-- The start of the link is a valid namespace name; check whether it is
colon = ':'
-- a category or a file.
else
local nsid = mw.site.namespaces[namespace].id
colon = ''
if nsid == 6 or nsid == 14 then
colon = ':'
end
end
end
colon = colon or ''


-- Find the display value.
-- Find the display value.
Anonymer Benutzer