このモジュールについての説明文ページを モジュール:kana-DEFAULTSORT/doc に作成できます

local export = {}

export.kana_DEFAULTSORT = function(frame)
	local arg = frame:getParent().args[1]
	local pagename = mw.title.getCurrentTitle().text
	local kana = arg or pagename
	local tracking_categories_raw = {}
	local non_kana_pattern = "[^ぁ-ゖァ-ヺーヽヾ%ー・=?!。、]"

	if frame:getParent().args[2] then
		error('引数 "2" は無効です。このテンプレートで指定できる読みは一つだけです。')
	end

	if arg == pagename then
		-- TODO: モジュール:debugのtrackを使いたいが、仕様がちゃんと決まっていないので一時的に自前の処理を記述する。
		pcall(frame.expandTemplate, frame, { title = 'kana-DEFAULTSORTで冗長な引数を渡しているページ' })
	end

	if kana ~= pagename and not mw.ustring.find(pagename, non_kana_pattern) then
		table.insert(tracking_categories_raw, "[[カテゴリ:テンプレート:kana-DEFAULTSORTでタイトルと異なる読み仮名を指定しているページ]]")
	end

	if mw.ustring.find(kana, non_kana_pattern) then
		table.insert(tracking_categories_raw, "[[カテゴリ:テンプレート:kana-DEFAULTSORTで仮名以外を渡しているページ]]")
	end

	local sort = require("モジュール:ja").jsort(kana)
	return frame:callParserFunction("デフォルトソート", sort ) .. table.concat(tracking_categories_raw)
end

return export