Module:T-Process: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
Line 9: Line 9:
local ConfigRepository = require('Module:ConfigRepository')
local ConfigRepository = require('Module:ConfigRepository')
local LinkParser = require('Module:LinkParser')
local LinkParser = require('Module:LinkParser')
local ElementNavigation = require('Module:ElementNavigation')


-- Blueprint default: Module-level cache for lazy-loaded modules
-- Blueprint default: Module-level cache for lazy-loaded modules
Line 39: Line 38:
         -- Core rendering features
         -- Core rendering features
         title = true,
         title = true,
        logo = true,
         fields = true,
         fields = true,
        socialMedia = true,
          
          
         -- Semantic features
         -- Semantic features
Line 49: Line 46:
         -- Error handling
         -- Error handling
         errorReporting = true
         errorReporting = true
    },
   
    -- Block sequence (without navigation)
    blockSequence = {
        'title',
        'logo',
        'fields',
        'socialMedia',
        'semanticProperties',
        'categories',
        'errors'
     }
     }
})
})
Line 65: Line 51:
-- Initialize the standard configuration
-- Initialize the standard configuration
Blueprint.initializeConfig(template)
Blueprint.initializeConfig(template)
-- Register navigation block
template._blocks = template._blocks or {}
template._blocks.navigation = {
    feature = 'navigation',
    render = ElementNavigation.createBlock()
}
-- Add navigation configuration
template.config.navigation = {
    autoDetect = false,  -- Disable automatic detection - navigation is always editor-specified
    prevField = "has_previous",
    nextField = "has_next",
    prevLabel = "← Previous Process",
    nextLabel = "Next Process →"
}


-- Add title block configuration to use the correct CSS class
-- Add title block configuration to use the correct CSS class
Line 94: Line 64:
Blueprint.addPreprocessor(template, 'setPageIdField')
Blueprint.addPreprocessor(template, 'setPageIdField')
Blueprint.addPreprocessor(template, 'deriveRegionFromCountry')
Blueprint.addPreprocessor(template, 'deriveRegionFromCountry')
-- Helper function to extract plain text from wiki links for semantic properties
local TemplateHelpers = require('Module:TemplateHelpers')
local function extractSemanticValue(fieldValue, fieldName)
    return TemplateHelpers.extractSemanticValue(fieldValue, fieldName, errorContext)
end


-- Preprocessor for semantic property extraction
-- Preprocessor for semantic property extraction
Blueprint.addPreprocessor(template, function(template, args)
Blueprint.addPreprocessor(template, function(template, args)
    local TemplateHelpers = getTemplateHelpers()
   
     -- Extract plain text from wiki links for has_previous and has_next
     -- Extract plain text from wiki links for has_previous and has_next
     args._semanticPrecededBy = TemplateHelpers.extractSemanticValue(args.has_previous, "Preceded By", errorContext)
     args._semanticPrecededBy = extractSemanticValue(args.has_previous, "Preceded By")
     args._semanticSucceededBy = TemplateHelpers.extractSemanticValue(args.has_next, "Succeeded By", errorContext)
     args._semanticSucceededBy = extractSemanticValue(args.has_next, "Succeeded By")
      
      
     return args
     return args