<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://commons.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ACat_see_also</id>
	<title>Module:Cat see also - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://commons.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ACat_see_also"/>
	<link rel="alternate" type="text/html" href="https://commons.islamical.org/w/index.php?title=Module:Cat_see_also&amp;action=history"/>
	<updated>2026-09-26T19:28:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://commons.islamical.org/w/index.php?title=Module:Cat_see_also&amp;diff=3949&amp;oldid=prev</id>
		<title>Shahroudi: Created page with &quot;require(&#039;strict&#039;)  local p = {}  function p.main(frame) 	local args = require(&#039;Module:Arguments&#039;).getArgs(frame) 	frame = mw.getCurrentFrame() 	-- Special case when the first given link in parameter is &#039;V&#039;, and 	-- the current page name starts by &#039;V&#039; or &#039;In&#039; 	if args[1] == &#039;V&#039; then 		local title = mw.title.getCurrentTitle().text 		local cwttb = mw.text.split( title, &#039;:&#039; ); 		if title:sub(1, 1) == &#039;V&#039; then 			args[1] = &#039;In&#039; .. mw.getContentLanguage():lcfirst(title) 		else...&quot;</title>
		<link rel="alternate" type="text/html" href="https://commons.islamical.org/w/index.php?title=Module:Cat_see_also&amp;diff=3949&amp;oldid=prev"/>
		<updated>2025-12-13T17:02:05Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;)  local p = {}  function p.main(frame) 	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame) 	frame = mw.getCurrentFrame() 	-- Special case when the first given link in parameter is &amp;#039;V&amp;#039;, and 	-- the current page name starts by &amp;#039;V&amp;#039; or &amp;#039;In&amp;#039; 	if args[1] == &amp;#039;V&amp;#039; then 		local title = mw.title.getCurrentTitle().text 		local cwttb = mw.text.split( title, &amp;#039;:&amp;#039; ); 		if title:sub(1, 1) == &amp;#039;V&amp;#039; then 			args[1] = &amp;#039;In&amp;#039; .. mw.getContentLanguage():lcfirst(title) 		else...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame)&lt;br /&gt;
	frame = mw.getCurrentFrame()&lt;br /&gt;
	-- Special case when the first given link in parameter is &amp;#039;V&amp;#039;, and&lt;br /&gt;
	-- the current page name starts by &amp;#039;V&amp;#039; or &amp;#039;In&amp;#039;&lt;br /&gt;
	if args[1] == &amp;#039;V&amp;#039; then&lt;br /&gt;
		local title = mw.title.getCurrentTitle().text&lt;br /&gt;
		local cwttb = mw.text.split( title, &amp;#039;:&amp;#039; );&lt;br /&gt;
		if title:sub(1, 1) == &amp;#039;V&amp;#039; then&lt;br /&gt;
			args[1] = &amp;#039;In&amp;#039; .. mw.getContentLanguage():lcfirst(title)&lt;br /&gt;
		elseif title:sub(1, 1) == &amp;#039;I&amp;#039; then&lt;br /&gt;
			args[1] = mw.getContentLanguage():ucfirst(title:sub(3))&lt;br /&gt;
		else&lt;br /&gt;
			args[1] = nil&lt;br /&gt;
		end&lt;br /&gt;
		local cwttc = cwttb [1]&lt;br /&gt;
		if mw.ustring.sub (cwttc, -5) == &amp;#039; code&amp;#039; then&lt;br /&gt;
			cwttc = mw.ustring.sub (cwttc, 1, #cwttc-5)&lt;br /&gt;
		end&lt;br /&gt;
		if args[9] ~= nil&lt;br /&gt;
			then args[&amp;#039;for&amp;#039;] = args[9]&lt;br /&gt;
		elseif  mw.ustring.sub (cwttb[1], 1, 22) == &amp;#039;Valid SVG created with&amp;#039;&lt;br /&gt;
			then args[&amp;#039;for&amp;#039;] = &amp;#039;[[Template:C&amp;#039; .. mw.ustring.sub (cwttc, 12) .. &amp;#039;|&amp;#039; .. mw.ustring.sub (cwttc, 24) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		elseif mw.ustring.sub (cwttb[1], 1, 24) == &amp;#039;Invalid SVG created with&amp;#039;&lt;br /&gt;
			then args[&amp;#039;for&amp;#039;] = &amp;#039;[[Template:C&amp;#039; .. mw.ustring.sub (cwttc, 14) .. &amp;#039;|&amp;#039; .. mw.ustring.sub (cwttc, 26) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- filter the list of links in parameters&lt;br /&gt;
	local links = {}&lt;br /&gt;
	local linkformat = &amp;#039;&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;[[:&amp;#039; .. (args.iw or args.SISTER or &amp;#039;&amp;#039;) .. &amp;#039;Category:%s|%s]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		-- discard HTML comments and opening or closing &amp;quot;nowiki&amp;quot; tags in values,&lt;br /&gt;
		-- then normalize and trim whitespaces&lt;br /&gt;
		v = v	:gsub(&amp;#039;&amp;lt;!%-%-.-%-%-&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;&amp;lt;nowiki *&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;&amp;lt;/nowiki *&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub(&amp;#039;&amp;lt;nowiki */&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			:gsub(&amp;#039;_&amp;#039;, &amp;#039; &amp;#039;):gsub(&amp;#039;%s+&amp;#039;, &amp;#039; &amp;#039;):gsub(&amp;#039;^%s*(.-)%s*$&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
		-- do not insert any link for empty values&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			local html = args[&amp;quot;h&amp;quot; .. tostring(i)]&lt;br /&gt;
			if html ~= nil and html ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				table.insert(links, linkformat:format(v, &amp;#039;&amp;lt;&amp;#039; .. html .. &amp;#039;&amp;gt;&amp;#039; .. v .. &amp;#039;&amp;lt;/&amp;#039; .. html .. &amp;#039;&amp;gt;&amp;#039;))&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(links, linkformat:format(v, v))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- do not return any box if the filtered list of links is now empty&lt;br /&gt;
	if #links == 0 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- find the localized template to format the box and message containing the list&lt;br /&gt;
	if not args.lang or not mw.language.isSupportedLanguage(args.lang) then&lt;br /&gt;
		-- use page language instead of user language on pages translated using the Translate extension&lt;br /&gt;
		if frame:callParserFunction(&amp;#039;#translation&amp;#039;, &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args.lang = frame:preprocess(&amp;#039;{{PAGELANGUAGE}}&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			args.lang = frame:callParserFunction(&amp;#039;Int&amp;#039;, &amp;#039;Lang&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local fallbacks = mw.language.getFallbacksFor(args.lang)&lt;br /&gt;
	table.insert(fallbacks, 1, args.lang)&lt;br /&gt;
	for _, lang in ipairs(fallbacks) do&lt;br /&gt;
		if mw.title.new(&amp;#039;Template:Cat see also/i18n/&amp;#039; .. lang).exists then&lt;br /&gt;
			args.lang = lang&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- prepare the formating of the list according to target language&lt;br /&gt;
	args.list = require(&amp;#039;Module:Linguistic&amp;#039;).conj(links, args.lang, &amp;#039;and&amp;#039;)&lt;br /&gt;
	args.length = #links&lt;br /&gt;
	-- format the box and its message continaing the list&lt;br /&gt;
	return frame:expandTemplate{ title = &amp;#039;Template:Cat see also/i18n/&amp;#039; .. args.lang, args = args }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Shahroudi</name></author>
	</entry>
</feed>