Module:ConfigRepository: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
 
(2 intermediate revisions by the same user not shown)
Line 50: Line 50:


     -- IMPORTANT: "Logo" is processed automatically whenever it is called as a key by the Template Blueprint, in such a way that it does not need to be declared for any templates in this repository
     -- IMPORTANT: "Logo" is processed automatically whenever it is called as a key by the Template Blueprint, in such a way that it does not need to be declared for any templates in this repository
}
-- Global field patterns used in multiple templates
p.fieldPatterns = {
    itemDelimiter = ";%s*",  -- Matches semicolon followed by optional whitespace
    websitePattern = "^https?://[^%s]+"  -- Matches URLs starting with http:// or https://
}
-- Global field processors for reusable field definitions
p.fieldProcessors = {
    website = {
        list = { mode = 'bullet_custom', bulletChar = '🔗', postProcess = 'website' }
    }
}
}


Line 211: Line 224:
             -- Patterns for event navigation detection
             -- Patterns for event navigation detection
             seriesNumber = "^([%w%s]+)%s+(%d+)$",    -- e.g., "ICANN 76"
             seriesNumber = "^([%w%s]+)%s+(%d+)$",    -- e.g., "ICANN 76"
             seriesYear = "^([%w%s]+)%s+(%d%d%d%d)$"  -- e.g., "IGF 2023"
             seriesYear = "^([%w%s]+)%s+(%d%d%d%d)$", -- e.g., "IGF 2023"
            itemDelimiter = p.fieldPatterns.itemDelimiter,
            websitePattern = p.fieldPatterns.websitePattern
         },
         },
         fields = {
         fields = {
Line 222: Line 237:
             {key="venue", label="Venue"},
             {key="venue", label="Venue"},
             {key="organizer", label="Organizer"},
             {key="organizer", label="Organizer"},
             {keys={"website", "url"}, label=p.fieldLabels.website},
             {keys={"website", "url"}, label=p.fieldLabels.website, list=p.fieldProcessors.website.list},
         },
         },
         semantics = {
         semantics = {
Line 444: Line 459:
                     category = "Standards development organization"}
                     category = "Standards development organization"}
             }
             }
        },
        patterns = {
            itemDelimiter = p.fieldPatterns.itemDelimiter,
            websitePattern = p.fieldPatterns.websitePattern
         },
         },
         fields = {
         fields = {
Line 455: Line 474:
             {key="ownership", label="Ownership", autoWikiLink=true},
             {key="ownership", label="Ownership", autoWikiLink=true},
             {key="subsidiaries", label="Subsidiaries", list="bullet"},
             {key="subsidiaries", label="Subsidiaries", list="bullet"},
             {keys={"website", "url"}, label=p.fieldLabels.website},
             {keys={"website", "url"}, label=p.fieldLabels.website, list=p.fieldProcessors.website.list},
         },
         },
         semantics = {
         semantics = {
Line 494: Line 513:
             -- REVIEW Community (Property:Has governance community)
             -- REVIEW Community (Property:Has governance community)
             community = {
             community = {
                 -- Brpad
                 -- Broad definition
                 {canonical = "Internet Governance Community",
                 {canonical = "Internet Governance Community",
                     synonyms = {"ig", "internet governance"},
                     synonyms = {"ig", "internet governance"},
Line 541: Line 560:
         fields = {
         fields = {
             {key="community", label="Community"},
             {key="community", label="Community"},
             {key="icann_group", label="ICANN group", autoWikiLink=true}, -- (Property:Has ICANN affiliation)
             {key="icann_group", label="ICANN SO/AC", autoWikiLink=true}, -- (Property:Has ICANN affiliation)
             {key="organization", label="Organization", autoWikiLink=true, list="bullet"},
             {key="organization", label="Organization", autoWikiLink=true, list="bullet"},
             {key="region", label=p.fieldLabels.region, list="bullet"},
             {key="region", label=p.fieldLabels.region, list="bullet"},
             {key="country", label=p.fieldLabels.country},
             {key="country", label=p.fieldLabels.country},
             {key="languages", label="Languages", list = { mode = 'bullet_custom', bulletChar = '🗣️', postProcess = 'language' }},
             {key="languages", label="Languages", list = { mode = 'bullet_custom', bulletChar = '🗣️', postProcess = 'language' }},
             {key="website", label=p.fieldLabels.website, list = { mode = 'bullet_custom', bulletChar = '🔗', postProcess = 'website' }},
             {key="website", label=p.fieldLabels.website, list=p.fieldProcessors.website.list},
             {key="soi", label="SOI"},
             {key="soi", label="SOI"},
             {key="userbox", label="Achievements"},
             {key="userbox", label="Achievements"},
Line 552: Line 571:
         },
         },
         patterns = {
         patterns = {
             itemDelimiter = ";%s*", -- Matches semicolon followed by optional whitespace; used for splitting multi-value fields
             itemDelimiter = p.fieldPatterns.itemDelimiter,
             websitePattern = "^https?://[^%s]+"  -- Matches URLs starting with http:// or https:// followed by non-whitespace chars
             websitePattern = p.fieldPatterns.websitePattern
         },
         },
         semantics = {
         semantics = {
Line 743: Line 762:
         patterns = {
         patterns = {
             tldExtension="%.([^%.]+)$",  -- Extracts the TLD part after the last dot (e.g., "com" from "example.com")
             tldExtension="%.([^%.]+)$",  -- Extracts the TLD part after the last dot (e.g., "com" from "example.com")
             countryDelimiter="([^;]+)"  -- Matches any sequence of characters not containing semicolons; used for country parsing
             countryDelimiter="([^;]+)",   -- Matches any sequence of characters not containing semicolons; used for country parsing
            itemDelimiter = p.fieldPatterns.itemDelimiter,
            websitePattern = p.fieldPatterns.websitePattern
         },
         },
         fields = {
         fields = {
Line 758: Line 779:
             {key="ascii", label="Punycode"},
             {key="ascii", label="Punycode"},
             {key="registry", label="Registry", autoWikiLink=true},
             {key="registry", label="Registry", autoWikiLink=true},
             {key="website", label=p.fieldLabels.website},
             {key="website", label=p.fieldLabels.website, list=p.fieldProcessors.website.list},
             {keys={"RVC", "PIC"}, label = "PIC/RVC"}
             {keys={"RVC", "PIC"}, label = "PIC/RVC"}
         },
         },