<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://opensemantic.world/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AMedia</id>
	<title>Module:Media - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://opensemantic.world/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AMedia"/>
	<link rel="alternate" type="text/html" href="https://opensemantic.world/w/index.php?title=Module:Media&amp;action=history"/>
	<updated>2026-04-23T21:40:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://opensemantic.world/w/index.php?title=Module:Media&amp;diff=485&amp;oldid=prev</id>
		<title>Maintenance script: Protected &quot;Module:Media&quot;: Protected as read-only import via Page Exchange extension ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]</title>
		<link rel="alternate" type="text/html" href="https://opensemantic.world/w/index.php?title=Module:Media&amp;diff=485&amp;oldid=prev"/>
		<updated>2026-01-08T04:35:53Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/Module:Media&quot; title=&quot;Module:Media&quot;&gt;Module:Media&lt;/a&gt;&amp;quot;: Protected as read-only import via Page Exchange extension ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]&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 04:35, 8 January 2026&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-331:rev-485 --&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://opensemantic.world/w/index.php?title=Module:Media&amp;diff=331&amp;oldid=prev</id>
		<title>Maintenance script: Update package: OSW Core</title>
		<link rel="alternate" type="text/html" href="https://opensemantic.world/w/index.php?title=Module:Media&amp;diff=331&amp;oldid=prev"/>
		<updated>2024-04-29T02:03:06Z</updated>

		<summary type="html">&lt;p&gt;Update package: OSW Core&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local lustache = require(&amp;quot;Module:Lustache&amp;quot;)&lt;br /&gt;
--local yaml = require(&amp;quot;Module:Yaml&amp;quot;)&lt;br /&gt;
local p = {} --p stands for package&lt;br /&gt;
&lt;br /&gt;
p.template = {}&lt;br /&gt;
p.template[&amp;quot;mediawiki_gallery&amp;quot;] = [[{{#elements}}{{{file}}}|{{{description}}}&lt;br /&gt;
{{/elements}}]]&lt;br /&gt;
&lt;br /&gt;
-- see also https://stackoverflow.com/questions/66382691/how-to-escape-brackets-in-a-multi-line-string-in-lua&lt;br /&gt;
p.template[&amp;quot;bootstrap_gallery&amp;quot;] = [=[&lt;br /&gt;
&amp;lt;!-- Gallery --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
  {{#elements}}&lt;br /&gt;
  &amp;lt;div class=&amp;quot;col-lg-4 col-md-12 mb-4 mb-lg-0&amp;quot;&amp;gt;&lt;br /&gt;
    [[{{{file}}}]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  {{/elements}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Gallery --&amp;gt;&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
function p.gallery(frame)&lt;br /&gt;
	local jsondata = {}&lt;br /&gt;
	local frame = frame:getParent() -- disable for debug console, use the params passed to the template, see https://www.mediawiki.org/wiki/Lua/Scripting#frame:getParent_(frame:getParent())&lt;br /&gt;
	mw.logObject(frame.args)&lt;br /&gt;
	for k,v in pairs(frame.args) do jsondata[k] = v end&lt;br /&gt;
	local wikitext = &amp;quot;&amp;quot;&lt;br /&gt;
--	local text = mw.text.killMarkers(frame.args[&amp;#039;jsondata&amp;#039;])&lt;br /&gt;
--	--jsondata =  mw.text.jsonDecode(frame.args[&amp;#039;jsondata&amp;#039;]:gsub(&amp;quot;UNIQ.*QINU&amp;quot;, &amp;quot;&amp;quot;), mw.text.JSON_TRY_FIXING)--:gsub(&amp;quot;&amp;lt;*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)) &lt;br /&gt;
--	jsondata =  mw.text.jsonDecode(text, mw.text.JSON_TRY_FIXING)--:gsub(&amp;quot;&amp;lt;*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)) &lt;br /&gt;
--	return &amp;quot;&amp;quot; .. frame.args[&amp;#039;jsondata&amp;#039;]&lt;br /&gt;
--end&lt;br /&gt;
&lt;br /&gt;
--function p.test(frame)&lt;br /&gt;
--	local jsondata = mw.text.jsonDecode(frame.args[&amp;#039;jsondata&amp;#039;]:gsub(&amp;quot;UNIQ.*QINU&amp;quot;, &amp;quot;&amp;quot;), mw.text.JSON_TRY_FIXING)--:gsub(&amp;quot;&amp;lt;*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)) &lt;br /&gt;
&lt;br /&gt;
	--if (frame.args[&amp;#039;yamldata&amp;#039;] ~= nil) then jsondata = yaml.eval(frame.args[&amp;#039;yamldata&amp;#039;]) end&lt;br /&gt;
	if (frame.args[&amp;#039;textdata&amp;#039;] ~= nil) then&lt;br /&gt;
		-- &amp;quot;File:OSW5f36a59d4bb94ea0bf93f08f7470f609.png|test1;File:OSWd1c24f1c4b014ebe99c2a83672e3dfc7.png|test2;&amp;quot;&lt;br /&gt;
		jsondata[&amp;quot;elements&amp;quot;] = {}&lt;br /&gt;
		local lines = p.splitString(frame.args[&amp;#039;textdata&amp;#039;], &amp;quot;;&amp;quot;)&lt;br /&gt;
		for k,v in ipairs(lines) do&lt;br /&gt;
			local parts = p.splitString(v, &amp;quot;|&amp;quot;)&lt;br /&gt;
			local element = {file=parts[1]:gsub(&amp;#039;%s+&amp;#039;, &amp;#039;&amp;#039;), description=parts[2]}&lt;br /&gt;
			table.insert(jsondata[&amp;quot;elements&amp;quot;], element)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if (jsondata[&amp;quot;render_template&amp;quot;] == nil or jsondata[&amp;quot;render_template&amp;quot;] == &amp;quot;&amp;quot;) then jsondata[&amp;quot;render_template&amp;quot;] = &amp;quot;mediawiki_gallery&amp;quot; end&lt;br /&gt;
	if (jsondata[&amp;quot;image_size&amp;quot;] == nil or jsondata[&amp;quot;image_size&amp;quot;] == &amp;quot;&amp;quot;) then jsondata[&amp;quot;image_size&amp;quot;] = &amp;quot;300&amp;quot; end&lt;br /&gt;
	mw.logObject(jsondata)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	local template = p.template[&amp;quot;mediawiki_gallery&amp;quot;]&lt;br /&gt;
	if (jsondata[&amp;quot;render_template&amp;quot;] == &amp;quot;bootstrap_gallery&amp;quot;) then template = p.template[&amp;quot;bootstrap_gallery&amp;quot;] end&lt;br /&gt;
&lt;br /&gt;
	wikitext = lustache:render(template, jsondata)&lt;br /&gt;
&lt;br /&gt;
	if (jsondata[&amp;quot;render_template&amp;quot;] == &amp;quot;mediawiki_gallery&amp;quot;) then &lt;br /&gt;
		local params = {&lt;br /&gt;
			widths= jsondata[&amp;quot;image_size&amp;quot;], &lt;br /&gt;
			heights= jsondata[&amp;quot;image_size&amp;quot;],&lt;br /&gt;
			mode= jsondata[&amp;quot;mode&amp;quot;],&lt;br /&gt;
		}&lt;br /&gt;
		mw.logObject(params)&lt;br /&gt;
		wikitext = frame:extensionTag{ name = &amp;quot;gallery&amp;quot; , content = wikitext, args = params } &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	mw.logObject(wikitext)&lt;br /&gt;
	return wikitext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.splitString(inputstr, sep)&lt;br /&gt;
    if sep == nil then&lt;br /&gt;
        sep = &amp;quot;;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    local t={}&lt;br /&gt;
    for str in string.gmatch(inputstr, &amp;quot;([^&amp;quot;..sep..&amp;quot;]+)&amp;quot;) do&lt;br /&gt;
    	table.insert(t, str)&lt;br /&gt;
    end&lt;br /&gt;
    return t&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&lt;br /&gt;
--DEBUG (direct invoke)&lt;br /&gt;
--[[&lt;br /&gt;
frame = mw.getCurrentFrame() -- Get a frame object&lt;br /&gt;
jsondata = &amp;#039;{&amp;quot;image_size&amp;quot;: &amp;quot;300&amp;quot;, &amp;quot;elements&amp;quot;: [{&amp;quot;file&amp;quot;: &amp;quot;File:OSW5f36a59d4bb94ea0bf93f08f7470f609.png&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;test&amp;quot;}]}&amp;#039;&lt;br /&gt;
newFrame = frame:newChild{ args = {jsondata=jsondata}}&lt;br /&gt;
mw.log(p.gallery( newFrame ) ) &lt;br /&gt;
--]]&lt;br /&gt;
--[[&lt;br /&gt;
frame = mw.getCurrentFrame() -- Get a frame object&lt;br /&gt;
yamldata = [ [ --remove space for testing&lt;br /&gt;
image_size: 300&lt;br /&gt;
elements: &lt;br /&gt;
 - file: &amp;quot;File:OSW5f36a59d4bb94ea0bf93f08f7470f609.png&amp;quot;&lt;br /&gt;
   description: &amp;quot;test&lt;br /&gt;
] ] --remove space for testing&lt;br /&gt;
newFrame = frame:newChild{ args = {yamldata=yamldata}}&lt;br /&gt;
mw.log(p.gallery( newFrame ) ) &lt;br /&gt;
--]]&lt;br /&gt;
--[=[&lt;br /&gt;
frame = mw.getCurrentFrame() -- Get a frame object&lt;br /&gt;
textdata = [[ File:OSW5f36a59d4bb94ea0bf93f08f7470f609.png|a. Click on &amp;quot;Create Instance&amp;quot; on the Article tile;&lt;br /&gt;
File:OSWd1c24f1c4b014ebe99c2a83672e3dfc7.png|b. Add at least a label;&lt;br /&gt;
File:OSWd8adafab997746e69864f23e7bfba734.png|c. Additional properties can be added on demand. Click &amp;quot;Save&amp;quot; when you are done.;&lt;br /&gt;
]]&lt;br /&gt;
frame.args = {textdata=textdata}&lt;br /&gt;
newFrame = frame:newChild{ args = {textdata=textdata, render_template=&amp;quot;bootstrap_gallery&amp;quot;}}&lt;br /&gt;
mw.log(p.gallery( newFrame ) ) &lt;br /&gt;
--]=]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>