Module:category tree/poscatboiler/data/words by number of syllables


This data submodule defines part of Wiktionary's category structure.

For an introduction to the poscatboiler system and a description of how to add or modify categories, see Module:category tree/poscatboiler/data/documentation.


local labels = {}
local raw_categories = {}
local handlers = {}



-----------------------------------------------------------------------------
--                                                                         --
--                                  LABELS                                 --
--                                                                         --
-----------------------------------------------------------------------------


labels["words by number of syllables"] = {
	description = "{{{langname}}} words categorized by number of syllables.",
	umbrella_parents = "Terms by lexical property subcategories by language",
	parents = {"terms by phonemic property"},
}



-----------------------------------------------------------------------------
--                                                                         --
--                              RAW CATEGORIES                             --
--                                                                         --
-----------------------------------------------------------------------------


raw_categories["Words by number of syllables subcategories by language"] = {
	description = "Umbrella categories covering topics related to words categorized by their number of syllables.",
	additional = "{{{umbrella_meta_msg}}}",
	parents = {
		"Umbrella metacategories",
		{name = "words by number of syllables", is_label = true, sort = " "},
	},
}



-----------------------------------------------------------------------------
--                                                                         --
--                                 HANDLERS                                --
--                                                                         --
-----------------------------------------------------------------------------


table.insert(handlers, function(data)
	local number = data.label:match("^([1-9][0-9]*)%-syllable words$")
	if number then
		return {
			description =
				number == "1" and "{{{langname}}} words that are pronounced in " .. number .. " syllable." or
					"{{{langname}}} words that are pronounced in " .. number .. " syllables.",
			breadcrumb = number,
			umbrella_parents = "Words by number of syllables subcategories by language",
			parents = {{
				name = "words by number of syllables",
				sort = ("#%02d"):format(number),
			}},
		}
	end
end)

return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}