<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ASorted_plain_list</id>
	<title>Module:Sorted plain list - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ASorted_plain_list"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Sorted_plain_list&amp;action=history"/>
	<updated>2026-07-10T08:25:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Sorted_plain_list&amp;diff=479509&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Sorted_plain_list&amp;diff=479509&amp;oldid=prev"/>
		<updated>2021-07-16T06:05:23Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module generates a sorted plain list&lt;br /&gt;
-- It was created as a modification of [[Module:Sort]]&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local lang = mw.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local function transformstring(s)&lt;br /&gt;
	local a = mw.text.trim(s)&lt;br /&gt;
	a = mw.ustring.gsub(a, '%[%[[^%[%]&amp;lt;&amp;gt;|][^%[%]&amp;lt;&amp;gt;|]*|([^%[%]&amp;lt;&amp;gt;|][^%[%]&amp;lt;&amp;gt;|]*)%]%]', '%1')&lt;br /&gt;
	a = mw.ustring.gsub(a, '%[%[([^%[%]&amp;lt;&amp;gt;|][^%[%]&amp;lt;&amp;gt;|]*)%]%]', '%1')&lt;br /&gt;
	a = mw.ustring.gsub(a, '[%s%‑]', 'AA' )&lt;br /&gt;
	a = mw.ustring.gsub(a, '([%D])([%d])$', '%10%2')&lt;br /&gt;
	return a&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This function was copied/modified from [[Module:Wikidata]]&lt;br /&gt;
local function getValue(frame, propertyID)&lt;br /&gt;
	local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
	local claims&lt;br /&gt;
	if entity and entity.claims then&lt;br /&gt;
		claims = entity.claims[propertyID]&lt;br /&gt;
	end&lt;br /&gt;
	if claims then&lt;br /&gt;
		-- if wiki-linked value output as link if possible&lt;br /&gt;
		if (claims[1] and claims[1].mainsnak.snaktype == &amp;quot;value&amp;quot; and claims[1].mainsnak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot;) then&lt;br /&gt;
			local out = {}&lt;br /&gt;
			for k, v in pairs(claims) do&lt;br /&gt;
				local sitelink = mw.wikibase.sitelink(&amp;quot;Q&amp;quot; .. v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
				local label = mw.wikibase.label(&amp;quot;Q&amp;quot; .. v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
				if label == nil then label = &amp;quot;Q&amp;quot; .. v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;] end&lt;br /&gt;
				&lt;br /&gt;
				if sitelink then&lt;br /&gt;
					out[#out + 1] = &amp;quot;[[&amp;quot; .. sitelink .. &amp;quot;|&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
				else&lt;br /&gt;
					out[#out + 1] = label&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return out&lt;br /&gt;
		else&lt;br /&gt;
			-- just return best values&lt;br /&gt;
			return { entity:formatPropertyValues(propertyID).value }&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return {&amp;quot;&amp;quot;}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.asc(frame)&lt;br /&gt;
    local items&lt;br /&gt;
    if frame.args.propertyID then&lt;br /&gt;
    	items = getValue(frame, frame.args.propertyID)&lt;br /&gt;
    else&lt;br /&gt;
    	items = mw.text.split( frame.args[1] or '', frame.args[2] or ',', true)&lt;br /&gt;
    end&lt;br /&gt;
    if (frame.args['type'] or '') == 'number' then&lt;br /&gt;
    	table.sort( items, function (a, b) return ((lang:parseFormattedNumber(a) or math.huge) &amp;lt; (lang:parseFormattedNumber(b) or math.huge)) end )&lt;br /&gt;
    else&lt;br /&gt;
	    table.sort( items, function (a, b) return mw.text.trim(a) &amp;lt; mw.text.trim(b) end )&lt;br /&gt;
    end&lt;br /&gt;
    return '&amp;lt;div class=&amp;quot;plainlist&amp;quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;' .. table.concat( items, &amp;quot;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;quot; ) .. '&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.desc(frame)&lt;br /&gt;
    if frame.args.propertyID then&lt;br /&gt;
    	items = getValue(frame, frame.args.propertyID)&lt;br /&gt;
    else&lt;br /&gt;
    	items = mw.text.split( frame.args[1] or '', frame.args[2] or ',', true)&lt;br /&gt;
    end&lt;br /&gt;
    if (frame.args['type'] or '') == 'number' then&lt;br /&gt;
    	table.sort( items, function (a, b) return ((lang:parseFormattedNumber(a) or math.huge) &amp;gt; (lang:parseFormattedNumber(b) or math.huge)) end )&lt;br /&gt;
    else&lt;br /&gt;
    	table.sort( items, function (a, b) return mw.text.trim(a) &amp;gt; mw.text.trim(b) end )&lt;br /&gt;
    end&lt;br /&gt;
    return '&amp;lt;div class=&amp;quot;plainlist&amp;quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;' .. table.concat( items, &amp;quot;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;quot; ) .. '&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ascd(frame)&lt;br /&gt;
    local items&lt;br /&gt;
    if frame.args.propertyID then&lt;br /&gt;
    	items = getValue(frame, frame.args.propertyID)&lt;br /&gt;
    else&lt;br /&gt;
    	items = mw.text.split( frame.args[1] or '', frame.args[2] or ',', true)&lt;br /&gt;
    end&lt;br /&gt;
    if (frame.args['type'] or '') == 'number' then&lt;br /&gt;
    	table.sort( items, function (a, b) return ((lang:parseFormattedNumber(a) or math.huge) &amp;lt; (lang:parseFormattedNumber(b) or math.huge)) end )&lt;br /&gt;
    else&lt;br /&gt;
	    table.sort( items, function (a, b) return ( transformstring(a) &amp;lt; transformstring(b) ) end)&lt;br /&gt;
    end&lt;br /&gt;
    return '&amp;lt;div class=&amp;quot;plainlist&amp;quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;' .. table.concat( items, &amp;quot;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;quot; ) .. '&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.descd(frame)&lt;br /&gt;
    local items&lt;br /&gt;
    if frame.args.propertyID then&lt;br /&gt;
    	items = getValue(frame, frame.args.propertyID)&lt;br /&gt;
    else&lt;br /&gt;
    	items = mw.text.split( frame.args[1] or '', frame.args[2] or ',', true)&lt;br /&gt;
    end&lt;br /&gt;
    if (frame.args['type'] or '') == 'number' then&lt;br /&gt;
    	table.sort( items, function (a, b) return ((lang:parseFormattedNumber(a) or math.huge) &amp;gt; (lang:parseFormattedNumber(b) or math.huge)) end )&lt;br /&gt;
    else&lt;br /&gt;
	    table.sort( items, function (a, b) return ( transformstring(a) &amp;gt; transformstring(b) ) end)&lt;br /&gt;
    end&lt;br /&gt;
    return '&amp;lt;div class=&amp;quot;plainlist&amp;quot;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;' .. table.concat( items, &amp;quot;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;quot; ) .. '&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>