<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ATransclude_DYK</id>
	<title>Module:Transclude DYK - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ATransclude_DYK"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Transclude_DYK&amp;action=history"/>
	<updated>2026-05-07T13:46:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Transclude_DYK&amp;diff=147321&amp;oldid=prev</id>
		<title>imported&gt;Certes: For use in portals which display randomly selected &quot;Did You Know?&quot; entries</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Transclude_DYK&amp;diff=147321&amp;oldid=prev"/>
		<updated>2018-07-25T16:07:18Z</updated>

		<summary type="html">&lt;p&gt;For use in portals which display randomly selected &amp;quot;Did You Know?&amp;quot; entries&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Transclude randomly selected &amp;quot;Did you know?&amp;quot; entries&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	-- args = { 1,2,... = page names, paragraphs = list e.g. &amp;quot;1,3-5&amp;quot;, files = list, more = text}&lt;br /&gt;
	local args = {} -- args[k] = frame.args[k] or frame:getParent().args[k] for all k in either (numeric or not)&lt;br /&gt;
	for k, v in pairs(frame:getParent().args) do args[k] = v end&lt;br /&gt;
	for k, v in pairs(frame.args) do args[k] = v end -- args from a Lua call have priority over parent args from template&lt;br /&gt;
&lt;br /&gt;
	-- Read the input page&lt;br /&gt;
	local page = args[1] or error(&amp;quot;No page name given&amp;quot;)&lt;br /&gt;
	local title = mw.title.new(page) or error(&amp;quot;Missing input page &amp;quot; .. page)&lt;br /&gt;
	local text = title:getContent() or error(&amp;quot;No content for page &amp;quot; .. page)&lt;br /&gt;
&lt;br /&gt;
	-- Limit to the DYK section if present&lt;br /&gt;
	local sectionstart = mw.ustring.find(text, &amp;quot;\n==&amp;#039;&amp;#039;Did you know?&amp;#039;&amp;#039; articles==&amp;quot;, 1, true)&lt;br /&gt;
	if sectionstart then&lt;br /&gt;
		local sectionend = mw.ustring.find(text, &amp;quot;\n==&amp;quot;, sectionstart + 1, true) or -1&lt;br /&gt;
		text = mw.ustring.sub(text, sectionstart, sectionend)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Parse the entries&lt;br /&gt;
	entries = {}&lt;br /&gt;
	for entry in mw.ustring.gmatch(text, &amp;quot;\n%*[.…%s]*([^\n]+)&amp;quot;) do&lt;br /&gt;
		if not mw.ustring.find(entry, &amp;quot;article&amp;#039;s talk page missing blurb&amp;quot;, 1, true) then&lt;br /&gt;
			table.insert(entries, entry)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Swap some random entries into the first n positions&lt;br /&gt;
	local n = math.min(#entries, args.count or 10) -- the number of entries to produce&lt;br /&gt;
	math.randomseed(os.time())&lt;br /&gt;
	for i = 1, n do&lt;br /&gt;
		j = math.random(i, #entries)&lt;br /&gt;
		entries[i], entries[j] = &amp;quot;*... &amp;quot; .. entries[j], entries[i]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Return the first n entries&lt;br /&gt;
	text = table.concat(entries, &amp;quot;\n&amp;quot;, 1, n)&lt;br /&gt;
	return frame:preprocess(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Certes</name></author>
	</entry>
</feed>