<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AIgenmod</id>
	<title>Module:Igenmod - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.digitalcellulose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AIgenmod"/>
	<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Igenmod&amp;action=history"/>
	<updated>2026-07-13T02:11:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://www.digitalcellulose.com/wiki/index.php?title=Module:Igenmod&amp;diff=152319&amp;oldid=prev</id>
		<title>Adminsuzy: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Igenmod&amp;diff=152319&amp;oldid=prev"/>
		<updated>2020-09-13T20:46:25Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:46, 13 September 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Adminsuzy</name></author>
		
	</entry>
	<entry>
		<id>http://www.digitalcellulose.com/wiki/index.php?title=Module:Igenmod&amp;diff=152318&amp;oldid=prev</id>
		<title>Imported&gt;Sarang: +function</title>
		<link rel="alternate" type="text/html" href="http://www.digitalcellulose.com/wiki/index.php?title=Module:Igenmod&amp;diff=152318&amp;oldid=prev"/>
		<updated>2020-09-01T09:37:23Z</updated>

		<summary type="html">&lt;p&gt;+function&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;
&lt;br /&gt;
-- get workdate via &amp;quot;Module:File&amp;quot; &lt;br /&gt;
function p.wrkdate ( )&lt;br /&gt;
	local fmod = require( &amp;quot;Module:File&amp;quot; )&lt;br /&gt;
	local fileObj = fmod.File( mw.title.getCurrentTitle().text )&lt;br /&gt;
	return fileObj.dateWorkCreated()&lt;br /&gt;
end -- end function wrkDate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- get extension text (uppercased) &lt;br /&gt;
function p.exttext ( )&lt;br /&gt;
	local page = mw.title.getCurrentTitle().text;&lt;br /&gt;
	local ptab = mw.text.split(page , '.', true)&lt;br /&gt;
	return		 mw.ustring.upper( table.concat(ptab, '', #ptab  ) )&lt;br /&gt;
end -- end function extText&lt;br /&gt;
&lt;br /&gt;
-- get extension code: &amp;quot;s&amp;quot; for SVG,  &amp;quot;n&amp;quot; for anything else&lt;br /&gt;
function p.extcode ( )&lt;br /&gt;
	if p.exttext () == &amp;quot;SVG&amp;quot;&lt;br /&gt;
		then return &amp;quot;s&amp;quot;&lt;br /&gt;
		else return &amp;quot;n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end -- end function extCode&lt;br /&gt;
&lt;br /&gt;
-- get default tag: &amp;quot;v&amp;quot; for SVG,  &amp;quot;n&amp;quot; for anything else&lt;br /&gt;
function p.default ( )&lt;br /&gt;
	if p.exttext () == &amp;quot;SVG&amp;quot;&lt;br /&gt;
		then return &amp;quot;v&amp;quot;&lt;br /&gt;
		else return &amp;quot;n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end -- end function default&lt;br /&gt;
&lt;br /&gt;
-- get unspec tag: &amp;quot;&amp;quot; for SVG,  &amp;quot;n&amp;quot; for anything else&lt;br /&gt;
function p.unspec ( )&lt;br /&gt;
	if p.exttext () ~= &amp;quot;SVG&amp;quot;&lt;br /&gt;
		then return &amp;quot;n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end -- end function unspec&lt;br /&gt;
&lt;br /&gt;
-- get categ:sub: &amp;quot;SVG&amp;quot; for SVG,  &amp;quot;PNG&amp;quot; for anything else&lt;br /&gt;
function p.categ ( )&lt;br /&gt;
	if p.exttext () == &amp;quot;SVG&amp;quot;&lt;br /&gt;
		then return &amp;quot;SVG&amp;quot;&lt;br /&gt;
		else return &amp;quot;PNG&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end -- end function categ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- invert the workdate, for a descending sortkey&lt;br /&gt;
function p.sortkey ()&lt;br /&gt;
	local invt = &amp;quot;&amp;quot;&lt;br /&gt;
	local wdat = p.wrkdate () or  &amp;quot;2020-00-00&amp;quot;	&lt;br /&gt;
	invt = string.format ( &amp;quot;%.4u&amp;quot; , 2030 - tonumber ( string.sub ( wdat, 1, 4 )) )&lt;br /&gt;
	invt = invt .. string.format ( &amp;quot;%.2u&amp;quot; , 12 - tonumber ( string.sub ( wdat, 6, 7 )) )&lt;br /&gt;
	invt = invt .. string.format ( &amp;quot;%.2u&amp;quot; , 31 - tonumber ( string.sub ( wdat, 9, 10 )) )&lt;br /&gt;
	return invt&lt;br /&gt;
end -- end function sortKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- check whether it is a new Inkscape file&lt;br /&gt;
function p.inkscape ( frame )&lt;br /&gt;
	local otab = {}&lt;br /&gt;
	if p.exttext () ~= &amp;quot;SVG&amp;quot; then&lt;br /&gt;
		table.insert(otab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = {&amp;quot; &amp;quot;} } );&lt;br /&gt;
	else &lt;br /&gt;
		local wdat = p.wrkdate () or &amp;quot;2020-00-00&amp;quot;&lt;br /&gt;
		local sdat = mw.getCurrentFrame():callParserFunction( &amp;quot;#time&amp;quot;, { 'Y-m-d', datestr} ) or &amp;quot;2020-08&amp;quot;&lt;br /&gt;
		if  mw.ustring.sub (wdat, 1, 7) == mw.ustring.sub (sdat, 1, 7) then&lt;br /&gt;
			local cat = &amp;quot;Unspec new SVG created with Inkscape&amp;quot;&lt;br /&gt;
			local key = string.format ( &amp;quot;%.4u&amp;quot; , 2030 - tonumber ( string.sub ( wdat, 1, 4 )) )&lt;br /&gt;
			key = key .. string.format ( &amp;quot;%.2u&amp;quot; ,   12 - tonumber ( string.sub ( wdat, 6, 7 )) )&lt;br /&gt;
			key = key .. string.format ( &amp;quot;%.2u&amp;quot; ,   31 - tonumber ( string.sub ( wdat, 9,10 )) )&lt;br /&gt;
			table.insert(otab, frame:expandTemplate{ title = &amp;quot;Igen/cat&amp;quot;, args = {cat, key } });&lt;br /&gt;
			&lt;br /&gt;
--			local msg = &amp;quot; Template [[Template:Inkscape|{{Inkscape}}]] without W3C-specification is deprecated ! &amp;quot; &lt;br /&gt;
--			table.insert(otab, frame:expandTemplate{ title = &amp;quot;error&amp;quot;, args = {msg} } );&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(otab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = {&amp;quot; &amp;quot;} } );&lt;br /&gt;
--			table.insert(otab, frame:expandTemplate{ title = &amp;quot;=&amp;quot;, args = {wdat..sdat} } ); -- test output&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return  table.concat (otab);&lt;br /&gt;
end -- end function Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- function: changes #/*/:/;  to \35/\42/\58/\59 &lt;br /&gt;
function p.subst ( frame )&lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	local char = mw.text.trim ( gpar[1] )&lt;br /&gt;
	if		mw.ustring.sub ( char, 1, 1 ) == '#' then &lt;br /&gt;
		return '&amp;amp;#35;' .. mw.ustring.sub( char, 2, #char );&lt;br /&gt;
	elseif	mw.ustring.sub ( char, 1, 1 ) == '*' then &lt;br /&gt;
		return '&amp;amp;#42;' .. mw.ustring.sub( char, 2, #char );&lt;br /&gt;
	elseif	mw.ustring.sub ( char, 1, 1 ) == ':' then &lt;br /&gt;
		return '&amp;amp;#58;' .. mw.ustring.sub( char, 2, #char );&lt;br /&gt;
	elseif	mw.ustring.sub ( char, 1, 1 ) == ';' then &lt;br /&gt;
		return '&amp;amp;#59;' .. mw.ustring.sub( char, 2, #char );&lt;br /&gt;
	else&lt;br /&gt;
		return char;&lt;br /&gt;
	end&lt;br /&gt;
end -- end function subst&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- function textsplit (for Colorbox and COAInf.)&lt;br /&gt;
function p.split ( frame )&lt;br /&gt;
	local lpar   = frame.args&lt;br /&gt;
	local parstr = mw.text.trim( lpar[1] ) or 'xx/yy/zz'; &lt;br /&gt;
	local tmplte = mw.text.trim( lpar[2] or 'Igen/cbx' );  -- or 'Igen/coa'&lt;br /&gt;
	local argtab = mw.text.split( parstr, &amp;quot;/&amp;quot; );&lt;br /&gt;
--  for (trim loop) ?&lt;br /&gt;
	return mw.getCurrentFrame(): expandTemplate { title = tmplte, args = argtab };&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- invert the workdate (for a descending sortkey)&lt;br /&gt;
function p.invdate ()&lt;br /&gt;
	local invt = &amp;quot;&amp;quot;&lt;br /&gt;
	local wdat = p.wrkdate () or  &amp;quot;2020-00-00&amp;quot;	&lt;br /&gt;
	invt = string.format ( &amp;quot;%.4u&amp;quot; , 2030 - tonumber ( string.sub ( wdat, 1, 4 )) )&lt;br /&gt;
	invt = invt .. string.format ( &amp;quot;%.2u&amp;quot; , 12 - tonumber ( string.sub ( wdat, 6, 7 )) )&lt;br /&gt;
	invt = invt .. string.format ( &amp;quot;%.2u&amp;quot; , 31 - tonumber ( string.sub ( wdat, 9, 10 )) )&lt;br /&gt;
	return invt&lt;br /&gt;
end -- end function invDate&lt;br /&gt;
&lt;br /&gt;
----------------------- TEST ------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- function: invert date &lt;br /&gt;
function p.invtest ( frame )&lt;br /&gt;
	local gpar = frame.args&lt;br /&gt;
	local wdat = mw.text.trim ( gpar[1] ) or '2020-00-00'&lt;br /&gt;
--	local leng = tonumber ( gpar[2] ) or 7&lt;br /&gt;
	local sdat = mw.getCurrentFrame():callParserFunction( &amp;quot;#time&amp;quot;, { 'Y-m-d', datestr} ) or &amp;quot;2020-08-30&amp;quot;&lt;br /&gt;
	local key =  string.format ( &amp;quot;%.4u&amp;quot; , 2030 - tonumber ( string.sub ( wdat, 1, 4 )) )&lt;br /&gt;
	key = key .. string.format ( &amp;quot;%.2u&amp;quot; ,   12 - tonumber ( string.sub ( wdat, 6, 7 )) )&lt;br /&gt;
	key = key .. string.format ( &amp;quot;%.2u&amp;quot; ,   31 - tonumber ( string.sub ( wdat, 9,10 )) )&lt;br /&gt;
	return key&lt;br /&gt;
end -- end function invTest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- get workdate (sometimes does not work properly)&lt;br /&gt;
function p.getdate ( )&lt;br /&gt;
	local parse = require(&amp;quot;Module:HTMLParser&amp;quot;).parse&lt;br /&gt;
	local fname = mw.title.getCurrentTitle().text&lt;br /&gt;
	local fulln = mw.title.new(fname, 6).prefixedText&lt;br /&gt;
	local b,exp = pcall (mw.getCurrentFrame():expandTemplate{title = ':' .. fulln, {}  } )&lt;br /&gt;
	if not b then&lt;br /&gt;
 		return '2000-00-00'&lt;br /&gt;
	end&lt;br /&gt;
	local root  = parse ('&amp;lt;html&amp;gt;' .. exp:gsub('&amp;lt;nowiki&amp;gt;.*?&amp;lt;/nowiki&amp;gt;', '') ..  '&amp;lt;/html&amp;gt;')&lt;br /&gt;
	local tdEl  = root('#fileinfotpl_date')&lt;br /&gt;
	for td in pairs(tdEl) do&lt;br /&gt;
		local timeElem = td.parent('time')&lt;br /&gt;
		for te in pairs(timeElem) do&lt;br /&gt;
			return te.attributes['datetime']&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end -- end  function getDate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- check whether it is a new file&lt;br /&gt;
function p.newfile ( frame )&lt;br /&gt;
	if p.exttext () ~= &amp;quot;SVG&amp;quot; then&lt;br /&gt;
		return &amp;quot;n&amp;quot;&lt;br /&gt;
	else &lt;br /&gt;
		local leng = frame [1] or 7;&lt;br /&gt;
		local wdat = p.wrkdate () or  &amp;quot;2020-00-00&amp;quot;&lt;br /&gt;
		local sdat = mw.getCurrentFrame():callParserFunction( &amp;quot;#time&amp;quot;, { 'Y-m-d', datestr} )&lt;br /&gt;
		local leng = tonumber ( frame.args[1] or 7 )&lt;br /&gt;
		if  mw.ustring.sub (wdat, 1, leng) ~= mw.ustring.sub (sdat, 1, leng)&lt;br /&gt;
			then return &amp;quot;s&amp;quot;&lt;br /&gt;
			else return &amp;quot;newcat&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end -- end function newFile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.cattest (args)&lt;br /&gt;
	local categ = mw.ext.cattools&lt;br /&gt;
&lt;br /&gt;
	local category = args[1] or &amp;quot;Category:Igen/top subtemplates&amp;quot;&lt;br /&gt;
	local page     = args[2] or &amp;quot;Template:Igen/top:d&amp;quot;&lt;br /&gt;
	if  categ.hasPage( category, page )&lt;br /&gt;
		then return page .. &amp;quot; ist in category &amp;quot; .. category .. &amp;quot; enthalten&amp;quot;&lt;br /&gt;
		else return page .. &amp;quot; gibt es nicht in &amp;quot; .. category .. &amp;quot; !&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.sysdate ( )&lt;br /&gt;
	return os.date (  )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.compare ( )&lt;br /&gt;
	local wdat = p.wrkdate () or  &amp;quot;2020-00-00&amp;quot;	&lt;br /&gt;
	local sdat = mw.getCurrentFrame():callParserFunction( &amp;quot;#time&amp;quot;, { 'Y-m-d', datestr} )&lt;br /&gt;
	return &amp;quot;W=&amp;quot;..wdat ..&amp;quot;,  S=&amp;quot;..sdat..&amp;quot;.&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Imported&gt;Sarang</name></author>
		
	</entry>
</feed>