Module:T-Event: Difference between revisions
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode Tag: Manual revert |
||
| (21 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
--Module:T-Event | --Module:T-Event | ||
-- | -- Makes use of ICANNWiki's "Template Blueprint Framework" to render the "Event" template | ||
local p = {} | local p = {} | ||
| Line 6: | Line 6: | ||
-- ==================== Required modules ==================== | -- ==================== Required modules ==================== | ||
local Blueprint = require('Module:LuaTemplateBlueprint') | local Blueprint = require('Module:LuaTemplateBlueprint') | ||
local TemplateHelpers = require('Module:TemplateHelpers') | |||
local ErrorHandling = require('Module:ErrorHandling') | local ErrorHandling = require('Module:ErrorHandling') | ||
local LinkParser = require('Module:LinkParser') | local LinkParser = require('Module:LinkParser') | ||
-- ==================== Helper Functions ==================== | -- ==================== Helper Functions ==================== | ||
-- Blueprint default: Create error context for the module | -- Blueprint default: Create error context for the module | ||
local errorContext = ErrorHandling.createContext("T-Event") | local errorContext = ErrorHandling.createContext("T-Event") | ||
-- ================================================================================ | -- ================================================================================ | ||
| Line 45: | Line 23: | ||
logo = true, | logo = true, | ||
fields = true, | fields = true, | ||
navigation = true, | |||
socialMedia = true, | socialMedia = true, | ||
semanticProperties = true, | semanticProperties = true, | ||
categories = true, | categories = true, | ||
errorReporting | errorReporting = true | ||
} | } | ||
}) | }) | ||
| Line 55: | Line 33: | ||
-- Blueprint default: Initialize standard configuration | -- Blueprint default: Initialize standard configuration | ||
Blueprint.initializeConfig(template) | Blueprint.initializeConfig(template) | ||
-- CONTROL THE VISUAL ORDER THAT EACH ASPECT IS RENDERED IN | |||
template.config.blockSequence = { | |||
'title', | |||
'logo', | |||
'fields', | |||
'navigation', | |||
'socialMedia', | |||
'semanticProperties', | |||
'categories', | |||
'errors' | |||
} | |||
-- ================================================================================ | -- ================================================================================ | ||
-- | -- TEMPLATE-SPECIFIC CALLS AND CODE | ||
-- ELEMENT:NAVIGATION | |||
local ElementNavigation = ErrorHandling.safeRequire(errorContext, 'Module:ElementNavigation', false) | |||
if ElementNavigation and ElementNavigation.elementName then | |||
Blueprint.registerElement(ElementNavigation.elementName, ElementNavigation) | |||
Blueprint.addElementToTemplate(template, 'navigation') | |||
template.config.navigation = { | |||
prevLabel = "← %s", | |||
nextLabel = "%s →", | |||
classPrefix = "event" | |||
} | |||
end | |||
-- CUSTOM DATE-RANGE PROCESSOR | |||
-- In cases where there are both "start" and "ending" dates to the event, we join them into a single "Date" field, with the dates separated by a "–" (En dash) | |||
template.config.processors = template.config.processors or {} | template.config.processors = template.config.processors or {} | ||
template.config.processors.start = function(value, args, template) | template.config.processors.start = function(value, args, template) | ||
| Line 71: | Line 76: | ||
end | end | ||
-- | -- ================================================================================ | ||
-- ==================== Preprocessors ==================== | -- ==================== Preprocessors ==================== | ||
-- Basic preprocessors | -- Basic preprocessors | ||
Blueprint.addPreprocessor(template, 'setPageIdField') | Blueprint.addPreprocessor(template, 'setPageIdField') -- Blueprint default | ||
Blueprint.addPreprocessor(template, 'deriveRegionFromCountry') | Blueprint.addPreprocessor(template, 'deriveRegionFromCountry') -- Possible blueprint default | ||
-- ==================== Main Render Function ==================== | -- ==================== Main Render Function ==================== | ||
-- Blueprint default: Render | |||
function p.render(frame) | function p.render(frame) | ||
return ErrorHandling.protect( | return ErrorHandling.protect( | ||