<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikiProject_quality_assessment</id>
	<title>Module:WikiProject quality assessment - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikiProject_quality_assessment"/>
	<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:WikiProject_quality_assessment&amp;action=history"/>
	<updated>2026-04-09T13:39:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Module:WikiProject_quality_assessment&amp;diff=36957&amp;oldid=prev</id>
		<title>imported&gt;MSGJ: add noprefix option</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Module:WikiProject_quality_assessment&amp;diff=36957&amp;oldid=prev"/>
		<updated>2023-03-28T22:37:30Z</updated>

		<summary type="html">&lt;p&gt;add noprefix option&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;
local p = {}&lt;br /&gt;
local class_mask = require(&amp;#039;Module:Class mask&amp;#039;)._main&lt;br /&gt;
&lt;br /&gt;
local readarticleclass = function() -- look for article_class in page content&lt;br /&gt;
	local get_parameter_value = require(&amp;quot;Module:Template parameter value&amp;quot;).getValue&lt;br /&gt;
	local WPBSredirects = {&amp;#039;WikiProject banner shell&amp;#039;,&amp;#039;WikiProject banner shell/sandbox&amp;#039;,&amp;#039;Bannershell&amp;#039;,&amp;#039;Multiple wikiprojects&amp;#039;,&amp;#039;Project shell&amp;#039;,&amp;#039;Scope shell&amp;#039;,&amp;#039;WPB&amp;#039;,&amp;#039;WPBS&amp;#039;,&amp;#039;WPBannerShell&amp;#039;,&amp;#039;WP Banner Shell&amp;#039;,&amp;#039;WP banner shell&amp;#039;,&amp;#039;WikiProjectBannerShell&amp;#039;,&amp;#039;WikiProjectBanner Shell&amp;#039;,&amp;#039;WikiProjectBanners&amp;#039;,&amp;#039;WikiProject BannerShell&amp;#039;,&amp;#039;WikiProject Banner Shell&amp;#039;,&amp;#039;WikiProject Banners&amp;#039;,&amp;#039;WikiProject Banners Shell&amp;#039;,&amp;#039;WikiProject Shell&amp;#039;,&amp;#039;WikiProject banner&amp;#039;,&amp;#039;WikiProject banner shell/redirect&amp;#039;,&amp;#039;WikiProject shell&amp;#039;,&amp;#039;WikiprojectBannerShell&amp;#039;,&amp;#039;Wikiproject banner holder&amp;#039;,&amp;#039;Wikiproject banner shell&amp;#039;,&amp;#039;Wikiprojectbanners&amp;#039;,&amp;#039;Wikiprojectbannershell&amp;#039;,&amp;#039;Wpb&amp;#039;,&amp;#039;Wpbannershell&amp;#039;,&amp;#039;Wpbsgclass&amp;#039;}&lt;br /&gt;
	local target = mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
	local success, result = get_parameter_value(target, WPBSredirects, &amp;quot;class&amp;quot;, {ignoreSubtemplates=true})&lt;br /&gt;
	return success and result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local getclass = function(args)&lt;br /&gt;
	local class = &amp;#039;¬&amp;#039;&lt;br /&gt;
	if args.QUALITY_SCALE == &amp;#039;inline&amp;#039; then&lt;br /&gt;
		class = args.class&lt;br /&gt;
	elseif args.QUALITY_SCALE == &amp;#039;subpage&amp;#039; then&lt;br /&gt;
		if mw.title.new(args.BANNER_NAME..&amp;#039;/class&amp;#039;).exists then&lt;br /&gt;
			local frame = mw.getCurrentFrame()&lt;br /&gt;
			class = frame:expandTemplate{title = args.BANNER_NAME..&amp;#039;/class&amp;#039;, args = args}&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		args.FQS = (args.QUALITY_SCALE == &amp;#039;extended&amp;#039;) and &amp;#039;yes&amp;#039; or &amp;#039;no&amp;#039;&lt;br /&gt;
		args[1] = args.class&lt;br /&gt;
		class = class_mask(args)&lt;br /&gt;
	end&lt;br /&gt;
	return class&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local isarticle = function(class)&lt;br /&gt;
	local nonarticleclasses = {&amp;#039;Template&amp;#039;, &amp;#039;File&amp;#039;, &amp;#039;Category&amp;#039;, &amp;#039;Disambig&amp;#039;, &amp;#039;Redirect&amp;#039;, &amp;#039;Portal&amp;#039;, &amp;#039;Project&amp;#039;, &amp;#039;Draft&amp;#039;, &amp;#039;Book&amp;#039;, &amp;#039;FM&amp;#039;} -- these classes will not be identified as conflicting with NA-class&lt;br /&gt;
	local article = true&lt;br /&gt;
	for _,v in ipairs(nonarticleclasses) do&lt;br /&gt;
		if class==v then -- class matches one of the non-article classes&lt;br /&gt;
			article = false&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return article&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.main = function(frame)&lt;br /&gt;
	local local_class = getclass(frame.args)&lt;br /&gt;
	local prefix, class = &amp;#039;Y&amp;#039;, local_class&lt;br /&gt;
	if local_class==&amp;#039;¬&amp;#039; then&lt;br /&gt;
		class = &amp;#039;¬&amp;#039;&lt;br /&gt;
	elseif frame.args.QUALITY_CRITERIA ~= &amp;#039;custom&amp;#039; then -- project uses standard scale and will inherit article class if needed&lt;br /&gt;
		local article_class = frame.args.article_class or readarticleclass() -- checks parameter for testing purposes&lt;br /&gt;
		article_class = article_class and class_mask{article_class, ignorenamespace=frame.args.ignorenamespace} or &amp;#039;¬&amp;#039; -- normalise if not false&lt;br /&gt;
		if (article_class == &amp;#039;¬&amp;#039;) or (article_class == &amp;#039;&amp;#039;) then -- article class does not exist, display quality class in project banner as normal&lt;br /&gt;
		elseif (local_class == &amp;#039;&amp;#039;) or (local_class == article_class) then -- article class and local class are the same, or local is not specified&lt;br /&gt;
			prefix = &amp;#039;H&amp;#039; -- hide quality class in project banner&lt;br /&gt;
			class = article_class&lt;br /&gt;
		elseif (article_class == &amp;#039;NA&amp;#039;) and not isarticle(local_class) then -- article class and local class are both non-article classes&lt;br /&gt;
			prefix = &amp;#039;H&amp;#039;&lt;br /&gt;
		else -- article class exists and differs from local class&lt;br /&gt;
			prefix = &amp;#039;X&amp;#039; -- X will indicate to meta banner that classes are different, so trigger a tracking category&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return (frame.args.noprefix and &amp;#039;&amp;#039; or prefix) .. class&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;MSGJ</name></author>
	</entry>
</feed>