Module:Documentation: Difference between revisions

add functions for rendering start box links and for making the start box link data
(create new function to separate html rendering in the start box)
(add functions for rendering start box links and for making the start box link data)
Line 225:
return title.text
end
end
 
function envFuncs.docTitle()
local title = env.title
local docname = args[1] -- Other docname, if fed.
local docspace = env.docspace
local templatePage = env.templatePage
local docpage
if docname then
docpage = docname
else
local namespace = docspace or title.nsText
local pagename = templatePage or title.text
docpage = namespace .. ':' .. pagename .. '/' .. message('docSubpage', 'string')
end
return mw.title.new(docpage)
end
 
Line 381 ⟶ 397:
 
return tostring(sbox)
end
 
function p.makeStartBoxLinksData(args, env)
local data = {}
-- Get title objects.
local titleSuccess, title = env:grab('title')
if titleSuccess then
data.title = title
else
return err(title)
end
local docTitleSuccess, docTitle = env:grab('docTitle')
if docTitleSuccess then
data.docTitle = docTitle
else
return err(docTitle)
end
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('viewLinkDisplay', 'string')
data.editLinkDisplay = message('editLinkDisplay', 'string')
data.historyLinkDisplay = message('historyLinkDisplay', 'string')
data.purgeLinkDisplay = message('purgeLinkDisplay', 'string')
-- Create link if /doc doesn't exist.
local preload = args[message('preloadArg', 'string')]
if not preload then
if env.subjectSpace == 6 then -- File namespace
preload = message('fileDocpagePreload', 'string')
else
preload = message('docpagePreload', 'string')
end
end
data.preload = preload
data.createLinkDisplay = message('createLinkDisplay', 'string')
return data
end
 
function p.renderStartBoxLinks(data)
-- Render the [view][edit][history][purge] or [create] links.
local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docpage, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = ret:gsub('%[', '[') -- Replace square brackets with HTML entities.
ret = ret:gsub('%]', ']')
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
lspan.wikitext(makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay))
end
end
 
Anonymous user