Modul:Související zpráva
Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:Související zpráva
-- @brief
-- Backend for {{Související zpráva}}
--
-- @author
-- [[meta:User:Danny B.]]
local _module = {}
----------------------------------------
local DateTime = require( "Module:DateTime" )
-- @brief
-- Generates the link to the related article preceded with its date.
--
-- @param
-- frame The current frame object
--
-- @return
-- PreprocessedWikitext Link to the related article preceded with its date
function _module.print( frame )
local output
local html = mw.html.create()
local title = mw.title.getCurrentTitle().text
local relatedArticleTitle = mw.text.trim( frame:getParent().args[1] or "#" )
local relatedArticleTitleObject
local relatedArticleContent
local datePrefix
local redirectedRelatedArticleCategory = "[[Kategorie:Monitoring:Zprávy odkazující na přesměrované související zprávy]]"
local missingDateCategory = "[[Kategorie:Monitoring:Zprávy odkazující na související zprávy bez data]]"
local missingBacklinkCategory = "[[Kategorie:Monitoring:Zprávy odkazující na související zprávy bez zpětného odkazu]]"
relatedArticleTitleObject = mw.title.new( relatedArticleTitle )
-- expensive++
if relatedArticleTitleObject.isRedirect then
-- expensive++
relatedArticleTitleObject = relatedArticleTitleObject.redirectTarget
-- expensive++
else
redirectedRelatedArticleCategory = nil
end
relatedArticleContent = relatedArticleTitleObject:getContent()
if relatedArticleContent ~= nil then
for relatedArticleContentPart in relatedArticleContent:gmatch( "%b{}" ) do
if relatedArticleContentPart:match( "%{%{Datum|.-%}%}" ) then
local relatedArticleTimestamp, relatedArticleYear, relatedArticleMonth, relatedArticleDay = relatedArticleContentPart:match( "%{%{Datum *| *((%d%d%d%d)%-(%d%d)%-(%d%d)).-%}%}" )
local relatedArticleDate = string.format( "%d. %s %d", relatedArticleDay, DateTime.months[tonumber( relatedArticleMonth )].name, relatedArticleYear )
local timeTag = mw.html.create( "time" )
:attr( "datetime", relatedArticleTimestamp )
:wikitext( relatedArticleDate )
:allDone()
datePrefix = string.format( "%s — ", tostring( timeTag ) )
missingDateCategory = nil
elseif relatedArticleContentPart:match( "%{%{Související zpráva|" .. title .. "%}%}" ) then
missingBacklinkCategory = nil
end
end
html = html
:wikitext( datePrefix )
:wikitext( string.format( "[[%s]]", relatedArticleTitle ) )
:wikitext( redirectedRelatedArticleCategory )
:wikitext( missingDateCategory )
:wikitext( missingBacklinkCategory )
:allDone()
end
output = frame:preprocess( tostring( html ) )
return output
end
----------------------------------------
return _module