Difference between revisions 21306637 and 21306638 on frwiktionary

local export = {}

local m_submodule = nil

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
	if mw.title.getCurrentTitle().nsText == "Template" then
(contracted; show full)
-- Show a short description text for the category.
function show_description(current)
	return (current:getDescription() or "") .. mw.getCurrentFrame():expandTemplate{title = "edit", args = {current:getDataModule(), type = "sup"}}
end

-- Show a list of child categories.
function show_children(
info)
	local current = m_submodule.new(info)
	current)
	local children = current:getChildren()
	
	if not children then
		return nil
	end
	
	local children_list = {}
	
	for _, child in ipairs(children) do
		local child_basic = child:getCategoryName()
		local child_page = mw.title.new("Category:" .. child_basic)
		
		if child_page.exists then
			local child_description = child:getDescription()
			table.insert(children_list, "* [[:Category:" .. child_basic .. "]]: " .. child_description)
		end
	end
	
	return table.concat(children_list, "\n")
end

-- Show a table of contents with links to each letter in the language's script.
function show_TOC(info)
	local code = info.code or "en"
	local num_pages = mw.site.stats.pagesInCategory(mw.title.getCurrentTitle().text, "pages")
	
	-- No need for a TOC if all entry names can fit on one page.
	if num_pages > 200 then
		-- This category is very large, see if there is an "extended" version of the TOC.
		if num_pages > 2500 then
			local TOC_template_extended = mw.title.new("Template:" .. code .. "-categoryTOC/full")
			
			if TOC_template_extended.exists then
				return mw.getCurrentFrame():expandTemplate{title = TOC_template_extended.text, args = {}}
			end
		end
		
		local TOC_template = mw.title.new("Template:" .. code .. "-categoryTOC")
		
		if TOC_template.exists then
			return mw.getCurrentFrame():expandTemplate{title = TOC_template.text, args = {}}
		end
	end
	
	return nil
end

return export