Module:Other Pennsylvania townships

local mOtheruses = require('Module:Other uses')
local mArguments = require('Module:Arguments')
local mHatnote = require('Module:Hatnote')
local mTableTools = require('Module:TableTools')
local p = {}

function p.otherPennsylvaniaTownships(frame)
	local title = mw.title.getCurrentTitle().text
	local options = {
		otherText = 'Pennsylvania townships with similar names',
		title = title
	}
	local pages = mArguments.getArgs(frame)
	if not pages[1] then
		local splits = {
			--paren wrappers force single values from string.gsub
			(string.gsub(title, ',.-,', ',', 1)),
			(string.gsub(title, ',.*', ''))
		}
		for k, v in pairs(splits) do
			local disambig = mHatnote.disambiguate(v) 
			if mw.title.makeTitle(0, disambig).exists then
				pages[1] = disambig
				break
			end
		end
	end
	pages = mTableTools.compressSparseArray(pages)
	return mOtheruses._otheruses(pages, options)
end

return p