<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="vi">
	<id>https://bktt.vn/index.php?action=history&amp;feed=atom&amp;title=M%C3%B4_%C4%91un%3ASortkey</id>
	<title>Mô đun:Sortkey - Lịch sử thay đổi</title>
	<link rel="self" type="application/atom+xml" href="https://bktt.vn/index.php?action=history&amp;feed=atom&amp;title=M%C3%B4_%C4%91un%3ASortkey"/>
	<link rel="alternate" type="text/html" href="https://bktt.vn/index.php?title=M%C3%B4_%C4%91un:Sortkey&amp;action=history"/>
	<updated>2026-05-11T10:56:40Z</updated>
	<subtitle>Lịch sử thay đổi của trang này ở wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://bktt.vn/index.php?title=M%C3%B4_%C4%91un:Sortkey&amp;diff=4058&amp;oldid=prev</id>
		<title>Taitamtinh: Tạo trang mới với nội dung “local getArgs = require('Module:Arguments').getArgs  local p = {}  function p._encode(sortkey) 	-- Protect against sortkey nesting. 	-- Example: {{sort|{{…”</title>
		<link rel="alternate" type="text/html" href="https://bktt.vn/index.php?title=M%C3%B4_%C4%91un:Sortkey&amp;diff=4058&amp;oldid=prev"/>
		<updated>2020-10-24T12:57:30Z</updated>

		<summary type="html">&lt;p&gt;Tạo trang mới với nội dung “local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs  local p = {}  function p._encode(sortkey) 	-- Protect against sortkey nesting. 	-- Example: {{sort|{{…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Trang mới&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._encode(sortkey)&lt;br /&gt;
	-- Protect against sortkey nesting.&lt;br /&gt;
	-- Example: {{sort|{{dts|2013|07|07}}|{{dts|1990|12|01}}}}&lt;br /&gt;
	if string.find(sortkey, &amp;quot;sortkey&amp;quot;) or string.find(sortkey, &amp;quot;data-sort-value&amp;quot;) then&lt;br /&gt;
		return &amp;quot;&amp;quot;;&lt;br /&gt;
	end&lt;br /&gt;
    return mw.text.encode(sortkey)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.encode(frame)&lt;br /&gt;
	local args = getArgs(frame);&lt;br /&gt;
	return p._encode(args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function valid_number(num)&lt;br /&gt;
	-- Return true if num is a valid number.&lt;br /&gt;
	-- In Scribunto (different from some standard Lua), when expressed as a string,&lt;br /&gt;
	-- overflow or other problems are indicated with text like &amp;quot;inf&amp;quot; or &amp;quot;nan&amp;quot;&lt;br /&gt;
	-- which are regarded as invalid here (each contains &amp;quot;n&amp;quot;).&lt;br /&gt;
	if type(num) == 'number' and tostring(num):find('n', 1, true) == nil then&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._sortKeyForNumber(value)&lt;br /&gt;
	if not valid_number(value) then&lt;br /&gt;
		if value &amp;lt; 0 then&lt;br /&gt;
			sortkey = '1000000000000000000'&lt;br /&gt;
		else&lt;br /&gt;
			sortkey = '9000000000000000000'&lt;br /&gt;
		end&lt;br /&gt;
	elseif value == 0 then&lt;br /&gt;
		sortkey = '5000000000000000000'&lt;br /&gt;
	else&lt;br /&gt;
		local mag = math.floor(math.log10(math.abs(value)) + 1e-14)&lt;br /&gt;
		local prefix&lt;br /&gt;
		if value &amp;gt; 0 then&lt;br /&gt;
			prefix = 7000 + mag&lt;br /&gt;
		else&lt;br /&gt;
			prefix = 2999 - mag&lt;br /&gt;
			value = value + 10^(mag+1)&lt;br /&gt;
		end&lt;br /&gt;
		sortkey = string.format('%d', prefix) .. string.format('%015.0f', math.floor(value * 10^(math.min(28,14-mag))))&lt;br /&gt;
	end&lt;br /&gt;
	return sortkey;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sortKeyForNumber(frame)&lt;br /&gt;
	local args = getArgs(frame);&lt;br /&gt;
	return p._sortKeyForNumber(args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Taitamtinh</name></author>
	</entry>
</feed>