<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://staging.twogpedia.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ANewsLanding%2FLatestMore</id>
	<title>Module:NewsLanding/LatestMore - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://staging.twogpedia.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ANewsLanding%2FLatestMore"/>
	<link rel="alternate" type="text/html" href="https://staging.twogpedia.com/index.php?title=Module:NewsLanding/LatestMore&amp;action=history"/>
	<updated>2026-05-10T02:24:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://staging.twogpedia.com/index.php?title=Module:NewsLanding/LatestMore&amp;diff=9257&amp;oldid=prev</id>
		<title>Couchor at 15:37, 12 February 2024</title>
		<link rel="alternate" type="text/html" href="https://staging.twogpedia.com/index.php?title=Module:NewsLanding/LatestMore&amp;diff=9257&amp;oldid=prev"/>
		<updated>2024-02-12T15:37:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:37, 12 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		hotItems:node(newsItem)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		hotItems:node(newsItem)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local split = string.find(page._pageName, &#039;/&#039;) and mw.text.split(page._pageName, &#039;/&#039;)[2] or &#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local tables = &amp;#039;Logos&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local tables = &amp;#039;Logos&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local fields = &amp;#039;_pageName, logoAll, logoDark, logoLight, iconAll, iconLight, iconDark&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local fields = &amp;#039;_pageName, logoAll, logoDark, logoLight, iconAll, iconLight, iconDark&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local cargoArgs = {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local cargoArgs = {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			where = &#039;_pageName = &quot;&#039; .. page._pageName .. &#039;&quot; OR _pageName= &quot;Companies/&#039; .&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. mw.text&lt;/del&gt;.split&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(page._pageName, &#039;/&#039;)[2] &lt;/del&gt;.. &#039;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			where = &#039;_pageName = &quot;&#039; .. page._pageName .. &#039;&quot; OR _pageName= &quot;Companies/&#039; .. split .. &#039;&quot;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local results = cargo.query(tables, fields, cargoArgs)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local results = cargo.query(tables, fields, cargoArgs)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb-wiki_:diff:1.41:old-9244:rev-9257:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Couchor</name></author>
	</entry>
	<entry>
		<id>https://staging.twogpedia.com/index.php?title=Module:NewsLanding/LatestMore&amp;diff=9244&amp;oldid=prev</id>
		<title>Couchor: Created page with &quot;local getArgs = require(&#039;Module:Arguments&#039;).getArgs local cargo = mw.ext.cargo  local p = {}  function p.main(frame) 	local args = getArgs(frame) 	local pages = {}   	local pattern = &quot;(%d%d%d%d%-%d%d%-%d%d %d%d:%d%d:%d%d) %[%[(.-)|(.-)%]%]&quot;  	for date, title in args.companies:gmatch(pattern) do 		table.insert(pages, {_pageName = title, date = date}) 	end 	 	local hotItems = mw.html.create(&#039;div&#039;):addClass(&#039;news-hot-items&#039;) 	local container = mw.html.create(&#039;div&#039;):addClass...&quot;</title>
		<link rel="alternate" type="text/html" href="https://staging.twogpedia.com/index.php?title=Module:NewsLanding/LatestMore&amp;diff=9244&amp;oldid=prev"/>
		<updated>2024-02-12T14:42:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local cargo = mw.ext.cargo  local p = {}  function p.main(frame) 	local args = getArgs(frame) 	local pages = {}   	local pattern = &amp;quot;(%d%d%d%d%-%d%d%-%d%d %d%d:%d%d:%d%d) %[%[(.-)|(.-)%]%]&amp;quot;  	for date, title in args.companies:gmatch(pattern) do 		table.insert(pages, {_pageName = title, date = date}) 	end 	 	local hotItems = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-hot-items&amp;#039;) 	local container = mw.html.create(&amp;#039;div&amp;#039;):addClass...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local cargo = mw.ext.cargo&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local pages = {}&lt;br /&gt;
 &lt;br /&gt;
	local pattern = &amp;quot;(%d%d%d%d%-%d%d%-%d%d %d%d:%d%d:%d%d) %[%[(.-)|(.-)%]%]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	for date, title in args.companies:gmatch(pattern) do&lt;br /&gt;
		table.insert(pages, {_pageName = title, date = date})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local hotItems = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-hot-items&amp;#039;)&lt;br /&gt;
	local container = mw.html.create(&amp;#039;div&amp;#039;):addClass(&amp;#039;news-hot&amp;#039;):node(mw.html.create(&amp;#039;h3&amp;#039;):addClass(&amp;#039;tc&amp;#039;):wikitext(&amp;#039;Latest Edited Pages&amp;#039;)):node(hotItems)&lt;br /&gt;
&lt;br /&gt;
	for i, page in ipairs(pages) do&lt;br /&gt;
		local title = mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. page._pageName .. &amp;#039;|&amp;#039; .. mw.ext.displaytitle.get(page._pageName) .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
		local date = mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;Last edit: &amp;#039; .. page.date)&lt;br /&gt;
		-- local textDiv = mw.html.create(&amp;#039;div&amp;#039;):node(title):node(date)&lt;br /&gt;
		local newsItem = mw.html.create(&amp;#039;div&amp;#039;):attr(&amp;#039;style&amp;#039;, &amp;#039;display: flex; flex-direction: column; align-items: center; gap: 0.5rem;&amp;#039;):node(title):node(date)&lt;br /&gt;
		&lt;br /&gt;
		local logoDiv = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
		local title = mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. page._pageName .. &amp;#039;|&amp;#039; .. mw.ext.displaytitle.get(page._pageName) .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
		local date = mw.html.create(&amp;#039;div&amp;#039;):wikitext(&amp;#039;Last edit: &amp;#039; .. page.date)&lt;br /&gt;
		-- local textDiv = mw.html.create(&amp;#039;div&amp;#039;):node(title):node(date)&lt;br /&gt;
		local newsItem = mw.html.create(&amp;#039;div&amp;#039;):attr(&amp;#039;style&amp;#039;, &amp;#039;display: flex; flex-direction: column; align-items: center; gap: 0.5rem;&amp;#039;):node(title):node(logoDiv):node(date)&lt;br /&gt;
		&lt;br /&gt;
		hotItems:node(newsItem)&lt;br /&gt;
		&lt;br /&gt;
		local tables = &amp;#039;Logos&amp;#039;&lt;br /&gt;
		local fields = &amp;#039;_pageName, logoAll, logoDark, logoLight, iconAll, iconLight, iconDark&amp;#039;&lt;br /&gt;
		local cargoArgs = {&lt;br /&gt;
			where = &amp;#039;_pageName = &amp;quot;&amp;#039; .. page._pageName .. &amp;#039;&amp;quot; OR _pageName= &amp;quot;Companies/&amp;#039; .. mw.text.split(page._pageName, &amp;#039;/&amp;#039;)[2] .. &amp;#039;&amp;quot;&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
		local results = cargo.query(tables, fields, cargoArgs)&lt;br /&gt;
&lt;br /&gt;
		if #results &amp;gt; 0 then&lt;br /&gt;
			local result = results[1]&lt;br /&gt;
			if results[1].iconAll then&lt;br /&gt;
				logoDiv:node(createLogo(result._pageName, results[1].iconAll))&lt;br /&gt;
			elseif results[1].iconLight and results[1].iconDark then&lt;br /&gt;
				logoDiv:node(createLogo(result._pageName, results[1].iconLight, &amp;#039;light&amp;#039;)):node(createLogo(result._pageName, results[1].iconDark, &amp;#039;dark&amp;#039;))&lt;br /&gt;
			elseif results[1].logoAll then&lt;br /&gt;
				logoDiv:node(createLogo(result._pageName, results[1].logoAll))&lt;br /&gt;
			elseif results[1].logoLight and results[1].logoDark then&lt;br /&gt;
				logoDiv:node(createLogo(result._pageName, results[1].logoLight, &amp;#039;light&amp;#039;)):node(createLogo(result._pageName, results[1].logoDark, &amp;#039;dark&amp;#039;))&lt;br /&gt;
			else  &lt;br /&gt;
				local logo = results[1].iconLight or results[1].iconDark or results[1].logoLight or results[1].logoDark&lt;br /&gt;
				logoDiv:node(createLogo(result._pageName, logo))&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
    		local pageContent = mw.title.new(page._pageName):getContent()&lt;br /&gt;
		&lt;br /&gt;
		    local img = getFirstImage(pageContent)&lt;br /&gt;
    		if img then&lt;br /&gt;
		        logoDiv:node(createLogo(page._pageName, img))&lt;br /&gt;
		    else&lt;br /&gt;
		        logoDiv:node(createLogo(page._pageName, &amp;#039;Team_placeholder_dark.png&amp;#039;, &amp;#039;dark&amp;#039;)):node(createLogo(page._pageName, &amp;#039;Team_placeholder_light.png&amp;#039;, &amp;#039;light&amp;#039;))&lt;br /&gt;
		    end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function createLogo(page, url, class)&lt;br /&gt;
	local className = class and class .. &amp;#039; h-100&amp;#039; or &amp;#039;h-100&amp;#039;&lt;br /&gt;
	local logoURL = url and url or &amp;#039;Team_placeholder_dark.png&amp;#039;&lt;br /&gt;
	local logoContainer = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(className)&lt;br /&gt;
	local logo = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		:addClass(&amp;#039;team-list-logo&amp;#039;)&lt;br /&gt;
		:node(&amp;#039;[[File:&amp;#039; .. logoURL .. &amp;#039;|80x80px|link=&amp;#039; .. page .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
	logoContainer:node(logo)&lt;br /&gt;
	return logoContainer&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getFirstImage(pageContent)&lt;br /&gt;
    -- List of parameters to check for image names&lt;br /&gt;
    local imageParameters = {&amp;quot;image&amp;quot;, &amp;quot;logoAll&amp;quot;, &amp;quot;logoLight&amp;quot;, &amp;quot;logoDark&amp;quot;}&lt;br /&gt;
    -- Iterate through the parameters and find the first one with a value&lt;br /&gt;
    for _, paramName in ipairs(imageParameters) do&lt;br /&gt;
        local imageValue = string.match(pageContent, &amp;quot;|%s*&amp;quot; .. paramName .. &amp;quot;%s*=%s*([^|\n}]+)&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        if imageValue then&lt;br /&gt;
            -- Return the extracted image file name&lt;br /&gt;
            return imageValue&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Couchor</name></author>
	</entry>
</feed>