<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://historia.iafcj.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucianinski</id>
	<title>WikiHistoria - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://historia.iafcj.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lucianinski"/>
	<link rel="alternate" type="text/html" href="https://historia.iafcj.org/Especial:Contribuciones/Lucianinski"/>
	<updated>2026-05-13T10:34:54Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Usator:lucianinski/Taller:Portada&amp;diff=128390</id>
		<title>Usator:lucianinski/Taller:Portada</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Usator:lucianinski/Taller:Portada&amp;diff=128390"/>
		<updated>2020-02-05T17:03:20Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|id=&amp;quot;mp-strapline&amp;quot; style=&amp;quot;width:100%; background:none; margin:-.8em 0 -.7em 0;&amp;quot;&lt;br /&gt;
|style=&amp;quot;font-size:90%; padding:10px 0; margin:0px; text-align:center; white-space:nowrap; color:#000;&amp;quot;| [[Wikihistoria:Bienvenidos|Bienvenida a recién llegados]]&amp;amp;nbsp;'''&amp;amp;middot;''' [[Wikihistoria:Portal de la comunidad|Comunidad]]&amp;amp;nbsp;'''&amp;amp;middot;''' [[Distritos]]&amp;amp;nbsp;'''&amp;amp;middot;''' [[Ayuda:Ayuda|Contenidos de Ayuda]] &amp;amp;nbsp;'''&amp;amp;middot;''' [[Ayuda:Primeros pasos|Primeros pasos]]&amp;amp;nbsp;'''&amp;amp;middot;''' [[Wikihistoria:Espacio de usuario|Espacio de usuario]]&amp;amp;nbsp;'''&amp;amp;middot;''' ''' [[Ayuda:Varias maneras de colaborar en Wikihistoria|Participación]]&amp;amp;nbsp;'''&amp;amp;middot;''' &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;width:100%;cellspacing:0;cellpadding:0;background-color:transparent&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:75%&amp;quot;|&lt;br /&gt;
&amp;lt;!---- Columna de la izquierda ----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- COMIENZO CUADRO MENSAJE WIKIHISTORIA --&amp;gt;&lt;br /&gt;
===Contenido ===&lt;br /&gt;
&lt;br /&gt;
#[[Distritos|Índice General de Distritos]]&lt;br /&gt;
#[[Nuestra historia, patriarcas y obispos]]&lt;br /&gt;
#[[Organización de la iglesia]]&lt;br /&gt;
##[[Dependencias generales]]&lt;br /&gt;
##[[Secretarías]]&lt;br /&gt;
##[[Confederación Femenil “Dorcas”]]&lt;br /&gt;
##[[Confederación Juvenil “Embajadores Apostólicos” ]]&lt;br /&gt;
#[[Colección del órgano oficial “El Exégeta”]]&lt;br /&gt;
#[[Archivo histórico fotográfico]]&lt;br /&gt;
&lt;br /&gt;
== Bienvenidos ==&lt;br /&gt;
&lt;br /&gt;
Bienvenidos al sitio de recopilación histórica de la Iglesia Apostólica de la Fe en Cristo Jesús (IAFCJ). &lt;br /&gt;
&lt;br /&gt;
Esta página web tiene como propósito concentrar todos los artículos recabados por los cronistas y coordinadores de la [[Comisión de Investigación Histórica]] de la [[Iglesia Apostólica de la Fe en cristo Jesús]]. &lt;br /&gt;
&lt;br /&gt;
'''Inicia ya''' &lt;br /&gt;
&lt;br /&gt;
Una vez que te hayas registrado podrás redactar los artículos que has estado investigando sobre la historia de la iglesia. Estos artículos también estarán disponibles para ser leídos y, de ser necesario, corregidos por otros cronistas y coordinadores, de tal forma que todos juntos escribamos nuestra historia. &lt;br /&gt;
&lt;br /&gt;
Actualmente ya puedes acceder a lo editado dando Clic en las siguientes opciones: [[Organización de la IAFCJ]], [[Dependencias Generales]] o [[Distritos]] en que están agrupadas las iglesias, o puedes acceder a un [[Especial:Aleatoria|artículo al azar]].   &lt;br /&gt;
&lt;br /&gt;
'''¿Necesitas ayuda?''' &lt;br /&gt;
&lt;br /&gt;
Nuestro WikiHistoria utiliza el mismo sistema que [http://es.wikipedia.org/ Wikipedia‎], por lo que puedes consultar la misma Ayuda para aprender a navegar y editar los artículos en este sitio.  &lt;br /&gt;
&lt;br /&gt;
Pulsa sobre la palabra [[Ayuda:Ayuda|Ayuda]] que encontrarás a tu izquierda en el menú de Navegación u oprime este enlace para ver los [[Ayuda:Videotutoriales|VIDEOTUTORIALES]] que hemos preparado para tí. &lt;br /&gt;
&lt;br /&gt;
También puedes descargar el manual completo para ello [http://wikihistoria.iafcj.org/images/3/3e/Manual.pdf aquí]. O escribe un correo electrónico a: '''enrique.chavez@outlook.com'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FIN CUADRO MENSAJE WIKIHISTORIA --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- COMIENZO CUADRO ARTICULO DESTACADO --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;border:1px solid #D98200;background: #F9F9F9;padding:0&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;padding:5px;padding-bottom:5px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
== Artículo Destacado ==&lt;br /&gt;
{{Portada:Destacado}}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!-- FIN CUADRO ARTICULO DESTACADO --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;width:25%&amp;quot;|&lt;br /&gt;
&amp;lt;!--- Columna de la derecha ---&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- FOTO DEL MES --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;background: #F9F9F9;padding:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Comentado  &amp;lt;div style=&amp;quot;height:8px;font-size:1px;margin:0;border:0;border-bottom:1px solid #3C3CFF;background: #AEAEFF&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:5px;padding-bottom:5px&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Nuvola apps kghostview.png|38px|right|Foto del mes]]&lt;br /&gt;
&lt;br /&gt;
== Foto Destacada ==&lt;br /&gt;
&lt;br /&gt;
{{Foto del Mes}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- FIN CUADRO FOTO DEL MES --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- CUADRO CONTRIBUIR --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;background: #F9F9F9;padding:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;div style=&amp;quot;height:8px;font-size:1px;margin:0;border:0;border-bottom:1px solid #3C3CFF;background: #AEAEFF&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:5px;padding-bottom:5px&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Nuvola filesystems services.gif|38px|right|Contribuir]]&lt;br /&gt;
&lt;br /&gt;
== Contribuir==&lt;br /&gt;
'''Aquí tienes lo que puedes hacer para [[Ayuda:Ayuda|ayudar en Wikihistoria]]'''&lt;br /&gt;
'''[[Special:Wantedpages|Crear artículos]]'''&amp;lt;br&amp;gt;Esta página junta los artículos más pedidos de  Wikihistoria, en orden decreciente.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[[:Categoría:Esbozo|Modificar/Mejorar los artículos]]'''&amp;lt;br&amp;gt;Encontrarás los artículos que contienen la plantilla &amp;lt;nowiki&amp;gt;{{Esbozo}}&amp;lt;/nowiki&amp;gt; en orden alfabético.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[[:Categoría:Artículo a wikificar|Wikificar los artículos]]'''&amp;lt;br&amp;gt;[[Wikihistoria:El formato|El formato]] de los artículos favorece la uniformidad y las contribuciones de paso.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[[Distritos|Añadir las plantillas de los portales]]'''&amp;lt;br&amp;gt;Cada Distrito contiene su portal. Puedes contribuir en la plantilla correspondiente.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- FIN CUADRO CONTRIBUIR --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- INICIO DE TABLA VIDEOS DE AYUDA --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;background: #F9F9F9;padding:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- &amp;lt;div style=&amp;quot;height:8px;font-size:1px;margin:0;border:0;border-bottom:1px solid #3C3CFF;background: #AEAEFF&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:5px;padding-bottom:5px&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Nuvola filesystems services.gif|38px|right|Videos]]&lt;br /&gt;
&lt;br /&gt;
== Videos de Ayuda==&lt;br /&gt;
[[Archivo:Wikivideos.png|250px|center|Videos de ayuda|link=Ayuda:Videotutoriales]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- FIN DE TABLA VIDEOS DE AYUDA --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- COMIENZO CUADRO COMUNICAR --&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;border:1px solid #3C3CFF;background: #F9F9F9;padding:0&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;height:8px;font-size:1px;margin:0;border:0;border-bottom:1px solid #3C3CFF;background: #AEAEFF&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;div style=&amp;quot;padding:5px;padding-bottom:5px&amp;quot;&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--[[Image:Crystal Clear app linneighborhood.png|50px|right|Portal:Comunicar]] --&amp;gt;&lt;br /&gt;
&amp;lt;!--== [[Portal:Comunicar|Comunicar]] == --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- FIN CUADRO COMUNICAR --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| {{Wikihistoria:Anuncios}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|} &amp;lt;!-- etiqueta de fin de tablas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hora y fecha --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%&amp;quot; style=&amp;quot;margin-bottom:1.25em;border:0px solid #3C3CFF;background: #F9F9F9;padding:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0px;padding-bottom:0px&amp;quot;&amp;gt;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;background-color:#F9F9F9&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;span&amp;gt;{{CURRENTTIME}} (UTC) – {{CURRENTDAYNAME}} &amp;amp;nbsp;&lt;br /&gt;
{{CURRENTDAY}} de {{CURRENTMONTHNAME}} de {{CURRENTYEAR}}.  &amp;amp;nbsp;&lt;br /&gt;
Hay [[Especial:Statistics|'''{{NUMBEROFARTICLES}}''' artículos]] en español.&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Termina hora y fecha --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=MediaWiki:Spam-blacklist&amp;diff=44928</id>
		<title>MediaWiki:Spam-blacklist</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=MediaWiki:Spam-blacklist&amp;diff=44928"/>
		<updated>2017-07-10T18:05:02Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; # External URLs matching this list will be blocked when added to a page.&lt;br /&gt;
 # This list affects only this wiki; refer also to the [//meta.wikimedia.org/wiki/Spam_blacklist global blacklist].&lt;br /&gt;
 # For documentation see [//www.mediawiki.org/wiki/Extension:SpamBlacklist www.mediawiki.org/wiki/Extension:SpamBlacklist]&lt;br /&gt;
 #&amp;lt;!-- leave this line exactly as it is --&amp;gt; &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Syntax is as follows:&lt;br /&gt;
#   * Everything from a &amp;quot;#&amp;quot; character to the end of the line is a comment&lt;br /&gt;
#   * Every non-blank line is a regex fragment which will only match hosts inside URLs&lt;br /&gt;
\b[www\.].{1,}\-webdesign\.nl\b&lt;br /&gt;
\b[www\.]webdesign\-.{1,}\.nl\b&lt;br /&gt;
\bxbox360achievements\.org\b&lt;br /&gt;
\awesom-o\.com\b&lt;br /&gt;
\bsulekha\.com\b&lt;br /&gt;
\boss\.tw\b&lt;br /&gt;
\bwiki-projects\.org\b&lt;br /&gt;
\bwikimir\.org\b&lt;br /&gt;
\bvouchercodes\.net\b&lt;br /&gt;
\babsolutebeds\.co\.uk\b&lt;br /&gt;
\bpolplumb\.co\.uk\b&lt;br /&gt;
\bcalabasassmiles\.com\b&lt;br /&gt;
\bchicagostdtesting\.org\b&lt;br /&gt;
\bwaverlyweightloss\.com\b&lt;br /&gt;
\bcheaptoyfinder\.com\b&lt;br /&gt;
\bboostyourbust\.com\b&lt;br /&gt;
\b708buy\.com\b&lt;br /&gt;
\bholden-jones\.co\.uk\b&lt;br /&gt;
\btelelock\.co\.uk\b&lt;br /&gt;
\b.*ccdealprice\.com\b&lt;br /&gt;
\b.*myloverlingerie\.com\b&lt;br /&gt;
\b.*moonfruit\.com\b&lt;br /&gt;
\b.*wpsecuritysystem\.com\b&lt;br /&gt;
\bsekul\.pun\.bz\b&lt;br /&gt;
\balvenaandduaderma\.com\b&lt;br /&gt;
\bk-vision\.tv\b&lt;br /&gt;
\blumagenexuk\.co\.uk\b&lt;br /&gt;
\btanuu\.club\b&lt;br /&gt;
\bhealthyapplechat\.com\b&lt;br /&gt;
\bhealthinnovgroup\.com\b&lt;br /&gt;
\bgaragedoor([-a-z]+)\.com\b&lt;br /&gt;
#The video ID of a constantly spammed video.&lt;br /&gt;
\WA4jgXQQns8A&lt;br /&gt;
#German translation-service spam&lt;br /&gt;
\bprofifachuebersetzungen\.de\b&lt;br /&gt;
\bportedeurope\.org\b&lt;br /&gt;
\bprofischnell\.de\b&lt;br /&gt;
\bprofi-fachuebersetzungen\.com\b&lt;br /&gt;
#bug&lt;br /&gt;
\bcc\.example\.com\b&lt;br /&gt;
#viagra spammer&lt;br /&gt;
.*viagra.*&lt;br /&gt;
.*levitra.*&lt;br /&gt;
.*cialis.*&lt;br /&gt;
.*kamagra.*&lt;br /&gt;
#Talk:Sandbox movie download link spam&lt;br /&gt;
\bwww\.boards2go\.com\b&lt;br /&gt;
\betreredgewatchfrea\.comunidades\.net\b&lt;br /&gt;
\b[www\.]egymir\.com\b #Forum is flooded with spam, being used by spambots. Forum administrators should clean it up so spambots can't use it.&lt;br /&gt;
#Talk:Flow and Talk:Beta Features/Hovercards spam (mostly hacked wordpress installations)&lt;br /&gt;
\bruslan\.tk\b&lt;br /&gt;
\blasalon\.pro\b&lt;br /&gt;
\btaxicd\.ru\b&lt;br /&gt;
\bmotodarom\.com\b&lt;br /&gt;
\bgiznyata\.ru\b&lt;br /&gt;
\badlergolden\.ru\b&lt;br /&gt;
\bpekingcuisine\.no\b&lt;br /&gt;
\bputsoul\.ru\b&lt;br /&gt;
\bprapanova\.by\b&lt;br /&gt;
\bseobcn\.net\b&lt;br /&gt;
\bnashydetky\.com\b&lt;br /&gt;
\bvkusest\.com\b&lt;br /&gt;
\birenegavalda\.com\b&lt;br /&gt;
\bmelleridiscovery\.com\b&lt;br /&gt;
\bhopestrengthens\.org\b&lt;br /&gt;
\bthebrandchef\.com\b&lt;br /&gt;
\bnutrisportfpt\.com\b&lt;br /&gt;
\btkalez\.com\b&lt;br /&gt;
\bcampedify\.com\b&lt;br /&gt;
\bmaironiomokykla\.net\b&lt;br /&gt;
\bmahaffeytent\.com\b&lt;br /&gt;
\bminorwreck\.com\b&lt;br /&gt;
\baxishair\.com\b&lt;br /&gt;
\bluisamarti\.com\b&lt;br /&gt;
\bcontactnumbers\.co\b&lt;br /&gt;
\bfastcleaners[a-z\-]*.co.uk\b&lt;br /&gt;
\bservicecontacts\.co\b&lt;br /&gt;
\bsiteseo\.pl\b&lt;br /&gt;
 #&amp;lt;/pre&amp;gt; &amp;lt;!-- leave this line exactly as it is --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Documentation/doc&amp;diff=36665</id>
		<title>Plantilla:Documentation/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Documentation/doc&amp;diff=36665"/>
		<updated>2017-03-19T23:36:58Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: Página creada con «&amp;lt;noinclude&amp;gt;{{pp-vandalism|small=yes}}&amp;lt;/noinclude&amp;gt;{{Documentation subpage}} {{High-use|71,000+}} {{Shortcut|T:DOC}} {{stack|{{Lua|Module:Documentation}}}} &amp;lt;!---- Categories...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{pp-vandalism|small=yes}}&amp;lt;/noinclude&amp;gt;{{Documentation subpage}}&lt;br /&gt;
{{High-use|71,000+}}&lt;br /&gt;
{{Shortcut|T:DOC}}&lt;br /&gt;
{{stack|{{Lua|Module:Documentation}}}}&lt;br /&gt;
&amp;lt;!---- Categories where indicated at the bottom of this page, please; interwikis at Wikidata ----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the {{tlf|Documentation}} template, used on almost every template page to contain that template's [[Document (disambiguation)|documented instructions and information]].&lt;br /&gt;
&lt;br /&gt;
For detailed instructions on how and when to use this template, see [[Wikipedia:Template documentation]] (shortcut: [[WP:TDOC]]).&lt;br /&gt;
&lt;br /&gt;
This template displays a green documentation box like you are seeing now and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to.&lt;br /&gt;
&lt;br /&gt;
This template is intended for documenting templates and other pages that are [[Wikipedia:Transclusion|transcluded]] onto other pages. It can be used in the [[Wikipedia:Template namespace|template namespace]] and most other [[Wikipedia:Namespace|namespace]]s.&lt;br /&gt;
&lt;br /&gt;
Use of this template allows templates to be [[Wikipedia:Protection policy|protected]] where necessary, while allowing anyone to edit the documentation and categories.&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
Normally this template is used without any parameters, placed at the bottom of the template or page being documented, within a {{tag|noinclude}} container:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml+smarty&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Last line of your template code--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then this template automatically loads the content from the /doc subpage of the template it is used on.&lt;br /&gt;
&lt;br /&gt;
This template can also load the content from any other page. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml+smarty&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Last line of your template code--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation |Template:Other page/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that when loading the documentation from a page other than the local /doc page it becomes tricky to handle the categories.&lt;br /&gt;
&lt;br /&gt;
The content can also be fed directly as text. Like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml+smarty&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Last line of your template code--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation&lt;br /&gt;
 | content =&lt;br /&gt;
(some documentation)&lt;br /&gt;
}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the {{para|content}} parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.&lt;br /&gt;
&lt;br /&gt;
Parameter {{para|1}} and the {{para|content}} parameter can also be combined, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml+smarty&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--Last line of your template code--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation |1=Template:Any page/doc&lt;br /&gt;
| content =&lt;br /&gt;
{{Template:Any page/doc |parameters}}&lt;br /&gt;
}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But the '''content''' parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{tnull|Template:Any page/doc{{!}}parameters}}. In this example a parameter is also fed to the /doc page being loaded.&lt;br /&gt;
&lt;br /&gt;
=== Short cut ===&lt;br /&gt;
Type &amp;lt;nowiki&amp;gt;{{subst:doc-code}}&amp;lt;/nowiki&amp;gt; to automatically insert noinclude tags, the template call and the guiding comment.&lt;br /&gt;
&lt;br /&gt;
===Best practice===&lt;br /&gt;
The code should be added at the bottom of the template code, with no space before {{Tag|noinclude|o}} (which would cause extra space on pages where the template is used).&lt;br /&gt;
&lt;br /&gt;
Categories that apply to the template itself should be added to the bottom of the /doc subpage, inside {{Tag|includeonly}} tags.  Interwiki links that apply to the template should be listed at [[d:|Wikidata]] (more at [[Wikipedia:Wikidata|wp:Wikidata]]).  For more complex cases, see [[Wikipedia:Template documentation#Categories and interwiki links]].&lt;br /&gt;
&lt;br /&gt;
If the documentation page contains {{tag|includeonly|o}} or {{tag|noinclude|o}} tags as part of the visible documentation text, replace the &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;&amp;quot; with &amp;quot;&amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Heading===&lt;br /&gt;
When in the Template namespace, this template shows this heading:&lt;br /&gt;
:[[File:Template-info.png|32px]] '''Template documentation'''&lt;br /&gt;
&lt;br /&gt;
In most other namespaces, such as &amp;quot;Wikipedia:&amp;quot;, it shows this heading:&lt;br /&gt;
:'''Documentation'''&lt;br /&gt;
&lt;br /&gt;
But when on File (image) pages it shows this heading:&lt;br /&gt;
:'''Summary'''&lt;br /&gt;
&lt;br /&gt;
The '''heading''' parameter can be used to set the heading to something else. Like this:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Documentation |heading=Infobox documentation}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the '''heading''' parameter is empty but defined, no heading is shown and no [edit] [purge] links are shown. Like this:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Documentation |heading=}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''heading-style''' parameter can be fed optional [[Cascading Style Sheets|CSS]] values. Without quotation marks &amp;lt;code&amp;gt;&amp;quot; &amp;quot;&amp;lt;/code&amp;gt; but with the ending semicolons &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
:&amp;lt;code&amp;gt;heading-style=font-size:150%;color:red;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Link box===&lt;br /&gt;
Below the big doc box is a small link box that shows some meta-data about the documentation. The link box shows different things depending on what parameters are fed to this template, and in which namespace it is used. In some cases the link box is not shown at all.&lt;br /&gt;
&lt;br /&gt;
To hide the link box, add the parameter&lt;br /&gt;
: {{para|link box|off}}.&lt;br /&gt;
&lt;br /&gt;
You can also insert customised text into the link box, by setting the {{para|link box}} parameter. For example:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:auto; overflow:scroll&amp;quot;&amp;gt;&lt;br /&gt;
  |link box=This documentation is automatically generated by [[Template:Country showdata]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Automatic functions===&lt;br /&gt;
If the documentation page does not exist, the [create] link includes a [[mw:Manual:Creating pages with preloaded text|preload]] page so that clicking it will pre-fill the edit form with the basic documentation page format. Preload text is also used for the /sandbox and /testcases [create] links.&lt;br /&gt;
&lt;br /&gt;
When this template is on a protected template page it now automatically adds {{tl|pp-template}}, which shows the grey or red padlock in the top right corner. So no need to manually add {{tlf|pp-template}} to templates that use {{tl|Documentation}}.&lt;br /&gt;
&lt;br /&gt;
When this template is on a /sandbox subpage it automatically adds the {{tl|Template sandbox notice}}.&lt;br /&gt;
&lt;br /&gt;
===Subject namespaces vs. talk namespaces===&lt;br /&gt;
Terminology: ''Subject namespaces'' are the opposite of ''talk namespaces''. For instance &amp;quot;Template:&amp;quot; is the subject space of &amp;quot;Template talk:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This template is usually placed in a subject namespace, within {{tag|noinclude|o}} tags. But in some cases this template needs to be on the talk page:&lt;br /&gt;
&lt;br /&gt;
* In the Mediawiki namespace, since {{tag|noinclude|o}} often does not work in system messages, and since the Mediawiki namespace needs to be kept clean for performance reasons.&lt;br /&gt;
&lt;br /&gt;
When placed on talk pages, this template usually is placed near the top of the page and without {{tag|noinclude}} tags.&lt;br /&gt;
&lt;br /&gt;
The /doc, /sandbox and /testcases pages should normally be in the subject namespace, except in the namespaces that do not have the MediaWiki [[meta:Help:Link#Subpage feature|subpage feature]] enabled: Main, File, Mediawiki and Category. (But currently we only show the /sandbox and /testcases links from User, User talk, Template and Template talk namespaces.) There are also a whole bunch of other technical reasons why the /doc page must be stored under the talk page for those (but only those) namespaces.&lt;br /&gt;
&lt;br /&gt;
This template automatically points its [create] links for the /doc, /sandbox and /testcases to the right namespace.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
You can simulate the output for a given page by using the {{para|page}} parameter. For example, if you use the code {{para|page|Template:Edit protected}}, the template will behave exactly as if it were on the page [[Template:Edit protected]], including showing the documentation from [[Template:Edit protected/doc]], linking to [[Template:Edit protected/sandbox]], etc. This parameter is useful for testing and is used extensively on the [[Module:Documentation/testcases|module testcases page]]. &lt;br /&gt;
&lt;br /&gt;
===Technical details===&lt;br /&gt;
The preload page for the /doc [create] link is [[Template:Documentation/preload]]. The preload pages for the /sandbox and /testcases [create] links are [[Template:Documentation/preload-sandbox]] and [[Template:Documentation/preload-testcases]].&lt;br /&gt;
&lt;br /&gt;
For more details, see the [[Template talk:Documentation|talk page]].&lt;br /&gt;
&lt;br /&gt;
====Full syntax====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation&lt;br /&gt;
 | content =&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation&lt;br /&gt;
| [path to documentation page]&lt;br /&gt;
| heading-style = &lt;br /&gt;
| heading = &lt;br /&gt;
| link box = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
* {{tl|Documentation subpage}}, a notice placed at the top of a /doc subpage explaining its role and including a link to the page it documents.&lt;br /&gt;
* {{tl|Barnstar documentation}}, a variant of {{tl|Documentation}} for use with [[Wikipedia:Barnstars|barnstar]] templates.&lt;br /&gt;
* {{tl|Documentation/color scheme}} presents the color scheme used by {{tl|Documentation}}.&lt;br /&gt;
* [[Wikipedia:Template documentation]] is a how-to guide to template documentation.&lt;br /&gt;
* [[Wikipedia:Template sandbox and test cases]] explains the use of /sandbox and /testcases subpages and includes more information about template testing.&lt;br /&gt;
* [[User:Technical 13/Scripts/editTemplateNoDoc.js]], a beta script that enables documentation to be hidden by default when editing templates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{When pagename is |/sandbox= |/testcases= |other=&lt;br /&gt;
&amp;lt;!---- Categories below this line, please; interwikis to Wikidata ----&amp;gt;&lt;br /&gt;
[[Category:Template documentation| ]]&lt;br /&gt;
[[Category:Template-related templates]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Categor%C3%ADa:M%C3%B3dulos_de_Scribunto_con_errores&amp;diff=36662</id>
		<title>Categoría:Módulos de Scribunto con errores</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Categor%C3%ADa:M%C3%B3dulos_de_Scribunto_con_errores&amp;diff=36662"/>
		<updated>2017-03-19T07:21:24Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: Se creó una página vacía&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Documentation/doc&amp;diff=36661</id>
		<title>Módulo:Documentation/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Documentation/doc&amp;diff=36661"/>
		<updated>2017-03-19T06:25:30Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: Página creada con «{{High-risk}} {{Module rating|protected}} This module displays a blue box containing documentation for templates, Lua modules, or other pages....»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk}}&lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
This module displays a blue box containing documentation for [[WP:TEMPLATE|templates]], [[WP:MODULE|Lua modules]], or other pages. The {{tl|documentation}} template invokes it.&lt;br /&gt;
&lt;br /&gt;
== Normal usage ==&lt;br /&gt;
&lt;br /&gt;
For most uses, you should use the {{tl|documentation}} template; please see that template's page for its usage instructions and parameters.&lt;br /&gt;
&lt;br /&gt;
== Use in other modules ==&lt;br /&gt;
&lt;br /&gt;
To use this module from another Lua module, first load it with &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local documentation = require('Module:Documentation').main&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can simply call it using a table of arguments.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
documentation{content = 'Some documentation', ['link box'] = 'My custom link box'}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the [[Template:Documentation/doc|template documentation]] for usage instructions and a list of parameters.&lt;br /&gt;
&lt;br /&gt;
== Porting to other wikis ==&lt;br /&gt;
&lt;br /&gt;
The module has a configuration file at [[Module:Documentation/config]] which is intended to allow easy translation and porting to other wikis. Please see the code comments in the config page for instructions. If you have any questions, or you need a feature which is not currently implemented, please leave a message at [[Template talk:Documentation]] to get the attention of a developer.&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Section_link&amp;diff=36660</id>
		<title>Módulo:Section link</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Section_link&amp;diff=36660"/>
		<updated>2017-03-19T06:16:11Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{section link}}.&lt;br /&gt;
&lt;br /&gt;
local checkType = require('libraryUtil').checkType&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function makeSectionLink(page, section, display)&lt;br /&gt;
	display = display or section&lt;br /&gt;
	page = page or ''&lt;br /&gt;
	return string.format('[[%s#%s|%s]]', page, section, display)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(page, sections, options, title)&lt;br /&gt;
	-- Validate input.&lt;br /&gt;
	checkType('_main', 1, page, 'string', true)&lt;br /&gt;
	checkType('_main', 3, options, 'table', true)&lt;br /&gt;
	if sections == nil then&lt;br /&gt;
		sections = {}&lt;br /&gt;
	elseif type(sections) == 'string' then&lt;br /&gt;
		sections = {sections}&lt;br /&gt;
	elseif type(sections) ~= 'table' then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;type error in argument #2 to '_main' &amp;quot; ..&lt;br /&gt;
			&amp;quot;(string, table or nil expected, got %s)&amp;quot;,&lt;br /&gt;
			type(sections)&lt;br /&gt;
		), 2)&lt;br /&gt;
	end&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	title = title or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Deal with blank page names elegantly&lt;br /&gt;
	if page and not page:find('%S') then&lt;br /&gt;
		page = nil&lt;br /&gt;
		options.nopage = true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make the link(s).&lt;br /&gt;
	local isShowingPage = not options.nopage&lt;br /&gt;
	if #sections &amp;lt;= 1 then&lt;br /&gt;
		local linkPage = page or ''&lt;br /&gt;
		local section = sections[1] or 'Notes'&lt;br /&gt;
		local display = '§&amp;amp;nbsp;' .. section&lt;br /&gt;
		if isShowingPage then&lt;br /&gt;
			page = page or title.prefixedText&lt;br /&gt;
			display = page .. ' ' .. display&lt;br /&gt;
		end&lt;br /&gt;
		return makeSectionLink(linkPage, section, display)&lt;br /&gt;
	else&lt;br /&gt;
		-- Multiple sections. First, make a list of the links to display.&lt;br /&gt;
		local ret = {}&lt;br /&gt;
		for i, section in ipairs(sections) do&lt;br /&gt;
			ret[i] = makeSectionLink(page, section)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Assemble the list of links into a string with mw.text.listToText.&lt;br /&gt;
		-- We use the default separator for mw.text.listToText, but a custom&lt;br /&gt;
		-- conjunction. There is also a special case conjunction if we only&lt;br /&gt;
		-- have two links.&lt;br /&gt;
		local conjunction&lt;br /&gt;
		if #sections == 2 then&lt;br /&gt;
			conjunction = '&amp;amp;#8203; and '&lt;br /&gt;
		else&lt;br /&gt;
			conjunction = ', and '&lt;br /&gt;
		end&lt;br /&gt;
		ret = mw.text.listToText(ret, nil, conjunction)&lt;br /&gt;
&lt;br /&gt;
		-- Add the intro text.&lt;br /&gt;
		local intro = '§§&amp;amp;nbsp;'&lt;br /&gt;
		if isShowingPage then&lt;br /&gt;
			intro = (page or title.prefixedText) .. ' ' .. intro&lt;br /&gt;
		end&lt;br /&gt;
		ret = intro .. ret&lt;br /&gt;
&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
		wrappers = 'Template:Section link',&lt;br /&gt;
		valueFunc = function (key, value)&lt;br /&gt;
			value = value:match('^%s*(.-)%s*$') -- Trim whitespace&lt;br /&gt;
			-- Allow blank first parameters, as the wikitext template does this.&lt;br /&gt;
			if value ~= '' or key == 1 then&lt;br /&gt;
				return value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	-- Sort the arguments.&lt;br /&gt;
	local page&lt;br /&gt;
	local sections, options = {}, {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if k == 1 then&lt;br /&gt;
			-- Doing this in the loop because of a bug in [[Module:Arguments]]&lt;br /&gt;
			-- when using pairs with deleted arguments.&lt;br /&gt;
			page = v&lt;br /&gt;
		elseif type(k) == 'number' then&lt;br /&gt;
			sections[k] = v&lt;br /&gt;
		else&lt;br /&gt;
			options[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Compress the sections array.&lt;br /&gt;
	local function compressArray(t)&lt;br /&gt;
		local nums, ret = {}, {}&lt;br /&gt;
		for num in pairs(t) do&lt;br /&gt;
			nums[#nums + 1] = num&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		for i, num in ipairs(nums) do&lt;br /&gt;
			ret[i] = t[num]&lt;br /&gt;
		end&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
	sections = compressArray(sections)&lt;br /&gt;
&lt;br /&gt;
	return p._main(page, sections, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Ns_has_subpages&amp;diff=36658</id>
		<title>Módulo:Ns has subpages</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Ns_has_subpages&amp;diff=36658"/>
		<updated>2017-03-19T06:16:11Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements [[Template:Ns has subpages]].&lt;br /&gt;
-- While the template is fairly simple, this information is made available to&lt;br /&gt;
-- Lua directly, so using a module means that we don't have to update the&lt;br /&gt;
-- template as new namespaces are added.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(ns, frame)&lt;br /&gt;
	-- Get the current namespace if we were not passed one.&lt;br /&gt;
	if not ns then&lt;br /&gt;
		ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Look up the namespace table from mw.site.namespaces. This should work&lt;br /&gt;
	-- for a majority of cases.&lt;br /&gt;
	local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
&lt;br /&gt;
	-- Try using string matching to get the namespace from page names.&lt;br /&gt;
	-- Do a quick and dirty bad title check to try and make sure we do the same&lt;br /&gt;
	-- thing as {{NAMESPACE}} in most cases.&lt;br /&gt;
	if not nsTable and type(ns) == 'string' and not ns:find('[&amp;lt;&amp;gt;|%[%]{}]') then&lt;br /&gt;
		local nsStripped = ns:gsub('^[_%s]*:', '')&lt;br /&gt;
		nsStripped = nsStripped:gsub(':.*$', '')&lt;br /&gt;
		nsTable = mw.site.namespaces[nsStripped]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If we still have no match then try the {{NAMESPACE}} parser function,&lt;br /&gt;
	-- which should catch the remainder of cases. Don't use a mw.title object,&lt;br /&gt;
	-- as this would increment the expensive function count for each new page&lt;br /&gt;
	-- tested.&lt;br /&gt;
	if not nsTable then&lt;br /&gt;
		frame = frame or mw.getCurrentFrame()&lt;br /&gt;
		local nsProcessed = frame:callParserFunction('NAMESPACE', ns)&lt;br /&gt;
		nsTable = nsProcessed and mw.site.namespaces[nsProcessed]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return nsTable and nsTable.hasSubpages&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local ns = frame:getParent().args[1]&lt;br /&gt;
	if ns then&lt;br /&gt;
		ns = ns:match('^%s*(.-)%s*$') -- trim whitespace&lt;br /&gt;
		ns = tonumber(ns) or ns&lt;br /&gt;
	end&lt;br /&gt;
	local hasSubpages = p._main(ns, frame)&lt;br /&gt;
	return hasSubpages and 'yes' or ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:InfoboxImage/doc&amp;diff=36656</id>
		<title>Módulo:InfoboxImage/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:InfoboxImage/doc&amp;diff=36656"/>
		<updated>2017-03-19T06:16:11Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|2,860,000}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
This module is used within infoboxes to process the image parameters and tidy up the formatting of the result.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| image&lt;br /&gt;
| Required. The main parameter that should be passed over which contains the image info.&lt;br /&gt;
|-&lt;br /&gt;
| size&lt;br /&gt;
| Size to display image.&lt;br /&gt;
|-&lt;br /&gt;
| maxsize&lt;br /&gt;
| Maximum size to display image. Note: If no size or sizedefault params specified then image will be shown at maxsize.&lt;br /&gt;
|-&lt;br /&gt;
| sizedefault&lt;br /&gt;
| The size to use for the image if no size param is specified. Defaults to [[Wikipedia:Autosizing images|frameless]].&lt;br /&gt;
|-&lt;br /&gt;
| alt&lt;br /&gt;
| Alt text for the image.&lt;br /&gt;
|-&lt;br /&gt;
| title&lt;br /&gt;
| Title text for image (mousehover text). If blank then alt text is used.&lt;br /&gt;
|-&lt;br /&gt;
| border&lt;br /&gt;
| If yes, then a border is added.&lt;br /&gt;
|-&lt;br /&gt;
| page&lt;br /&gt;
| The page number to be displayed when using a multi-page image&lt;br /&gt;
|-&lt;br /&gt;
| upright&lt;br /&gt;
| If upright=yes, adds &amp;quot;upright&amp;quot; which displays image at 75% of default image size (which is 220px if not changed at [[Special:Preferences]]). If a value, adds &amp;quot;upright=''value''&amp;quot; to image, where values less than 1 scale the image down (0.9 = 90%) and values greater than 1 scale the image up (1.15 = 115%).&lt;br /&gt;
|-&lt;br /&gt;
| center&lt;br /&gt;
| If yes, then the image is centered.&lt;br /&gt;
|-&lt;br /&gt;
| thumbtime&lt;br /&gt;
| thumbtime param, used for video clips.&lt;br /&gt;
|-&lt;br /&gt;
| suppressplaceholder&lt;br /&gt;
| If no, then will not suppress certain placeholder images. See {{section link||Placeholder images which can be suppressed}}.&lt;br /&gt;
|-&lt;br /&gt;
| link&lt;br /&gt;
| Page to go to when clicking on the image.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: If you specify the maxsize or sizedefault params, then you should include the px after the number.&lt;br /&gt;
&lt;br /&gt;
{{Use dmy dates|date=July 2016}}&lt;br /&gt;
==Parameters displayed in image syntax==&lt;br /&gt;
All parameters:&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size={{{size}}} | upright={{{upright}}} | alt={{{alt}}} | title={{{title}}} | thumbtime={{{thumbtime}}} | link={{{link}}} | border=yes | center=yes | page={{{page}}} }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size={{{size}}} | upright={{{upright}}} | alt={{{alt}}} | title={{{title}}} | thumbtime={{{thumbtime}}} | link={{{link}}} | border=yes | center=yes | page={{{page}}} }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;size&amp;quot; and &amp;quot;maxsize&amp;quot; are defined, the smaller of the two is used (if &amp;quot;px&amp;quot; is omitted it will be added by the module):&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size=300px | maxsize=250px }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | size=300px | maxsize=250px }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;size&amp;quot; is not defined, &amp;quot;sizedefault&amp;quot; is used, even if larger than &amp;quot;maxsize&amp;quot; (in actual use &amp;quot;px&amp;quot; is required after the number; omitted here to show it is not added by the module):&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | sizedefault=250px | maxsize=200px }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | sizedefault=250px | maxsize=200px }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;size&amp;quot; and &amp;quot;sizedefault&amp;quot; are not defined, &amp;quot;maxsize&amp;quot; is used (in actual use &amp;quot;px&amp;quot; is required after the number; omitted here to show it is not added by the module):&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | maxsize=250px }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | maxsize=250px }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;size&amp;quot;, &amp;quot;sizedefault&amp;quot;, and &amp;quot;maxsize&amp;quot; are not defined, &amp;quot;frameless&amp;quot; is added, which displays the image at the default thumbnail size (220px, but logged in users can change this at [[Special:Preferences]]) and is required if using &amp;quot;upright&amp;quot; to scale the default size:&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use of &amp;quot;upright&amp;quot; without a number value, which displays the image at approximately 75% of the user's default size (multiplied by 0.75 then rounded to nearest 10):&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | upright = yes }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | upright = yes }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;quot;alt&amp;quot; is used without &amp;quot;title&amp;quot;, the alt text is also used as the title:&lt;br /&gt;
:&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | alt = Alt text }}&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;{{#invoke:InfoboxImage | InfoboxImage | image={{{image}}} | alt = Alt text }}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information, see [[Wikipedia:Extended image syntax]].&lt;br /&gt;
&lt;br /&gt;
==Sample usage==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
|image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|upright={{{image_upright|1}}}|alt={{{alt|}}}}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=File:Abbey Rd Studios.jpg}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Image:Abbey Rd Studios.jpg}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=yes}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=1.2}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|upright=1.2}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px}}&amp;lt;/nowiki&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=[[Image:Abbey Rd Studios.jpg|200px]]}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250|alt=The front stairs and door of Abbey Road Studios}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250|alt=The front stairs and door of Abbey Road Studios}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios|title=Exterior, front view of Abbey Road studios}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|sizedefault=250px|alt=The front stairs and door of Abbey Road Studios|title=Exterior, front view of Abbey Road studios}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|alt=The front stairs and door of Abbey Road Studios}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|alt=The front stairs and door of Abbey Road Studios}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px|alt=The front stairs and door of Abbey Road Studios}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=100px|alt=The front stairs and door of Abbey Road Studios}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Bilbao.svg|size=100|border=yes}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Bilbao.svg|size=200|border=yes}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg|suppressplaceholder=no}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Image is needed male.svg|suppressplaceholder=no}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]|suppressplaceholder=no}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=[[File:Image is needed male.svg|200px]]|suppressplaceholder=no}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=50px|maxsize=100px}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=50px|maxsize=100px}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=200px|maxsize=100px}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|size=200px|maxsize=100px}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=[[File:Abbey Rd Studios.jpg|200px]]|maxsize=100px}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=[[File:Abbey Rd Studios.jpg|200px]]|maxsize=100px}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|maxsize=100px|center=yes}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=Abbey Rd Studios.jpg|maxsize=100px|center=yes}}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{#invoke:InfoboxImage|InfoboxImage|image=no such image|maxsize=100px|center=yes}}&amp;lt;/nowiki&amp;gt;&amp;lt;!-- this issue sh'd be fixed somewhow--&amp;gt;&lt;br /&gt;
| {{#invoke:InfoboxImage|InfoboxImage|image=no such image|maxsize=100px|center=yes}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Placeholder images which can be suppressed ==&lt;br /&gt;
{|&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
* [[:File:Blue - Replace this image female.svg]]&lt;br /&gt;
* [[:File:Blue - Replace this image male.svg]]&lt;br /&gt;
* [[:File:Female no free image yet.png]]&lt;br /&gt;
* [[:File:Flag of None (square).svg]]&lt;br /&gt;
* [[:File:Flag of None.svg]]&lt;br /&gt;
* [[:File:Flag of.svg]]&lt;br /&gt;
* [[:File:Green - Replace this image female.svg]]&lt;br /&gt;
* [[:File:Green - Replace this image male.svg]]&lt;br /&gt;
* [[:File:Image is needed female.svg]]&lt;br /&gt;
* [[:File:Image is needed male.svg]]&lt;br /&gt;
* [[:File:Location map of None.svg]]&lt;br /&gt;
* [[:File:Male no free image yet.png]]&lt;br /&gt;
* [[:File:Missing flag.png]]&lt;br /&gt;
* [[:File:No flag.svg]]&lt;br /&gt;
* [[:File:No free portrait.svg]]&lt;br /&gt;
* [[:File:No portrait (female).svg]]&lt;br /&gt;
* [[:File:No portrait (male).svg]]&lt;br /&gt;
* [[:File:Red - Replace this image female.svg]]&lt;br /&gt;
* [[:File:Red - Replace this image male.svg]]&lt;br /&gt;
* [[:File:Replace this image female (blue).svg]]&lt;br /&gt;
* [[:File:Replace this image female.svg]]&lt;br /&gt;
* [[:File:Replace this image male (blue).svg]]&lt;br /&gt;
* [[:File:Replace this image male.svg]]&lt;br /&gt;
* [[:File:Silver - Replace this image female.svg]]&lt;br /&gt;
* [[:File:Silver - Replace this image male.svg]]&lt;br /&gt;
* [[:File:Replace this image.svg]]&lt;br /&gt;
* [[:File:Cricket no pic.png]]&lt;br /&gt;
* [[:File:CarersLogo.gif]]&lt;br /&gt;
* [[:File:Diagram Needed.svg]]&lt;br /&gt;
* [[:File:Example.jpg]]&lt;br /&gt;
* [[:File:Image placeholder.png]]&lt;br /&gt;
* [[:File:No male portrait.svg]]&lt;br /&gt;
* [[:File:Nocover-upload.png]]&lt;br /&gt;
* [[:File:NoDVDcover copy.png]]&lt;br /&gt;
* [[:File:Noribbon.svg]]&lt;br /&gt;
| style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
* [[:File:No portrait-BFD-test.svg]]&lt;br /&gt;
* [[:File:Placeholder barnstar ribbon.png]]&lt;br /&gt;
* [[:File:Project Trains no image.png]]&lt;br /&gt;
* [[:File:Image-request.png]]&lt;br /&gt;
* [[:File:Sin bandera.svg]]&lt;br /&gt;
* [[:File:Sin escudo.svg]]&lt;br /&gt;
* [[:File:Replace this image - temple.png]]&lt;br /&gt;
* [[:File:Replace this image butterfly.png]]&lt;br /&gt;
* [[:File:Replace this image.svg]]&lt;br /&gt;
* [[:File:Replace this image1.svg]]&lt;br /&gt;
* [[:File:Resolution angle.png]]&lt;br /&gt;
* [[:File:Image-No portrait-text-BFD-test.svg]]&lt;br /&gt;
* [[:File:Insert image here.svg]]&lt;br /&gt;
* [[:File:No image available.png]]&lt;br /&gt;
* [[:File:NO IMAGE YET square.png]]&lt;br /&gt;
* [[:File:NO IMAGE YET.png]]&lt;br /&gt;
* [[:File:No Photo Available.svg]]&lt;br /&gt;
* [[:File:No Screenshot.svg]]&lt;br /&gt;
* [[:File:No-image-available.jpg]]&lt;br /&gt;
* [[:File:Null.png]]&lt;br /&gt;
* [[:File:PictureNeeded.gif]]&lt;br /&gt;
* [[:File:Place holder.jpg]]&lt;br /&gt;
* [[:File:Unbenannt.JPG]]&lt;br /&gt;
* [[:File:UploadACopyrightFreeImage.svg]]&lt;br /&gt;
* [[:File:UploadAnImage.gif]]&lt;br /&gt;
* [[:File:UploadAnImage.svg]]&lt;br /&gt;
* [[:File:UploadAnImageShort.svg]]&lt;br /&gt;
* [[:File:CarersLogo.gif]]&lt;br /&gt;
* [[:File:Diagram Needed.svg]]&lt;br /&gt;
* [[:File:No male portrait.svg]]&lt;br /&gt;
* [[:File:NoDVDcover copy.png]]&lt;br /&gt;
* [[:File:Placeholder barnstar ribbon.png]]&lt;br /&gt;
* [[:File:Project Trains no image.png]]&lt;br /&gt;
* [[:File:Image-request.png]]&lt;br /&gt;
* [[:File:NoImageHere-Computers.jpg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tracking categories ==&lt;br /&gt;
* {{clc|Pages using deprecated image syntax}}&lt;br /&gt;
* {{clc|Pages using infoboxes with thumbnail images}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
{{DEFAULTSORT:Image, {{PAGENAME}}}}&lt;br /&gt;
[[Category:Lua metamodules]]&lt;br /&gt;
[[Category:Modules for image handling]]&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Use_dmy_dates&amp;diff=36654</id>
		<title>Plantilla:Use dmy dates</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Use_dmy_dates&amp;diff=36654"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#invoke:Unsubst||$N=Use dmy dates |date=__DATE__ |$B=&lt;br /&gt;
{{DMCA|Use dmy dates|from|{{{date|}}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Section_link&amp;diff=36652</id>
		<title>Plantilla:Section link</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Section_link&amp;diff=36652"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Section link|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!--  Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Ns_has_subpages&amp;diff=36650</id>
		<title>Plantilla:Ns has subpages</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Ns_has_subpages&amp;diff=36650"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Ns has subpages|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:FULLROOTPAGENAME&amp;diff=36648</id>
		<title>Plantilla:FULLROOTPAGENAME</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:FULLROOTPAGENAME&amp;diff=36648"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{|safesubst:}}}#if: {{ {{{|safesubst:}}}Ns has subpages | {{ {{{|safesubst:}}}#if:{{{1|}}}|{{ {{{|safesubst:}}}NAMESPACE:{{{1}}}}}|{{ {{{|safesubst:}}}NAMESPACE}}}} }} &lt;br /&gt;
  | {{ {{{|safesubst:}}}#titleparts:{{ {{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|{{ {{{|safesubst:}}}FULLPAGENAME}}}}|1}}&lt;br /&gt;
  | {{ {{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|{{ {{{|safesubst:}}}FULLPAGENAME}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Dated_maintenance_category&amp;diff=36646</id>
		<title>Plantilla:Dated maintenance category</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Dated_maintenance_category&amp;diff=36646"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;nowiki/&amp;gt;&amp;lt;!--This nowiki helps to prevent whitespace at the top of articles--&amp;gt;{{#ifeq:{{FULLROOTPAGENAME}}|Wikipedia:Template messages|&amp;lt;!--Do not categorize--&amp;gt;|&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifexpr:{{#if:{{NAMESPACE}}|0|1}}+{{#ifeq:{{{onlyarticles|no}}}|yes|0|1}}&lt;br /&gt;
 |{{#if:{{{3|}}}&lt;br /&gt;
  |[[Category:{{{1}}} {{{2}}} {{{3}}}]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifexist:Category:{{{1}}} {{{2}}} {{{3}}}&lt;br /&gt;
    |&amp;lt;!--&lt;br /&gt;
 --&amp;gt;|[[Category:Articles with invalid date parameter in template]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&lt;br /&gt;
  |[[Category:{{#if:{{{5|}}}&lt;br /&gt;
               |{{{5}}}&amp;lt;!--&lt;br /&gt;
            --&amp;gt;|{{{1}}}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;}}]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}{{#if:{{{4|}}}&lt;br /&gt;
      |[[Category:{{{4}}}]]}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:DMCA&amp;diff=36644</id>
		<title>Plantilla:DMCA</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:DMCA&amp;diff=36644"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dated maintenance category&lt;br /&gt;
 |onlyarticles=yes&lt;br /&gt;
 |1={{{1|}}}&lt;br /&gt;
 |2={{{2|}}}&lt;br /&gt;
 |3={{{3|}}}&lt;br /&gt;
 |4={{{4|}}}&lt;br /&gt;
 |5={{{5|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|Template:Dated maintenance category/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbar/doc&amp;diff=36642</id>
		<title>Módulo:Navbar/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbar/doc&amp;diff=36642"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|11,200,000+}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
&lt;br /&gt;
This is a [[WP:Lua|Lua]] implementation of {{tl|Navbar}}. It is used in [[Module:Navbox]].&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Infobox/doc&amp;diff=36640</id>
		<title>Módulo:Infobox/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Infobox/doc&amp;diff=36640"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|2,630,000 +}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
&lt;br /&gt;
This module implements the {{tl|Infobox}} template. Please see the template page for usage instructions.&lt;br /&gt;
&lt;br /&gt;
== Tracking categories ==&lt;br /&gt;
* {{clc|Articles which use infobox templates with no data rows}}&lt;br /&gt;
* {{clc|Pages which use embedded infobox templates with the title parameter}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
[[Category:Wikipedia infoboxes]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Uses_Wikidata&amp;diff=36638</id>
		<title>Módulo:Uses Wikidata</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Uses_Wikidata&amp;diff=36638"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.usesProperty(frame)&lt;br /&gt;
	local parent = frame.getParent(frame)&lt;br /&gt;
	local result = ''&lt;br /&gt;
	local ii = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local p_num = parent.args[ii] or ''&lt;br /&gt;
		if p_num ~= '' then&lt;br /&gt;
			local label = mw.wikibase.label(p_num) or &amp;quot;NO LABEL&amp;quot;&lt;br /&gt;
			result = result .. &amp;quot;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;[[d:Property:&amp;quot; .. p_num .. &amp;quot;|&amp;quot; .. label .. &amp;quot; &amp;lt;small&amp;gt;(&amp;quot; .. string.upper(p_num) .. &amp;quot;)&amp;lt;/small&amp;gt;]]&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; (see [[d:Property talk:&amp;quot; .. p_num .. &amp;quot;|talk]]; [[d:Special:WhatLinksHere/Property:&amp;quot; .. p_num .. &amp;quot;|uses]])&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
			ii = ii + 1&lt;br /&gt;
		else break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Side_box&amp;diff=36636</id>
		<title>Módulo:Side box</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Side_box&amp;diff=36636"/>
		<updated>2017-03-19T06:15:43Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{side box}}.&lt;br /&gt;
&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = frame:getParent().args&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		v = v:match('%s*(.-)%s*$')&lt;br /&gt;
		if v ~= '' then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local data = p.makeData(args)&lt;br /&gt;
	return p.renderSidebox(data)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeData(args)&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Main table classes&lt;br /&gt;
	data.classes = {}&lt;br /&gt;
	if yesno(args.metadata) ~= false then&lt;br /&gt;
		table.insert(data.classes, 'metadata')&lt;br /&gt;
	end&lt;br /&gt;
	if args.position and args.position:lower() == 'left' then&lt;br /&gt;
		table.insert(data.classes, 'mbox-small-left')&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(data.classes, 'mbox-small')&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(data.classes, args.class)&lt;br /&gt;
	&lt;br /&gt;
	-- Image&lt;br /&gt;
	if args.image and args.image ~= 'none' then&lt;br /&gt;
		data.image = args.image&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Copy over data that doesn't need adjusting&lt;br /&gt;
	local argsToCopy = {&lt;br /&gt;
		-- Styles&lt;br /&gt;
		'style',&lt;br /&gt;
		'textstyle',&lt;br /&gt;
&lt;br /&gt;
		-- Above row&lt;br /&gt;
		'above',&lt;br /&gt;
		'abovestyle',&lt;br /&gt;
&lt;br /&gt;
		-- Body row&lt;br /&gt;
		'text',&lt;br /&gt;
		'imageright',&lt;br /&gt;
&lt;br /&gt;
		-- Below row&lt;br /&gt;
		'below',&lt;br /&gt;
	}&lt;br /&gt;
	for i, key in ipairs(argsToCopy) do&lt;br /&gt;
		data[key] = args[key]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderSidebox(data)&lt;br /&gt;
	-- Renders the sidebox HTML.&lt;br /&gt;
&lt;br /&gt;
	-- Table root&lt;br /&gt;
	local root = mw.html.create('table')&lt;br /&gt;
	root:attr('role', 'presentation')&lt;br /&gt;
	for i, class in ipairs(data.classes or {}) do&lt;br /&gt;
		root:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	root:css{border = '1px solid #aaa', ['background-color'] = '#f9f9f9', color = '#000'}&lt;br /&gt;
	if data.style then&lt;br /&gt;
		root:cssText(data.style)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The &amp;quot;above&amp;quot; row&lt;br /&gt;
	if data.above then&lt;br /&gt;
		local aboveCell = root:newline():tag('tr'):tag('td')&lt;br /&gt;
		aboveCell&lt;br /&gt;
			:attr('colspan', data.imageright and 3 or 2)&lt;br /&gt;
			:addClass('mbox-text')&lt;br /&gt;
		if data.textstyle then&lt;br /&gt;
			aboveCell:cssText(data.textstyle)&lt;br /&gt;
		end&lt;br /&gt;
		if data.abovestyle then&lt;br /&gt;
			aboveCell:cssText(data.abovestyle)&lt;br /&gt;
		end&lt;br /&gt;
		aboveCell&lt;br /&gt;
			:newline()&lt;br /&gt;
			:wikitext(data.above)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The body row&lt;br /&gt;
	local bodyRow = root:newline():tag('tr'):newline()&lt;br /&gt;
	if data.image then&lt;br /&gt;
		bodyRow:tag('td')&lt;br /&gt;
			:addClass('mbox-image')&lt;br /&gt;
			:wikitext(data.image)&lt;br /&gt;
	else&lt;br /&gt;
		bodyRow:tag('td'):css('width', '1px')&lt;br /&gt;
	end&lt;br /&gt;
	local textCell = bodyRow:newline():tag('td')&lt;br /&gt;
	textCell:addClass('mbox-text plainlist')&lt;br /&gt;
	if data.textstyle then&lt;br /&gt;
		textCell:cssText(data.textstyle)&lt;br /&gt;
	end&lt;br /&gt;
	textCell:wikitext(data.text)&lt;br /&gt;
	if data.imageright then&lt;br /&gt;
		bodyRow:newline():tag('td')&lt;br /&gt;
			:addClass('mbox-imageright')&lt;br /&gt;
			:wikitext(data.imageright)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The below row&lt;br /&gt;
	if data.below then&lt;br /&gt;
		local belowCell = root:newline():tag('tr'):tag('td')&lt;br /&gt;
		belowCell&lt;br /&gt;
			:attr('colspan', data.imageright and 3 or 2)&lt;br /&gt;
			:addClass('mbox-text')&lt;br /&gt;
		if data.textstyle then&lt;br /&gt;
			belowCell:cssText(data.textstyle)&lt;br /&gt;
		end&lt;br /&gt;
		belowCell:wikitext(data.below)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Authority_control/doc&amp;diff=36634</id>
		<title>Módulo:Authority control/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Authority_control/doc&amp;diff=36634"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|475,000+}}&lt;br /&gt;
{{Uses Wikidata|p214|p244|p213|p496|p227|p906|p269|p268|p651|p1053|p1015|p245|p902|p886|p434|p549|p409|p349|p1048|p691|p640|p396|p947|p428|p1222|p1223|p1157|p950|p271|p1362|p781|p1248|p650}}&lt;br /&gt;
&lt;br /&gt;
This module contains the code of the {{T|Authority control}} template. See its documentation.&lt;br /&gt;
&lt;br /&gt;
==Tracking categories==&lt;br /&gt;
This module currently implements the following hidden tracking categories:&lt;br /&gt;
&lt;br /&gt;
* {{clc|Wikipedia articles with VIAF identifiers‎}}&lt;br /&gt;
* {{clc|User pages with VIAF identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with VIAF identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with SBN identifiers‎}}&lt;br /&gt;
* {{clc|User pages with SBN identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with SBN identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with LCCN identifiers‎}}&lt;br /&gt;
* {{clc|User pages with LCCN identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with LCCN identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with MusicBrainz identifiers‎}}&lt;br /&gt;
* {{clc|User pages with MusicBrainz identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with MusicBrainz identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with ISNI identifiers‎}}&lt;br /&gt;
* {{clc|User pages with ISNI identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with ISNI identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with ORCID identifiers‎}}&lt;br /&gt;
* {{clc|User pages with ORCID identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with ORCID identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with GND identifiers‎}}&lt;br /&gt;
* {{clc|User pages with GND identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with GND identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with SELIBR identifiers‎}}&lt;br /&gt;
* {{clc|User pages with SELIBR identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with SELIBR identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with BPN identifiers‎}}&lt;br /&gt;
* {{clc|User pages with BPN identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with BPN identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with BNF identifiers‎}}&lt;br /&gt;
* {{clc|User pages with BNF identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with BNF identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with RID identifiers‎}}&lt;br /&gt;
* {{clc|User pages with RID identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with RID identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with BIBSYS identifiers‎}}&lt;br /&gt;
* {{clc|User pages with BIBSYS identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with BIBSYS identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with ULAN identifiers‎}}&lt;br /&gt;
* {{clc|User pages with ULAN identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with ULAN identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with NLA identifiers‎}}&lt;br /&gt;
* {{clc|User pages with NLA identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with NLA identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with RKDartists identifiers‎}}&lt;br /&gt;
* {{clc|User pages with RKDartists identifiers‎}}&lt;br /&gt;
* {{clc|Miscellaneous pages with RKDartists identifiers‎}}&lt;br /&gt;
&lt;br /&gt;
Existing categories not currently implemented in module:&lt;br /&gt;
* {{clc|Wikipedia articles with BNE identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with LNB identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with NDL identifiers‎}}&lt;br /&gt;
* {{clc|Wikipedia articles with NSK identifiers‎}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
[[Category:Modules using data from Wikidata]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Uses_Wikidata&amp;diff=36632</id>
		<title>Plantilla:Uses Wikidata</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Uses_Wikidata&amp;diff=36632"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Sister project&lt;br /&gt;
| position = {{{position|}}}&lt;br /&gt;
| project  = data&lt;br /&gt;
| text     = This {{module other|module|template}} uses {{#if:{{{section|}}} | one or more [[Wikidata]] properties; see [[#{{{section}}}|§&amp;amp;nbsp;{{{section}}}]]&amp;lt;/span&amp;gt; for details. | the [[Wikidata]] propert{{#if:{{{2|}}}|ies|y}}:&lt;br /&gt;
{{#invoke:Uses Wikidata|usesProperty}}&lt;br /&gt;
}}}}{{#switch:{{SUBPAGENAME}}&lt;br /&gt;
|sandbox |testcases |doc= &amp;lt;!--no category--&amp;gt;&lt;br /&gt;
|#default={{#ifeq:{{PAGENAME}} |Uses Wikidata ||{{module other |[[Category:Modules using data from Wikidata]] |{{template other |[[Category:Templates using data from Wikidata]]}} }} }}&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:T&amp;diff=36630</id>
		<title>Plantilla:T</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:T&amp;diff=36630"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:tl]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Used as Template:tl throughout English Wikipedia; demo template referenced only on meta -&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Sister_project&amp;diff=36628</id>
		<title>Plantilla:Sister project</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Sister_project&amp;diff=36628"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Side box&lt;br /&gt;
| metadata=no&lt;br /&gt;
| position = {{{position|}}}&lt;br /&gt;
| image    = &lt;br /&gt;
  {{#switch: {{{image|}}}&lt;br /&gt;
  | none =    &amp;lt;!-- &amp;quot;image=none&amp;quot;, do nothing --&amp;gt;&lt;br /&gt;
  |      =    &amp;lt;!-- No image fed, select an image --&amp;gt;&lt;br /&gt;
    [[File:{{#switch: {{lc: {{{project|}}} }}&lt;br /&gt;
    | commons                = Commons-logo.svg&lt;br /&gt;
    | meta|metawiki|m        = Wikimedia Community Logo.svg&lt;br /&gt;
    | wikibooks|wbk|wb|b     = Wikibooks-logo-en-noslogan.svg&lt;br /&gt;
    | wikidata|data          = Wikidata-logo.svg&lt;br /&gt;
    | wikiquote|quote|wqt|q  = Wikiquote-logo.svg&lt;br /&gt;
    | wikipedia|wp|w         = Wikipedia-logo-v2.svg&lt;br /&gt;
    | wikisource|source|ws|s = Wikisource-logo.svg&lt;br /&gt;
    | wiktionary|wkt|wdy|d   = Wiktionary-logo-v2.svg&lt;br /&gt;
    | wikinews|news|wnw|n    = Wikinews-logo.svg&lt;br /&gt;
    | wikispecies|species    = Wikispecies-logo.svg&lt;br /&gt;
    | wikiversity|wvy|v      = Wikiversity-logo.svg&lt;br /&gt;
    | wikivoyage|voyage|voy  = Wikivoyage-Logo-v3-icon.svg&lt;br /&gt;
    | mediawiki|mw           = Mediawiki.png&lt;br /&gt;
    | outreachwiki|outreach  = Wikimedia Outreach.png&lt;br /&gt;
    | incubator              = Incubator-notext.svg&lt;br /&gt;
    | #default               = Wikimedia-logo.svg&lt;br /&gt;
    }}|40x40px|class=noviewer|alt=&lt;br /&gt;
    ]]&lt;br /&gt;
  | #default = {{{image|}}}&lt;br /&gt;
  }}&lt;br /&gt;
| text       = {{{text}}}&lt;br /&gt;
| below      = {{{below|}}}&lt;br /&gt;
| imageright = {{{imageright|}}}&lt;br /&gt;
| class      = plainlinks sistersitebox&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Side_box&amp;diff=36626</id>
		<title>Plantilla:Side box</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Side_box&amp;diff=36626"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Side box|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Yesno/doc&amp;diff=36624</id>
		<title>Módulo:Yesno/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Yesno/doc&amp;diff=36624"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|14,100,000+ pages, which is {{#expr:(1414355100/{{NUMBEROFPAGES:R}}) round 0}}% of all}}&lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
This module provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; boolean values, wikicode templates can only express boolean values through strings such as &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; values as &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;, to allow for distinctions between &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;, it is possible to specify a default value to return.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;yesno(value, default)&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is the value to be tested. Boolean input or boolean-style input (see below) always evaluates to either &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; always evaluates to &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. Other values evaluate to &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
First, load the module. Note that it can only be loaded from other Lua modules, not from normal wiki pages. For normal wiki pages you can use {{tl|yesno}} instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local yesno = require('Module:Yesno')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some input values always return &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, and some always return &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; values always return &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- These always return true:&lt;br /&gt;
yesno('yes')&lt;br /&gt;
yesno('y')&lt;br /&gt;
yesno('true')&lt;br /&gt;
yesno('t')&lt;br /&gt;
yesno('1')&lt;br /&gt;
yesno(1)&lt;br /&gt;
yesno(true)&lt;br /&gt;
&lt;br /&gt;
-- These always return false:&lt;br /&gt;
yesno('no')&lt;br /&gt;
yesno('n')&lt;br /&gt;
yesno('false')&lt;br /&gt;
yesno('f')&lt;br /&gt;
yesno('0')&lt;br /&gt;
yesno(0)&lt;br /&gt;
yesno(false)&lt;br /&gt;
&lt;br /&gt;
-- A nil value always returns nil:&lt;br /&gt;
yesno(nil)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
String values are converted to lower case before they are matched:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- These always return true:&lt;br /&gt;
yesno('Yes')&lt;br /&gt;
yesno('YES')&lt;br /&gt;
yesno('yEs')&lt;br /&gt;
yesno('Y')&lt;br /&gt;
yesno('tRuE')&lt;br /&gt;
&lt;br /&gt;
-- These always return false:&lt;br /&gt;
yesno('No')&lt;br /&gt;
yesno('NO')&lt;br /&gt;
yesno('nO')&lt;br /&gt;
yesno('N')&lt;br /&gt;
yesno('fALsE')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can specify a default value if yesno receives input other than that listed above. If you don't supply a default, the module will return &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; for these inputs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- These return nil:&lt;br /&gt;
yesno('foo')&lt;br /&gt;
yesno({})&lt;br /&gt;
yesno(5)&lt;br /&gt;
yesno(function() return 'This is a function.' end)&lt;br /&gt;
&lt;br /&gt;
-- These return true:&lt;br /&gt;
yesno('foo', true)&lt;br /&gt;
yesno({}, true)&lt;br /&gt;
yesno(5, true)&lt;br /&gt;
yesno(function() return 'This is a function.' end, true)&lt;br /&gt;
&lt;br /&gt;
-- These return &amp;quot;bar&amp;quot;:&lt;br /&gt;
yesno('foo', 'bar')&lt;br /&gt;
yesno({}, 'bar')&lt;br /&gt;
yesno(5, 'bar')&lt;br /&gt;
yesno(function() return 'This is a function.' end, 'bar')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the blank string also functions this way:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
yesno('')        -- Returns nil.&lt;br /&gt;
yesno('', true)  -- Returns true.&lt;br /&gt;
yesno('', 'bar') -- Returns &amp;quot;bar&amp;quot;.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the blank string usually evaluates to false in wikitext, it evaluates to true in Lua. This module prefers the Lua behaviour over the wikitext behaviour. If treating the blank string as false is important for your module, you will need to remove blank arguments at an earlier stage of processing.&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Lua metamodules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Arguments/doc&amp;diff=36622</id>
		<title>Módulo:Arguments/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Arguments/doc&amp;diff=36622"/>
		<updated>2017-03-19T06:15:42Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|19,241,210 pages, which is {{#expr:(1924121000/{{NUMBEROFPAGES:R}}) round 0}}% of all}}&lt;br /&gt;
{{Used in system}}&lt;br /&gt;
{{Module rating|p}}&lt;br /&gt;
&lt;br /&gt;
This module provides easy processing of arguments passed from #invoke. It is a meta-module, meant for use by other modules, and should not be called from #invoke directly. Its features include:&lt;br /&gt;
* Easy trimming of arguments and removal of blank arguments.&lt;br /&gt;
* Arguments can be passed by both the current frame and by the parent frame at the same time. (More details below.)&lt;br /&gt;
* Arguments can be passed in directly from another Lua module or from the debug console.&lt;br /&gt;
* Arguments are fetched as needed, which can help avoid (some) problems with {{tag|ref}} tags.&lt;br /&gt;
* Most features can be customized.&lt;br /&gt;
&lt;br /&gt;
== Basic use ==&lt;br /&gt;
&lt;br /&gt;
First, you need to load the module. It contains one function, named &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the most basic scenario, you can use getArgs inside your main function. The variable &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; is a table containing the arguments from #invoke. (See below for details.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&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;
	-- Main module code goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, the recommended practice is to use a function just for processing arguments from #invoke. This means that if someone calls your module from another Lua module you don't have to have a frame object available, which improves performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&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;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- Main module code goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want multiple functions to use the arguments, and you also want them to be accessible from #invoke, you can use a wrapper function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = getArgs(frame)&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
p.func1 = makeInvokeFunc('_func1')&lt;br /&gt;
&lt;br /&gt;
function p._func1(args)&lt;br /&gt;
	-- Code for the first function goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.func2 = makeInvokeFunc('_func2')&lt;br /&gt;
&lt;br /&gt;
function p._func2(args)&lt;br /&gt;
	-- Code for the second function goes here.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
The following options are available. They are explained in the sections below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false,&lt;br /&gt;
	removeBlanks = false,&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		-- Code for processing one argument&lt;br /&gt;
	end,&lt;br /&gt;
	frameOnly = true,&lt;br /&gt;
	parentOnly = true,&lt;br /&gt;
	parentFirst = true,&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		'Template:A wrapper template',&lt;br /&gt;
		'Template:Another wrapper template'&lt;br /&gt;
	},&lt;br /&gt;
	readOnly = true,&lt;br /&gt;
	noOverwrite = true&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Trimming and removing blanks ===&lt;br /&gt;
&lt;br /&gt;
Blank arguments often trip up coders new to converting MediaWiki templates to Lua. In template syntax, blank strings and strings consisting only of whitespace are considered false. However, in Lua, blank strings and strings consisting of whitespace are considered true. This means that if you don't pay attention to such arguments when you write your Lua modules, you might treat something as true that should actually be treated as false. To avoid this, by default this module removes all blank arguments.&lt;br /&gt;
&lt;br /&gt;
Similarly, whitespace can cause problems when dealing with positional arguments. Although whitespace is trimmed for named arguments coming from #invoke, it is preserved for positional arguments. Most of the time this additional whitespace is not desired, so this module trims it off by default.&lt;br /&gt;
&lt;br /&gt;
However, sometimes you want to use blank arguments as input, and sometimes you want to keep additional whitespace. This can be necessary to convert some templates exactly as they were written. If you want to do this, you can set the &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; arguments to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false,&lt;br /&gt;
	removeBlanks = false&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Custom formatting of arguments ===&lt;br /&gt;
&lt;br /&gt;
Sometimes you want to remove some blank arguments but not others, or perhaps you might want to put all of the positional arguments in lower case. To do things like this you can use the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; option. The input to this option must be a function that takes two parameters, &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, and returns a single value. This value is what you will get when you access the field &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
Example 1: this function preserves whitespace for the first positional argument, but trims all other arguments and removes all other blank arguments.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif value then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= '' then&lt;br /&gt;
				return value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: this function removes blank arguments and converts all arguments to lower case, but doesn't trim whitespace from positional parameters.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if not value then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		value = mw.ustring.lower(value)&lt;br /&gt;
		if mw.ustring.find(value, '%S') then&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the above functions will fail if passed input that is not of type &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. This might be the case if you use the &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; function in the main function of your module, and that function is called by another Lua module. In this case, you will need to check the type of your input. This is not a problem if you are using a function specially for arguments from #invoke (i.e. you have &amp;lt;code&amp;gt;p.main&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;p._main&amp;lt;/code&amp;gt; functions, or something similar).&lt;br /&gt;
&lt;br /&gt;
{{cot|Examples 1 and 2 with type checking}}&lt;br /&gt;
Example 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif type(value) == 'string' then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= '' then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if type(value) == 'string' then&lt;br /&gt;
			value = mw.ustring.lower(value)&lt;br /&gt;
			if mw.ustring.find(value, '%S') then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
Also, please note that the &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; function is called more or less every time an argument is requested from the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table, so if you care about performance you should make sure you aren't doing anything inefficient with your code.&lt;br /&gt;
&lt;br /&gt;
=== Frames and parent frames ===&lt;br /&gt;
&lt;br /&gt;
Arguments in the &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; table can be passed from the current frame or from its parent frame at the same time. To understand what this means, it is easiest to give an example. Let's say that we have a module called &amp;lt;code&amp;gt;Module:ExampleArgs&amp;lt;/code&amp;gt;. This module prints the first two positional arguments that it is passed.&lt;br /&gt;
&lt;br /&gt;
{{cot|Module:ExampleArgs code}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&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;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local first = args[1] or ''&lt;br /&gt;
	local second = args[2] or ''&lt;br /&gt;
	return first .. ' ' .. second&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Module:ExampleArgs&amp;lt;/code&amp;gt; is then called by &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt;, which contains the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:ExampleArgs|main|firstInvokeArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. This produces the result &amp;quot;firstInvokeArg&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Now if we were to call &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt;, the following would happen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are three options you can set to change this behaviour: &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt;. If you set &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; then only arguments passed from the current frame will be accepted; if you set &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; then only arguments passed from the parent frame will be accepted; and if you set &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; then arguments will be passed from both the current and parent frames, but the parent frame will have priority over the current frame. Here are the results in terms of &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
; frameOnly&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; parentOnly&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; parentFirst&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Code&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstInvokeArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# If you set both the &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; options, the module won't fetch any arguments at all from #invoke. This is probably not what you want.&lt;br /&gt;
# In some situations a parent frame may not be available, e.g. if getArgs is passed the parent frame rather than the current frame. In this case, only the frame arguments will be used (unless parentOnly is set, in which case no arguments will be used) and the &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; options will have no effect.&lt;br /&gt;
&lt;br /&gt;
=== Wrappers ===&lt;br /&gt;
&lt;br /&gt;
The ''wrappers'' option is used to specify a limited number of templates as ''wrapper templates'', that is, templates whose only purpose is to call a module. If the module detects that it is being called from a wrapper template, it will only check for arguments in the parent frame; otherwise it will only check for arguments in the frame passed to getArgs. This allows modules to be called by either #invoke or through a wrapper template without the loss of performance associated with having to check both the frame and the parent frame for each argument lookup.&lt;br /&gt;
&lt;br /&gt;
For example, the only content of [[Template:Side box]] (excluding content in {{tag|noinclude}} tags) is &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. There is no point in checking the arguments passed directly to the #invoke statement for this template, as no arguments will ever be specified there. We can avoid checking arguments passed to #invoke by using the ''parentOnly'' option, but if we do this then #invoke will not work from other pages either. If this were the case, the {{para|text|Some text}} in the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Some text}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; would be ignored completely, no matter what page it was used from. By using the &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; option to specify 'Template:Side box' as a wrapper, we can make &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Some text}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; work from most pages, while still not requiring that the module check for arguments on the [[Template:Side box]] page itself.&lt;br /&gt;
&lt;br /&gt;
Wrappers can be specified either as a string, or as an array of strings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = 'Template:Wrapper template'&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		'Template:Wrapper 1',&lt;br /&gt;
		'Template:Wrapper 2',&lt;br /&gt;
		-- Any number of wrapper templates can be added here.&lt;br /&gt;
	}&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The module will automatically detect if it is being called from a wrapper template's /sandbox subpage, so there is no need to specify sandbox pages explicitly.&lt;br /&gt;
# The ''wrappers'' option effectively changes the default of the ''frameOnly'' and ''parentOnly'' options. If, for example, ''parentOnly'' were explicitly set to false with ''wrappers'' set, calls via wrapper templates would result in both frame and parent arguments being loaded, though calls not via wrapper templates would result in only frame arguments being loaded.&lt;br /&gt;
# If the ''wrappers'' option is set and no parent frame is available, the module will always get the arguments from the frame passed to &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Writing to the args table ===&lt;br /&gt;
&lt;br /&gt;
Sometimes it can be useful to write new values to the args table. This is possible with the default settings of this module. (However, bear in mind that it is usually better coding style to create a new table with your new values and copy arguments from the args table as needed.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
args.foo = 'some value'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to alter this behaviour with the &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; options. If &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; is set then it is not possible to write any values to the args table at all. If &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; is set, then it is possible to add new values to the table, but it is not possible to add a value if it would overwrite any arguments that are passed from #invoke.&lt;br /&gt;
&lt;br /&gt;
=== Ref tags ===&lt;br /&gt;
&lt;br /&gt;
This module uses [[mw:Extension:Scribunto/Lua reference manual#Metatables|metatables]] to fetch arguments from #invoke. This allows access to both the frame arguments and the parent frame arguments without using the &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; function. This can help if your module might be passed {{tag|ref}} tags as input.&lt;br /&gt;
&lt;br /&gt;
As soon as {{tag|ref}} tags are accessed from Lua, they are processed by the MediaWiki software and the reference will appear in the reference list at the bottom of the article. If your module proceeds to omit the reference tag from the output, you will end up with a phantom reference - a reference that appears in the reference list, but no number that links to it. This has been a problem with modules that use &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; to detect whether to use the arguments from the frame or the parent frame, as those modules automatically process every available argument.&lt;br /&gt;
&lt;br /&gt;
This module solves this problem by allowing access to both frame and parent frame arguments, while still only fetching those arguments when it is necessary. The problem will still occur if you use &amp;lt;code&amp;gt;pairs(args)&amp;lt;/code&amp;gt; elsewhere in your module, however.&lt;br /&gt;
&lt;br /&gt;
=== Known limitations ===&lt;br /&gt;
&lt;br /&gt;
The use of metatables also has its downsides. Most of the normal Lua table tools won't work properly on the args table, including the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; operator, the &amp;lt;code&amp;gt;next()&amp;lt;/code&amp;gt; function, and the functions in the table library. If using these is important for your module, you should use your own argument processing function instead of this module.&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Lua metamodules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Cot&amp;diff=36620</id>
		<title>Plantilla:Cot</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Cot&amp;diff=36620"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Collapse top]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pp-template|small=yes}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Collapse_top&amp;diff=36618</id>
		<title>Plantilla:Collapse top</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Collapse_top&amp;diff=36618"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;margin-left:{{{indent|0px}}}&amp;quot;&amp;gt;&amp;lt;!-- NOTE: width renders incorrectly if added to main STYLE section --&amp;gt;&lt;br /&gt;
{| &amp;lt;!-- Template:Collapse top --&amp;gt; class=&amp;quot;mw-collapsible {{{{{|safesubst:}}}#if:{{{expand|}}}||mw-collapsed}}&amp;quot; style=&amp;quot;background: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|silver}}}; margin: 0.2em auto auto; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|100%}}; clear: {{{clear|both}}}; padding: 1px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background: {{{bg|#{{main other|F0F2F5|CCFFCC}}}}}; font-size:87%; padding:0.2em 0.3em; text-align:{{{{{|safesubst:}}}#if:{{{left|}}}|left|center}}; {{{{{|safesubst:}}}#if:{{{fc|}}}|color: {{{fc}}};|}}&amp;quot; | &amp;lt;span style=&amp;quot;font-size:115%&amp;quot;&amp;gt;{{{1|{{{title|{{{reason|{{{header|{{{heading|Extended content}}} }}} }}} }}} }}}&amp;lt;/span&amp;gt;   &lt;br /&gt;
{{{{{|safesubst:}}}#if:{{{warning|{{{2|}}}}}}&lt;br /&gt;
|{{{{{|safesubst:}}}!}}-&lt;br /&gt;
{{{{{|safesubst:}}}!}} style=&amp;quot;text-align:center; font-style:italic;&amp;quot; {{{{{|safesubst:}}}!}} {{{2|The following is a closed debate. {{strongbad|Please do not modify it.}} }}} }}&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border: solid {{{border2|1px silver}}}; padding: {{{padding|8px}}}; background: {{{bg2|white}}};&amp;quot; {{{{{|safesubst:}}}!}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{lorem ipsum|3}}&lt;br /&gt;
{{Collapse bottom}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
{{Collapse top/TemplateData}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Collapse_bottom&amp;diff=36616</id>
		<title>Plantilla:Collapse bottom</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Collapse_bottom&amp;diff=36616"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|}&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|Template:Collapse top/doc}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Cob&amp;diff=36614</id>
		<title>Plantilla:Cob</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Cob&amp;diff=36614"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Collapse bottom]]&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbox/doc&amp;diff=36612</id>
		<title>Módulo:Navbox/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbox/doc&amp;diff=36612"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{FULLPAGENAME}}|Module:Navbox|{{High-risk| 2850000+ }}}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
&lt;br /&gt;
This module implements the {{tl|Navbox}} template. Please see the template page for usage instructions.&lt;br /&gt;
&lt;br /&gt;
== Tracking/maintenance categories ==&lt;br /&gt;
* {{clc|Navigational boxes without horizontal lists}}&lt;br /&gt;
* {{clc|Navboxes using background colours}}&lt;br /&gt;
* {{clc|Potentially illegible navboxes}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Message_box/doc&amp;diff=36610</id>
		<title>Módulo:Message box/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Message_box/doc&amp;diff=36610"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk| 5,500,000+ pages, which is {{#expr:(538860800/{{NUMBEROFPAGES:R}}) round 0}}% of all}}&lt;br /&gt;
{{Used in system}}&lt;br /&gt;
{{module rating|p}}&lt;br /&gt;
&lt;br /&gt;
This is a meta-module that implements the message box templates {{tl|mbox}}, {{tl|ambox}}, {{tl|cmbox}}, {{tl|fmbox}}, {{tl|imbox}}, {{tl|ombox}}, and {{tl|tmbox}}. It is intended to be used from Lua modules, and should not be used directly from wiki pages. If you want to use this module's functionality from a wiki page, please use the individual message box templates instead.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
To use this module from another Lua module, first you need to load it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local messageBox = require('Module:Message box')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create a message box, use the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; function. It takes two parameters: the first is the box type (as a string), and the second is a table containing the message box parameters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local box = messageBox.main( boxType, {&lt;br /&gt;
    param1 = param1,&lt;br /&gt;
    param2 = param2,&lt;br /&gt;
    -- More parameters...&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are seven available box types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Box type !! Template !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mbox&amp;lt;/code&amp;gt; || {{tl|mbox}} || For message boxes to be used in multiple namespaces&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ambox&amp;lt;/code&amp;gt; || {{tl|ambox}} || For article message boxes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmbox&amp;lt;/code&amp;gt; || {{tl|cmbox}} || For category message boxes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fmbox&amp;lt;/code&amp;gt; || {{tl|fmbox}} || For interface message boxes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;imbox&amp;lt;/code&amp;gt; || {{tl|imbox}} || For file namespace message boxes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tmbox&amp;lt;/code&amp;gt; || {{tl|tmbox}} || For talk page message boxes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ombox&amp;lt;/code&amp;gt; || {{tl|ombox}} || For message boxes in other namespaces&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the template page of each box type for the available parameters.&lt;br /&gt;
&lt;br /&gt;
== Usage from #invoke ==&lt;br /&gt;
&lt;br /&gt;
As well as the &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; function, this module has separate functions for each box type. They are accessed using the code &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Message box|mbox|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Message box|ambox|...}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, etc. These will work when called from other modules, but they access code used to process arguments passed from #invoke, and so calling them will be less efficient than calling &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Technical details ==&lt;br /&gt;
&lt;br /&gt;
The module uses the same basic code for each of the templates listed above; the differences between each of them are configured using the data at [[Module:Message box/configuration]]. Here are the various configuration options and what they mean:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;types&amp;lt;/code&amp;gt; - a table containing data used by the type parameter of the message box. The table keys are the values that can be passed to the type parameter, and the table values are tables containing the class and the image used by that type.&lt;br /&gt;
* &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; - the type to use if no value was passed to the type parameter, or if an invalid value was specified.&lt;br /&gt;
* &amp;lt;code&amp;gt;showInvalidTypeError&amp;lt;/code&amp;gt; - whether to show an error if the value passed to the type parameter was invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;allowBlankParams&amp;lt;/code&amp;gt; - usually blank values are stripped from parameters passed to the module. However, whitespace is preserved for the parameters included in the allowBlankParams table.&lt;br /&gt;
* &amp;lt;code&amp;gt;allowSmall&amp;lt;/code&amp;gt; - whether a small version of the message box can be produced with &amp;quot;small=yes&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;smallParam&amp;lt;/code&amp;gt; - a custom name for the small parameter. For example, if set to &amp;quot;left&amp;quot; you can produce a small message box using &amp;quot;small=left&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;smallClass&amp;lt;/code&amp;gt; - the class to use for small message boxes.&lt;br /&gt;
* &amp;lt;code&amp;gt;substCheck&amp;lt;/code&amp;gt; - whether to perform a subst check or not.&lt;br /&gt;
* &amp;lt;code&amp;gt;classes&amp;lt;/code&amp;gt; - an array of classes to use with the message box.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageEmptyCell&amp;lt;/code&amp;gt; - whether to use an empty {{tag|td}} cell if there is no image set. This is used to preserve spacing for message boxes with a width of less than 100% of the screen.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageEmptyCellStyle&amp;lt;/code&amp;gt; - whether empty image cells should be styled.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageCheckBlank&amp;lt;/code&amp;gt; - whether &amp;quot;image=blank&amp;quot; results in no image being displayed.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageSmallSize&amp;lt;/code&amp;gt; - usually, images used in small message boxes are set to 30x30px. This sets a custom size.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageCellDiv&amp;lt;/code&amp;gt; - whether to enclose the image in a div enforcing a maximum image size.&lt;br /&gt;
* &amp;lt;code&amp;gt;useCollapsibleTextFields&amp;lt;/code&amp;gt; - whether to use text fields that can be collapsed, i.e. &amp;quot;issue&amp;quot;, &amp;quot;fix&amp;quot;, &amp;quot;talk&amp;quot;, etc. Currently only used in ambox.&lt;br /&gt;
* &amp;lt;code&amp;gt;imageRightNone&amp;lt;/code&amp;gt; - whether imageright=none results in no image being displayed on the right-hand side of the message box.&lt;br /&gt;
* &amp;lt;code&amp;gt;sectionDefault&amp;lt;/code&amp;gt; - the default name for the &amp;quot;section&amp;quot; parameter. Depends on &amp;lt;code&amp;gt;useCollapsibleTextFields&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;allowMainspaceCategories&amp;lt;/code&amp;gt; - allow categorisation in the main namespace.&lt;br /&gt;
* &amp;lt;code&amp;gt;templateCategory&amp;lt;/code&amp;gt; - the name of a category to be placed on the template page.&lt;br /&gt;
* &amp;lt;code&amp;gt;templateCategoryRequireName&amp;lt;/code&amp;gt; - whether the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; parameter is required to display the template category.&lt;br /&gt;
* &amp;lt;code&amp;gt;templateErrorCategory&amp;lt;/code&amp;gt; - the name of the error category to be used on the template page.&lt;br /&gt;
* &amp;lt;code&amp;gt;templateErrorParamsToCheck&amp;lt;/code&amp;gt; - an array of parameter names to check. If any are absent, the &amp;lt;code&amp;gt;templateErrorCategory&amp;lt;/code&amp;gt; is applied to the template page.&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Used_in_system&amp;diff=36608</id>
		<title>Plantilla:Used in system</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Used_in_system&amp;diff=36608"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ombox&lt;br /&gt;
| type = content&lt;br /&gt;
| text = &lt;br /&gt;
'''This {{lcfirst:{{NAMESPACE}}}} is used {{#if:{{{1|}}}|{{{1}}}|in system messages}}.''' &amp;lt;br&amp;gt; Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this {{lcfirst:{{NAMESPACE}}}}'s [[{{#switch: {{SUBPAGENAME}}&lt;br /&gt;
    | doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
    | #default =      {{SUBJECTPAGENAME}}&lt;br /&gt;
   }}/sandbox|/sandbox]] or [[{{#switch: {{SUBPAGENAME}}&lt;br /&gt;
    | doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
    | #default =      {{SUBJECTPAGENAME}}&lt;br /&gt;
   }}/testcases|/testcases]] subpage, or in your own [[Wikipedia:Subpages#How to create user subpages|user space]]. The tested changes can then be added in one single edit to this {{lcfirst:{{NAMESPACE}}}}. Please discuss any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{#switch: {{SUBPAGENAME}}&lt;br /&gt;
    | doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
    | #default =      {{TALKPAGENAME}}&lt;br /&gt;
   }}|talk page]]}} before implementing them.&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Sidebar/doc&amp;diff=36606</id>
		<title>Módulo:Sidebar/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Sidebar/doc&amp;diff=36606"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{High-risk|155000+}}&lt;br /&gt;
{{module rating|protected}}&lt;br /&gt;
&lt;br /&gt;
This module implements the templates {{tl|sidebar}} and {{tl|sidebar with collapsible lists}}. See the individual template pages for documentation.&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Module_rating&amp;diff=36604</id>
		<title>Plantilla:Module rating</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Module_rating&amp;diff=36604"/>
		<updated>2017-03-19T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module other|{{ombox&lt;br /&gt;
 | type      = notice&lt;br /&gt;
 | image     = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=]]&lt;br /&gt;
   | alpha | a                 = [[File:Alpha lowercase.svg|26x26px|link=]]&lt;br /&gt;
   | beta | b                  = [[File:Greek lc beta.svg|40x40px|link=]]&lt;br /&gt;
   | release | r | general | g = [[File:Green check.svg|40x40px|link=]]&lt;br /&gt;
   | protected | protect | p   = [[File:Padlock{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=-silver|accountcreator|templateeditor=-pink|}}.svg|40x40px|link=]]&lt;br /&gt;
  }}&lt;br /&gt;
 | style     = &lt;br /&gt;
 | textstyle = &lt;br /&gt;
 | text      = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = This module is rated as [[:Category:Modules in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
       | {{#ifeq: {{{nocat|}}} | true | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; | [[Category:Modules in pre-alpha development|{{PAGENAME}}]] }}&lt;br /&gt;
      }}&lt;br /&gt;
   | alpha | a                 = This module is rated as [[:Category:Modules in alpha|alpha]]. It is ready for third party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
       | {{#ifeq: {{{nocat|}}} | true | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; | [[Category:Modules in alpha|{{PAGENAME}}]] }}&lt;br /&gt;
      }}&lt;br /&gt;
   | beta | b                  = This module is rated as [[:Category:Modules in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
       | {{#ifeq: {{{nocat|}}} | true | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; | [[Category:Modules in beta|{{PAGENAME}}]] }}&lt;br /&gt;
      }}&lt;br /&gt;
   | release | r | general | g = This module is rated as [[:Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[WP:TESTCASES|sandbox testing]] rather than repeated trial-and-error editing.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
       | {{#ifeq: {{{nocat|}}} | true | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; | [[Category:Modules for general use|{{PAGENAME}}]] }}&lt;br /&gt;
      }}&lt;br /&gt;
   | protected | protect | p   = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[WP:SUBST|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:PROTECT|protected]] from editing.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
       | {{#ifeq: {{{nocat|}}} | true | &amp;lt;!-- No category if user sets nocat=true --&amp;gt; | [[Category:Modules subject to page protection|{{PAGENAME}}]] }}&lt;br /&gt;
      }}&lt;br /&gt;
   | #default                  = {{error|Module rating is invalid or not specified.}}&lt;br /&gt;
  }}&lt;br /&gt;
}}|{{error|Error: {{tl|Module rating}} must be placed in the Module namespace.}}|demospace={{{demospace|&amp;lt;noinclude&amp;gt;module&amp;lt;/noinclude&amp;gt;}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Module_other&amp;diff=36602</id>
		<title>Plantilla:Module other</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Module_other&amp;diff=36602"/>
		<updated>2017-03-19T06:15:40Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:&lt;br /&gt;
  &amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&lt;br /&gt;
  {{#if:{{{demospace|}}}&lt;br /&gt;
  | {{lc: {{{demospace}}} }}    &amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&lt;br /&gt;
  | {{#ifeq:{{NAMESPACE}}|{{ns:Module}}&lt;br /&gt;
    | module&lt;br /&gt;
    | other&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| module = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;!--End switch--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Unsubst/doc&amp;diff=36600</id>
		<title>Módulo:Unsubst/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Unsubst/doc&amp;diff=36600"/>
		<updated>2017-03-19T06:15:40Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Categories where indicated at the bottom of this page, please. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{High-risk|2,200,000+}}&lt;br /&gt;
&lt;br /&gt;
Helper module to facilitate a substituted template transform into a template transclusion.&lt;br /&gt;
&lt;br /&gt;
Maintenance templates, such as {{tl|Citation needed}} or {{tl|Refimprove}}, should never be substituted. A trick to avoid that is to make a template substitute to its transcluded form.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
To turn a template into a self-substituting template, wrap the existing template code with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ {{{|safesubst:}}}#invoke:Unsubst||$B=&lt;br /&gt;
&lt;br /&gt;
 [ ... existing template code ... ]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wikitext to display when not substed must be given as &amp;quot;$B&amp;quot;. A parameter &amp;quot;$N&amp;quot; may also be seen in some templates; this was required in an older version of the module, but is no longer necessary and may be removed. Such templates are automatically placed in {{clc|Calls to Module:Unsubst that use $N}}.&lt;br /&gt;
&lt;br /&gt;
All other parameters passed to the #invoke will be copied to the generated template invocation as default values. If the value of any of these default parameters is &amp;quot;__DATE__&amp;quot;, that value in the generated template invocation will be the current month and year.&lt;br /&gt;
&lt;br /&gt;
Some templates have a &amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;/nowiki&amp;gt; but no matching &amp;lt;nowiki&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt; at the end of the template. In such cases the missing &amp;lt;nowiki&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt; must be added before the ending &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Consider a template Template:Example containing the following code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ {{{|safesubst:}}}#invoke:Unsubst||foo=bar |date=__DATE__ |$B=&lt;br /&gt;
&lt;br /&gt;
 [ ... Template code goes here ... ]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Original !! Result&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{subst:example}}&amp;lt;/nowiki&amp;gt; || &amp;lt;nowiki&amp;gt;{{Example|foo=bar|date=&amp;lt;/nowiki&amp;gt;{{#time:F Y}}}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{subst:example|foo=X}}&amp;lt;/nowiki&amp;gt; || &amp;lt;nowiki&amp;gt;{{Example|foo=X|date=&amp;lt;/nowiki&amp;gt;{{#time:F Y}}}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{subst:example|baz=X}}&amp;lt;/nowiki&amp;gt; || &amp;lt;nowiki&amp;gt;{{Example|foo=bar|baz=X|date=&amp;lt;/nowiki&amp;gt;{{#time:F Y}}}}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;{{subst:example|date=January 2001}}&amp;lt;/nowiki&amp;gt; || &amp;lt;nowiki&amp;gt;{{Example|foo=bar|date=January 2001}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |&lt;br /&gt;
| &amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Wikipedia metatemplates]]&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Hatnote/doc&amp;diff=36598</id>
		<title>Módulo:Hatnote/doc</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Hatnote/doc&amp;diff=36598"/>
		<updated>2017-03-19T06:15:40Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{high-risk|1,000,000+}}&lt;br /&gt;
&lt;br /&gt;
This is a meta-module that provides various functions for making [[Wikipedia:Hatnote|hatnotes]]. It implements the {{tl|hatnote}} template, for use in hatnotes at the top of pages, and the {{tl|format link}} template, which is used to format a wikilink for use in hatnotes. It also contains a number of helper functions for use in other Lua hatnote modules.&lt;br /&gt;
&lt;br /&gt;
== Use from wikitext ==&lt;br /&gt;
&lt;br /&gt;
The functions in this module cannot be used directly from #invoke, and must be used through templates instead. Please see [[Template:Hatnote]] and [[Template:Format link]] for documentation.&lt;br /&gt;
&lt;br /&gt;
== Use from other Lua modules ==&lt;br /&gt;
&lt;br /&gt;
To load this module from another Lua module, use the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local mHatnote = require('Module:Hatnote')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can then use the functions as documented below.&lt;br /&gt;
&lt;br /&gt;
=== Hatnote ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote._hatnote(s, options)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Formats the string &amp;lt;var&amp;gt;s&amp;lt;/var&amp;gt; as a hatnote. This encloses &amp;lt;var&amp;gt;s&amp;lt;/var&amp;gt; in the tags {{tag|div|params=class=&amp;quot;hatnote&amp;quot;}}. Options are provided in the &amp;lt;var&amp;gt;options&amp;lt;/var&amp;gt; table. Options include:&lt;br /&gt;
* &amp;lt;var&amp;gt;options.extraclasses&amp;lt;/var&amp;gt; - a string of extra classes to provide&lt;br /&gt;
* &amp;lt;var&amp;gt;options.selfref&amp;lt;/var&amp;gt; - if this is not nil or false, adds the class &amp;quot;selfref&amp;quot;, used to denote self-references to Wikipedia (see [[Template:Selfref]]))&lt;br /&gt;
The CSS of the hatnote class is defined in [[MediaWiki:Common.css]].&lt;br /&gt;
&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote._hatnote('This is a hatnote.')&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Produces:&lt;br /&gt;
{{tag|div|content=This is a hatnote.|params=class=&amp;quot;hatnote&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
Displays as:&lt;br /&gt;
{{hatnote|This is a hatnote.}}&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote._hatnote('This is a hatnote.', {extraclasses = 'boilerplate seealso', selfref = true})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Produces:&lt;br /&gt;
{{tag|div|content=This is a hatnote.|params=class=&amp;quot;hatnote boilerplate seealso selfref&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
Displayed as:&lt;br /&gt;
{{hatnote|This is a hatnote.|extraclasses=boilerplate seealso|selfref=true}}&lt;br /&gt;
&lt;br /&gt;
=== Format link ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote._formatLink(link, display)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Formats &amp;lt;var&amp;gt;link&amp;lt;/var&amp;gt; as a wikilink for display in hatnote templates, with optional display value &amp;lt;var&amp;gt;display&amp;lt;/var&amp;gt;. Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.&lt;br /&gt;
&lt;br /&gt;
;Examples:&lt;br /&gt;
: {{code|mHatnote._formatLink('Lion')|lua}} &amp;amp;rarr; &amp;lt;nowiki&amp;gt;[[Lion]]&amp;lt;/nowiki&amp;gt; &amp;amp;rarr; {{format hatnote link|Lion}}&lt;br /&gt;
: {{code|mHatnote._formatLink('Lion#Etymology')|lua}} &amp;amp;rarr; &amp;lt;nowiki&amp;gt;[[Lion#Etymology|Lion § Etymology]]&amp;lt;/nowiki&amp;gt; &amp;amp;rarr; {{format hatnote link|Lion#Etymology}}&lt;br /&gt;
: {{code|mHatnote._formatLink('Category:Lions')|lua}} &amp;amp;rarr; &amp;lt;nowiki&amp;gt;[[:Category:Lions]]&amp;lt;/nowiki&amp;gt; &amp;amp;rarr; {{format hatnote link|Category:Lions}}&lt;br /&gt;
: {{code|mHatnote._formatLink('Lion#Etymology', 'Etymology of lion')|lua}} &amp;amp;rarr; &amp;lt;nowiki&amp;gt;[[Lion#Etymology|Etymology of lion]]&amp;lt;/nowiki&amp;gt; &amp;amp;rarr; {{format hatnote link|Lion#Etymology|Etymology of lion}}&lt;br /&gt;
&lt;br /&gt;
=== Format pages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote.formatPages(...)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Formats a list of pages using the [[#Format link|_formatLink]] function, and returns the result as an array. For example, the code {{code|mHatnote.formatPages('Lion', 'Category:Lions', 'Lion#Etymology')|lua}} would produce an array like {{code|{'[[Lion]]', '[[:Category:Lions]]', '[[Lion#Etymology|Lion § Etymology]]'}|lua}}.&lt;br /&gt;
&lt;br /&gt;
=== Format page tables ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote.formatPageTables(...)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Takes a list of page/display tables, formats them with the [[#Format link|_formatLink]] function, and returns the result as an array. Each item in the list must be a table. The first value in the table is the link, and is required. The second value in the table is the display value, and is optional. For example, the code {{code|mHatnote.formatPages({'Lion', 'the Lion article'}, {'Category:Lions'}, {'Lion#Etymology', 'the etymology of lion'})|lua}} would produce an array like {{code|{'[[Lion|the Lion article]]', '[[:Category:Lions]]', '[[Lion#Etymology|the etymology of lion]]'}|lua}}.&lt;br /&gt;
&lt;br /&gt;
=== Find namespace id ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote.findNamespaceId(link, removeColon)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finds the [[WP:NS|namespace id]] of the string &amp;lt;var&amp;gt;link&amp;lt;/var&amp;gt;, which should be a valid page name, with or without the section name. This function will not work if the page name is enclosed with square brackets. When trying to parse the namespace name, colons are removed from the start of the link by default. This is helpful if users have specified colons when they are not strictly necessary. If you do not need to check for initial colons, set &amp;lt;var&amp;gt;removeColon&amp;lt;/var&amp;gt; to false.&lt;br /&gt;
&lt;br /&gt;
;Examples:&lt;br /&gt;
: {{code|mHatnote.findNamespaceId('Lion')|lua}} &amp;amp;rarr; 0&lt;br /&gt;
: {{code|mHatnote.findNamespaceId('Category:Lions')|lua}} &amp;amp;rarr; 14&lt;br /&gt;
: {{code|mHatnote.findNamespaceId(':Category:Lions')|lua}} &amp;amp;rarr; 14&lt;br /&gt;
: {{code|mHatnote.findNamespaceId(':Category:Lions', false)|lua}} &amp;amp;rarr; 0 (the namespace is detected as &amp;quot;:Category&amp;quot;, rather than &amp;quot;Category&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== Make wikitext error ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
mHatnote.makeWikitextError(msg, helpLink, addTrackingCategory)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Formats the string &amp;lt;var&amp;gt;msg&amp;lt;/var&amp;gt; as a red wikitext error message, with optional link to a help page &amp;lt;var&amp;gt;helpLink&amp;lt;/var&amp;gt;. Normally this function also adds {{clc|Hatnote templates with errors}}; however, if &amp;lt;var&amp;gt;addTrackingCategory&amp;lt;/var&amp;gt; is not false after being passed through [[Module:Yesno]], then the category is suppressed. This means that the category can be suppressed with &amp;lt;var&amp;gt;addTrackingCategory&amp;lt;/var&amp;gt; values including &amp;quot;no&amp;quot;, &amp;quot;n&amp;quot;, 0, &amp;quot;false&amp;quot;, and {{code|false|lua}}.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
:{{code|mHatnote.makeWikitextError('an error has occurred')|lua}} &amp;amp;rarr; &amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: an error has occurred.&amp;lt;/strong&amp;gt;&lt;br /&gt;
:{{code|mHatnote.makeWikitextError('an error has occurred', 'Template:Example#Errors')|lua}} &amp;amp;rarr; &amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error: an error has occurred ([[Template:Example#Errors|help]]).&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
For examples of how this module is used in other Lua modules, see the following (listed in order of complexity):&lt;br /&gt;
&lt;br /&gt;
* [[Module:Details]]&lt;br /&gt;
* [[Module:Further]]&lt;br /&gt;
* [[Module:See also]]&lt;br /&gt;
* [[Module:Main]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
&amp;lt;!-- Categories go here and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
[[Category:Hatnote modules| ]]&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Tag&amp;diff=36596</id>
		<title>Plantilla:Tag</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Tag&amp;diff=36596"/>
		<updated>2017-03-19T06:15:40Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code class=&amp;quot;{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}&amp;quot; style=&amp;quot;{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
 Opening tag&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |c|close =&lt;br /&gt;
  |s|single&lt;br /&gt;
  |o|open&lt;br /&gt;
  |p|pair = &amp;amp;lt;{{{1|tag}}}{{#if:{{{params|}}}|&amp;amp;#32;{{{params}}}}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
 Content between tags&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |c|close = {{{content|}}}&lt;br /&gt;
  |s|single = &amp;amp;#32;&amp;amp;#47;&amp;amp;gt;&lt;br /&gt;
  |o|open = &amp;amp;gt;{{{content|}}}&lt;br /&gt;
  |p|pair = {{#ifeq:{{{1|tag}}}|!--||&amp;amp;gt;}}{{{content|...}}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
 Closing tag&lt;br /&gt;
--&amp;gt;{{#switch:{{{2|pair}}}&lt;br /&gt;
  |s|single&lt;br /&gt;
  |o|open =&lt;br /&gt;
  |c|close&lt;br /&gt;
  |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&amp;amp;gt;|&amp;amp;lt;&amp;amp;#47;{{{1|tag}}}&amp;amp;gt;}}&lt;br /&gt;
 }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Hatnote&amp;diff=36594</id>
		<title>Plantilla:Hatnote</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Hatnote&amp;diff=36594"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Hatnote|hatnote}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Format_link&amp;diff=36592</id>
		<title>Plantilla:Format link</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Format_link&amp;diff=36592"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:hatnote|formatLink}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Format_hatnote_link&amp;diff=36590</id>
		<title>Plantilla:Format hatnote link</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Format_hatnote_link&amp;diff=36590"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Format link]]&lt;br /&gt;
{{R from move}}&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:Code&amp;diff=36588</id>
		<title>Plantilla:Code</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:Code&amp;diff=36588"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Authority_control&amp;diff=36586</id>
		<title>Módulo:Authority control</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Authority_control&amp;diff=36586"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require('Module:No globals')&lt;br /&gt;
&lt;br /&gt;
local function getCatForId( id )&lt;br /&gt;
    local title = mw.title.getCurrentTitle()&lt;br /&gt;
    local namespace = title.namespace&lt;br /&gt;
    if namespace == 0 then&lt;br /&gt;
        return '[[Category:Wikipedia articles with ' .. id .. ' identifiers]]'&lt;br /&gt;
    elseif namespace == 2 and not title.isSubpage then&lt;br /&gt;
        return '[[Category:User pages with ' .. id .. ' identifiers]]'&lt;br /&gt;
    else&lt;br /&gt;
        return '[[Category:Miscellaneous pages with ' .. id .. ' identifiers]]'&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function viafLink( id )&lt;br /&gt;
    if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[https://viaf.org/viaf/' .. id .. ' ' .. id .. ']' .. getCatForId( 'VIAF' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function kulturnavLink( id )&lt;br /&gt;
    return '[http://kulturnav.org/language/en/' .. id .. ' id]' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function sikartLink( id )&lt;br /&gt;
    return '[http://www.sikart.ch/KuenstlerInnen.aspx?id=' .. id .. '&amp;amp;lng=en ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tlsLink( id )&lt;br /&gt;
	local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'WIKI') end)&lt;br /&gt;
    return '[http://tls.theaterwissenschaft.ch/wiki/' .. id2 .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function ciniiLink( id )&lt;br /&gt;
    return '[http://ci.nii.ac.jp/author/' .. id .. '?l=en ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function bneLink( id )&lt;br /&gt;
    return '[http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&amp;amp;authority_id=' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function uscongressLink( id )&lt;br /&gt;
    return '[http://bioguide.congress.gov/scripts/biodisplay.pl?index=' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function narapersonLink( id )&lt;br /&gt;
    return '[https://research.archives.gov/person/' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function naraorganizationLink( id )&lt;br /&gt;
    return '[https://research.archives.gov/organization/' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function botanistLink( id )&lt;br /&gt;
	local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'PATH') end)&lt;br /&gt;
    return '[http://www.ipni.org/ipni/advAuthorSearch.do?find_abbreviation=' .. id2 .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function mgpLink( id )&lt;br /&gt;
    -- TODO Implement some sanity checking regex&lt;br /&gt;
    return '[http://www.genealogy.ams.org/id.php?id=' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function rslLink( id )&lt;br /&gt;
    -- TODO Implement some sanity checking regex&lt;br /&gt;
    return '[http://aleph.rsl.ru/F?func=find-b&amp;amp;find_code=SYS&amp;amp;adjacent=Y&amp;amp;local_base=RSL11&amp;amp;request=' .. id .. '&amp;amp;CON_LNG=ENG ' .. id .. ']'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function leonoreLink( id )&lt;br /&gt;
-- Identifiants allant de LH/1/1 à LH/2794/54 (légionnaires)&lt;br /&gt;
-- Identifiants allant de C/0/1 à C/0/84 (84 légionnaires célèbres)&lt;br /&gt;
-- Identifiants allant de 19800035/1/1 à 19800035/385/51670 (légionnaires décédés entre 1954 et 1977, et quelques dossiers de légionnaires décédés avant 1954)&lt;br /&gt;
    if not string.match( id, '^LH/%d%d?%d?%d?/%d%d?%d?$' ) and&lt;br /&gt;
       not string.match( id, '^C/0/%d%d?$' ) and&lt;br /&gt;
	   not string.match( id, '^19800035/%d%d?%d?%d?/%d%d?%d?%d?%d?$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://www.culture.gouv.fr/public/mistral/leonore_fr?ACTION=CHERCHER&amp;amp;FIELD_1=COTE&amp;amp;VALUE_1=' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function sbnLink( id )&lt;br /&gt;
    if not string.match( id, '^IT\\ICCU\\%d%d%d%d%d%d%d%d%d%d$' ) and not string.match( id, '^IT\\ICCU\\%u%u[%d%u]%u\\%d%d%d%d%d%d$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://opac.sbn.it/opacsbn/opac/iccu/scheda_authority.jsp?bid=' .. id .. ' ' .. id .. ']' .. getCatForId( 'SBN' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function nkcLink( id )&lt;br /&gt;
	return '[http://aleph.nkp.cz/F/?func=find-c&amp;amp;local_base=aut&amp;amp;ccl_term=ica=' .. id .. '&amp;amp;CON_LNG=ENG ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function nclLink( id )&lt;br /&gt;
    if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://aleweb.ncl.edu.tw/F/?func=accref&amp;amp;acc_sequence=' .. id .. '&amp;amp;CON_LNG=ENG ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ndlLink( id )&lt;br /&gt;
	return '[http://id.ndl.go.jp/auth/ndlna/' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function sudocLink( id )&lt;br /&gt;
    if not string.match( id, '^%d%d%d%d%d%d%d%d[%dxX]$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[https://www.idref.fr/' .. id .. ' ' .. id .. ']' &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hlsLink( id )&lt;br /&gt;
    if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://www.hls-dhs-dss.ch/textes/f/F' .. id .. '.php ' .. id .. ']'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function lirLink( id )&lt;br /&gt;
    if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://www.e-lir.ch/e-LIR___Lexicon.' .. id .. '.450.0.html ' .. id .. ']'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function splitLccn( id )&lt;br /&gt;
    if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then&lt;br /&gt;
        id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' )&lt;br /&gt;
    end&lt;br /&gt;
    if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then&lt;br /&gt;
         return mw.text.split( id, '/' )&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function append(str, c, length)&lt;br /&gt;
    while str:len() &amp;lt; length do&lt;br /&gt;
        str = c .. str&lt;br /&gt;
    end&lt;br /&gt;
    return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function lccnLink( id )&lt;br /&gt;
    local parts = splitLccn( id )&lt;br /&gt;
    if not parts then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects'&lt;br /&gt;
    id = parts[1] .. parts[2] .. append( parts[3], '0', 6 )&lt;br /&gt;
    return '[http://id.loc.gov/authorities/' .. lccnType .. '/' .. id .. ' ' .. id .. ']' .. getCatForId( 'LCCN' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function mbLink( id )&lt;br /&gt;
    -- TODO Implement some sanity checking regex&lt;br /&gt;
    return '[//musicbrainz.org/artist/' .. id .. ' ' .. id .. ']' .. getCatForId( 'MusicBrainz' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Returns the ISNI check digit isni must be a string where the 15 first elements are digits&lt;br /&gt;
local function getIsniCheckDigit( isni )&lt;br /&gt;
    local total = 0&lt;br /&gt;
    for i = 1, 15 do&lt;br /&gt;
        local digit = isni:byte( i ) - 48 --Get integer value&lt;br /&gt;
        total = (total + digit) * 2&lt;br /&gt;
    end&lt;br /&gt;
    local remainder = total % 11&lt;br /&gt;
    local result = (12 - remainder) % 11&lt;br /&gt;
    if result == 10 then&lt;br /&gt;
        return &amp;quot;X&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return tostring( result )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid&lt;br /&gt;
--See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier&lt;br /&gt;
local function validateIsni( id )&lt;br /&gt;
    id = id:gsub( '[ %-]', '' ):upper()&lt;br /&gt;
    if not id:match( '^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    if getIsniCheckDigit( id ) ~= string.char( id:byte( 16 ) ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isniLink( id )&lt;br /&gt;
    id = validateIsni( id )&lt;br /&gt;
    if not id then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://isni.org/isni/' .. id .. ' ' .. id:sub( 1, 4 ) .. ' ' .. id:sub( 5, 8 ) .. ' '  .. id:sub( 9, 12 ) .. ' '  .. id:sub( 13, 16 ) .. ']' .. getCatForId( 'ISNI' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function orcidLink( id )&lt;br /&gt;
    id = validateIsni( id )&lt;br /&gt;
    if not id then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    id = id:sub( 1, 4 ) .. '-' .. id:sub( 5, 8 ) .. '-'  .. id:sub( 9, 12 ) .. '-'  .. id:sub( 13, 16 )&lt;br /&gt;
    return '[https://orcid.org/' .. id .. ' ' .. id .. ']' .. getCatForId( 'ORCID' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function gndLink( id )&lt;br /&gt;
    return '[http://d-nb.info/gnd/' .. id .. ' ' .. id .. ']' .. getCatForId( 'GND' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function selibrLink( id )&lt;br /&gt;
	if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[//libris.kb.se/auth/' .. id .. ' ' .. id .. ']' .. getCatForId( 'SELIBR' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function bnfLink( id )&lt;br /&gt;
    --Add cb prefix if it has been removed&lt;br /&gt;
    if not string.match( id, '^cb.+$' ) then&lt;br /&gt;
        id = 'cb' .. id&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return '[http://catalogue.bnf.fr/ark:/12148/' .. id .. ' ' .. id .. '] [http://data.bnf.fr/ark:/12148/' .. id .. ' (data)]' .. getCatForId( 'BNF' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function bpnLink( id )&lt;br /&gt;
    if not string.match( id, '^%d+$' ) then&lt;br /&gt;
        return false&lt;br /&gt;
    end&lt;br /&gt;
    return '[http://www.biografischportaal.nl/en/persoon/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BPN' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ridLink( id )&lt;br /&gt;
    return '[http://www.researcherid.com/rid/' .. id .. ' ' .. id .. ']' .. getCatForId( 'RID' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function bibsysLink( id )&lt;br /&gt;
    return '[https://authority.bibsys.no/authority/rest/authorities/html/' .. id .. ' ' .. id .. ']' .. getCatForId( 'BIBSYS' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ulanLink( id )&lt;br /&gt;
    return '[//www.getty.edu/vow/ULANFullDisplay?find=&amp;amp;role=&amp;amp;nation=&amp;amp;subjectid=' .. id .. ' ' .. id .. ']' .. getCatForId( 'ULAN' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function nlaLink( id )&lt;br /&gt;
	return '[//nla.gov.au/anbd.aut-an' .. id .. ' ' .. id .. ']' .. getCatForId( 'NLA' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function rkdartistsLink( id )&lt;br /&gt;
	return '[https://rkd.nl/en/explore/artists/' .. id .. ' ' .. id .. ']' .. getCatForId( 'RKDartists' )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getIdsFromWikidata( item, property )&lt;br /&gt;
    local ids = {}&lt;br /&gt;
    if not item.claims[property] then&lt;br /&gt;
        return ids&lt;br /&gt;
    end&lt;br /&gt;
    for _, statement in pairs( item:getBestStatements( property )) do&lt;br /&gt;
		if statement.mainsnak.datavalue then&lt;br /&gt;
			table.insert( ids, statement.mainsnak.datavalue.value )&lt;br /&gt;
		end&lt;br /&gt;
    end&lt;br /&gt;
    return ids&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function matchesWikidataRequirements( item, reqs )&lt;br /&gt;
    for _, group in pairs( reqs ) do&lt;br /&gt;
        local property = 'p' .. group[1]&lt;br /&gt;
        local qid = group[2]&lt;br /&gt;
        if item.claims[property] ~= nil then&lt;br /&gt;
            for _, statement in pairs ( item.claims[property] ) do&lt;br /&gt;
            	if statement.mainsnak.datavalue ~= nil then&lt;br /&gt;
	                if statement.mainsnak.datavalue.value['numeric-id'] == qid then&lt;br /&gt;
    	                return true&lt;br /&gt;
        	        end&lt;br /&gt;
        	    end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function createRow( id, label, rawValue, link, withUid )&lt;br /&gt;
    if link then&lt;br /&gt;
        if withUid then&lt;br /&gt;
            return '*&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;' .. label .. ' &amp;lt;span class=&amp;quot;uid&amp;quot;&amp;gt;' .. link .. '&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;\n'&lt;br /&gt;
        else&lt;br /&gt;
            return '*&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;' .. label .. ' ' .. link .. '&amp;lt;/span&amp;gt;\n'&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return '* &amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;The ' .. id .. ' id ' .. rawValue .. ' is not valid.&amp;lt;/span&amp;gt;[[Category:Wikipedia articles with faulty authority control identifiers (' .. id .. ')]]\n'&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function&lt;br /&gt;
local conf = {&lt;br /&gt;
    { 'VIAF', '[[Virtual International Authority File|VIAF]]', 214, viafLink },&lt;br /&gt;
    { 'LCCN', '[[Library of Congress Control Number|LCCN]]', 244, lccnLink },&lt;br /&gt;
    { 'ISNI', '[[International Standard Name Identifier|ISNI]]', 213, isniLink },&lt;br /&gt;
    { 'ORCID', '[[ORCID]]', 496, orcidLink },&lt;br /&gt;
    { 'GND', '[[Integrated Authority File|GND]]', 227, gndLink },&lt;br /&gt;
    { 'SELIBR', '[[LIBRIS|SELIBR]]', 906, selibrLink },&lt;br /&gt;
    { 'SUDOC', '[[Système universitaire de documentation|SUDOC]]', 269, sudocLink },&lt;br /&gt;
    { 'BNF', '[[Bibliothèque nationale de France|BNF]]', 268, bnfLink },&lt;br /&gt;
    { 'BPN', '[[Biografisch Portaal|BPN]]', 651, bpnLink },&lt;br /&gt;
    { 'RID', '[[ResearcherID]]', 1053, ridLink },&lt;br /&gt;
    { 'BIBSYS', '[[BIBSYS]]', 1015, bibsysLink },&lt;br /&gt;
    { 'ULAN', '[[Union List of Artist Names|ULAN]]', 245, ulanLink },&lt;br /&gt;
    { 'HDS', '[[Historical Dictionary of Switzerland|HDS]]', 902, hlsLink },&lt;br /&gt;
    { 'LIR', '[[Historical Dictionary of Switzerland#Lexicon_Istoric_Retic|LIR]]', 886, lirLink },&lt;br /&gt;
    { 'MBA', '[[MusicBrainz]]', 434, mbLink },&lt;br /&gt;
    { 'MGP', '[[Mathematics Genealogy Project|MGP]]', 549, mgpLink },&lt;br /&gt;
    { 'NLA', '[[National Library of Australia|NLA]]', 409, nlaLink },&lt;br /&gt;
    { 'NDL', '[[National Diet Library|NDL]]', 349, ndlLink },&lt;br /&gt;
    { 'NCL', '[[National Central Library|NCL]]', 1048, nclLink },&lt;br /&gt;
    { 'NKC', '[[National Library of the Czech Republic|NKC]]', 691, nkcLink },&lt;br /&gt;
    { 'Léonore', '[[Base Léonore|Léonore]]', 640, leonoreLink },&lt;br /&gt;
    { 'SBN', '[[Istituto Centrale per il Catalogo Unico|ICCU]]', 396, sbnLink },&lt;br /&gt;
    { 'RLS', '[[Russian State Library|RLS]]', 947, rslLink },&lt;br /&gt;
    { 'Botanist', '[[Author citation (botany)|Botanist]]', 428, botanistLink },&lt;br /&gt;
    { 'NARA-person', '[[National Archives and Records Administration|NARA]]', 1222, narapersonLink },&lt;br /&gt;
    { 'NARA-organization', '[[National Archives and Records Administration|NARA]]', 1223, naraorganizationLink },&lt;br /&gt;
    { 'USCongress', '[[Biographical Directory of the United States Congress|US Congress]]', 1157, uscongressLink },&lt;br /&gt;
    { 'BNE', '[[Biblioteca Nacional de España|BNE]]', 950, bneLink },&lt;br /&gt;
    { 'CINII', '[[CiNii]]', 271, ciniiLink },&lt;br /&gt;
    { 'TLS', '[[Theaterlexikon der Schweiz|TLS]]', 1362, tlsLink },&lt;br /&gt;
    { 'SIKART', '[[SIKART]]', 781, sikartLink },&lt;br /&gt;
    { 'KULTURNAV', '[[KulturNav]]', 1248, kulturnavLink },&lt;br /&gt;
    { 'RKDartists', '[[Netherlands Institute for Art History#Online artist pages|RKD]]', 650, rkdartistsLink },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Check that the Wikidata item has this property--&amp;gt;value before adding it&lt;br /&gt;
local reqs = {}&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.authorityControl( frame )&lt;br /&gt;
    local parentArgs = frame:getParent().args&lt;br /&gt;
    --Create rows&lt;br /&gt;
    local elements = {}&lt;br /&gt;
&lt;br /&gt;
    --redirect PND to GND&lt;br /&gt;
    if (parentArgs.GND == nil or parentArgs.GND == '') and parentArgs.PND ~= nil and parentArgs.PND ~= '' then&lt;br /&gt;
        parentArgs.GND = parentArgs.PND&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Wikidata fallback if requested&lt;br /&gt;
    local item = mw.wikibase.getEntityObject()&lt;br /&gt;
    if item ~= nil and item.claims ~= nil then&lt;br /&gt;
        for _, params in pairs( conf ) do&lt;br /&gt;
            if params[3] ~= 0 then&lt;br /&gt;
                local val = parentArgs[params[1]]&lt;br /&gt;
                if not val or val == '' then&lt;br /&gt;
                	local canUseWikidata = nil&lt;br /&gt;
                    if reqs[params[1]] ~= nil then&lt;br /&gt;
                        canUseWikidata = matchesWikidataRequirements( item, reqs[params[1]] )&lt;br /&gt;
                    else&lt;br /&gt;
                        canUseWikidata = true&lt;br /&gt;
                    end&lt;br /&gt;
                    if canUseWikidata then&lt;br /&gt;
                        local wikidataIds = getIdsFromWikidata( item, 'P' .. params[3] )&lt;br /&gt;
                        if wikidataIds[1] then&lt;br /&gt;
                            parentArgs[params[1]] = wikidataIds[1]&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Worldcat&lt;br /&gt;
    if parentArgs['WORLDCATID'] and parentArgs['WORLDCATID'] ~= '' then&lt;br /&gt;
        table.insert( elements, createRow( 'WORLDCATID', '', parentArgs['WORLDCATID'], '[//www.worldcat.org/identities/' .. parentArgs['WORLDCATID'] .. ' WorldCat Identities]', false ) ) --Validation?&lt;br /&gt;
    elseif parentArgs['VIAF'] and string.match( parentArgs['VIAF'], '^%d+$' ) then -- Hackishly copy the validation code; this should go away when we move to using P1793 and P1630&lt;br /&gt;
        table.insert( elements, createRow( 'VIAF', '', parentArgs['VIAF'], '[//www.worldcat.org/identities/containsVIAFID/' .. parentArgs['VIAF'] .. ' WorldCat Identities]', false ) )&lt;br /&gt;
    elseif parentArgs['LCCN'] and parentArgs['LCCN'] ~= '' then&lt;br /&gt;
        local lccnParts = splitLccn( parentArgs['LCCN'] )&lt;br /&gt;
        if lccnParts and lccnParts[1] ~= 'sh' then&lt;br /&gt;
            table.insert( elements, createRow( 'LCCN', '', parentArgs['LCCN'], '[//www.worldcat.org/identities/lccn-' .. lccnParts[1] .. lccnParts[2] .. '-' .. lccnParts[3] .. ' WorldCat Identities]', false ) )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    --Configured rows&lt;br /&gt;
    local rct = 0&lt;br /&gt;
    for k, params in pairs( conf ) do&lt;br /&gt;
        local val = parentArgs[params[1]]&lt;br /&gt;
        if val and val ~= '' then&lt;br /&gt;
            table.insert( elements, createRow( params[1], params[2] .. ':', val, params[4]( val ), true ) )&lt;br /&gt;
            rct = rct + 1&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local Navbox = require('Module:Navbox')&lt;br /&gt;
    local elementscats = ''&lt;br /&gt;
    if rct &amp;gt; 13 then&lt;br /&gt;
    	elementscats  = '[[Category:AC with ' .. rct .. ' elements]]'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if #elements ~= 0 then&lt;br /&gt;
		return Navbox._navbox( {&lt;br /&gt;
			name  = 'Authority control',&lt;br /&gt;
			bodyclass = 'hlist',&lt;br /&gt;
			group1 = '[[Help:Authority control|Authority control]]' .. elementscats,&lt;br /&gt;
			list1 = table.concat( elements )&lt;br /&gt;
			} )&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbox&amp;diff=36584</id>
		<title>Módulo:Navbox</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Navbox&amp;diff=36584"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{Navbox}}&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local navbar = require('Module:Navbar')._navbar&lt;br /&gt;
local getArgs -- lazily initialized&lt;br /&gt;
&lt;br /&gt;
local args&lt;br /&gt;
local tableRowAdded = false&lt;br /&gt;
local border&lt;br /&gt;
local listnums = {}&lt;br /&gt;
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'&lt;br /&gt;
local RESTART_MARKER = '\127_ODDEVEN0_\127'&lt;br /&gt;
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'&lt;br /&gt;
&lt;br /&gt;
local function striped(wikitext)&lt;br /&gt;
	-- Return wikitext with markers replaced for odd/even striping.&lt;br /&gt;
	-- Child (subgroup) navboxes are flagged with a category that is removed&lt;br /&gt;
	-- by parent navboxes. The result is that the category shows all pages&lt;br /&gt;
	-- where a child navbox is not contained in a parent navbox.&lt;br /&gt;
	local orphanCat = '[[Category:Navbox orphans]]'&lt;br /&gt;
	if border == 'subgroup' and args.orphan ~= 'yes' then&lt;br /&gt;
		-- No change; striping occurs in outermost navbox.&lt;br /&gt;
		return wikitext .. orphanCat&lt;br /&gt;
	end&lt;br /&gt;
	local first, second = 'odd', 'even'&lt;br /&gt;
	if args.evenodd then&lt;br /&gt;
		if args.evenodd == 'swap' then&lt;br /&gt;
			first, second = second, first&lt;br /&gt;
		else&lt;br /&gt;
			first = args.evenodd&lt;br /&gt;
			second = first&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local changer&lt;br /&gt;
	if first == second then&lt;br /&gt;
		changer = first&lt;br /&gt;
	else&lt;br /&gt;
		local index = 0&lt;br /&gt;
		changer = function (code)&lt;br /&gt;
			if code == '0' then&lt;br /&gt;
				-- Current occurrence is for a group before a nested table.&lt;br /&gt;
				-- Set it to first as a valid although pointless class.&lt;br /&gt;
				-- The next occurrence will be the first row after a title&lt;br /&gt;
				-- in a subgroup and will also be first.&lt;br /&gt;
				index = 0&lt;br /&gt;
				return first&lt;br /&gt;
			end&lt;br /&gt;
			index = index + 1&lt;br /&gt;
			return index % 2 == 1 and first or second&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local regex = orphanCat:gsub('([%[%]])', '%%%1')&lt;br /&gt;
	return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer))  -- () omits gsub count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addNewline(s)&lt;br /&gt;
	if s:match('^[*:;#]') or s:match('^{|') then&lt;br /&gt;
		return '\n' .. s ..'\n'&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addTableRow(tbl)&lt;br /&gt;
	-- If any other rows have already been added, then we add a 2px gutter row.&lt;br /&gt;
	if tableRowAdded then&lt;br /&gt;
		tbl&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:css('height', '2px')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:attr('colspan',2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tableRowAdded = true&lt;br /&gt;
&lt;br /&gt;
	return tbl:tag('tr')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar(titleCell)&lt;br /&gt;
&lt;br /&gt;
	if args.navbar ~= 'off' and args.navbar ~= 'plain' and not (not args.name and mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') == 'Template:Navbox') then&lt;br /&gt;
		titleCell:wikitext(navbar{&lt;br /&gt;
			args.name,&lt;br /&gt;
			mini = 1,&lt;br /&gt;
			fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;'&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
--   Title row&lt;br /&gt;
--&lt;br /&gt;
local function renderTitleRow(tbl)&lt;br /&gt;
	if not args.title then return end&lt;br /&gt;
&lt;br /&gt;
	local titleRow = addTableRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	if args.titlegroup then&lt;br /&gt;
		titleRow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:attr('scope', 'row')&lt;br /&gt;
				:addClass('navbox-group')&lt;br /&gt;
				:addClass(args.titlegroupclass)&lt;br /&gt;
				:cssText(args.basestyle)&lt;br /&gt;
				:cssText(args.groupstyle)&lt;br /&gt;
				:cssText(args.titlegroupstyle)&lt;br /&gt;
				:wikitext(args.titlegroup)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local titleCell = titleRow:tag('th'):attr('scope', 'col')&lt;br /&gt;
&lt;br /&gt;
	if args.titlegroup then&lt;br /&gt;
		titleCell&lt;br /&gt;
			:css('border-left', '2px solid #fdfdfd')&lt;br /&gt;
			:css('width', '100%')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local titleColspan = 2&lt;br /&gt;
	if args.imageleft then titleColspan = titleColspan + 1 end&lt;br /&gt;
	if args.image then titleColspan = titleColspan + 1 end&lt;br /&gt;
	if args.titlegroup then titleColspan = titleColspan - 1 end&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:cssText(args.basestyle)&lt;br /&gt;
		:cssText(args.titlestyle)&lt;br /&gt;
		:addClass('navbox-title')&lt;br /&gt;
		:attr('colspan', titleColspan)&lt;br /&gt;
&lt;br /&gt;
	renderNavBar(titleCell)&lt;br /&gt;
&lt;br /&gt;
	titleCell&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:attr('id', mw.uri.anchorEncode(args.title))&lt;br /&gt;
			:addClass(args.titleclass)&lt;br /&gt;
			:css('font-size', '114%')&lt;br /&gt;
			:css('margin', '0 4em')&lt;br /&gt;
			:wikitext(addNewline(args.title))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
--   Above/Below rows&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local function getAboveBelowColspan()&lt;br /&gt;
	local ret = 2&lt;br /&gt;
	if args.imageleft then ret = ret + 1 end&lt;br /&gt;
	if args.image then ret = ret + 1 end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow(tbl)&lt;br /&gt;
	if not args.above then return end&lt;br /&gt;
&lt;br /&gt;
	addTableRow(tbl)&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:addClass('navbox-abovebelow')&lt;br /&gt;
			:addClass(args.aboveclass)&lt;br /&gt;
			:cssText(args.basestyle)&lt;br /&gt;
			:cssText(args.abovestyle)&lt;br /&gt;
			:attr('colspan', getAboveBelowColspan())&lt;br /&gt;
			:tag('div')&lt;br /&gt;
				:wikitext(addNewline(args.above))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow(tbl)&lt;br /&gt;
	if not args.below then return end&lt;br /&gt;
&lt;br /&gt;
	addTableRow(tbl)&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:addClass('navbox-abovebelow')&lt;br /&gt;
			:addClass(args.belowclass)&lt;br /&gt;
			:cssText(args.basestyle)&lt;br /&gt;
			:cssText(args.belowstyle)&lt;br /&gt;
			:attr('colspan', getAboveBelowColspan())&lt;br /&gt;
			:tag('div')&lt;br /&gt;
				:wikitext(addNewline(args.below))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
--   List rows&lt;br /&gt;
--&lt;br /&gt;
local function renderListRow(tbl, index, listnum)&lt;br /&gt;
	local row = addTableRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args.imageleft then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:addClass('navbox-image')&lt;br /&gt;
				:addClass(args.imageclass)&lt;br /&gt;
				:css('width', '0%')&lt;br /&gt;
				:css('padding', '0px 2px 0px 0px')&lt;br /&gt;
				:cssText(args.imageleftstyle)&lt;br /&gt;
				:attr('rowspan', 2 * #listnums - 1)&lt;br /&gt;
				:tag('div')&lt;br /&gt;
					:wikitext(addNewline(args.imageleft))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args['group' .. listnum] then&lt;br /&gt;
		local groupCell = row:tag('th')&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:addClass('navbox-group')&lt;br /&gt;
			:addClass(args.groupclass)&lt;br /&gt;
			:cssText(args.basestyle)&lt;br /&gt;
&lt;br /&gt;
		if args.groupwidth then&lt;br /&gt;
			groupCell:css('width', args.groupwidth)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		groupCell&lt;br /&gt;
			:cssText(args.groupstyle)&lt;br /&gt;
			:cssText(args['group' .. listnum .. 'style'])&lt;br /&gt;
			:wikitext(args['group' .. listnum])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listCell = row:tag('td')&lt;br /&gt;
&lt;br /&gt;
	if args['group' .. listnum] then&lt;br /&gt;
		listCell&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('border-left-width', '2px')&lt;br /&gt;
			:css('border-left-style', 'solid')&lt;br /&gt;
	else&lt;br /&gt;
		listCell:attr('colspan', 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args.groupwidth then&lt;br /&gt;
		listCell:css('width', '100%')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing&lt;br /&gt;
	if index % 2 == 1 then&lt;br /&gt;
		rowstyle = args.oddstyle&lt;br /&gt;
	else&lt;br /&gt;
		rowstyle = args.evenstyle&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local listText = args['list' .. listnum]&lt;br /&gt;
	local oddEven = ODD_EVEN_MARKER&lt;br /&gt;
	if listText:sub(1, 12) == '&amp;lt;/div&amp;gt;&amp;lt;table' then&lt;br /&gt;
		-- Assume list text is for a subgroup navbox so no automatic striping for this row.&lt;br /&gt;
		oddEven = listText:find('&amp;lt;th[^&amp;gt;]*&amp;quot;navbox%-title&amp;quot;') and RESTART_MARKER or 'odd'&lt;br /&gt;
	end&lt;br /&gt;
	listCell&lt;br /&gt;
		:css('padding', '0px')&lt;br /&gt;
		:cssText(args.liststyle)&lt;br /&gt;
		:cssText(rowstyle)&lt;br /&gt;
		:cssText(args['list' .. listnum .. 'style'])&lt;br /&gt;
		:addClass('navbox-list')&lt;br /&gt;
		:addClass('navbox-' .. oddEven)&lt;br /&gt;
		:addClass(args.listclass)&lt;br /&gt;
		:tag('div')&lt;br /&gt;
			:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')&lt;br /&gt;
			:wikitext(addNewline(listText))&lt;br /&gt;
&lt;br /&gt;
	if index == 1 and args.image then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:addClass('navbox-image')&lt;br /&gt;
				:addClass(args.imageclass)&lt;br /&gt;
				:css('width', '0%')&lt;br /&gt;
				:css('padding', '0px 0px 0px 2px')&lt;br /&gt;
				:cssText(args.imagestyle)&lt;br /&gt;
				:attr('rowspan', 2 * #listnums - 1)&lt;br /&gt;
				:tag('div')&lt;br /&gt;
					:wikitext(addNewline(args.image))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
--   Tracking categories&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local function needsHorizontalLists()&lt;br /&gt;
	if border == 'subgroup' or args.tracking == 'no' then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local listClasses = {&lt;br /&gt;
		['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,&lt;br /&gt;
		['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,&lt;br /&gt;
		['hlist vevent'] = true,&lt;br /&gt;
	}&lt;br /&gt;
	return not (listClasses[args.listclass] or listClasses[args.bodyclass])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasBackgroundColors()&lt;br /&gt;
	for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle'}) do&lt;br /&gt;
		if tostring(args[key]):find('background', 1, true) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isIllegible()&lt;br /&gt;
	local styleratio = require('Module:Color contrast')._styleratio&lt;br /&gt;
&lt;br /&gt;
	for key, style in pairs(args) do&lt;br /&gt;
		if tostring(key):match(&amp;quot;style$&amp;quot;) then&lt;br /&gt;
			if styleratio{mw.text.unstripNoWiki(style)} &amp;lt; 4.5 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getTrackingCategories()&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end&lt;br /&gt;
	if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end&lt;br /&gt;
	if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end&lt;br /&gt;
	return cats&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories(builder)&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if title.namespace ~= 10 then return end -- not in template space&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end&lt;br /&gt;
&lt;br /&gt;
	for i, cat in ipairs(getTrackingCategories()) do&lt;br /&gt;
		builder:wikitext('[[Category:' .. cat .. ']]')&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
--   Main navbox tables&lt;br /&gt;
--&lt;br /&gt;
local function renderMainTable()&lt;br /&gt;
	local tbl = mw.html.create('table')&lt;br /&gt;
		:addClass('nowraplinks')&lt;br /&gt;
		:addClass(args.bodyclass)&lt;br /&gt;
&lt;br /&gt;
	if args.title and (args.state ~= 'plain' and args.state ~= 'off') then&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass('collapsible')&lt;br /&gt;
			:addClass(args.state or 'autocollapse')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tbl:css('border-spacing', 0)&lt;br /&gt;
	if border == 'subgroup' or border == 'none' then&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass('navbox-subgroup')&lt;br /&gt;
			:cssText(args.bodystyle)&lt;br /&gt;
			:cssText(args.style)&lt;br /&gt;
	else  -- regular navbox - bodystyle and style will be applied to the wrapper table&lt;br /&gt;
		tbl&lt;br /&gt;
			:addClass('navbox-inner')&lt;br /&gt;
			:css('background', 'transparent')&lt;br /&gt;
			:css('color', 'inherit')&lt;br /&gt;
	end&lt;br /&gt;
	tbl:cssText(args.innerstyle)&lt;br /&gt;
&lt;br /&gt;
	renderTitleRow(tbl)&lt;br /&gt;
	renderAboveRow(tbl)&lt;br /&gt;
	for i, listnum in ipairs(listnums) do&lt;br /&gt;
		renderListRow(tbl, i, listnum)&lt;br /&gt;
	end&lt;br /&gt;
	renderBelowRow(tbl)&lt;br /&gt;
&lt;br /&gt;
	return tbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._navbox(navboxArgs)&lt;br /&gt;
	args = navboxArgs&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local listnum = ('' .. k):match('^list(%d+)$')&lt;br /&gt;
		if listnum then table.insert(listnums, tonumber(listnum)) end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(listnums)&lt;br /&gt;
&lt;br /&gt;
	border = mw.text.trim(args.border or args[1] or '')&lt;br /&gt;
	if border == 'child' then&lt;br /&gt;
		border = 'subgroup'&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- render the main body of the navbox&lt;br /&gt;
	local tbl = renderMainTable()&lt;br /&gt;
&lt;br /&gt;
	-- render the appropriate wrapper around the navbox, depending on the border param&lt;br /&gt;
	local res = mw.html.create()&lt;br /&gt;
	if border == 'none' then&lt;br /&gt;
		local nav = res:tag('div')&lt;br /&gt;
			:attr('role', 'navigation')&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		if args.title then&lt;br /&gt;
			nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr('aria-label', 'Navbox')&lt;br /&gt;
		end&lt;br /&gt;
	elseif border == 'subgroup' then&lt;br /&gt;
		-- We assume that this navbox is being rendered in a list cell of a parent navbox, and is&lt;br /&gt;
		-- therefore inside a div with padding:0em 0.25em. We start with a &amp;lt;/div&amp;gt; to avoid the&lt;br /&gt;
		-- padding being applied, and at the end add a &amp;lt;div&amp;gt; to balance out the parent's &amp;lt;/div&amp;gt;&lt;br /&gt;
		res&lt;br /&gt;
			:wikitext('&amp;lt;/div&amp;gt;')&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
			:wikitext('&amp;lt;div&amp;gt;')&lt;br /&gt;
	else&lt;br /&gt;
		local nav = res:tag('div')&lt;br /&gt;
			:attr('role', 'navigation')&lt;br /&gt;
			:addClass('navbox')&lt;br /&gt;
			:cssText(args.bodystyle)&lt;br /&gt;
			:cssText(args.style)&lt;br /&gt;
			:css('padding', '3px')&lt;br /&gt;
			:node(tbl)&lt;br /&gt;
		if args.title then&lt;br /&gt;
			nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))&lt;br /&gt;
		else&lt;br /&gt;
			nav:attr('aria-label', 'Navbox')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	renderTrackingCategories(res)&lt;br /&gt;
&lt;br /&gt;
	return striped(tostring(res))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.navbox(frame)&lt;br /&gt;
	if not getArgs then&lt;br /&gt;
		getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
	end&lt;br /&gt;
	args = getArgs(frame, {wrappers = 'Template:Navbox'})&lt;br /&gt;
&lt;br /&gt;
	-- Read the arguments in the order they'll be output in, to make references number in the right order.&lt;br /&gt;
	local _&lt;br /&gt;
	_ = args.title&lt;br /&gt;
	_ = args.above&lt;br /&gt;
	for i = 1, 20 do&lt;br /&gt;
		_ = args[&amp;quot;group&amp;quot; .. tostring(i)]&lt;br /&gt;
		_ = args[&amp;quot;list&amp;quot; .. tostring(i)]&lt;br /&gt;
	end&lt;br /&gt;
	_ = args.below&lt;br /&gt;
&lt;br /&gt;
	return p._navbox(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Unsubst&amp;diff=36582</id>
		<title>Módulo:Unsubst</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Unsubst&amp;diff=36582"/>
		<updated>2017-03-19T06:15:39Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local specialParams = {&lt;br /&gt;
	['$N'] = 'template name', -- Deprecated, but keeping until it is removed from transcluding templates&lt;br /&gt;
	['$B'] = 'template content',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p[''] = function ( frame )&lt;br /&gt;
	if not frame:getParent() then&lt;br /&gt;
		error( '{{#invoke:Unsubst|}} makes no sense without a parent frame' )&lt;br /&gt;
	end&lt;br /&gt;
	if not frame.args['$B'] then&lt;br /&gt;
		error( '{{#invoke:Unsubst|}} requires parameter $B (template content)' )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if mw.isSubsting() then&lt;br /&gt;
		---- substing&lt;br /&gt;
		-- Combine passed args with passed defaults&lt;br /&gt;
		local args = {}&lt;br /&gt;
		for k, v in pairs( frame.args ) do&lt;br /&gt;
			if not specialParams[k] then&lt;br /&gt;
				if v == '__DATE__' then&lt;br /&gt;
					v = mw.getContentLanguage():formatDate( 'F Y' )&lt;br /&gt;
				end&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( frame:getParent().args ) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Build an equivalent template invocation&lt;br /&gt;
		-- First, find the title to use&lt;br /&gt;
		local titleobj = mw.title.new(frame:getParent():getTitle())&lt;br /&gt;
		local title&lt;br /&gt;
		if titleobj.namespace == 10 then -- NS_TEMPLATE&lt;br /&gt;
			title = titleobj.text&lt;br /&gt;
		elseif titleobj.namespace == 0 then -- NS_MAIN&lt;br /&gt;
			title = ':' .. titleobj.text&lt;br /&gt;
		else&lt;br /&gt;
			title = titleobj.prefixedText&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Build the invocation body with numbered args first, then named&lt;br /&gt;
		local ret = '{{' .. title&lt;br /&gt;
		for k, v in ipairs( args ) do&lt;br /&gt;
			if string.find( v, '=', 1, true ) then&lt;br /&gt;
				-- likely something like 1=foo=bar, we need to do it as a named arg&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
			ret = ret .. '|' .. v&lt;br /&gt;
			args[k] = nil&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs( args ) do&lt;br /&gt;
			ret = ret .. '|' .. k .. '=' .. v&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return ret .. '}}'&lt;br /&gt;
	else&lt;br /&gt;
		---- Not substing&lt;br /&gt;
		-- Just return the &amp;quot;body&amp;quot;&lt;br /&gt;
		return frame.args['$B'] .. (frame.args['$N'] and frame:getParent():getTitle() == mw.title.getCurrentTitle().prefixedText and '[[Category:Calls to Module:Unsubst that use $N]]' or '')&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Citation&amp;diff=36580</id>
		<title>Módulo:Citation</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Citation&amp;diff=36580"/>
		<updated>2017-03-19T06:15:38Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;---------------------------------------------------------------------&lt;br /&gt;
-- Module:Citation - Lua module for Citation auxiliary templates&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
-- For the {{citation}} formatting functions, see: Module:Citation/CS1&lt;br /&gt;
--                               (see NOTES at bottom)&lt;br /&gt;
--require &amp;quot;mw.text&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local z = {&lt;br /&gt;
    wikitext = require(&amp;quot;Module:Wikitext&amp;quot;),&lt;br /&gt;
    extensiontags = {&lt;br /&gt;
        nowiki = true,&lt;br /&gt;
        ref = true,&lt;br /&gt;
        gallery = true,&lt;br /&gt;
        pre = true,&lt;br /&gt;
        source = true,&lt;br /&gt;
        categorytree = true,&lt;br /&gt;
        charinsert = true,&lt;br /&gt;
        hiero = true,&lt;br /&gt;
        imagemap = true,&lt;br /&gt;
        inputbox = true,&lt;br /&gt;
        math = true,&lt;br /&gt;
        poem = true,&lt;br /&gt;
        ref = true,&lt;br /&gt;
        references = true,&lt;br /&gt;
        syntaxhighlight = true,&lt;br /&gt;
        timeline = true,&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function trim( str )&lt;br /&gt;
    if str == nil then&lt;br /&gt;
        return nil;&lt;br /&gt;
    end&lt;br /&gt;
    return str:match( &amp;quot;^%s*(.-)%s*$&amp;quot; );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function hideinprint(content)&lt;br /&gt;
    return content&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function onlyinprint(content)&lt;br /&gt;
    return &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This returns a string with HTML character entities for wikitext markup characters.&lt;br /&gt;
function wikiescape(text)&lt;br /&gt;
    text = text:gsub( '[&amp;amp;\'%[%]{|}]', {    &lt;br /&gt;
            ['&amp;amp;'] = '&amp;amp;#38;',    &lt;br /&gt;
            [&amp;quot;'&amp;quot;] = '&amp;amp;#39;',    &lt;br /&gt;
            ['['] = '&amp;amp;#91;',    &lt;br /&gt;
            [']'] = '&amp;amp;#93;',	&lt;br /&gt;
            ['{'] = '&amp;amp;#123;',	&lt;br /&gt;
            ['|'] = '&amp;amp;#124;',	&lt;br /&gt;
            ['}'] = '&amp;amp;#125;' } );&lt;br /&gt;
    return text;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function createTag(t, frame)&lt;br /&gt;
    local name = t.name or &amp;quot;!-- --&amp;quot;&lt;br /&gt;
    local content = t.contents or &amp;quot;&amp;quot;&lt;br /&gt;
    local attrs = {}&lt;br /&gt;
    if ( z.extensiontags[name] ) then&lt;br /&gt;
        -- We have to preprocess these, so that they are properly turned into so-called &amp;quot;strip markers&amp;quot; in the generated wikitext.&lt;br /&gt;
        if ( not frame ) then error (&amp;quot;Please supply an extra frame argument to the createTag() function.&amp;quot;) end&lt;br /&gt;
        local params = {}&lt;br /&gt;
        for n,v in pairs(t.params) do&lt;br /&gt;
            table.insert(params, &amp;quot;|&amp;quot; .. n .. &amp;quot;=&amp;quot; .. v)&lt;br /&gt;
        end&lt;br /&gt;
        return frame:preprocess(&amp;quot;{{#tag:&amp;quot; .. name .. &amp;quot;|&amp;quot; .. content .. table.concat(params) .. &amp;quot;}}&amp;quot;)&lt;br /&gt;
    else   &lt;br /&gt;
        for n,v in pairs(t.params) do&lt;br /&gt;
            if (v) then&lt;br /&gt;
                table.insert(attrs, n .. &amp;quot;=\&amp;quot;&amp;quot; .. wikiescape(v) .. &amp;quot;\&amp;quot;&amp;quot;)&lt;br /&gt;
            else&lt;br /&gt;
                table.insert(attrs, n)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if (&amp;quot;&amp;quot; == content) then&lt;br /&gt;
            return &amp;quot;&amp;lt;&amp;quot; .. name .. &amp;quot; &amp;quot; .. table.concat(attrs, &amp;quot; &amp;quot;) .. &amp;quot;/&amp;gt;&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;lt;&amp;quot; .. name .. &amp;quot; &amp;quot; .. table.concat(attrs, &amp;quot; &amp;quot;) .. &amp;quot;&amp;gt;&amp;quot; .. content .. &amp;quot;&amp;lt;/&amp;quot; .. name .. &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This is a clone of mw.text.nowiki.  When the mw.text library is installed,&lt;br /&gt;
this can be replaced by a call to that library. ]]&lt;br /&gt;
function nowiki( s )&lt;br /&gt;
    -- string.gsub is safe here, because we're only caring about ASCII chars&lt;br /&gt;
    s = string.gsub( s, '[&amp;quot;&amp;amp;\'&amp;lt;=&amp;gt;%[%]{|}]', {&lt;br /&gt;
        ['&amp;quot;'] = '&amp;amp;#34;',&lt;br /&gt;
        ['&amp;amp;'] = '&amp;amp;#38;',&lt;br /&gt;
        [&amp;quot;'&amp;quot;] = '&amp;amp;#39;',&lt;br /&gt;
        ['&amp;lt;'] = '&amp;amp;#60;',&lt;br /&gt;
        ['='] = '&amp;amp;#61;',&lt;br /&gt;
        ['&amp;gt;'] = '&amp;amp;#62;',&lt;br /&gt;
        ['['] = '&amp;amp;#91;',&lt;br /&gt;
        [']'] = '&amp;amp;#93;',&lt;br /&gt;
        ['{'] = '&amp;amp;#123;',&lt;br /&gt;
        ['|'] = '&amp;amp;#124;',&lt;br /&gt;
        ['}'] = '&amp;amp;#125;',&lt;br /&gt;
    } )&lt;br /&gt;
    s = string.sub( string.gsub( '\n' .. s, '\n[#*:;]', {&lt;br /&gt;
        [&amp;quot;\n#&amp;quot;] = &amp;quot;\n&amp;amp;#35;&amp;quot;,&lt;br /&gt;
        [&amp;quot;\n*&amp;quot;] = &amp;quot;\n&amp;amp;#42;&amp;quot;,&lt;br /&gt;
        [&amp;quot;\n:&amp;quot;] = &amp;quot;\n&amp;amp;#58;&amp;quot;,&lt;br /&gt;
        [&amp;quot;\n;&amp;quot;] = &amp;quot;\n&amp;amp;#59;&amp;quot;,&lt;br /&gt;
    } ), 2 )&lt;br /&gt;
    s = string.gsub( s, '://', '&amp;amp;#58;//' )&lt;br /&gt;
    s = string.gsub( s, 'ISBN ', 'ISBN&amp;amp;#32;' )&lt;br /&gt;
    s = string.gsub( s, 'RFC ', 'RFC&amp;amp;#32;' )&lt;br /&gt;
&lt;br /&gt;
    return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function externallinkid(args)&lt;br /&gt;
    local sep = args.separator or &amp;quot;&amp;amp;nbsp;&amp;quot;&lt;br /&gt;
    args.suffix = args.suffix or &amp;quot;&amp;quot;&lt;br /&gt;
    local url_string = args.id&lt;br /&gt;
    if args.encode == true or args.encode == nil then&lt;br /&gt;
        url_string = mw.uri.encode( url_string );&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local t0 = onlyinprint(args.label .. sep .. args.id)&lt;br /&gt;
    local t1 = hideinprint(&amp;quot;[[&amp;quot; .. args.link .. &amp;quot;|&amp;quot; .. args.label .. &amp;quot;]]&amp;quot; .. sep .. &amp;quot;[&amp;quot; .. args.prefix .. url_string .. args.suffix .. &amp;quot; &amp;quot; .. nowiki(args.id) .. &amp;quot;]&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    return t0 .. t1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function doi(id, inactive, nocat)&lt;br /&gt;
    local cat = &amp;quot;&amp;quot;&lt;br /&gt;
    local text;&lt;br /&gt;
    if ( inactive ~= nil ) then &lt;br /&gt;
        text = &amp;quot;[[Digital object identifier|doi]]:&amp;quot; .. id;&lt;br /&gt;
        cat = cat .. &amp;quot;[[Category:Pages with DOIs inactive since &amp;quot; .. selectyear(inactive) .. &amp;quot;]]&amp;quot;&lt;br /&gt;
        inactive = &amp;quot; (inactive &amp;quot; .. inactive .. &amp;quot;)&amp;quot; &lt;br /&gt;
    else &lt;br /&gt;
        text = externallinkid({link=&amp;quot;Digital object identifier&amp;quot;,label=&amp;quot;doi&amp;quot;,prefix=&amp;quot;//dx.doi.org/&amp;quot;,id=id,separator=&amp;quot;:&amp;quot;})&lt;br /&gt;
        inactive = &amp;quot;&amp;quot; &lt;br /&gt;
    end&lt;br /&gt;
    if ( string.sub(id,1,3) ~= &amp;quot;10.&amp;quot; ) then&lt;br /&gt;
        cat = cat .. &amp;quot;[[Category:Pages with DOI errors]]&amp;quot; .. '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt; Bad DOI (expected &amp;quot;10.&amp;quot; prefix) in code number&amp;lt;/span&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    if ( nocat and nocat ~= &amp;quot;&amp;quot; ) then cat = &amp;quot;&amp;quot; end&lt;br /&gt;
    return text .. inactive .. cat    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function selectyear( str )&lt;br /&gt;
    local lang = mw.getContentLanguage();&lt;br /&gt;
    local good, result;&lt;br /&gt;
    good, result = pcall( lang.formatDate, lang, 'Y', str )&lt;br /&gt;
    if good then &lt;br /&gt;
        return result;&lt;br /&gt;
    else&lt;br /&gt;
        return '';&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function anchorid(label, args)&lt;br /&gt;
    local P1 = trim(args[1]) or &amp;quot;&amp;quot;&lt;br /&gt;
    local P2 = trim(args[2]) or &amp;quot;&amp;quot;&lt;br /&gt;
    local P3 = trim(args[3]) or &amp;quot;&amp;quot;&lt;br /&gt;
    local P4 = trim(args[4]) or &amp;quot;&amp;quot;&lt;br /&gt;
    local P5 = trim(args[5]) or &amp;quot;&amp;quot;&lt;br /&gt;
    local anchor = P1 .. P2 .. P3 .. P4 .. P5;&lt;br /&gt;
    if anchor ~= '' then  -- See bug description in Citation/CS1&lt;br /&gt;
        anchor = mw.uri.anchorEncode( anchor );&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return label .. anchor&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function refid(label, args)&lt;br /&gt;
    local p = args.p or &amp;quot;&amp;quot;&lt;br /&gt;
    local pp = args.pp or &amp;quot;&amp;quot;&lt;br /&gt;
    local loc = args.loc or &amp;quot;&amp;quot;&lt;br /&gt;
    return anchorid(label, args) .. p .. pp .. loc    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function name(args)&lt;br /&gt;
    local P1 = trim(args[1]) or &amp;quot;&amp;quot;&lt;br /&gt;
    if ( args[5] ~= nil) then&lt;br /&gt;
        return P1 .. &amp;quot; et al.&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        local P2 = trim(args[2]) or &amp;quot;&amp;quot;&lt;br /&gt;
        local P3 = trim(args[3]) or &amp;quot;&amp;quot; &lt;br /&gt;
        local P4 = trim(args[4]) or &amp;quot;&amp;quot;&lt;br /&gt;
        if ( args[4] ~= nil ) then&lt;br /&gt;
            P4 = &amp;quot; &amp;quot; .. P4&lt;br /&gt;
            P3 = &amp;quot; &amp;amp;amp; &amp;quot; .. P3&lt;br /&gt;
            P2 = &amp;quot;, &amp;quot; .. P2&lt;br /&gt;
        elseif ( args[3] ~= nil ) then&lt;br /&gt;
            P3 = &amp;quot; &amp;quot; .. P3&lt;br /&gt;
            P2 = &amp;quot; &amp;amp;amp; &amp;quot; .. P2&lt;br /&gt;
        elseif ( args[2] ~= nil ) then&lt;br /&gt;
            P2 = &amp;quot; &amp;quot; .. P2            &lt;br /&gt;
        end&lt;br /&gt;
        return P1 .. P2 .. P3 .. P4&lt;br /&gt;
    end &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function crossref(frame, label, args)&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local LB = config.BracketLeft or &amp;quot;&amp;quot;&lt;br /&gt;
    local RB = config.BracketRight or &amp;quot;&amp;quot;&lt;br /&gt;
    local anchor = args.ref or args.Ref or anchorid( label, args)&lt;br /&gt;
    local text = name(args)&lt;br /&gt;
    local loc = args.loc&lt;br /&gt;
    local page&lt;br /&gt;
    local pages = args.pp or args.pages&lt;br /&gt;
    if pages == nil or pages == '' then&lt;br /&gt;
        page = args.p or args.page;&lt;br /&gt;
    end &lt;br /&gt;
    if nil == loc then loc = &amp;quot;&amp;quot; else loc = &amp;quot; &amp;quot; .. loc end&lt;br /&gt;
    if ( page ~= nil ) then&lt;br /&gt;
        local pagesep = config.PageSep or &amp;quot;, p.&amp;amp;nbsp;&amp;quot;&lt;br /&gt;
        loc = loc .. pagesep .. page&lt;br /&gt;
    end&lt;br /&gt;
    if ( pages ~= nil ) then&lt;br /&gt;
        local pagessep = config.PagesSep or &amp;quot;, pp.&amp;amp;nbsp;&amp;quot;&lt;br /&gt;
        loc = loc .. pagessep .. pages&lt;br /&gt;
    end        &lt;br /&gt;
    local pagename = args.pagename or &amp;quot;&amp;quot;&lt;br /&gt;
    local ps = args.Postscript or &amp;quot;&amp;quot;&lt;br /&gt;
    return LB .. &amp;quot;[[&amp;quot; .. pagename .. &amp;quot;#&amp;quot; .. anchor .. &amp;quot;|&amp;quot; .. text .. &amp;quot;]]&amp;quot; .. loc .. RB .. ps&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function r0(frame, name, group, page)&lt;br /&gt;
    if ( name == nil ) then return &amp;quot;&amp;quot; end&lt;br /&gt;
    if ( group == nil ) then group = &amp;quot;&amp;quot; end&lt;br /&gt;
    local p = &amp;quot;&amp;quot;&lt;br /&gt;
    if ( page ~= nil ) then &lt;br /&gt;
        local contents = &amp;quot;:&amp;quot; .. page&lt;br /&gt;
        p = createTag({name=&amp;quot;sup&amp;quot;,contents=contents,params={class=&amp;quot;reference&amp;quot;,style=&amp;quot;white-space:nowrap;&amp;quot;}}) &lt;br /&gt;
    end&lt;br /&gt;
    return createTag({name=&amp;quot;ref&amp;quot;,contents=&amp;quot;&amp;quot;,params={name=name,group=group}}, frame) .. p&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function reflist0(frame, config, args)&lt;br /&gt;
    local contents = args.refs or &amp;quot;&amp;quot;&lt;br /&gt;
    local liststyle = args.liststyle&lt;br /&gt;
    local count = args[1]&lt;br /&gt;
    local width = args.colwidth&lt;br /&gt;
    local group = args.group or config.default_group&lt;br /&gt;
    if ( nil == tonumber(count) and nil == width ) then &lt;br /&gt;
        width = count&lt;br /&gt;
        count = nil&lt;br /&gt;
    end&lt;br /&gt;
    if ( nil == liststyle ) then&lt;br /&gt;
        if ( &amp;quot;upper-alpha&amp;quot; == group or &amp;quot;lower-alpha&amp;quot; == group or &amp;quot;upper-roman&amp;quot; == group or &amp;quot;lower-roman&amp;quot; == group or &amp;quot;upper-greek&amp;quot; == group or &amp;quot;lower-greek&amp;quot; == group ) then&lt;br /&gt;
            liststyle = group&lt;br /&gt;
        else&lt;br /&gt;
            liststyle = config.default_liststyle&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local params = {}&lt;br /&gt;
    params.class = &amp;quot;reflist&amp;quot;    &lt;br /&gt;
    params.style = z.wikitext.liststyle(liststyle)&lt;br /&gt;
    if ( nil ~= count ) then        &lt;br /&gt;
        params.class = params.class .. &amp;quot; references-column-count references-column-count-&amp;quot; .. count&lt;br /&gt;
        params.style = params.style .. &amp;quot; &amp;quot; .. z.wikitext.columncountstyle(count)&lt;br /&gt;
    end    &lt;br /&gt;
    if ( nil ~= width ) then&lt;br /&gt;
        params.class = params.class .. &amp;quot; references-column-width&amp;quot;&lt;br /&gt;
        params.style = params.style .. &amp;quot; &amp;quot; .. z.wikitext.columnwidthstyle(width)&lt;br /&gt;
    end&lt;br /&gt;
    local references = createTag({name=&amp;quot;references&amp;quot;,contents=contents,params={group=group}}, frame)&lt;br /&gt;
    return createTag({name=&amp;quot;div&amp;quot;,contents=references,params=params})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function refbegin0(frame, config, args)&lt;br /&gt;
    local liststyle = args.liststyle&lt;br /&gt;
    local indent = args.indent&lt;br /&gt;
    local indentsize = args.indentsize&lt;br /&gt;
    local count = args[1]&lt;br /&gt;
    local width = args.colwidth&lt;br /&gt;
    if ( nil == tonumber(count) and nil == width ) then &lt;br /&gt;
        width = count&lt;br /&gt;
        count = nil&lt;br /&gt;
    end&lt;br /&gt;
    if ( nil == liststyle ) then&lt;br /&gt;
        if ( &amp;quot;upper-alpha&amp;quot; == group or &amp;quot;lower-alpha&amp;quot; == group or &amp;quot;upper-roman&amp;quot; == group or &amp;quot;lower-roman&amp;quot; == group or &amp;quot;upper-greek&amp;quot; == group or &amp;quot;lower-greek&amp;quot; == group ) then&lt;br /&gt;
            liststyle = group&lt;br /&gt;
        else&lt;br /&gt;
            liststyle = config.default_liststyle&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local params = {}&lt;br /&gt;
    params.class = &amp;quot;refbegin&amp;quot;&lt;br /&gt;
    params.style = z.wikitext.liststyle(liststyle)&lt;br /&gt;
    if ( nil ~= count ) then        &lt;br /&gt;
        params.class = params.class .. &amp;quot; references-column-count references-column-count-&amp;quot; .. count&lt;br /&gt;
        params.style = params.style .. &amp;quot; &amp;quot; .. z.wikitext.columncountstyle(count)&lt;br /&gt;
    end    &lt;br /&gt;
    if ( nil ~= width ) then&lt;br /&gt;
        params.class = params.class .. &amp;quot; references-column-width&amp;quot;&lt;br /&gt;
        params.style = params.style .. &amp;quot; &amp;quot; .. z.wikitext.columnwidthstyle(width)&lt;br /&gt;
    end&lt;br /&gt;
    local dlopen&lt;br /&gt;
    if ( nil ~= indent ) then&lt;br /&gt;
        dlopen = z.wikitext.OpenHTMLTag({name=&amp;quot;dl&amp;quot;,params={style=&amp;quot;text-indent: -&amp;quot; .. (indentsize or &amp;quot;3.2&amp;quot;) .. &amp;quot;em;&amp;quot;}})&lt;br /&gt;
    else&lt;br /&gt;
        dlopen = &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return z.wikitext.OpenHTMLTag({name=&amp;quot;div&amp;quot;,params=params}) .. dlopen&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function refend0(frame, config, args)&lt;br /&gt;
    local indent = args.indent&lt;br /&gt;
    local dlclose&lt;br /&gt;
    if ( nil ~= indent ) then&lt;br /&gt;
        dlclose = &amp;quot;&amp;lt;/dl&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        dlclose = &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return dlclose .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by {{doi}} to create DOI links in the style used in citations.&lt;br /&gt;
function z.doi(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local id = pframe.args.id or pframe.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    return doi(id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by {{ISSN}} to create ISSN links in the style used in citations.&lt;br /&gt;
function z.ISSN(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local Name = pframe.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    return hideinprint(&amp;quot;[[International Standard Serial Number|ISSN]]&amp;amp;nbsp;[//www.worldcat.org/search?fq=x0:jrnl&amp;amp;q=n2:&amp;quot; .. Name .. &amp;quot; &amp;quot; .. Name .. &amp;quot;]&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by templates such as {{SfnRef}} to create the (encoded) anchor name for a Harvard cross-reference hyperlink.&lt;br /&gt;
function z.SFNID(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    return anchorid('FOOTNOTE', pframe.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by templates such as {{Harvard citation}} to create the Harvard cross-reference text.&lt;br /&gt;
function z.Harvard(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    return crossref(frame, pframe.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by templates such as {{sfn}} to create the entire cross-reference.&lt;br /&gt;
function z.sfn(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    pframe.args.Postscript = pframe.args.postscript or pframe.args.ps or &amp;quot;.&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    local content = crossref(frame, 'CITEREF', pframe.args)&lt;br /&gt;
    local args = { name = refid( 'FOOTNOTE', pframe.args) }&lt;br /&gt;
    return createTag({name = &amp;quot;ref&amp;quot;, contents = content, params = args}, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{r}}.&lt;br /&gt;
function z.r(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    args.page1 = args.page1 or args.page&lt;br /&gt;
    local text = &amp;quot;&amp;quot;&lt;br /&gt;
    -- This would be shorter using ipairs(), but that doesn't work on an arguments table supplied to a template.&lt;br /&gt;
    local index = 1&lt;br /&gt;
    while args[index] ~= nil do&lt;br /&gt;
        local arg = args[index]&lt;br /&gt;
        local t = r0(frame, arg, args.group, args[&amp;quot;page&amp;quot; .. index])&lt;br /&gt;
        text = text .. t&lt;br /&gt;
        index = index + 1&lt;br /&gt;
    end&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{ref label}}.&lt;br /&gt;
function z.reflabel(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    local P1 = args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local P2 = args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
    local P3 = args[3] or &amp;quot;&amp;quot;&lt;br /&gt;
    local id = nil&lt;br /&gt;
    local contents = &amp;quot;[[#endnote_&amp;quot; .. P1 .. P3 .. &amp;quot;|&amp;amp;#91;&amp;quot; .. P2 .. &amp;quot;&amp;amp;#93;]]&amp;quot;&lt;br /&gt;
    local params = {}&lt;br /&gt;
    params.class=&amp;quot;reference&amp;quot;&lt;br /&gt;
    if ( args.noid == nil or args.noid == &amp;quot;&amp;quot; ) then params.id = &amp;quot;ref_&amp;quot; .. P1 .. P3 end&lt;br /&gt;
    return createTag({name=&amp;quot;sup&amp;quot;,contents=contents,params=params})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{note label}}.&lt;br /&gt;
function z.notelabel(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    local id = args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local arrow = args[3] or &amp;quot;&amp;quot;&lt;br /&gt;
    local postscript = args[4] or &amp;quot;&amp;quot;&lt;br /&gt;
    local contents &lt;br /&gt;
    if arrow ~= &amp;quot;&amp;quot; then&lt;br /&gt;
        local sup_arrow = createTag({name=&amp;quot;sup&amp;quot;,contents=arrow,params={}})&lt;br /&gt;
        contents = &amp;quot;[[#ref_&amp;quot; .. id .. arrow .. &amp;quot;|&amp;lt;b&amp;gt;&amp;quot; .. sup_arrow .. &amp;quot;&amp;lt;/b&amp;gt;]]&amp;quot; .. postscript&lt;br /&gt;
        if &amp;quot;none&amp;quot; == arrow then arrow = &amp;quot;^&amp;quot; end -- Change this AFTER using it in the ID parameter and the contents.&lt;br /&gt;
    else&lt;br /&gt;
        contents = (args[2] or &amp;quot;&amp;quot;) .. postscript&lt;br /&gt;
    end&lt;br /&gt;
    local params = { class=&amp;quot;citation wikicite&amp;quot; }&lt;br /&gt;
    if id ~= &amp;quot;&amp;quot; and ( args.noid == nil or args.noid == &amp;quot;&amp;quot; ) then &lt;br /&gt;
        params.id = mw.uri.anchorEncode(&amp;quot;endnote_&amp;quot; .. id .. arrow)&lt;br /&gt;
    end&lt;br /&gt;
    return createTag({name=&amp;quot;span&amp;quot;,contents=contents,params=params})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by templates {{reflist}} and {{notelist}}.&lt;br /&gt;
function z.reflist(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    return reflist0(frame, config, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{refbegin}}.&lt;br /&gt;
function z.refbegin(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    return refbegin0(frame, config, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{refend}}.&lt;br /&gt;
function z.refend(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    return refend0(frame, config, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used by template {{efn}}.&lt;br /&gt;
function z.efn(frame)&lt;br /&gt;
    local pframe = frame:getParent()&lt;br /&gt;
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself&lt;br /&gt;
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template&lt;br /&gt;
    return createTag({name=&amp;quot;ref&amp;quot;,contents=(args[1] or &amp;quot;&amp;quot;),params={name=args.name,group=config.default_group}}, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return z&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
--NOTES&lt;br /&gt;
--&lt;br /&gt;
-- NOTE A1: This Lua module was originally designed to handle a mix&lt;br /&gt;
--      of citation styles, crossing Vancouver style with Wikipedia's&lt;br /&gt;
--      local Citation Style 1 (CS1) from {Template:Citation/core}.&lt;br /&gt;
--      However, the conflicting positions of parameters, scattered&lt;br /&gt;
--      in twisted locations across this module, led to a separate&lt;br /&gt;
--      variation just to untangle the CS1 format of citations.&lt;br /&gt;
--&lt;br /&gt;
-- NOTE D2: The placement of dots and other separators between the&lt;br /&gt;
--      displayed parameters has been a continual headache, to keep&lt;br /&gt;
--      coordinated with the data in parentheses &amp;quot;(data)&amp;quot;. There&lt;br /&gt;
--      has been a need to pre-check for the existence of related&lt;br /&gt;
--      options, to keep from putting double-dots &amp;quot;..&amp;quot; in some cases.&lt;br /&gt;
--      In particular, the omission of the &amp;quot;title=&amp;quot; parameter has led&lt;br /&gt;
--      to several cases of a spurious dot &amp;quot;. .&amp;quot; because the original&lt;br /&gt;
--      design had treated the title as a mandatory parameter.&lt;br /&gt;
--&lt;br /&gt;
------------------------------------------------------------------------&lt;br /&gt;
--HISTORY:&lt;br /&gt;
--18Oct2012 Fixed lead-space in Chapter by omitting &amp;quot; &amp;quot;.&lt;br /&gt;
--18Oct2012 Fixed lead-space in Chapter/Title as end &amp;quot; &amp;quot; of Authors/Date/...&lt;br /&gt;
--19Oct2012 Put HISTORY comments to log major changes (not typos).&lt;br /&gt;
--19Oct2012 Fixed extra dot &amp;quot;..&amp;quot; in Title by omitting at end of &amp;quot;tcommon=...&amp;quot;.&lt;br /&gt;
--19Oct2012 For pages, put &amp;amp;nbsp in &amp;quot;p.&amp;amp;nbsp;&amp;quot; etc.&lt;br /&gt;
--19Oct2012 Enhanced &amp;quot;pages=&amp;quot; to detect lone page as &amp;quot;p.&amp;quot; else &amp;quot;pp.&amp;quot; prefix.&lt;br /&gt;
--19Oct2012 Fixed to show &amp;quot;.&amp;quot; after Periodical name (work, newspaper...).&lt;br /&gt;
--19Oct2012 Fixed web-link to have spaces &amp;quot;[...  Archived] from the original&amp;quot;.&lt;br /&gt;
--19Oct2012 Fixed to show &amp;quot;;&amp;quot; between authors &amp;amp; coauthors.&lt;br /&gt;
--19Oct2012 Fixed to omit extra &amp;quot;.&amp;quot; after coauthors.&lt;br /&gt;
--20Oct2012 Fixed COinS data to not urlencode all, as &amp;quot;ctx_ver=Z39.88-2004&amp;quot;&lt;br /&gt;
--20Oct2012 Fixed COinS to not end as &amp;quot;&amp;amp;&amp;quot; but use lead &amp;quot;&amp;amp;rft...=&amp;quot; form.&lt;br /&gt;
--20Oct2012 Fixed COinS to not url.encode page's &amp;quot;rfr_id=...&amp;quot; pagename.&lt;br /&gt;
--20Oct2012 Fixed COinS data when &amp;quot;web&amp;quot; to default to rft.genre &amp;quot;book&amp;quot;.&lt;br /&gt;
--05Nov2012 Add a span wrapper even when there is no Ref parameter&lt;br /&gt;
--15Feb2013 Added Agency for &amp;quot;agency=xx&amp;quot;.&lt;br /&gt;
--19Feb2013 Put NOTES comments to explain module operation.&lt;br /&gt;
--19Feb2013 Copied as Module:Citation/CS1 to alter to match wp:CS1 form.&lt;br /&gt;
--19Feb2013 Changed OrigYear to use [__] for CS1 style.&lt;br /&gt;
--19Feb2013 Fixed to not show duplicate Publisher/Agency.&lt;br /&gt;
--19Feb2013 Moved page-number parameters to after final date.&lt;br /&gt;
--19Feb2013 Fixed to not put double-dots after title again.&lt;br /&gt;
--20Feb2013 Changed to omit dot &amp;quot;.&amp;quot; if already ends with dot.&lt;br /&gt;
--20Feb2013 If class &amp;quot;journal&amp;quot; shows Publisher after Periodical/Series.&lt;br /&gt;
--20Feb2013 Shifted Format to after Language, and Others after Volume.&lt;br /&gt;
--20Feb2013 Set AccessDate + &amp;lt;span class=&amp;quot;reference-accessdate&amp;quot;&amp;gt;&lt;br /&gt;
--20Feb2013 Fixed url when deadurl=no.&lt;br /&gt;
--20Feb2013 Added sepc for separator character between parameters.&lt;br /&gt;
--20Feb2013 Put &amp;quot;OCLC&amp;quot; for &amp;quot;Online Computer Library Center&amp;quot;.&lt;br /&gt;
--20Feb2013 Fix empty &amp;quot;authorlink=&amp;quot; as person.link ~= &amp;quot;&amp;quot;.&lt;br /&gt;
--20Feb2013 Added space after AuthorSep &amp;amp; AuthorNameSep.&lt;br /&gt;
--21Feb2013 Added args.contributor (was missing parameter).&lt;br /&gt;
--21Feb2013 Fixed EditorSep (was misspelled &amp;quot;EdithorSep&amp;quot;).&lt;br /&gt;
--21Feb2013 Set OCinSdata.rft_val_fmt = &amp;quot;info:ofi/fmt:kev:mtx:book&amp;quot;&lt;br /&gt;
--21Feb2013 Checked to omit blank codes (asin= | doi= etc.).&lt;br /&gt;
--21Feb2013 Set enddot to end line if not config.CitationClass &amp;quot;citation&amp;quot;.&lt;br /&gt;
--21Feb2013 Fixed to show &amp;quot;issn=x&amp;quot; as the ISSN code.&lt;br /&gt;
--21Feb2013 Fixed to show &amp;quot;id=x&amp;quot; after Zbl code.&lt;br /&gt;
--21Feb2013 Changed to omit double-dot before date when already dot.&lt;br /&gt;
--21Feb2013 Order config.CitationClass &amp;quot;citation&amp;quot;: Volume, Issue, Publisher.&lt;br /&gt;
--21Feb2013 Put warning &amp;quot;Bad DOI (expected &amp;quot;10.&amp;quot;..)&amp;quot; in DOI result.&lt;br /&gt;
--21Feb2013 Automatically unbolded volume+comma when &amp;gt; 4 long.&lt;br /&gt;
--21Feb2013 Changed to allow lowercase &amp;quot;asin-tld&amp;quot;.&lt;br /&gt;
--22Feb2013 Fixed ref=harv to extract Year from Date.&lt;br /&gt;
--22Feb2013 Set Harvard refer. span id if config.CitationClass &amp;quot;citation&amp;quot;.&lt;br /&gt;
--22Feb2013 Fixed config.CitationClass &amp;quot;citation&amp;quot; as span class=&amp;quot;citation&amp;quot;.&lt;br /&gt;
--22Feb2013 Capitalized &amp;quot;Archived/Retrieved&amp;quot; only when sepc is dot &amp;quot;.&amp;quot;.&lt;br /&gt;
--23Feb2013 Fixed author editor for &amp;quot;in&amp;quot; or &amp;quot;In&amp;quot; and put space after sepc.&lt;br /&gt;
--23Feb2013 Changed to omit dot in &amp;quot;et al.&amp;quot; when sepc is &amp;quot;.&amp;quot; separator.&lt;br /&gt;
--23Feb2013 Fixed &amp;quot;author1-first&amp;quot; to also get args.given or args.given1.&lt;br /&gt;
--23Feb2013 Fixed args.article to set Title, after Periodical is Title.&lt;br /&gt;
--23Feb2013 Fixed to allow blank Title (such as &amp;quot;contribution=mytitle&amp;quot;).&lt;br /&gt;
--23Feb2013 Fixed double-dot &amp;quot;..&amp;quot; at end of Editors list&lt;br /&gt;
--26Feb2013 Moved &amp;quot;issue=&amp;quot; data to show before &amp;quot;page=&amp;quot;.&lt;br /&gt;
--26Feb2013 Moved &amp;quot;type=&amp;quot; data to show after &amp;quot;format=&amp;quot;.&lt;br /&gt;
--26Feb2013 For &amp;quot;pmc=&amp;quot; link, omitted suffix &amp;quot;/?tool=pmcentrez&amp;quot;.&lt;br /&gt;
--27Feb2013 For coauthors, omitted extra separator after authors.&lt;br /&gt;
--27Feb2013 For date, allowed empty date to use month/day/year.&lt;br /&gt;
--27Feb2013 Fixed double-dot &amp;quot;..&amp;quot; at end of authors/coauthors list.&lt;br /&gt;
--27Feb2013 Reset editor suffix as &amp;quot;, ed.&amp;quot; when date exists.&lt;br /&gt;
--27Feb2013 Removed duplicate display of &amp;quot;others=&amp;quot; data.&lt;br /&gt;
--27Feb2013 Removed parentheses &amp;quot;( )&amp;quot; around &amp;quot;department&amp;quot; TitleNote.&lt;br /&gt;
--05Mar2013 Moved Language to follow Periodical or Series.&lt;br /&gt;
--05Mar2013 Fixed Edition to follow Series or Volume.&lt;br /&gt;
--05Mar2013 Fixed class encyclopaedia to show article as quoted Chapter.&lt;br /&gt;
--05Mar2013 Fixed class encyclopaedia to show page as &amp;quot;pp.&amp;quot; or &amp;quot;p.&amp;quot;.&lt;br /&gt;
--07Mar2013 Changed class encyclopaedia to omit &amp;quot;( )&amp;quot; around publisher.&lt;br /&gt;
--07Mar2013 Fixed end double-dot by string.sub(idcommon,-1,-1) was &amp;quot;-1,1&amp;quot;.&lt;br /&gt;
--13Mar2013 Removed enddot &amp;quot;.&amp;quot; after &amp;quot;quote=&amp;quot; parameter.&lt;br /&gt;
--13Mar2013 Changed config.CitationClass &amp;quot;news&amp;quot; to use &amp;quot;p.&amp;quot; page format.&lt;br /&gt;
--13Mar2013 Fixed missing &amp;quot;location=&amp;quot; when &amp;quot;web&amp;quot; or &amp;quot;encyclopaedia&amp;quot;.&lt;br /&gt;
--14Mar2013 Fixed end double-dot after book/work title.&lt;br /&gt;
--14Mar2013 Fixed double-dot before &amp;quot;p.&amp;quot; or &amp;quot;pp.&amp;quot; page number.&lt;br /&gt;
--14Mar2013 Fixed config.CitationClass &amp;quot;book&amp;quot; to use p./pp. page.&lt;br /&gt;
--&lt;br /&gt;
--End&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Color_contrast/colors&amp;diff=36578</id>
		<title>Módulo:Color contrast/colors</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Color_contrast/colors&amp;diff=36578"/>
		<updated>2017-03-19T06:15:15Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return {&lt;br /&gt;
	aliceblue            = 0.92880068253475,&lt;br /&gt;
	antiquewhite         = 0.84646951707754,&lt;br /&gt;
	aqua                 = 0.7874,&lt;br /&gt;
	aquamarine           = 0.8078549208338,&lt;br /&gt;
	azure                = 0.97265264954166,&lt;br /&gt;
	beige                = 0.8988459998705,&lt;br /&gt;
	bisque               = 0.80732327372979,&lt;br /&gt;
	black                = 0,&lt;br /&gt;
	blanchedalmond       = 0.85084439608156,&lt;br /&gt;
	blue                 = 0.0722,&lt;br /&gt;
	blueviolet           = 0.12622014321946,&lt;br /&gt;
	brown                = 0.098224287876511,&lt;br /&gt;
	burlywood            = 0.51559844533893,&lt;br /&gt;
	cadetblue            = 0.29424681085422,&lt;br /&gt;
	chartreuse           = 0.76032025902623,&lt;br /&gt;
	chocolate            = 0.23898526114557,&lt;br /&gt;
	coral                = 0.37017930872924,&lt;br /&gt;
	cornflowerblue       = 0.30318641994179,&lt;br /&gt;
	cornsilk             = 0.93562110372965,&lt;br /&gt;
	crimson              = 0.16042199953026,&lt;br /&gt;
	cyan                 = 0.7874,&lt;br /&gt;
	darkblue             = 0.018640801980939,&lt;br /&gt;
	darkcyan             = 0.20329317839046,&lt;br /&gt;
	darkgoldenrod        = 0.27264703559993,&lt;br /&gt;
	darkgray             = 0.39675523072563,&lt;br /&gt;
	darkgreen            = 0.091143429047575,&lt;br /&gt;
	darkgrey             = 0.39675523072563,&lt;br /&gt;
	darkkhaki            = 0.45747326349994,&lt;br /&gt;
	darkmagenta          = 0.07353047651207,&lt;br /&gt;
	darkolivegreen       = 0.12651920884889,&lt;br /&gt;
	darkorange           = 0.40016167026524,&lt;br /&gt;
	darkorchid           = 0.13413142174857,&lt;br /&gt;
	darkred              = 0.054889674531132,&lt;br /&gt;
	darksalmon           = 0.40541471563381,&lt;br /&gt;
	darkseagreen         = 0.43789249325969,&lt;br /&gt;
	darkslateblue        = 0.065792846227988,&lt;br /&gt;
	darkslategray        = 0.067608151928044,&lt;br /&gt;
	darkslategrey        = 0.067608151928044,&lt;br /&gt;
	darkturquoise        = 0.4874606277449,&lt;br /&gt;
	darkviolet           = 0.10999048339343,&lt;br /&gt;
	deeppink             = 0.23866895828276,&lt;br /&gt;
	deepskyblue          = 0.44481603395575,&lt;br /&gt;
	dimgray              = 0.14126329114027,&lt;br /&gt;
	dimgrey              = 0.14126329114027,&lt;br /&gt;
	dodgerblue           = 0.27442536991456,&lt;br /&gt;
	firebrick            = 0.10724525535015,&lt;br /&gt;
	floralwhite          = 0.95922484825004,&lt;br /&gt;
	forestgreen          = 0.18920812076002,&lt;br /&gt;
	fuchsia              = 0.2848,&lt;br /&gt;
	gainsboro            = 0.71569350050648,&lt;br /&gt;
	ghostwhite           = 0.94311261886323,&lt;br /&gt;
	gold                 = 0.69860877428159,&lt;br /&gt;
	goldenrod            = 0.41919977809569,&lt;br /&gt;
	gray                 = 0.2158605001139,&lt;br /&gt;
	green                = 0.15438342968146,&lt;br /&gt;
	greenyellow          = 0.80609472611453,&lt;br /&gt;
	grey                 = 0.2158605001139,&lt;br /&gt;
	honeydew             = 0.96336535554782,&lt;br /&gt;
	hotpink              = 0.34658438169715,&lt;br /&gt;
	indianred            = 0.21406134963884,&lt;br /&gt;
	indigo               = 0.03107561486337,&lt;br /&gt;
	ivory                = 0.99071270600615,&lt;br /&gt;
	khaki                = 0.77012343394121,&lt;br /&gt;
	lavender             = 0.80318750514521,&lt;br /&gt;
	lavenderblush        = 0.90172748631046,&lt;br /&gt;
	lawngreen            = 0.73905893124963,&lt;br /&gt;
	lemonchiffon         = 0.94038992245622,&lt;br /&gt;
	lightblue            = 0.63709141280807,&lt;br /&gt;
	lightcoral           = 0.35522120733135,&lt;br /&gt;
	lightcyan            = 0.94587293494829,&lt;br /&gt;
	lightgoldenrodyellow = 0.93348351018297,&lt;br /&gt;
	lightgray            = 0.65140563741982,&lt;br /&gt;
	lightgreen           = 0.69091979956865,&lt;br /&gt;
	lightgrey            = 0.65140563741982,&lt;br /&gt;
	lightpink            = 0.58566152734898,&lt;br /&gt;
	lightsalmon          = 0.4780675225206,&lt;br /&gt;
	lightseagreen        = 0.35050145117042,&lt;br /&gt;
	lightskyblue         = 0.56195637618331,&lt;br /&gt;
	lightslategray       = 0.23830165007287,&lt;br /&gt;
	lightslategrey       = 0.23830165007287,&lt;br /&gt;
	lightsteelblue       = 0.53983888284666,&lt;br /&gt;
	lightyellow          = 0.98161818392882,&lt;br /&gt;
	lime                 = 0.7152,&lt;br /&gt;
	limegreen            = 0.44571042246098,&lt;br /&gt;
	linen                = 0.88357340984379,&lt;br /&gt;
	magenta              = 0.2848,&lt;br /&gt;
	maroon               = 0.045891942324215,&lt;br /&gt;
	mediumaquamarine     = 0.49389703310801,&lt;br /&gt;
	mediumblue           = 0.044077780212328,&lt;br /&gt;
	mediumorchid         = 0.21639251153773,&lt;br /&gt;
	mediumpurple         = 0.22905858091648,&lt;br /&gt;
	mediumseagreen       = 0.34393112338131,&lt;br /&gt;
	mediumslateblue      = 0.20284629471622,&lt;br /&gt;
	mediumspringgreen    = 0.70704308194184,&lt;br /&gt;
	mediumturquoise      = 0.5133827926448,&lt;br /&gt;
	mediumvioletred      = 0.14371899849357,&lt;br /&gt;
	midnightblue         = 0.02071786635086,&lt;br /&gt;
	mintcream            = 0.97834604947588,&lt;br /&gt;
	mistyrose            = 0.82183047859185,&lt;br /&gt;
	moccasin             = 0.80083000991567,&lt;br /&gt;
	navajowhite          = 0.76519682342785,&lt;br /&gt;
	navy                 = 0.015585128108224,&lt;br /&gt;
	oldlace              = 0.91900633405549,&lt;br /&gt;
	olive                = 0.20027537200568,&lt;br /&gt;
	olivedrab            = 0.22593150951929,&lt;br /&gt;
	orange               = 0.4817026703631,&lt;br /&gt;
	orangered            = 0.25516243753416,&lt;br /&gt;
	orchid               = 0.31348806761439,&lt;br /&gt;
	palegoldenrod        = 0.78792647887614,&lt;br /&gt;
	palegreen            = 0.77936759006353,&lt;br /&gt;
	paleturquoise        = 0.76436077921714,&lt;br /&gt;
	palevioletred        = 0.28754994117889,&lt;br /&gt;
	papayawhip           = 0.87797100199835,&lt;br /&gt;
	peachpuff            = 0.74905589878251,&lt;br /&gt;
	peru                 = 0.30113074877936,&lt;br /&gt;
	pink                 = 0.63271070702466,&lt;br /&gt;
	plum                 = 0.45734221587969,&lt;br /&gt;
	powderblue           = 0.68254586500605,&lt;br /&gt;
	purple               = 0.061477070432439,&lt;br /&gt;
	rebeccapurple        = 0.07492341159447,&lt;br /&gt;
	red                  = 0.2126,&lt;br /&gt;
	rosybrown            = 0.32319457649407,&lt;br /&gt;
	royalblue            = 0.16663210743188,&lt;br /&gt;
	saddlebrown          = 0.097922285020521,&lt;br /&gt;
	salmon               = 0.36977241527596,&lt;br /&gt;
	sandybrown           = 0.46628543696283,&lt;br /&gt;
	seagreen             = 0.19734199706275,&lt;br /&gt;
	seashell             = 0.92737862206922,&lt;br /&gt;
	sienna               = 0.13697631337098,&lt;br /&gt;
	silver               = 0.52711512570581,&lt;br /&gt;
	skyblue              = 0.55291668518184,&lt;br /&gt;
	slateblue            = 0.14784278062136,&lt;br /&gt;
	slategray            = 0.20896704076536,&lt;br /&gt;
	slategrey            = 0.20896704076536,&lt;br /&gt;
	snow                 = 0.96533341834849,&lt;br /&gt;
	springgreen          = 0.73052306068529,&lt;br /&gt;
	steelblue            = 0.20562642207625,&lt;br /&gt;
	tan                  = 0.48237604163921,&lt;br /&gt;
	teal                 = 0.16996855778968,&lt;br /&gt;
	thistle              = 0.56818401093733,&lt;br /&gt;
	tomato               = 0.30638612719415,&lt;br /&gt;
	turquoise            = 0.5895536427578,&lt;br /&gt;
	violet               = 0.40315452986676,&lt;br /&gt;
	wheat                = 0.74909702820482,&lt;br /&gt;
	white                = 1,&lt;br /&gt;
	whitesmoke           = 0.91309865179342,&lt;br /&gt;
	yellow               = 0.9278,&lt;br /&gt;
	yellowgreen          = 0.50762957208707,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Color_contrast&amp;diff=36576</id>
		<title>Módulo:Color contrast</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Color_contrast&amp;diff=36576"/>
		<updated>2017-03-19T06:15:15Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements &lt;br /&gt;
--  {{Color contrast ratio}}&lt;br /&gt;
--  {{Greater color contrast ratio}}&lt;br /&gt;
--  {{ColorToLum}}&lt;br /&gt;
--  {{RGBColorToLum}}&lt;br /&gt;
--&lt;br /&gt;
local p = {}&lt;br /&gt;
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )&lt;br /&gt;
&lt;br /&gt;
local function sRGB ( v ) &lt;br /&gt;
	if (v &amp;lt;= 0.03928) then &lt;br /&gt;
		v = v / 12.92&lt;br /&gt;
	else&lt;br /&gt;
		v = math.pow((v+0.055)/1.055, 2.4)&lt;br /&gt;
	end&lt;br /&gt;
	return v&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function rgbdec2lum( R, G, B )&lt;br /&gt;
	if ( 0 &amp;lt;= R and R &amp;lt; 256 and 0 &amp;lt;= G and G &amp;lt; 256 and 0 &amp;lt;= B and B &amp;lt; 256 ) then&lt;br /&gt;
		return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hsl2lum( h, s, l )&lt;br /&gt;
	if ( 0 &amp;lt;= h and h &amp;lt; 360 and 0 &amp;lt;= s and s &amp;lt;= 1 and 0 &amp;lt;= l and l &amp;lt;= 1 ) then&lt;br /&gt;
		local c = (1 - math.abs(2*l - 1))*s&lt;br /&gt;
		local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )&lt;br /&gt;
		local m = l - c/2&lt;br /&gt;
&lt;br /&gt;
		local r, g, b = m, m, m&lt;br /&gt;
		if( 0 &amp;lt;= h and h &amp;lt; 60 ) then&lt;br /&gt;
			r = r + c&lt;br /&gt;
			g = g + x&lt;br /&gt;
		elseif( 60 &amp;lt;= h and h &amp;lt; 120 ) then&lt;br /&gt;
			r = r + x&lt;br /&gt;
			g = g + c&lt;br /&gt;
		elseif( 120 &amp;lt;= h and h &amp;lt; 180 ) then&lt;br /&gt;
			g = g + c&lt;br /&gt;
			b = b + x&lt;br /&gt;
		elseif( 180 &amp;lt;= h and h &amp;lt; 240 ) then&lt;br /&gt;
			g = g + x&lt;br /&gt;
			b = b + c&lt;br /&gt;
		elseif( 240 &amp;lt;= h and h &amp;lt; 300 ) then&lt;br /&gt;
			r = r + x&lt;br /&gt;
			b = b + c&lt;br /&gt;
		elseif( 300 &amp;lt;= h and h &amp;lt; 360 ) then&lt;br /&gt;
			r = r + c&lt;br /&gt;
			b = b + x&lt;br /&gt;
		end&lt;br /&gt;
		return rgbdec2lum(255*r, 255*g, 255*b)&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function color2lum( c )&lt;br /&gt;
&lt;br /&gt;
	if (c == nil) then&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
	-- whitespace&lt;br /&gt;
	c = c:match( '^%s*(.-)[%s;]*$' )&lt;br /&gt;
&lt;br /&gt;
	-- unstrip nowiki strip markers&lt;br /&gt;
	c = mw.text.unstripNoWiki(c)&lt;br /&gt;
&lt;br /&gt;
	-- lowercase&lt;br /&gt;
	c = c:lower()&lt;br /&gt;
&lt;br /&gt;
	-- first try to look it up&lt;br /&gt;
	local L = HTMLcolor[c]&lt;br /&gt;
	if (L ~= nil) then&lt;br /&gt;
		return L&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
   	-- convert from hsl&lt;br /&gt;
   	if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then&lt;br /&gt;
		local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')&lt;br /&gt;
		return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)&lt;br /&gt;
   	end&lt;br /&gt;
&lt;br /&gt;
   	-- convert from rgb&lt;br /&gt;
   	if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then&lt;br /&gt;
		local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')&lt;br /&gt;
		return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))&lt;br /&gt;
   	end&lt;br /&gt;
&lt;br /&gt;
   	-- convert from rgb percent&lt;br /&gt;
   	if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then&lt;br /&gt;
		local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')&lt;br /&gt;
		return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)&lt;br /&gt;
   	end&lt;br /&gt;
&lt;br /&gt;
	-- remove leading # (if there is one) and whitespace&lt;br /&gt;
	c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')&lt;br /&gt;
&lt;br /&gt;
	-- split into rgb&lt;br /&gt;
	local cs = mw.text.split(c or '', '')&lt;br /&gt;
	if( #cs == 6 ) then&lt;br /&gt;
		local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])&lt;br /&gt;
		local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])&lt;br /&gt;
		local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])&lt;br /&gt;
&lt;br /&gt;
		return rgbdec2lum(R, G, B)&lt;br /&gt;
	elseif ( #cs == 3 ) then&lt;br /&gt;
		local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])&lt;br /&gt;
		local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])&lt;br /&gt;
		local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])&lt;br /&gt;
&lt;br /&gt;
		return rgbdec2lum(R, G, B)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- failure, return blank&lt;br /&gt;
	return ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._greatercontrast(args)&lt;br /&gt;
	local bias = tonumber(args['bias'] or '0') or 0&lt;br /&gt;
	local v1 = color2lum(args[1] or '')&lt;br /&gt;
	local c2 = args[2] or '#FFFFFF'&lt;br /&gt;
	local v2 = color2lum(c2)&lt;br /&gt;
	local c3 = args[3] or '#000000'&lt;br /&gt;
	local v3 = color2lum(c3)&lt;br /&gt;
	local ratio1 = 0;&lt;br /&gt;
	local ratio2 = 0;&lt;br /&gt;
	if (type(v1) == 'number' and type(v2) == 'number') then&lt;br /&gt;
		ratio1 = (v2 + 0.05)/(v1 + 0.05)&lt;br /&gt;
		ratio1 = (ratio1 &amp;lt; 1) and 1/ratio1 or ratio1&lt;br /&gt;
	end&lt;br /&gt;
	if (type(v1) == 'number' and type(v3) == 'number') then&lt;br /&gt;
		ratio2 = (v3 + 0.05)/(v1 + 0.05)&lt;br /&gt;
		ratio2 = (ratio2 &amp;lt; 1) and 1/ratio2 or ratio2&lt;br /&gt;
	end&lt;br /&gt;
	return (ratio1 + bias &amp;gt; ratio2) and c2 or c3&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._ratio(args)&lt;br /&gt;
	local v1 = color2lum(args[1])&lt;br /&gt;
	local v2 = color2lum(args[2])&lt;br /&gt;
	if (type(v1) == 'number' and type(v2) == 'number') then&lt;br /&gt;
		-- v1 should be the brighter of the two.&lt;br /&gt;
		if v2 &amp;gt; v1 then&lt;br /&gt;
			v1, v2 = v2, v1&lt;br /&gt;
		end&lt;br /&gt;
		return (v1 + 0.05)/(v2 + 0.05)&lt;br /&gt;
	else&lt;br /&gt;
		return args['error'] or '?'&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._styleratio(args)&lt;br /&gt;
	local style = (args[1] or ''):lower()&lt;br /&gt;
	local bg, fg = 'white', 'black'&lt;br /&gt;
	local lum_bg, lum_fg = 1, 0&lt;br /&gt;
&lt;br /&gt;
	if args[2] then&lt;br /&gt;
		local lum = color2lum(args[2])&lt;br /&gt;
		if lum ~= '' then bg, lum_bg = args[2], lum end&lt;br /&gt;
	end&lt;br /&gt;
	if args[3] then&lt;br /&gt;
		local lum = color2lum(args[3])&lt;br /&gt;
		if lum ~= '' then fg, lum_fg = args[3], lum end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local slist = mw.text.split(style or '', ';')&lt;br /&gt;
	for k = 1,#slist do&lt;br /&gt;
		s = slist[k]&lt;br /&gt;
		local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )&lt;br /&gt;
		k = k or ''&lt;br /&gt;
		v = v or ''&lt;br /&gt;
		if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then&lt;br /&gt;
			local lum = color2lum(v)&lt;br /&gt;
			if( lum ~= '' ) then bg, lum_bg = v, lum end&lt;br /&gt;
		elseif (k:match('^[%s]*(color)[%s]*$')) then&lt;br /&gt;
			local lum = color2lum(v)&lt;br /&gt;
			if( lum ~= '' ) then bg, lum_fg = v, lum end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if lum_bg &amp;gt; lum_fg then&lt;br /&gt;
		return (lum_bg + 0.05)/(lum_fg + 0.05)&lt;br /&gt;
	else&lt;br /&gt;
		return (lum_fg + 0.05)/(lum_bg + 0.05)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.lum(frame)&lt;br /&gt;
	return color2lum(frame.args[1] or frame:getParent().args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ratio(frame)&lt;br /&gt;
	local args = frame.args[1] and frame.args or frame:getParent().args&lt;br /&gt;
	return p._ratio(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.styleratio(frame)&lt;br /&gt;
	local args = frame.args[1] and frame.args or frame:getParent().args&lt;br /&gt;
	return p._styleratio(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.greatercontrast(frame)&lt;br /&gt;
	local args = frame.args[1] and frame.args or frame:getParent().args&lt;br /&gt;
	return p._greatercontrast(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Check_for_unknown_parameters&amp;diff=36574</id>
		<title>Módulo:Check for unknown parameters</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=M%C3%B3dulo:Check_for_unknown_parameters&amp;diff=36574"/>
		<updated>2017-03-19T06:15:15Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module may be used to compare the arguments passed to the parent&lt;br /&gt;
-- with a list of arguments, returning a specified result if an argument is&lt;br /&gt;
-- not on the list&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match('^%s*(.-)%s*$')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and trim(s) ~= ''&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check (frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	local ignoreblank = isnotempty(frame.args['ignoreblank'])&lt;br /&gt;
	local showblankpos = isnotempty(frame.args['showblankpositional'])&lt;br /&gt;
	local knownargs = {}&lt;br /&gt;
	local unknown = frame.args['unknown'] or 'Found _VALUE_, '&lt;br /&gt;
	local preview = frame.args['preview']&lt;br /&gt;
&lt;br /&gt;
	local values = {}&lt;br /&gt;
	local res = {}&lt;br /&gt;
	local regexps = {}&lt;br /&gt;
&lt;br /&gt;
	-- create the list of known args, regular expressions, and the return string&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == 'number' then&lt;br /&gt;
			v = trim(v)&lt;br /&gt;
			knownargs[v] = 1&lt;br /&gt;
		elseif k:find('^regexp[1-9][0-9]*$') then&lt;br /&gt;
			table.insert(regexps, '^' .. v .. '$')&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if isnotempty(preview) then &lt;br /&gt;
		preview = '&amp;lt;div class=&amp;quot;hatnote&amp;quot; style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; ' .. preview .. ' (this message is shown only in preview).&amp;lt;/div&amp;gt;'&lt;br /&gt;
	elseif preview == nil then&lt;br /&gt;
		preview = unknown&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- loop over the parent args, and make sure they are on the list&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		if type(k) == 'string' and knownargs[k] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for i, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(k, regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then&lt;br /&gt;
				k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')&lt;br /&gt;
				table.insert(values, k)&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(k) == 'number' and &lt;br /&gt;
			knownargs[tostring(k)] == nil and&lt;br /&gt;
			( showblankpos or isnotempty(v) )&lt;br /&gt;
		then&lt;br /&gt;
			local vlen = mw.ustring.len(v)&lt;br /&gt;
			v = mw.ustring.sub(v, 1, (vlen &amp;lt; 25) and vlen or 25) &lt;br /&gt;
			v = mw.ustring.gsub(v, '[^%w\-_ ]', '?')&lt;br /&gt;
			table.insert(values, k .. ' = ' .. v .. ((vlen &amp;gt;= 25) and ' ...' or ''))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add resuls to the output tables&lt;br /&gt;
	if #values &amp;gt; 0 then&lt;br /&gt;
		if frame:preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
			unknown = preview&lt;br /&gt;
		end&lt;br /&gt;
		for k, v in pairs(values) do&lt;br /&gt;
			if v == '' then&lt;br /&gt;
			-- Fix odd bug for | = which gets stripped to the empty string and&lt;br /&gt;
			-- breaks category links&lt;br /&gt;
			v = ' '&lt;br /&gt;
			end&lt;br /&gt;
			local r =  unknown:gsub('_VALUE_', v)&lt;br /&gt;
			table.insert(res, r)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
	<entry>
		<id>https://historia.iafcj.org/index.php?title=Plantilla:TL&amp;diff=36572</id>
		<title>Plantilla:TL</title>
		<link rel="alternate" type="text/html" href="https://historia.iafcj.org/index.php?title=Plantilla:TL&amp;diff=36572"/>
		<updated>2017-03-19T06:15:15Z</updated>

		<summary type="html">&lt;p&gt;Lucianinski: 1 revisión importada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Tl]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|{{R from modification}}{{R from template shortcut}}}}&lt;/div&gt;</summary>
		<author><name>Lucianinski</name></author>
	</entry>
</feed>