Moduł:Dokumentacja: Różnice pomiędzy wersjami
Z PUTwiki
Przejdź do nawigacjiPrzejdź do wyszukiwania
link przeskakujący tylko nad ~długą zawartością |
m 1 wersja |
||
(Brak różnic)
| |||
Aktualna wersja na dzień 21:56, 7 gru 2025
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Dokumentacja/opis
local p = {}
local priv = {} -- private functions scope
-- expose private for easy testing/debugging
p.__priv = priv
--[==[
Pasek linków dla dokumentacji.
Pierwotny kod:
<span class="plainlinks" id="doc_editlinks" style="margin-left: 1em; font-size: 90%;">{{
#ifexist: {{{1|{{Dokumentacja/nazwa}}}}}
|<!-- /opis istnieje -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}}} zobacz]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=edit}} edytuj]] [[{{fullurl:{{{1|{{Dokumentacja/nazwa}}}}}|action=history}} historia]] [{{odśwież|odśwież}}]
|<!-- nie ma /opis -->{{
#if: {{{zawartość|}}}
|[{{odśwież|odśwież}}]
|<!-- no content -->[[{{fullurl:{{{1|{{Dokumentacja/nazwa }}}}}|action=edit&preload={{{preload opisu|Szablon:Dokumentacja/preload}}}}} stwórz]] [{{odśwież|odśwież}}]
}}
}}</span>
]==]
function p.linksBar(frame)
local args = frame:getParent().args
local currentTitle = mw.title.getCurrentTitle()
local descFullTitle = args[1] or priv.getDocTitle(currentTitle)
local preloadParam = args['preload opisu'] or 'Szablon:Dokumentacja/preload'
local titleObj = mw.title.new(descFullTitle)
local links = ''
local refreshAnchor = string.format(
'[[%s odśwież]]',
priv.refreshLink(currentTitle)
)
-- /opis istnieje
if titleObj and titleObj.exists then
links = string.format(
'[[%s zobacz]] [[%s edytuj]] [[%s historia]] • %s • [[#doc_footer_info|§ podstrony]]',
titleObj:fullUrl(),
titleObj:fullUrl('action=edit'),
titleObj:fullUrl('action=history'),
refreshAnchor
)
-- nie ma /opis
else
local zawartosc = args['zawartość'] or ''
if zawartosc ~= '' then
links = refreshAnchor
-- link przeskakujący nad _długą_ zawartością
if #zawartosc > 600 then
links = links .. ' • [[#doc_footer_info|§ podstrony]]'
end
else
local editLink = mw.uri.fullUrl(descFullTitle, { action = 'edit', preload = preloadParam })
links = string.format('[[%s stwórz]] • %s', tostring(editLink), refreshAnchor)
end
end
-- może więcej barów?
return string.format('<span class="plainlinks doc-linksbar doc-baselinks" id="doc_editlinks">%s</span>', links)
end
--[==[
Prawie zawsze powinno zwracać: Prefix:Bieżąca strona/podstrona/opis.
Dawne {{s|Dokumentacja/nazwa}}.
Test:
mw.log( p.__priv.getDocTitle(mw.title.new("Szablon:Test")) )
mw.log( p.__priv.getDocTitle(mw.title.getCurrentTitle()) )
]==]
function priv.getDocTitle(currentTitle)
local subpage = currentTitle.subpageText
-- /test -> ../opis
if subpage == 'test' then
return currentTitle.subjectNsText .. ':' .. currentTitle.baseText .. '/opis'
else
return currentTitle.subjectNsText .. ':' .. currentTitle.text .. '/opis'
end
end
--[==[
Link do odświeżania strony.
Test:
-- (powinno dać ten sam link)
mw.log( p.__priv.refreshLink(mw.title.new("Szablon:Test")) )
mw.log( p.__priv.refreshLink(mw.title.new("Szablon:Test/opis")) )
]==]
function priv.refreshLink(currentTitle)
local subpage = currentTitle.subpageText
local mainPage = currentTitle
if subpage == 'opis' then
mainPage = currentTitle.basePageTitle
end
return mainPage:fullUrl('action=purge')
end
return p