Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Iteration/doc: Difference between revisions

From Neodyland Wiki
m +link
m +cat
Line 1: Line 1:
<includeonly>[[Category:Modules for general use]]</includeonly>
This module contains the functions for different templates, solving their '''iteration problem'''
This module contains the functions for different templates, solving their '''iteration problem'''
:The wikipedia template coding does not support the repetitive processing of a parameter set,  
:The wikipedia template coding does not support the repetitive processing of a parameter set,  

Revision as of 17:06, 10 July 2020

This module contains the functions for different templates, solving their iteration problem

The wikipedia template coding does not support the repetitive processing of a parameter set,
which leads often to a very primitive and long chain of parameter checks in the kind of
{{#if:{{{1|}}} | perform an action with parameter 1 }}
{{#if:{{{2|}}} | perform an action with parameter 2 }}
{{#if:{{{3|}}} | perform an action with parameter 3 }}
{{#if:{{{4|}}} | perform an action with parameter 4 }}
•••
•••
{{#if:{{{33|}}} perform an action with parameter 33 }}

with the disadvantage that such a construct will fail as soon as there comes a 34nd parm.

I always thought that with Lua and its for loops this iterations should be possible, somehow.
After long searching without any success and without an idea how to perform it, I asked at several forums

and got finally from User:Trappist the monk the helping hint to solve it with a control structure like

	local out = {}
	for i, v in ipairs (args) do
		table.insert (out, frame:expandTemplate{ title = title, args = v })
	end
	return table.concat (out)

The functions contained therein are from very simple, just one parameter to pass,
to more complicated ones, where e.g. a pair of parameters needs kind of a flip-flop switch
when always a tupel of e.g. an item and its correlated text needs to be passed.

When there are tuples, tripels etc., the table.insert occurs, when the last element is processed;
this performs problems when the last group is incomplete – it should be finished with empty values
to trigger the table.insert. The check with table.maxn seems not to work correctly ?
This problem is solved differently, for the function "attribs" with a primitive workaround.

File list templates

There are currently five templates creating file lists with the function:filelist

  1. Other versions a vertical list (without initial)
  2. Filelist a horizontal list (without initial)
  3. Derivative versions a vertical list
  4. Derived from a vertical list
  5. File a horizontal list
Cookies help us deliver our services. By using our services, you agree to our use of cookies.