| Line 5: |
Line 5: |
| | require('Module:No globals') | | require('Module:No globals') |
| | local getArgs | | local getArgs |
| − | local categoryHandler = require('Module:Category handler')._main
| |
| | local yesno = require('Module:Yesno') | | local yesno = require('Module:Yesno') |
| | | | |
| Line 109: |
Line 108: |
| | obj.categories = {} | | obj.categories = {} |
| | obj.classes = {} | | obj.classes = {} |
| | + | -- For lazy loading of [[Module:Category handler]]. |
| | + | obj.hasCategories = false |
| | | | |
| | return setmetatable(obj, MessageBox) | | return setmetatable(obj, MessageBox) |
| Line 122: |
Line 123: |
| | cat = string.format('[[Category:%s]]', cat) | | cat = string.format('[[Category:%s]]', cat) |
| | end | | end |
| | + | self.hasCategories = true |
| | self.categories[ns] = self.categories[ns] or {} | | self.categories[ns] = self.categories[ns] or {} |
| | table.insert(self.categories[ns], cat) | | table.insert(self.categories[ns], cat) |
| Line 429: |
Line 431: |
| | | | |
| | function MessageBox:renderCategories() | | function MessageBox:renderCategories() |
| | + | if not self.hasCategories then |
| | + | -- No categories added, no need to pass them to Category handler so, |
| | + | -- if it was invoked, it would return the empty string. |
| | + | -- So we shortcut and return the empty string. |
| | + | return "" |
| | + | end |
| | -- Convert category tables to strings and pass them through | | -- Convert category tables to strings and pass them through |
| | -- [[Module:Category handler]]. | | -- [[Module:Category handler]]. |
| − | return categoryHandler{ | + | return require('Module:Category handler')._main{ |
| | main = table.concat(self.categories[0] or {}), | | main = table.concat(self.categories[0] or {}), |
| | template = table.concat(self.categories[10] or {}), | | template = table.concat(self.categories[10] or {}), |