<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://lore.tehnoruum.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sulejman</id>
	<title>Sułtan_Orłowca_wiki - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="https://lore.tehnoruum.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sulejman"/>
	<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php/Specjalna:Wk%C5%82ad/Sulejman"/>
	<updated>2026-09-01T20:51:15Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Strona_g%C5%82%C3%B3wna&amp;diff=672</id>
		<title>Strona główna</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Strona_g%C5%82%C3%B3wna&amp;diff=672"/>
		<updated>2025-02-02T00:17:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color: red; font-size: 24pt;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Wiki uniwersum Sułtana Orłowca to portal satyryczny, wszystkie artykuły to żart&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Witaj na wiki uniwersum &#039;&#039;&#039;[[Sułtan Orłowca|Sułtana Orłowca]]&#039;&#039;&#039; ==&lt;br /&gt;
{{Blockquote|text=Abrakawypierdalaj|author=Haradyn Osmani w czasie legendarnej Obrony Manhattanu}}&lt;br /&gt;
Co ty tutaj wogle robisz? Nieważne, nie interesuje mnie kim jesteś, jesteś tu nowy a do mnie należy dbanie o nowych.&lt;br /&gt;
&lt;br /&gt;
Jeżeli nie wiesz co to jest &#039;&#039;&#039;Anaberg&#039;&#039;&#039;, nawet się tutaj nie pakuj.&lt;br /&gt;
&lt;br /&gt;
Lista artykułów:&lt;br /&gt;
{{Specjalna:AllPages}}&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=O%C5%9B_wydarze%C5%84&amp;diff=671</id>
		<title>Oś wydarzeń</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=O%C5%9B_wydarze%C5%84&amp;diff=671"/>
		<updated>2025-02-02T00:12:12Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Oś wydarzeń w uniwersum Sułtana Orłowca&#039;&#039;&#039; – tutaj przedstawiony jest uporządkowany w czasie zarys wydarzeń skoncentrowanych wokół [[Sułtan Orłowca|Sułtana Orłowca]] oraz całości Wojny o [[Tron Kolejarzy|Tron Kolejorzy]].&lt;br /&gt;
&lt;br /&gt;
W ramach uniwersum wykorzystywany jest czas &#039;&#039;anno throni&#039;&#039; tłumaczone jako rok tronu. Do wyznaczania dat wykorzystywany jest astronomiczny system datowania, bo linia czasu bez roku zero jest dla ćwierćinteligentów i pederastów.&lt;br /&gt;
&lt;br /&gt;
== Zarys wydarzeń ==&lt;br /&gt;
&lt;br /&gt;
* -7 a.t. – ustanowienie &#039;&#039;Komitetu Założycielskiego Kolei Górnośląskich&#039;&#039;&#039;,&#039;&#039;&#039;&#039;&#039; rozpoczęcie budowy linii kolejowej z Opola do Raciborza,&lt;br /&gt;
* 0 a.t. – naukowcy KZKG natrafiają na niezaobserwowaną wcześniej [[Hołda za Annabergiem|Hołde za Anabergiem]], gdzie odkryty zostaje [[Tron Kolejarzy|Tron Kolejorzy]], na którym zasiada Richard Kotlok zwany później Gilgameszem, tym samym stając się mądrym i sprawiedliwym królem Górnego Śląska,&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Antoni_z_Ta%C5%82ej&amp;diff=670</id>
		<title>Antoni z Tałej</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Antoni_z_Ta%C5%82ej&amp;diff=670"/>
		<updated>2025-01-31T17:59:20Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Antoni z Tałej&#039;&#039;&#039; - późnoantyczny teolog pochodzący z miejscowości Tałej (gr. Θαλέια Thaleia, [[Dialekt orłowiecki języka arabskiego|arab. orł.]] التوية Al-Tawiyyah)&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Dialekt_or%C5%82owiecki_j%C4%99zyka_arabskiego&amp;diff=669</id>
		<title>Dialekt orłowiecki języka arabskiego</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Dialekt_or%C5%82owiecki_j%C4%99zyka_arabskiego&amp;diff=669"/>
		<updated>2025-01-31T17:57:49Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Dialekt orłowiecki języka arabskiego, arabski orłowiecki&amp;#039;&amp;#039;&amp;#039; -&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Dialekt orłowiecki języka arabskiego, arabski orłowiecki&#039;&#039;&#039; -&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Antoni_z_Ta%C5%82ej&amp;diff=668</id>
		<title>Antoni z Tałej</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Antoni_z_Ta%C5%82ej&amp;diff=668"/>
		<updated>2025-01-31T11:13:53Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Antoni z Tałej&amp;#039;&amp;#039;&amp;#039; - późnoantyczny teolog pochodzący z miejscowości Tałej (gr. Θαλέια Thaleia, arab. orł. التوية Al-Tawiyyah)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Antoni z Tałej&#039;&#039;&#039; - późnoantyczny teolog pochodzący z miejscowości Tałej (gr. Θαλέια Thaleia, arab. orł. التوية Al-Tawiyyah)&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=667</id>
		<title>Profesor tadżykistanu</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=667"/>
		<updated>2024-05-29T22:15:17Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:Profesor tadzykistanu.png|mały|Zdjęcie profesora tadżykistanu które wypłynęło do internetu w maju 2024.]]&lt;br /&gt;
&#039;&#039;&#039;Profesor tadżykistanu&#039;&#039;&#039; – (właść. Kapela Abdulayev Pilaka) jedyny w [https://pl.wikipedia.org/wiki/Tad%C5%BCykistan tadżykistanie] profesor ze specjalizacją w profesurze. Bardzo światły człowiek, pierwszy profesor na świecie u którego nauki pobierają wszyscy świeży profesorzy.&lt;br /&gt;
[[Plik:Tadżykistan.jpg|mały|Tadżykistan, stąd pochodzi Profesor tadżykistanu.]]&lt;br /&gt;
Jego istnienie zostało podane do świadomości publicznej w maju 2024 A.D., lecz został błędnie okrzyknięty turkmenistańczykiem (он не из туркменистана).&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=666</id>
		<title>Profesor tadżykistanu</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=666"/>
		<updated>2024-05-29T22:14:37Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:Profesor tadzykistanu.png|mały|Zdjęcie profesora tadżykistanu które wypłynęło do internetu w maju 2024.]]&lt;br /&gt;
&#039;&#039;&#039;Profesor tadżykistanu&#039;&#039;&#039; – (właść. Kapela Abdulayev Pilaka) jedyny w [https://pl.wikipedia.org/wiki/Tad%C5%BCykistan tadżykistanie] profesor ze specjalizacją w profesurze. Bardzo światły człowiek, pierwszy profesor na świecie u którego nauki pobierają wszyscy świeży profesorzy.&lt;br /&gt;
[[Plik:Tadżykistan.jpg|mały|Tadżykistan, stąd pochodzi Profesor tadżykistanu.]]&lt;br /&gt;
Jego istnienie zostało podane do świadomości publicznej w maju 2024 A.D., lecz został błędnie okrzyknięty turkmenistańczykiem.&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Plik:Profesor_tadzykistanu.png&amp;diff=665</id>
		<title>Plik:Profesor tadzykistanu.png</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Plik:Profesor_tadzykistanu.png&amp;diff=665"/>
		<updated>2024-05-29T22:13:36Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zdjęcie profesora tadżykistanu które wypłynęło do internetu w maju 2024&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=664</id>
		<title>Profesor tadżykistanu</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Profesor_tad%C5%BCykistanu&amp;diff=664"/>
		<updated>2024-03-03T23:41:28Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;Tadżykistan, stąd pochodzi Profesor tadżykistanu. &amp;#039;&amp;#039;&amp;#039;Profesor tadżykistanu&amp;#039;&amp;#039;&amp;#039; – jedyny w [https://pl.wikipedia.org/wiki/Tad%C5%BCykistan tadżykistanie] profesor ze specjalizacją w profesurze. Bardzo światły człowiek, pierwszy profesor na świecie u którego nauki pobierają wszyscy świeży profesorzy.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:Tadżykistan.jpg|mały|Tadżykistan, stąd pochodzi Profesor tadżykistanu.]]&lt;br /&gt;
&#039;&#039;&#039;Profesor tadżykistanu&#039;&#039;&#039; – jedyny w [https://pl.wikipedia.org/wiki/Tad%C5%BCykistan tadżykistanie] profesor ze specjalizacją w profesurze. Bardzo światły człowiek, pierwszy profesor na świecie u którego nauki pobierają wszyscy świeży profesorzy.&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Plik:Tad%C5%BCykistan.jpg&amp;diff=663</id>
		<title>Plik:Tadżykistan.jpg</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Plik:Tad%C5%BCykistan.jpg&amp;diff=663"/>
		<updated>2024-03-03T23:41:03Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tadżykistan&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=662</id>
		<title>Syndykat Badawczy &quot;Łukasiewicz-Mostostal&quot;</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=662"/>
		<updated>2023-10-24T13:21:48Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot;&#039;&#039;&#039; – Korporacja powstała w wyniku zawarcia umów pomiędzy [[Sieć badawcza &amp;quot;Łukasiewicz&amp;quot;|Siecią badawczą &amp;quot;Łukasiewicz&amp;quot;]] a [[Mostostal Zabrze|Mostostalem Zabrze]], pod zarządem powierniczym [[Motorola|Motoroli]]. Największym projektem Syndykatu jest [[Turboenkabulator]].&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=661</id>
		<title>Turboenkabulator</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=661"/>
		<updated>2023-10-24T12:08:47Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Turboenkabulator, &amp;quot;Turboencabulator mk. 2&amp;quot;, High-Performance Turboncabulating and Encapsulating Device mk. 2 (HPTED2)&#039;&#039;&#039; – Urządzenie turboenkabulujące o niejasnej aczkolwiek kluczowej roli w wojnie o [[Tron Kolejarzy]].&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
&lt;br /&gt;
=== General Electric ===&lt;br /&gt;
[[Plik:0001.jpg|mały|Nota katalogowa turboenkabulatora GE s. 1]]&lt;br /&gt;
[[Plik:0002.jpg|mały|Nota katalogowa turboenkabulatora GE s. 2]]&lt;br /&gt;
Pierwsza znana wersja urządzenia HPTED wyprodukowana została w roku 1962, i jak do tej pory jest to jedyna wersja urządzenia której parametry zostały udokumentowane. &lt;br /&gt;
&lt;br /&gt;
=== Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot; ===&lt;br /&gt;
Po wypłynięciu not katalogowych i schematów, włodarze [[Motorola|Motoroli]] zaprzęgli żydowską maszynę biurokracyjną zawiązując [[Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot;]] którego zadaniem było opracowanie drugiej, ulepszonej wersji urządzenia, którego własności do tej pory owiane są tajemnicą.&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=660</id>
		<title>Turboenkabulator</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=660"/>
		<updated>2023-10-24T12:04:13Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Turboenkabulator, &amp;quot;Turboencabulator mk. 2&amp;quot;, High-Performance Turboncabulating and Encapsulating Device mk. 2 (HPTED2)&#039;&#039;&#039; – Urządzenie turboenkabulujące o niejasnej aczkolwiek kluczowej roli w wojnie o [[Tron Kolejarzy]].&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
&lt;br /&gt;
=== General Electric ===&lt;br /&gt;
Pierwsza znana wersja urządzenia HPTED wyprodukowana została w roku 1962, i jak do tej pory jest to jedyna wersja urządzenia której parametry zostały udokumentowane. &lt;br /&gt;
&lt;br /&gt;
=== Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot; ===&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Plik:0002.jpg&amp;diff=659</id>
		<title>Plik:0002.jpg</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Plik:0002.jpg&amp;diff=659"/>
		<updated>2023-10-24T12:03:42Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Turboencabulator technical note p. 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Opis ==&lt;br /&gt;
Turboencabulator technical note p. 2&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Plik:0001.jpg&amp;diff=658</id>
		<title>Plik:0001.jpg</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Plik:0001.jpg&amp;diff=658"/>
		<updated>2023-10-24T12:03:01Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Turboencabulator technical note p. 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Opis ==&lt;br /&gt;
Turboencabulator technical note p. 1&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=657</id>
		<title>Turboenkabulator</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Turboenkabulator&amp;diff=657"/>
		<updated>2023-10-24T11:51:23Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Turboenkabulator, &amp;quot;Turboencabulator mk. 2&amp;quot;, High-Performance Turboncabulating and Encapsulating Device mk. 2 (HPTED2)&amp;#039;&amp;#039;&amp;#039; – Urządzenie turboenkabulujące o niejasnej aczkolwiek kluczowej roli w wojnie o Tron Kolejarzy.  == Historia ==  === General Electric === Pierwsza znana wersja urządzenia HPTED wyprodukowana została w roku   === Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot; ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Turboenkabulator, &amp;quot;Turboencabulator mk. 2&amp;quot;, High-Performance Turboncabulating and Encapsulating Device mk. 2 (HPTED2)&#039;&#039;&#039; – Urządzenie turboenkabulujące o niejasnej aczkolwiek kluczowej roli w wojnie o [[Tron Kolejarzy]].&lt;br /&gt;
&lt;br /&gt;
== Historia ==&lt;br /&gt;
&lt;br /&gt;
=== General Electric ===&lt;br /&gt;
Pierwsza znana wersja urządzenia HPTED wyprodukowana została w roku &lt;br /&gt;
&lt;br /&gt;
=== Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot; ===&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=656</id>
		<title>Syndykat Badawczy &quot;Łukasiewicz-Mostostal&quot;</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=656"/>
		<updated>2023-10-24T11:42:25Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot;&#039;&#039;&#039; – Korporacja powstała w wyniku zawarcia umów pomiędzy [[Sieć badawcza &amp;quot;Łukasiewicz&amp;quot;|Siecią badawczą &amp;quot;Łukasiewicz&amp;quot;]] a [[Mostostal Zabrze|Mostostalem Zabrze]], pod zarządem powierniczym [[Motorola|Motoroli]]. Największym projektem Syndykatu jest &amp;quot;Turboencabulator mk. 2&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=655</id>
		<title>Syndykat Badawczy &quot;Łukasiewicz-Mostostal&quot;</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Syndykat_Badawczy_%22%C5%81ukasiewicz-Mostostal%22&amp;diff=655"/>
		<updated>2023-10-24T11:39:43Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot;&amp;#039;&amp;#039;&amp;#039; – Korporacja powstała w wyniku zawarcia umów pomiędzy Siecią badawczą &amp;quot;Łukasiewicz&amp;quot; a Mostostalem Zabrze, pod zarządem powierniczym Motoroli. Największym projektem Syndykatu jest Turboenkabulator.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Syndykat Badawczy &amp;quot;Łukasiewicz-Mostostal&amp;quot;&#039;&#039;&#039; – Korporacja powstała w wyniku zawarcia umów pomiędzy [[Sieć badawcza &amp;quot;Łukasiewicz&amp;quot;|Siecią badawczą &amp;quot;Łukasiewicz&amp;quot;]] a [[Mostostal Zabrze|Mostostalem Zabrze]], pod zarządem powierniczym [[Motorola|Motoroli]]. Największym projektem Syndykatu jest Turboenkabulator.&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Sie%C4%87_badawcza_%22%C5%81ukasiewicz%22&amp;diff=654</id>
		<title>Sieć badawcza &quot;Łukasiewicz&quot;</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Sie%C4%87_badawcza_%22%C5%81ukasiewicz%22&amp;diff=654"/>
		<updated>2023-10-19T13:24:24Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: Utworzono nową stronę &amp;quot;&amp;#039;&amp;#039;&amp;#039;Sieć badawcza &amp;quot;Łukasiewicz&amp;quot;&amp;#039;&amp;#039;&amp;#039; – założona przez Ignacego Łukasiewicza sieć badawcza zajmuje się badaniami naukowymi w zakresie technologii pozwalającej w bezbożny sposób ujarzmić moc Tronu Kolejarzy.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Sieć badawcza &amp;quot;Łukasiewicz&amp;quot;&#039;&#039;&#039; – założona przez Ignacego Łukasiewicza sieć badawcza zajmuje się badaniami naukowymi w zakresie technologii pozwalającej w bezbożny sposób ujarzmić moc [[Tron Kolejarzy|Tronu Kolejarzy]].&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Text&amp;diff=653</id>
		<title>Moduł:Text</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Text&amp;diff=653"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local yesNo = require(&amp;quot;Module:Yesno&amp;quot;)&lt;br /&gt;
local Text = { serial = &amp;quot;2022-07-21&amp;quot;,&lt;br /&gt;
               suite  = &amp;quot;Text&amp;quot; }&lt;br /&gt;
--[=[&lt;br /&gt;
Text utilities&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- local globals&lt;br /&gt;
local PatternCJK        = false&lt;br /&gt;
local PatternCombined   = false&lt;br /&gt;
local PatternLatin      = false&lt;br /&gt;
local PatternTerminated = false&lt;br /&gt;
local QuoteLang         = false&lt;br /&gt;
local QuoteType         = false&lt;br /&gt;
local RangesLatin       = false&lt;br /&gt;
local SeekQuote         = false&lt;br /&gt;
&lt;br /&gt;
local function initLatinData()&lt;br /&gt;
    if not RangesLatin then&lt;br /&gt;
        RangesLatin = { {    7,  687 },&lt;br /&gt;
                        { 7531, 7578 },&lt;br /&gt;
                        { 7680, 7935 },&lt;br /&gt;
                        { 8194, 8250 } }&lt;br /&gt;
    end&lt;br /&gt;
    if not PatternLatin then&lt;br /&gt;
        local range&lt;br /&gt;
        PatternLatin = &amp;quot;^[&amp;quot;&lt;br /&gt;
        for i = 1, #RangesLatin do&lt;br /&gt;
            range = RangesLatin[ i ]&lt;br /&gt;
            PatternLatin = PatternLatin ..&lt;br /&gt;
                           mw.ustring.char( range[ 1 ], 45, range[ 2 ] )&lt;br /&gt;
        end    -- for i&lt;br /&gt;
        PatternLatin = PatternLatin .. &amp;quot;]*$&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function initQuoteData()&lt;br /&gt;
    -- Create quote definitions&lt;br /&gt;
    if not QuoteLang then&lt;br /&gt;
    	QuoteLang = &lt;br /&gt;
    	        { af        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  ar        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  be        = &amp;quot;labd&amp;quot;,&lt;br /&gt;
                  bg        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  ca        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  cs        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  da        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  de        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  dsb       = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  et        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  el        = &amp;quot;lald&amp;quot;,&lt;br /&gt;
                  en        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  es        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  eu        = &amp;quot;la&amp;quot;,&lt;br /&gt;
            --    fa        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  fi        = &amp;quot;rd&amp;quot;,&lt;br /&gt;
                  fr        = &amp;quot;laSPC&amp;quot;,&lt;br /&gt;
                  ga        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  he        = &amp;quot;ldla&amp;quot;,&lt;br /&gt;
                  hr        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  hsb       = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  hu        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  hy        = &amp;quot;labd&amp;quot;,&lt;br /&gt;
                  id        = &amp;quot;rd&amp;quot;,&lt;br /&gt;
                  is        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  it        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  ja        = &amp;quot;x300C&amp;quot;,&lt;br /&gt;
                  ka        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  ko        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  lt        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  lv        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  nl        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  nn        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  no        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  pl        = &amp;quot;bdla&amp;quot;,&lt;br /&gt;
                  pt        = &amp;quot;lald&amp;quot;,&lt;br /&gt;
                  ro        = &amp;quot;bdla&amp;quot;,&lt;br /&gt;
                  ru        = &amp;quot;labd&amp;quot;,&lt;br /&gt;
                  sk        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  sl        = &amp;quot;bd&amp;quot;,&lt;br /&gt;
                  sq        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  sr        = &amp;quot;bx&amp;quot;,&lt;br /&gt;
                  sv        = &amp;quot;rd&amp;quot;,&lt;br /&gt;
                  th        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  tr        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  uk        = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  zh        = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  [&amp;quot;de-ch&amp;quot;] = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  [&amp;quot;en-gb&amp;quot;] = &amp;quot;lsld&amp;quot;,&lt;br /&gt;
                  [&amp;quot;en-us&amp;quot;] = &amp;quot;ld&amp;quot;,&lt;br /&gt;
                  [&amp;quot;fr-ch&amp;quot;] = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  [&amp;quot;it-ch&amp;quot;] = &amp;quot;la&amp;quot;,&lt;br /&gt;
                  [&amp;quot;pt-br&amp;quot;] = &amp;quot;ldla&amp;quot;,&lt;br /&gt;
                  [&amp;quot;zh-tw&amp;quot;] = &amp;quot;x300C&amp;quot;,&lt;br /&gt;
                  [&amp;quot;zh-cn&amp;quot;] = &amp;quot;ld&amp;quot; }&lt;br /&gt;
    end&lt;br /&gt;
    if not QuoteType then&lt;br /&gt;
    	QuoteType = &lt;br /&gt;
    	        { bd    = { { 8222, 8220 },  { 8218, 8217 } },&lt;br /&gt;
                  bdla  = { { 8222, 8220 },  {  171,  187 } },&lt;br /&gt;
                  bx    = { { 8222, 8221 },  { 8218, 8217 } },&lt;br /&gt;
                  la    = { {  171,  187 },  { 8249, 8250 } },&lt;br /&gt;
                  laSPC = { {  171,  187 },  { 8249, 8250 },  true },&lt;br /&gt;
                  labd  = { {  171,  187 },  { 8222, 8220 } },&lt;br /&gt;
                  lald  = { {  171,  187 },  { 8220, 8221 } },&lt;br /&gt;
                  ld    = { { 8220, 8221 },  { 8216, 8217 } },&lt;br /&gt;
                  ldla  = { { 8220, 8221 },  {  171,  187 } },&lt;br /&gt;
                  lsld  = { { 8216, 8217 },  { 8220, 8221 } },&lt;br /&gt;
                  rd    = { { 8221, 8221 },  { 8217, 8217 } },&lt;br /&gt;
                  x300C = { { 0x300C, 0x300D },&lt;br /&gt;
                            { 0x300E, 0x300F } } }&lt;br /&gt;
    end&lt;br /&gt;
end -- initQuoteData()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function fiatQuote( apply, alien, advance )&lt;br /&gt;
    -- Quote text&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     apply    -- string, with text&lt;br /&gt;
    --     alien    -- string, with language code&lt;br /&gt;
    --     advance  -- number, with level 1 or 2&lt;br /&gt;
    local r = apply and tostring(apply) or &amp;quot;&amp;quot;&lt;br /&gt;
    alien = alien or &amp;quot;en&amp;quot;&lt;br /&gt;
    advance = tonumber(advance) or 0&lt;br /&gt;
    local suite&lt;br /&gt;
    initQuoteData()&lt;br /&gt;
    local slang = alien:match( &amp;quot;^(%l+)-&amp;quot; )&lt;br /&gt;
    suite = QuoteLang[alien] or slang and QuoteLang[slang] or QuoteLang[&amp;quot;en&amp;quot;]&lt;br /&gt;
    if suite then&lt;br /&gt;
        local quotes = QuoteType[ suite ]&lt;br /&gt;
        if quotes then&lt;br /&gt;
            local space&lt;br /&gt;
            if quotes[ 3 ] then&lt;br /&gt;
                space = &amp;quot;&amp;amp;#160;&amp;quot;&lt;br /&gt;
            else&lt;br /&gt;
                space = &amp;quot;&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
            quotes = quotes[ advance ]&lt;br /&gt;
            if quotes then&lt;br /&gt;
                r = mw.ustring.format( &amp;quot;%s%s%s%s%s&amp;quot;,&lt;br /&gt;
                                       mw.ustring.char( quotes[ 1 ] ),&lt;br /&gt;
                                       space,&lt;br /&gt;
                                       apply,&lt;br /&gt;
                                       space,&lt;br /&gt;
                                       mw.ustring.char( quotes[ 2 ] ) )&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            mw.log( &amp;quot;fiatQuote() &amp;quot; .. suite )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- fiatQuote()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.char = function ( apply, again, accept )&lt;br /&gt;
    -- Create string from codepoints&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     apply   -- table (sequence) with numerical codepoints, or nil&lt;br /&gt;
    --     again   -- number of repetitions, or nil&lt;br /&gt;
    --     accept  -- true, if no error messages to be appended&lt;br /&gt;
    -- Returns: string&lt;br /&gt;
    local r = &amp;quot;&amp;quot;&lt;br /&gt;
    apply = type(apply) == &amp;quot;table&amp;quot; and apply or {}&lt;br /&gt;
    again = math.floor(tonumber(again) or 1)&lt;br /&gt;
    if again &amp;lt; 1 then&lt;br /&gt;
    	return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    local bad   = { }&lt;br /&gt;
    local codes = { }&lt;br /&gt;
    for _, v in ipairs( apply ) do&lt;br /&gt;
    	local n = tonumber(v)&lt;br /&gt;
    	if not n or (n &amp;lt; 32 and n ~= 9 and n ~= 10) then&lt;br /&gt;
    		table.insert(bad, tostring(v))&lt;br /&gt;
    	else&lt;br /&gt;
    		table.insert(codes, math.floor(n))&lt;br /&gt;
		end&lt;br /&gt;
    end &lt;br /&gt;
    if #bad &amp;gt; 0 then&lt;br /&gt;
    	if not accept then&lt;br /&gt;
    		r = tostring(  mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
                    		:addClass( &amp;quot;error&amp;quot; )&lt;br /&gt;
                    		:wikitext( &amp;quot;bad codepoints: &amp;quot; .. table.concat( bad, &amp;quot; &amp;quot; )) )&lt;br /&gt;
    	end&lt;br /&gt;
    	return r&lt;br /&gt;
    end&lt;br /&gt;
    if #codes &amp;gt; 0 then&lt;br /&gt;
    	r = mw.ustring.char( unpack( codes ) )&lt;br /&gt;
    	if again &amp;gt; 1 then&lt;br /&gt;
    		r = r:rep(again)&lt;br /&gt;
    	end&lt;br /&gt;
	end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.char()&lt;br /&gt;
&lt;br /&gt;
local function trimAndFormat(args, fmt)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	if type(args) ~= &#039;table&#039; then&lt;br /&gt;
		args = {args}&lt;br /&gt;
	end&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		v = mw.text.trim(tostring(v))&lt;br /&gt;
		if v ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			table.insert(result,fmt and mw.ustring.format(fmt, v) or v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Text.concatParams = function ( args, apply, adapt )&lt;br /&gt;
    -- Concat list items into one string&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     args   -- table (sequence) with numKey=string&lt;br /&gt;
    --     apply  -- string (optional); separator (default: &amp;quot;|&amp;quot;)&lt;br /&gt;
    --     adapt  -- string (optional); format including &amp;quot;%s&amp;quot;&lt;br /&gt;
    -- Returns: string&lt;br /&gt;
    local collect = { }&lt;br /&gt;
    return table.concat(trimAndFormat(args,adapt), apply or &amp;quot;|&amp;quot;)&lt;br /&gt;
end -- Text.concatParams()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.containsCJK = function ( s )&lt;br /&gt;
    -- Is any CJK code within?&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     s  -- string&lt;br /&gt;
    -- Returns: true, if CJK detected&lt;br /&gt;
    s = s and tostring(s) or &amp;quot;&amp;quot;&lt;br /&gt;
    if not patternCJK then&lt;br /&gt;
        patternCJK = mw.ustring.char( 91,&lt;br /&gt;
        	                            4352, 45,   4607,&lt;br /&gt;
        	                           11904, 45,  42191,&lt;br /&gt;
        	                           43072, 45,  43135,&lt;br /&gt;
        	                           44032, 45,  55215,&lt;br /&gt;
        	                           63744, 45,  64255,&lt;br /&gt;
        	                           65072, 45,  65103,&lt;br /&gt;
        	                           65381, 45,  65500,&lt;br /&gt;
                                      131072, 45, 196607,&lt;br /&gt;
                                      93 )&lt;br /&gt;
    end&lt;br /&gt;
    return mw.ustring.find( s, patternCJK ) ~= nil&lt;br /&gt;
end -- Text.containsCJK()&lt;br /&gt;
&lt;br /&gt;
Text.removeDelimited = function (s, prefix, suffix)&lt;br /&gt;
	-- Remove all text in s delimited by prefix and suffix (inclusive)&lt;br /&gt;
	-- Arguments:&lt;br /&gt;
	--    s = string to process&lt;br /&gt;
	--    prefix = initial delimiter&lt;br /&gt;
	--    suffix = ending delimiter&lt;br /&gt;
	-- Returns: stripped string&lt;br /&gt;
	s = s and tostring(s) or &amp;quot;&amp;quot;&lt;br /&gt;
	prefix = prefix and tostring(prefix) or &amp;quot;&amp;quot;&lt;br /&gt;
	suffix = suffix and tostring(suffix) or &amp;quot;&amp;quot;&lt;br /&gt;
	local prefixLen = mw.ustring.len(prefix)&lt;br /&gt;
	local suffixLen = mw.ustring.len(suffix)&lt;br /&gt;
	if prefixLen == 0 or suffixLen == 0 then&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
	local i = s:find(prefix, 1, true)&lt;br /&gt;
	local r = s&lt;br /&gt;
	local j&lt;br /&gt;
	while i do&lt;br /&gt;
		j = r:find(suffix, i + prefixLen)&lt;br /&gt;
		if j then&lt;br /&gt;
			r = r:sub(1, i - 1)..r:sub(j+suffixLen)&lt;br /&gt;
		else&lt;br /&gt;
			r = r:sub(1, i - 1)&lt;br /&gt;
		end&lt;br /&gt;
		i = r:find(prefix, 1, true)&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Text.getPlain = function ( adjust )&lt;br /&gt;
    -- Remove wikisyntax from string, except templates&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     adjust  -- string&lt;br /&gt;
    -- Returns: string&lt;br /&gt;
    local r = Text.removeDelimited(adjust,&amp;quot;&amp;lt;!--&amp;quot;,&amp;quot;--&amp;gt;&amp;quot;)&lt;br /&gt;
    r = r:gsub( &amp;quot;(&amp;lt;/?%l[^&amp;gt;]*&amp;gt;)&amp;quot;, &amp;quot;&amp;quot; )&lt;br /&gt;
         :gsub( &amp;quot;&#039;&#039;&#039;&amp;quot;, &amp;quot;&amp;quot; )&lt;br /&gt;
         :gsub( &amp;quot;&#039;&#039;&amp;quot;, &amp;quot;&amp;quot; )&lt;br /&gt;
         :gsub( &amp;quot;&amp;amp;nbsp;&amp;quot;, &amp;quot; &amp;quot; )&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.getPlain()&lt;br /&gt;
&lt;br /&gt;
Text.isLatinRange = function (s)&lt;br /&gt;
    -- Are characters expected to be latin or symbols within latin texts?&lt;br /&gt;
    -- Arguments:&lt;br /&gt;
    --  s = string to analyze&lt;br /&gt;
    -- Returns: true, if valid for latin only&lt;br /&gt;
    s = s and tostring(s) or &amp;quot;&amp;quot;  --- ensure input is always string&lt;br /&gt;
    initLatinData()&lt;br /&gt;
    return mw.ustring.match(s, PatternLatin) ~= nil&lt;br /&gt;
end -- Text.isLatinRange()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.isQuote = function ( s )&lt;br /&gt;
    -- Is this character any quotation mark?&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     s = single character to analyze&lt;br /&gt;
    -- Returns: true, if s is quotation mark&lt;br /&gt;
    s = s and tostring(s) or &amp;quot;&amp;quot;&lt;br /&gt;
    if s == &amp;quot;&amp;quot; then&lt;br /&gt;
    	return false&lt;br /&gt;
    end&lt;br /&gt;
    if not SeekQuote then&lt;br /&gt;
        SeekQuote = mw.ustring.char(   34,       -- &amp;quot;&lt;br /&gt;
                                       39,       -- &#039;&lt;br /&gt;
                                      171,       -- laquo&lt;br /&gt;
                                      187,       -- raquo&lt;br /&gt;
                                     8216,       -- lsquo&lt;br /&gt;
                                     8217,       -- rsquo&lt;br /&gt;
                                     8218,       -- sbquo&lt;br /&gt;
                                     8220,       -- ldquo&lt;br /&gt;
                                     8221,       -- rdquo&lt;br /&gt;
                                     8222,       -- bdquo&lt;br /&gt;
                                     8249,       -- lsaquo&lt;br /&gt;
                                     8250,       -- rsaquo&lt;br /&gt;
                                     0x300C,     -- CJK&lt;br /&gt;
                                     0x300D,     -- CJK&lt;br /&gt;
                                     0x300E,     -- CJK&lt;br /&gt;
                                     0x300F )    -- CJK&lt;br /&gt;
    end&lt;br /&gt;
    return mw.ustring.find( SeekQuote, s, 1, true ) ~= nil&lt;br /&gt;
end -- Text.isQuote()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.listToText = function ( args, adapt )&lt;br /&gt;
    -- Format list items similar to mw.text.listToText()&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     args   -- table (sequence) with numKey=string&lt;br /&gt;
    --     adapt  -- string (optional); format including &amp;quot;%s&amp;quot;&lt;br /&gt;
    -- Returns: string&lt;br /&gt;
    return mw.text.listToText(trimAndFormat(args, adapt))&lt;br /&gt;
end -- Text.listToText()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.quote = function ( apply, alien, advance )&lt;br /&gt;
    -- Quote text&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     apply    -- string, with text&lt;br /&gt;
    --     alien    -- string, with language code, or nil&lt;br /&gt;
    --     advance  -- number, with level 1 or 2, or nil&lt;br /&gt;
    -- Returns: quoted string&lt;br /&gt;
    apply = apply and tostring(apply) or &amp;quot;&amp;quot;&lt;br /&gt;
    local mode, slang&lt;br /&gt;
    if type( alien ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        slang = mw.text.trim( alien ):lower()&lt;br /&gt;
    else&lt;br /&gt;
        slang = mw.title.getCurrentTitle().pageLanguage&lt;br /&gt;
        if not slang then&lt;br /&gt;
            -- TODO FIXME: Introduction expected 2017-04&lt;br /&gt;
            slang = mw.language.getContentLanguage():getCode()&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if advance == 2 then&lt;br /&gt;
        mode = 2&lt;br /&gt;
    else&lt;br /&gt;
        mode = 1&lt;br /&gt;
    end&lt;br /&gt;
    return fiatQuote( mw.text.trim( apply ), slang, mode )&lt;br /&gt;
end -- Text.quote()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.quoteUnquoted = function ( apply, alien, advance )&lt;br /&gt;
    -- Quote text, if not yet quoted and not empty&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     apply    -- string, with text&lt;br /&gt;
    --     alien    -- string, with language code, or nil&lt;br /&gt;
    --     advance  -- number, with level 1 or 2, or nil&lt;br /&gt;
    -- Returns: string; possibly quoted&lt;br /&gt;
    local r = mw.text.trim( apply and tostring(apply) or &amp;quot;&amp;quot; )&lt;br /&gt;
    local s = mw.ustring.sub( r, 1, 1 )&lt;br /&gt;
    if s ~= &amp;quot;&amp;quot;  and  not Text.isQuote( s, advance ) then&lt;br /&gt;
        s = mw.ustring.sub( r, -1, 1 )&lt;br /&gt;
        if not Text.isQuote( s ) then&lt;br /&gt;
            r = Text.quote( r, alien, advance )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.quoteUnquoted()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.removeDiacritics = function ( adjust )&lt;br /&gt;
    -- Remove all diacritics&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     adjust  -- string&lt;br /&gt;
    -- Returns: string; all latin letters should be ASCII&lt;br /&gt;
    --                  or basic greek or cyrillic or symbols etc.&lt;br /&gt;
    local cleanup, decomposed&lt;br /&gt;
    if not PatternCombined then&lt;br /&gt;
        PatternCombined = mw.ustring.char( 91,&lt;br /&gt;
                                            0x0300, 45, 0x036F,&lt;br /&gt;
                                            0x1AB0, 45, 0x1AFF,&lt;br /&gt;
                                            0x1DC0, 45, 0x1DFF,&lt;br /&gt;
                                            0xFE20, 45, 0xFE2F,&lt;br /&gt;
                                           93 )&lt;br /&gt;
    end&lt;br /&gt;
    decomposed = mw.ustring.toNFD( adjust and tostring(adjust) or &amp;quot;&amp;quot; )&lt;br /&gt;
    cleanup    = mw.ustring.gsub( decomposed, PatternCombined, &amp;quot;&amp;quot; )&lt;br /&gt;
    return mw.ustring.toNFC( cleanup )&lt;br /&gt;
end -- Text.removeDiacritics()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.sentenceTerminated = function ( analyse )&lt;br /&gt;
    -- Is string terminated by dot, question or exclamation mark?&lt;br /&gt;
    --     Quotation, link termination and so on granted&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     analyse  -- string&lt;br /&gt;
    -- Returns: true, if sentence terminated&lt;br /&gt;
    local r&lt;br /&gt;
    if not PatternTerminated then&lt;br /&gt;
        PatternTerminated = mw.ustring.char( 91,&lt;br /&gt;
                                             12290,&lt;br /&gt;
                                             65281,&lt;br /&gt;
                                             65294,&lt;br /&gt;
                                             65311 )&lt;br /&gt;
                            .. &amp;quot;!%.%?…][\&amp;quot;&#039;%]‹›«»‘’“”]*$&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.find( analyse, PatternTerminated ) then&lt;br /&gt;
        r = true&lt;br /&gt;
    else&lt;br /&gt;
        r = false&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.sentenceTerminated()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.ucfirstAll = function ( adjust)&lt;br /&gt;
    -- Capitalize all words&lt;br /&gt;
    -- Arguments:&lt;br /&gt;
    --     adjust = string to adjust&lt;br /&gt;
    -- Returns: string with all first letters in upper case&lt;br /&gt;
    adjust = adjust and tostring(adjust) or &amp;quot;&amp;quot;&lt;br /&gt;
    local r = mw.text.decode(adjust,true)&lt;br /&gt;
    local i = 1&lt;br /&gt;
    local c, j, m&lt;br /&gt;
    m = (r ~= adjust)&lt;br /&gt;
    r = &amp;quot; &amp;quot;..r&lt;br /&gt;
    while i do&lt;br /&gt;
        i = mw.ustring.find( r, &amp;quot;%W%l&amp;quot;, i )&lt;br /&gt;
        if i then&lt;br /&gt;
            j = i + 1&lt;br /&gt;
            c = mw.ustring.upper( mw.ustring.sub( r, j, j ) )&lt;br /&gt;
            r = string.format( &amp;quot;%s%s%s&amp;quot;,&lt;br /&gt;
                               mw.ustring.sub( r, 1, i ),&lt;br /&gt;
                               c,&lt;br /&gt;
                               mw.ustring.sub( r, i + 2 ) )&lt;br /&gt;
            i = j&lt;br /&gt;
        end&lt;br /&gt;
    end -- while i&lt;br /&gt;
    r = r:sub( 2 )&lt;br /&gt;
    if m then&lt;br /&gt;
    	r = mw.text.encode(r)&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.ucfirstAll()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.uprightNonlatin = function ( adjust )&lt;br /&gt;
    -- Ensure non-italics for non-latin text parts&lt;br /&gt;
    --     One single greek letter might be granted&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     adjust  -- string&lt;br /&gt;
    -- Returns: string with non-latin parts enclosed in &amp;lt;span&amp;gt;&lt;br /&gt;
    local r&lt;br /&gt;
    initLatinData()&lt;br /&gt;
    if mw.ustring.match( adjust, PatternLatin ) then&lt;br /&gt;
        -- latin only, horizontal dashes, quotes&lt;br /&gt;
        r = adjust&lt;br /&gt;
    else&lt;br /&gt;
        local c&lt;br /&gt;
        local j    = false&lt;br /&gt;
        local k    = 1&lt;br /&gt;
        local m    = false&lt;br /&gt;
        local n    = mw.ustring.len( adjust )&lt;br /&gt;
        local span = &amp;quot;%s%s&amp;lt;span dir=&#039;auto&#039; style=&#039;font-style:normal&#039;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
        local flat = function ( a )&lt;br /&gt;
                  -- isLatin&lt;br /&gt;
                  local range&lt;br /&gt;
                  for i = 1, #RangesLatin do&lt;br /&gt;
                      range = RangesLatin[ i ]&lt;br /&gt;
                      if a &amp;gt;= range[ 1 ]  and  a &amp;lt;= range[ 2 ] then&lt;br /&gt;
                          return true&lt;br /&gt;
                      end&lt;br /&gt;
                  end    -- for i&lt;br /&gt;
              end -- flat()&lt;br /&gt;
        local focus = function ( a )&lt;br /&gt;
                  -- char is not ambivalent&lt;br /&gt;
                  local r = ( a &amp;gt; 64 )&lt;br /&gt;
                  if r then&lt;br /&gt;
                      r = ( a &amp;lt; 8192  or  a &amp;gt; 8212 )&lt;br /&gt;
                  else&lt;br /&gt;
                      r = ( a == 38  or  a == 60 )    -- &#039;&amp;amp;&#039; &#039;&amp;lt;&#039;&lt;br /&gt;
                  end&lt;br /&gt;
                  return r&lt;br /&gt;
              end -- focus()&lt;br /&gt;
        local form = function ( a )&lt;br /&gt;
                return string.format( span,&lt;br /&gt;
                                      r,&lt;br /&gt;
                                      mw.ustring.sub( adjust, k, j - 1 ),&lt;br /&gt;
                                      mw.ustring.sub( adjust, j, a ) )&lt;br /&gt;
              end -- form()&lt;br /&gt;
        r = &amp;quot;&amp;quot;&lt;br /&gt;
        for i = 1, n do&lt;br /&gt;
            c = mw.ustring.codepoint( adjust, i, i )&lt;br /&gt;
            if focus( c ) then&lt;br /&gt;
                if flat( c ) then&lt;br /&gt;
                    if j then&lt;br /&gt;
                        if m then&lt;br /&gt;
                            if i == m then&lt;br /&gt;
                                -- single greek letter.&lt;br /&gt;
                                j = false&lt;br /&gt;
                            end&lt;br /&gt;
                            m = false&lt;br /&gt;
                        end&lt;br /&gt;
                        if j then&lt;br /&gt;
                            local nx = i - 1&lt;br /&gt;
                            local s  = &amp;quot;&amp;quot;&lt;br /&gt;
                            for ix = nx, 1, -1 do&lt;br /&gt;
                                c = mw.ustring.sub( adjust, ix, ix )&lt;br /&gt;
                                if c == &amp;quot; &amp;quot;  or  c == &amp;quot;(&amp;quot; then&lt;br /&gt;
                                    nx = nx - 1&lt;br /&gt;
                                    s  = c .. s&lt;br /&gt;
                                else&lt;br /&gt;
                                    break -- for ix&lt;br /&gt;
                                end&lt;br /&gt;
                            end -- for ix&lt;br /&gt;
                            r = form( nx ) .. s&lt;br /&gt;
                            j = false&lt;br /&gt;
                            k = i&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                elseif not j then&lt;br /&gt;
                    j = i&lt;br /&gt;
                    if c &amp;gt;= 880  and  c &amp;lt;= 1023 then&lt;br /&gt;
                        -- single greek letter?&lt;br /&gt;
                        m = i + 1&lt;br /&gt;
                    else&lt;br /&gt;
                        m = false&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            elseif m then&lt;br /&gt;
                m = m + 1&lt;br /&gt;
            end&lt;br /&gt;
        end    -- for i&lt;br /&gt;
        if j  and  ( not m  or  m &amp;lt; n ) then&lt;br /&gt;
            r = form( n )&lt;br /&gt;
        else&lt;br /&gt;
            r = r .. mw.ustring.sub( adjust, k )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.uprightNonlatin()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Text.test = function ( about )&lt;br /&gt;
    local r&lt;br /&gt;
    if about == &amp;quot;quote&amp;quot; then&lt;br /&gt;
        initQuoteData()&lt;br /&gt;
        r = { }&lt;br /&gt;
        r.QuoteLang = QuoteLang&lt;br /&gt;
        r.QuoteType = QuoteType&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Text.test()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Export&lt;br /&gt;
local p = { }&lt;br /&gt;
&lt;br /&gt;
for _, func in ipairs({&#039;containsCJK&#039;,&#039;isLatinRange&#039;,&#039;isQuote&#039;,&#039;sentenceTerminated&#039;}) do&lt;br /&gt;
	p[func] = function (frame) &lt;br /&gt;
		return Text[func]( frame.args[ 1 ] or &amp;quot;&amp;quot; ) and &amp;quot;1&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for _, func in ipairs({&#039;getPlain&#039;,&#039;removeDiacritics&#039;,&#039;ucfirstAll&#039;,&#039;uprightNonlatin&#039;}) do&lt;br /&gt;
	p[func] = function (frame) &lt;br /&gt;
		return Text[func]( frame.args[ 1 ] or &amp;quot;&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.char( frame )&lt;br /&gt;
    local params = frame:getParent().args&lt;br /&gt;
    local story = params[ 1 ]&lt;br /&gt;
    local codes, lenient, multiple&lt;br /&gt;
    if not story then&lt;br /&gt;
        params = frame.args&lt;br /&gt;
        story  = params[ 1 ]&lt;br /&gt;
    end&lt;br /&gt;
    if story then&lt;br /&gt;
        local items = mw.text.split( mw.text.trim(story), &amp;quot;%s+&amp;quot; )&lt;br /&gt;
        if #items &amp;gt; 0 then&lt;br /&gt;
            local j&lt;br /&gt;
            lenient  = (yesNo(params.errors) == false)&lt;br /&gt;
            codes    = { }&lt;br /&gt;
            multiple = tonumber( params[ &amp;quot;*&amp;quot; ] )&lt;br /&gt;
            for _, v in ipairs( items ) do&lt;br /&gt;
            	j = tonumber((v:sub( 1, 1 ) == &amp;quot;x&amp;quot; and &amp;quot;0&amp;quot; or &amp;quot;&amp;quot;) .. v)&lt;br /&gt;
                table.insert( codes,  j or v )&lt;br /&gt;
            end &lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Text.char( codes, multiple, lenient )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.concatParams( frame )&lt;br /&gt;
    local args&lt;br /&gt;
    local template = frame.args.template&lt;br /&gt;
    if type( template ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        template = mw.text.trim( template )&lt;br /&gt;
        template = ( template == &amp;quot;1&amp;quot; )&lt;br /&gt;
    end&lt;br /&gt;
    if template then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        args = frame.args&lt;br /&gt;
    end&lt;br /&gt;
    return Text.concatParams( args,&lt;br /&gt;
                              frame.args.separator,&lt;br /&gt;
                              frame.args.format )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.listToFormat(frame)&lt;br /&gt;
    local lists = {}&lt;br /&gt;
    local pformat = frame.args[&amp;quot;format&amp;quot;]&lt;br /&gt;
    local sep = frame.args[&amp;quot;sep&amp;quot;] or &amp;quot;;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Parameter parsen: Listen&lt;br /&gt;
    for k, v in pairs(frame.args) do&lt;br /&gt;
        local knum = tonumber(k)&lt;br /&gt;
        if knum then lists[knum] = v end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Listen splitten&lt;br /&gt;
    local maxListLen = 0&lt;br /&gt;
    for i = 1, #lists do&lt;br /&gt;
        lists[i] = mw.text.split(lists[i], sep)&lt;br /&gt;
        if #lists[i] &amp;gt; maxListLen then maxListLen = #lists[i] end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Ergebnisstring generieren&lt;br /&gt;
    local result = &amp;quot;&amp;quot;&lt;br /&gt;
    local result_line = &amp;quot;&amp;quot;&lt;br /&gt;
    for i = 1, maxListLen do&lt;br /&gt;
        result_line = pformat&lt;br /&gt;
        for j = 1, #lists do&lt;br /&gt;
            result_line = mw.ustring.gsub(result_line, &amp;quot;%%s&amp;quot;, lists[j][i], 1)&lt;br /&gt;
        end&lt;br /&gt;
        result = result .. result_line&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.listToText( frame )&lt;br /&gt;
    local args&lt;br /&gt;
    local template = frame.args.template&lt;br /&gt;
    if type( template ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        template = mw.text.trim( template )&lt;br /&gt;
        template = ( template == &amp;quot;1&amp;quot; )&lt;br /&gt;
    end&lt;br /&gt;
    if template then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        args = frame.args&lt;br /&gt;
    end&lt;br /&gt;
    return Text.listToText( args, frame.args.format )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.quote( frame )&lt;br /&gt;
    local slang = frame.args[2]&lt;br /&gt;
    if type( slang ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        slang = mw.text.trim( slang )&lt;br /&gt;
        if slang == &amp;quot;&amp;quot; then&lt;br /&gt;
            slang = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Text.quote( frame.args[ 1 ] or &amp;quot;&amp;quot;,&lt;br /&gt;
                       slang,&lt;br /&gt;
                       tonumber( frame.args[3] ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.quoteUnquoted( frame )&lt;br /&gt;
    local slang = frame.args[2]&lt;br /&gt;
    if type( slang ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
        slang = mw.text.trim( slang )&lt;br /&gt;
        if slang == &amp;quot;&amp;quot; then&lt;br /&gt;
            slang = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Text.quoteUnquoted( frame.args[ 1 ] or &amp;quot;&amp;quot;,&lt;br /&gt;
                               slang,&lt;br /&gt;
                               tonumber( frame.args[3] ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.zip(frame)&lt;br /&gt;
    local lists = {}&lt;br /&gt;
    local seps = {}&lt;br /&gt;
    local defaultsep = frame.args[&amp;quot;sep&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
    local innersep = frame.args[&amp;quot;isep&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
    local outersep = frame.args[&amp;quot;osep&amp;quot;] or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Parameter parsen&lt;br /&gt;
    for k, v in pairs(frame.args) do&lt;br /&gt;
        local knum = tonumber(k)&lt;br /&gt;
        if knum then lists[knum] = v else&lt;br /&gt;
            if string.sub(k, 1, 3) == &amp;quot;sep&amp;quot; then&lt;br /&gt;
                local sepnum = tonumber(string.sub(k, 4))&lt;br /&gt;
                if sepnum then seps[sepnum] = v end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- sofern keine expliziten Separatoren angegeben sind, den Standardseparator verwenden&lt;br /&gt;
    for i = 1, math.max(#seps, #lists) do&lt;br /&gt;
        if not seps[i] then seps[i] = defaultsep end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Listen splitten&lt;br /&gt;
    local maxListLen = 0&lt;br /&gt;
    for i = 1, #lists do&lt;br /&gt;
        lists[i] = mw.text.split(lists[i], seps[i])&lt;br /&gt;
        if #lists[i] &amp;gt; maxListLen then maxListLen = #lists[i] end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local result = &amp;quot;&amp;quot;&lt;br /&gt;
    for i = 1, maxListLen do&lt;br /&gt;
        if i ~= 1 then result = result .. outersep end&lt;br /&gt;
        for j = 1, #lists do&lt;br /&gt;
            if j ~= 1 then result = result .. innersep end&lt;br /&gt;
            result = result .. (lists[j][i] or &amp;quot;&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.failsafe()&lt;br /&gt;
    return Text.serial&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.Text = function ()&lt;br /&gt;
    return Text&lt;br /&gt;
end -- p.Text&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline/blank&amp;diff=651</id>
		<title>Szablon:Graphical timeline/blank</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline/blank&amp;diff=651"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;{{Graphical timeline&lt;br /&gt;
 |&amp;lt;!--you MUST remove any lines you don&#039;t need--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | help=off&lt;br /&gt;
 | link-to={{subst:PAGENAMEE}}&lt;br /&gt;
   &amp;lt;!--use that^ line if the timeline&#039;s on a &lt;br /&gt;
   page of its own, so it can be edited easily--&amp;gt;&lt;br /&gt;
 | embedded={{{embedded|}}} &lt;br /&gt;
   &amp;lt;!--Leave if might be used in table--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | from=REQUIRED&lt;br /&gt;
 | to=REQUIRED&lt;br /&gt;
 | scale-increment=&lt;br /&gt;
 &lt;br /&gt;
 | align=&lt;br /&gt;
 | margin=&lt;br /&gt;
 | width=&lt;br /&gt;
 | annotations-width=&amp;lt;!--defines space for notes right to the timelines width--&amp;gt;&lt;br /&gt;
 | width-unit=&lt;br /&gt;
 | height=&lt;br /&gt;
 | height-unit=&lt;br /&gt;
 | unit=&amp;lt;!--overridden by: width-unit or height-unit--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | title=&lt;br /&gt;
 | title-colour=&lt;br /&gt;
 | plot-colour=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- replace # with 1, 2, 3 etc.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | bar#-from=&lt;br /&gt;
 | bar#-to=&lt;br /&gt;
 | bar#-left=&amp;lt;!--0 is the far left of the timeline, 1 the far right.--&amp;gt;&lt;br /&gt;
 | bar#-right=&lt;br /&gt;
 | bar#-colour=&lt;br /&gt;
 | bar#-border-width=&amp;lt;!--in the same units as height--&amp;gt;&lt;br /&gt;
 | bar#-border-colour=&lt;br /&gt;
 | bar#-text=&lt;br /&gt;
 | bar#-nudge-left=&lt;br /&gt;
 | bar#-nudge-right=&amp;lt;!--overrides nudge-left--&amp;gt;&lt;br /&gt;
 | bar#-nudge-up=&lt;br /&gt;
 | bar#-nudge-down=&amp;lt;!--overrides nudge-up--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | legend#=&lt;br /&gt;
 | legend#-colour=&amp;lt;!-- defaults to bar#-colour--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 | note#=&lt;br /&gt;
 | note#-nudge-down=&amp;lt;!--overrides nudge-up--&amp;gt;&lt;br /&gt;
 | note#-nudge-up=&lt;br /&gt;
 | note#-nudge-left=&lt;br /&gt;
 | note#-nudge-right=&amp;lt;!--overrides nudge-left--&amp;gt;&lt;br /&gt;
 | note#-remove-arrow=yes&lt;br /&gt;
 | note#-size=&amp;lt;!--Default value is 90%--&amp;gt;&lt;br /&gt;
 | note#-colour=&lt;br /&gt;
&lt;br /&gt;
 | caption=&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Tiw&amp;diff=649</id>
		<title>Szablon:Tiw</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Tiw&amp;diff=649"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;{{#if:{{{2|}}}&lt;br /&gt;
 | [[:{{#if:{{{1|}}}|{{{1}}}:|}}Template:{{{2}}}]]&amp;amp;nbsp;{{smaller|([[:{{#if:{{{1|}}}|{{{1}}}:|}}Special:Whatlinkshere/Template:{{{2}}}|backlinks]] [{{fullurl:{{{1}}}:Template:{{{2}}}|action=edit}} edit])}}&lt;br /&gt;
 | [[Template:{{{1|{{PAGENAME}}}}}]]&amp;amp;nbsp;{{smaller|([[Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|backlinks]] [{{fullurl:w:Template:{{{1|{{PAGENAME}}}}}|action=edit}} edit])}}&lt;br /&gt;
}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Nutshell&amp;diff=647</id>
		<title>Szablon:Nutshell</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Nutshell&amp;diff=647"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mbox&lt;br /&gt;
| class = nutshell&lt;br /&gt;
| image = [[File:Walnut.png|30px|link=|alt=]]&lt;br /&gt;
| text = &#039;&#039;&#039;{{{title|This page}}} in a nutshell:&#039;&#039;&#039; {{#if:{{{2|}}}&lt;br /&gt;
  | {{unordered list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}&lt;br /&gt;
  | {{{1}}}&lt;br /&gt;
  }}&lt;br /&gt;
| imageright = {{#if:{{{shortcut|{{{shortcut1|}}}}}} | {{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}} }} }}&lt;br /&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Template_link_with_parameters&amp;diff=645</id>
		<title>Szablon:Template link with parameters</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Template_link_with_parameters&amp;diff=645"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#Invoke:Template link general|main|nowrap=yes}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|1=Template:Tlg/doc&lt;br /&gt;
|content = {{tlg/doc|tlp}}&lt;br /&gt;
}}&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Tlp&amp;diff=643</id>
		<title>Szablon:Tlp</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Tlp&amp;diff=643"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Template link with parameters]]&lt;br /&gt;
&lt;br /&gt;
{{R from move}}&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Maybe&amp;diff=641</id>
		<title>Szablon:Maybe</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Maybe&amp;diff=641"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;/noinclude&amp;gt;style=&amp;quot;background: #FF8; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&amp;quot; class=&amp;quot;table-maybe&amp;quot;|{{{1|Maybe}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{documentation|Template:Table cell templates/doc}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Yes&amp;diff=639</id>
		<title>Szablon:Yes</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Yes&amp;diff=639"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;/noinclude&amp;gt;style=&amp;quot;background:#9EFF9E;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&amp;quot; class=&amp;quot;table-yes&amp;quot;|{{{1|Yes}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Period_start&amp;diff=637</id>
		<title>Szablon:Period start</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Period_start&amp;diff=637"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#expr:{{#switch: {{Period id|{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Some other notable dates --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|burgess shale|middle middle cambrian&amp;lt;!--Middle middle is approximate; cf. Burgess Shale--&amp;gt;=508&lt;br /&gt;
|chengjiang=518&lt;br /&gt;
|sirius passet=518&lt;br /&gt;
|doushantou=570&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Data from ICS chart&lt;br /&gt;
&lt;br /&gt;
| Supereon&lt;br /&gt;
|   Eon&lt;br /&gt;
|     Era&lt;br /&gt;
|       Period&lt;br /&gt;
|         Epoch/Series&lt;br /&gt;
|           Age/Stage&lt;br /&gt;
|             other division (other sources - not in ICS chart)&lt;br /&gt;
The names from the ICS chart are always first on the line.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| precambrian&lt;br /&gt;
|   hadean              = 4567.3&lt;br /&gt;
|   archean&lt;br /&gt;
|     eoarchean | isuan = 4000&lt;br /&gt;
|     paleoarchean      = 3600&lt;br /&gt;
|     mesoarchean       = 3200&lt;br /&gt;
|     neoarchean        = 2800&lt;br /&gt;
|   proterozoic&lt;br /&gt;
|     paleoproterozoic&lt;br /&gt;
|       siderian        = 2500&lt;br /&gt;
|       rhyacian        = 2300&lt;br /&gt;
|       orosirian       = 2050&lt;br /&gt;
|       statherian      = 1800&lt;br /&gt;
|     mesoproterozoic&lt;br /&gt;
|       calymmian       = 1600&lt;br /&gt;
|       ectasian | riphean&lt;br /&gt;
                        = 1400&lt;br /&gt;
|       stenian         = 1200&lt;br /&gt;
|             mayanian  = 1100&lt;br /&gt;
|             sinian | sturtian&lt;br /&gt;
                        = 1050&lt;br /&gt;
|     neoproterozoic&lt;br /&gt;
|       tonian          = 1000&lt;br /&gt;
|             baikalian = 850 &lt;br /&gt;
|       cryogenian      = 720&lt;br /&gt;
|       ediacaran | vendian&lt;br /&gt;
                        = 635&lt;br /&gt;
  &amp;lt;!-- end of precambrian --&amp;gt;&lt;br /&gt;
|   phanerozoic&lt;br /&gt;
|     paleozoic&lt;br /&gt;
|       cambrian&lt;br /&gt;
|        lower cambrian &amp;lt;!-- group of two epochs, not in ICS chart --&amp;gt;&lt;br /&gt;
|         terreneuvian | lowest cambrian | earliest cambrian&lt;br /&gt;
|           fortunian&lt;br /&gt;
|             manykaian | nemakit daldynian&lt;br /&gt;
                         = 538.8&lt;br /&gt;
|             caerfai | tommotian&lt;br /&gt;
                         = 530&lt;br /&gt;
|           cambrian stage 2&lt;br /&gt;
                         = 529&lt;br /&gt;
|         cambrian series 2&lt;br /&gt;
|           cambrian stage 3 | middle lower cambrian&lt;br /&gt;
|             atdabanian = 521&lt;br /&gt;
|             botomian   = 522&lt;br /&gt;
|             toyonian | upper lower cambrian&lt;br /&gt;
                         = 516&lt;br /&gt;
|           cambrian stage 4&lt;br /&gt;
                         = 514&lt;br /&gt;
         &amp;lt;!-- end of lower cambrian --&amp;gt;&lt;br /&gt;
|         cambrian series 3 | middle cambrian | miaolingian&lt;br /&gt;
|           cambrian stage 5 | lower middle cambrian | st davids | wuliuan&lt;br /&gt;
                         = 509&lt;br /&gt;
|           drumian      = 504.5&lt;br /&gt;
|           guzhangian | nganasanian | mindyallan&lt;br /&gt;
                         = 500.5&lt;br /&gt;
|         furongian | upper cambrian | merioneth&lt;br /&gt;
|           paibian | franconian&amp;lt;!--unofficial and approximate!--&amp;gt;&lt;br /&gt;
                         = 497&lt;br /&gt;
|           jiangshanian = 494&lt;br /&gt;
|             upper upper cambrian | mansian&lt;br /&gt;
                         = 489.5&lt;br /&gt;
|           cambrian stage 10     = 489.5&lt;br /&gt;
|       ordovician&lt;br /&gt;
|         lower ordovician&lt;br /&gt;
|           tremadocian  = 485.4&lt;br /&gt;
|             upper lower ordovician&lt;br /&gt;
                         = 479&lt;br /&gt;
|           floian | arenig&lt;br /&gt;
                         = 477.7&lt;br /&gt;
|         middle ordovician&lt;br /&gt;
|           dapingian | ordovician iii | lower middle ordovician&lt;br /&gt;
                         = 470.0&lt;br /&gt;
|           darriwilian  = 467.3&lt;br /&gt;
|         upper ordovician&lt;br /&gt;
|           sandbian | ordovician v | lower upper ordovician&lt;br /&gt;
                         = 458.4&lt;br /&gt;
|             middle upper ordovician&lt;br /&gt;
                         = 455&lt;br /&gt;
|           katian | ordovician vi&lt;br /&gt;
                         = 453.0&lt;br /&gt;
|           hirnantian   = 445.2&lt;br /&gt;
|       silurian&lt;br /&gt;
|         llandovery | lower silurian&lt;br /&gt;
|           rhuddanian   = 443.8&lt;br /&gt;
|           aeronian     = 440.8&lt;br /&gt;
|           telychian    = 438.5&lt;br /&gt;
|         wenlock&lt;br /&gt;
|           sheinwoodian = 433.4&lt;br /&gt;
|           homerian     = 430.5&lt;br /&gt;
|         ludlow | upper silurian&lt;br /&gt;
|           gorstian     = 427.4&lt;br /&gt;
|           ludfordian   = 425.6&lt;br /&gt;
|         pridoli&lt;br /&gt;
|           unnamed pridoli stage&lt;br /&gt;
                         = 423.0&lt;br /&gt;
|       devonian&lt;br /&gt;
|         lower devonian&lt;br /&gt;
|           lochkovian | downtonian&amp;lt;!--approx--&amp;gt;&lt;br /&gt;
                         = 419.2&lt;br /&gt;
|           pragian | praghian&lt;br /&gt;
                         = 410.8&lt;br /&gt;
|           emsian       = 407.6&lt;br /&gt;
|         middle devonian&lt;br /&gt;
|           eifelian     = 393.3&lt;br /&gt;
|           givetian     = 387.7&lt;br /&gt;
|         upper devonian&lt;br /&gt;
|           frasnian     = 382.7&lt;br /&gt;
|           famennian    = 372.2&lt;br /&gt;
|       carboniferous&lt;br /&gt;
|        mississippian | lower carboniferous &amp;lt;!-- Subperiod from ICS chart --&amp;gt;&lt;br /&gt;
|         lower mississippian&lt;br /&gt;
|           tournaisian  = 358.9&lt;br /&gt;
|         middle mississippian&lt;br /&gt;
|           visean       = 346.7&lt;br /&gt;
|         upper mississippian&lt;br /&gt;
|           serpukhovian = 330.9&lt;br /&gt;
|             namurian   = 326&lt;br /&gt;
|        pennsylvanian | upper carboniferous &amp;lt;!-- Subperiod from ICS chart --&amp;gt;&lt;br /&gt;
|         lower pennsylvanian&lt;br /&gt;
|           bashkirian   = 323.2&lt;br /&gt;
|             westphalian= 313&lt;br /&gt;
|         middle pennsylvanian&lt;br /&gt;
|           moscovian    = 315.2&lt;br /&gt;
|         upper pennsylvanian&lt;br /&gt;
|           kasimovian   = 307.0&lt;br /&gt;
|             stephanian = 304&lt;br /&gt;
|           gzhelian     = 303.7&lt;br /&gt;
|       permian&lt;br /&gt;
|         cisuralian | lower permian&lt;br /&gt;
|           asselian     = 298.9&lt;br /&gt;
|           sakmarian    = 293.52&lt;br /&gt;
|           artinskian   = 290.1&lt;br /&gt;
|           kungurian    = 283.5&lt;br /&gt;
|         guadalupian | middle permian&lt;br /&gt;
|           roadian | ufimian&lt;br /&gt;
                         = 273.01&lt;br /&gt;
|           wordian      = 266.9&lt;br /&gt;
|           capitanian   = 264.28&lt;br /&gt;
|         lopingian | upper permian&lt;br /&gt;
|           wuchiapingian | longtanian&lt;br /&gt;
                         = 259.51&lt;br /&gt;
|           changhsingian= 254.14&lt;br /&gt;
|     mesozoic&lt;br /&gt;
|       triassic&lt;br /&gt;
|         lower triassic&lt;br /&gt;
|           induan       = 251.902&lt;br /&gt;
|           olenekian | spathian&lt;br /&gt;
                         = 251.2&lt;br /&gt;
|         middle triassic &lt;br /&gt;
|           anisian      = 247.2&lt;br /&gt;
|           ladinian     = 242&lt;br /&gt;
|         upper triassic&lt;br /&gt;
|           carnian      = 237&lt;br /&gt;
|           norian       = 227&lt;br /&gt;
|           rhaetian     = 208.5&lt;br /&gt;
|       jurassic&lt;br /&gt;
|         lower jurassic&lt;br /&gt;
|           hettangian   = 201.4&lt;br /&gt;
|           sinemurian   = 199.5&lt;br /&gt;
|           pliensbachian= 192.9&lt;br /&gt;
|           toarcian     = 184.2&lt;br /&gt;
|         middle jurassic&lt;br /&gt;
|           aalenian     = 174.7&lt;br /&gt;
|           bajocian     = 170.9&lt;br /&gt;
|           bathonian    = 168.2&lt;br /&gt;
|           callovian    = 165.3&lt;br /&gt;
|         upper jurassic&lt;br /&gt;
|           oxfordian    = 161.5&lt;br /&gt;
|           kimmeridgian = 154.8&lt;br /&gt;
|           tithonian    = 149.2&lt;br /&gt;
|       cretaceous&lt;br /&gt;
|         lower cretaceous&lt;br /&gt;
|           berriasian | neocomian&lt;br /&gt;
                         = 145.0&lt;br /&gt;
|           valanginian  = 139.8&lt;br /&gt;
|           hauterivian  = 132.6&lt;br /&gt;
|           barremian | gallic&lt;br /&gt;
                         = 125.77&lt;br /&gt;
|           aptian       = 121.4&lt;br /&gt;
|           albian       = 113.0&lt;br /&gt;
|         upper cretaceous&lt;br /&gt;
|           cenomanian   = 100.5&lt;br /&gt;
|           turonian     = 93.9&lt;br /&gt;
|           coniacian | senonian&lt;br /&gt;
                         = 89.8&lt;br /&gt;
|           santonian    = 86.3&lt;br /&gt;
|           campanian    = 83.6&lt;br /&gt;
|           maastrichtian= 72.1&lt;br /&gt;
|     cenozoic&lt;br /&gt;
|      tertiary &amp;lt;!-- Group of 2 periods, former term --&amp;gt;&lt;br /&gt;
|       paleogene&lt;br /&gt;
|         paleocene&lt;br /&gt;
|           danian | lower paleocene&lt;br /&gt;
                         = 66.0&lt;br /&gt;
|             puercan    = 65&lt;br /&gt;
|             torrejonian= 63.3&lt;br /&gt;
|           selandian | middle paleocene&lt;br /&gt;
                         = 61.6&lt;br /&gt;
|             tiffanian  = 60.2&lt;br /&gt;
|           thanetian | upper paleocene&lt;br /&gt;
                         = 59.2&lt;br /&gt;
|             clarkforkian&lt;br /&gt;
                         = 56.8&lt;br /&gt;
|         eocene&lt;br /&gt;
|           ypresian | lower eocene | mp 10&lt;br /&gt;
                         = 56.0&lt;br /&gt;
|             wasatchian = 55.4&lt;br /&gt;
|             bridgerian = 50.3&lt;br /&gt;
|          middle eocene &amp;lt;!-- Group of two stages, not in ICS chart --&amp;gt;&lt;br /&gt;
|           lutetian | mp 11&lt;br /&gt;
                         = 47.8&lt;br /&gt;
|             uintan     = 46.2&lt;br /&gt;
|             duchesnean = 42&lt;br /&gt;
|           bartonian    = 41.2&lt;br /&gt;
|             chadronian = 38&lt;br /&gt;
           &amp;lt;!-- end of middle eocene --&amp;gt;&lt;br /&gt;
|           priabonian | upper eocene&lt;br /&gt;
                         = 37.71&lt;br /&gt;
|         oligocene&lt;br /&gt;
|           rupelian | lower oligocene&lt;br /&gt;
|             orellan    = 33.9&lt;br /&gt;
|             whitneyan  = 33.3&lt;br /&gt;
|             arikeean   = 30.6&lt;br /&gt;
|           chattian | upper oligocene&lt;br /&gt;
                         = 27.82&lt;br /&gt;
|       neogene&lt;br /&gt;
|         miocene&lt;br /&gt;
|          lower miocene &amp;lt;!-- Group of 2 stages, not in ICS chart --&amp;gt;&lt;br /&gt;
|           aquitanian   = 23.03&lt;br /&gt;
|             hemingfordian&lt;br /&gt;
                         = 20.6&lt;br /&gt;
|           burdigalian  = 20.44&lt;br /&gt;
|             barstovian = 16.3&lt;br /&gt;
|          middle miocene &amp;lt;!-- Group of 2 stages, not in ICS chart --&amp;gt;&lt;br /&gt;
|           langhian     = 15.98&lt;br /&gt;
|           serravallian = 13.82&lt;br /&gt;
|             clarendonian&lt;br /&gt;
                         = 13.6&lt;br /&gt;
|          upper miocene &amp;lt;!-- Group of 2 stages, not in ICS chart --&amp;gt;&lt;br /&gt;
|           tortonian    = 11.63&lt;br /&gt;
|             hemphillian= 10.3&lt;br /&gt;
|           messinian    = 7.246&lt;br /&gt;
|         pliocene&lt;br /&gt;
|           zanclean | lower pliocene&lt;br /&gt;
                         = 5.333&lt;br /&gt;
|             blancan    = 4.75&lt;br /&gt;
|           piacenzian | upper pliocene&lt;br /&gt;
                         = 3.600&lt;br /&gt;
       &amp;lt;!-- end of tertiary --&amp;gt;&lt;br /&gt;
|       quaternary&lt;br /&gt;
|         pleistocene&lt;br /&gt;
|          lower pleistocene &amp;lt;!-- Group of 2 stages, implied from ICS chart --&amp;gt;&lt;br /&gt;
|           gelasian     = 2.58&lt;br /&gt;
|           calabrian    = 1.80&lt;br /&gt;
|             irvingtonian&lt;br /&gt;
                         = 1.8&lt;br /&gt;
           &amp;lt;!-- end of lower pleistocene --&amp;gt;&lt;br /&gt;
|           middle pleistocene | ionian | chibanian&amp;lt;!--the name &amp;quot;Chibanian&amp;quot; was formally adopted for this stage by the ICS in January 2020. The term &amp;quot;Ionian&amp;quot; was a proposed term for this same span of time.--&amp;gt;&lt;br /&gt;
                         = 0.774&amp;lt;!--this date has been redefined by the ICS.--&amp;gt;&lt;br /&gt;
|             rancholabrean&lt;br /&gt;
                         = 0.24&lt;br /&gt;
|           upper pleistocene | tarantian&amp;lt;!--proposed name for this as-yet formally undefined stage--&amp;gt;&lt;br /&gt;
                         = 0.129&amp;lt;!--this date has been redefined by the ICS.--&amp;gt;&lt;br /&gt;
|         holocene&lt;br /&gt;
|           greenlandian | lower holocene   &lt;br /&gt;
                         = 0.0117&lt;br /&gt;
|           northgrippian | middle holocene&lt;br /&gt;
                         =0.0082&lt;br /&gt;
|           meghalayan | upper holocene&lt;br /&gt;
                         =0.0042&lt;br /&gt;
|           &lt;br /&gt;
| now | recent | present | current&lt;br /&gt;
                         = 0&lt;br /&gt;
&lt;br /&gt;
}} round {{{2|5}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Period_id&amp;diff=635</id>
		<title>Szablon:Period id</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Period_id&amp;diff=635"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch: {{lc:{{{1}}}}}&lt;br /&gt;
| series 2 = cambrian series 2&lt;br /&gt;
| series 3 = cambrian series 3&lt;br /&gt;
| stage 2  = cambrian stage 2&lt;br /&gt;
| stage 3  = cambrian stage 3&lt;br /&gt;
| stage 4  = cambrian stage 4&lt;br /&gt;
| stage 5  = cambrian stage 5&lt;br /&gt;
| stage 10 = cambrian stage 10&lt;br /&gt;
| {{#invoke:MultiReplace|main|{{lc:{{{1}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|-| &amp;lt;!--&lt;br /&gt;
  --&amp;gt;|%f[%w]palaeo|paleo&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|%f[%w]early%f[%W]|lower&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|%f[%w]mid%f[%W]|middle&amp;lt;!--&lt;br /&gt;
  --&amp;gt;|%f[%w]late%f[%W]|upper}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Period_end&amp;diff=633</id>
		<title>Szablon:Period end</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Period_end&amp;diff=633"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Period start|{{next period|{{{1|{{PAGENAME}}}}}}}}}&amp;lt;/includeonly&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Period_color&amp;diff=631</id>
		<title>Szablon:Period color</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Period_color&amp;diff=631"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1}}}}}&lt;br /&gt;
|phanerozoic=rgb(154,217,221)&lt;br /&gt;
 |cenozoic=rgb(242,249,29)&lt;br /&gt;
  |quaternary=rgb(249,249,127)&lt;br /&gt;
   |holocene=rgb(253,230,202)&lt;br /&gt;
    |meghalayan|upper holocene|late holocene=rgb(253,237,236)&lt;br /&gt;
    |northgrippian|middle holocene=rgb(253,236,228)&lt;br /&gt;
    |greenlandian|lower holocene|early holocene=rgb(254,236,219)&lt;br /&gt;
   |pleistocene=rgb(255,239,175)&lt;br /&gt;
    |upper pleistocene|tarantian=rgb(255,242,211)&lt;br /&gt;
    |chibanian|middle pleistocene|ionian=rgb(255,242,199)&lt;br /&gt;
    |lower pleistocene|early pleistocene=rgb(255,240,185)&amp;lt;!--SEMI-OFFICIAL--&amp;gt;&lt;br /&gt;
    |calabrian=rgb(255,242,186)&lt;br /&gt;
    |gelasian=rgb(255,237,179)&lt;br /&gt;
  |neogene=rgb(255,230,25)&lt;br /&gt;
   |pliocene=rgb(255,255,153)&lt;br /&gt;
    |piacenzian=rgb(255,255,191)&lt;br /&gt;
    |zanclean=rgb(255,255,179)&lt;br /&gt;
   |miocene=rgb(255,255,0)&lt;br /&gt;
    |messinian=rgb(255,255,115)&lt;br /&gt;
    |tortonian=rgb(255,255,102)&lt;br /&gt;
    |serravallian=rgb(255,255,89)&lt;br /&gt;
    |langhian=rgb(255,255,77)&lt;br /&gt;
    |burdigalian=rgb(255,255,65)&lt;br /&gt;
    |aquitanian=rgb(255,255,51)   &lt;br /&gt;
  |paleogene|palæogene|palaeogene=rgb(253,154,82)&lt;br /&gt;
   |oligocene=rgb(254,192,122)&lt;br /&gt;
    |chattian=rgb(254,230,170)&lt;br /&gt;
    |rupelian=rgb(254,217,154)&lt;br /&gt;
   |eocene=rgb(253,180,108)&lt;br /&gt;
    |priabonian=rgb(253,205,161)&lt;br /&gt;
    |bartonian=rgb(253,192,145)&lt;br /&gt;
    |lutetian=rgb(253,180,130)&lt;br /&gt;
    |ypresian=rgb(252,167,115)&lt;br /&gt;
   |paleocene|palæocene|palaeocene=rgb(253,167,95)&lt;br /&gt;
    |thanetian=rgb(253,191,111)&lt;br /&gt;
    |selandian=rgb(254,191,101)&lt;br /&gt;
    |danian=rgb(253,180,98)&lt;br /&gt;
 |mesozoic=rgb(103,197,202)&lt;br /&gt;
  |cretaceous=rgb(127,198,78)&lt;br /&gt;
   |late cretaceous|upper cretaceous=rgb(166,216,74)&lt;br /&gt;
    |maastrichtian=rgb(242,250,140)&lt;br /&gt;
    |campanian=rgb(230,244,127)&lt;br /&gt;
    |santonian=rgb(217,239,116)&lt;br /&gt;
    |coniacian=rgb(204,233,104)&lt;br /&gt;
    |turonian=rgb(191,227,93)&lt;br /&gt;
    |cenomanian=rgb(179,222,83)&lt;br /&gt;
   |early cretaceous|lower cretaceous=rgb(140,205,87)&lt;br /&gt;
    |albian=rgb(204,234,151)&lt;br /&gt;
    |aptian=rgb(191,228,138)&lt;br /&gt;
    |barremian=rgb(179,223,127)&lt;br /&gt;
    |hauterivian=rgb(166,217,117)&lt;br /&gt;
    |valanginian=rgb(153,211,106)&lt;br /&gt;
    |berriasian=rgb(140,205,96)&lt;br /&gt;
  |jurassic=rgb(52,178,201)&lt;br /&gt;
   |late jurassic|upper jurassic=rgb(179,227,238)&lt;br /&gt;
    |tithonian=rgb(217,241,247)&lt;br /&gt;
    |kimmeridgian=rgb(204,236,244)&lt;br /&gt;
    |oxfordian=rgb(191,231,241)&lt;br /&gt;
   |middle jurassic|mid jurassic=rgb(128,207,216)&lt;br /&gt;
    |callovian=rgb(191,231,229)&lt;br /&gt;
    |bathonian=rgb(179,226,227)&lt;br /&gt;
    |bajocian=rgb(166,221,224)&lt;br /&gt;
    |aalenian=rgb(154,217,221)&lt;br /&gt;
   |early jurassic|lower jurassic=rgb(66,174,208)&lt;br /&gt;
    |toarcian=rgb(153,206,227)&lt;br /&gt;
    |pliensbachian=rgb(128,197,221)&lt;br /&gt;
    |sinemurian=rgb(103,188,216)&lt;br /&gt;
    |hettangian=rgb(78,179,211)&lt;br /&gt;
  |triassic=rgb(129,43,146)&lt;br /&gt;
   |late triassic|upper triassic=rgb(189,140,195)&lt;br /&gt;
    |rhaetian=rgb(227,185,219)&lt;br /&gt;
    |norian=rgb(214,170,211)&lt;br /&gt;
    |carnian=rgb(201,155,203)&lt;br /&gt;
   |middle triassic|mid triassic=rgb(177,104,177)&lt;br /&gt;
    |ladinian=rgb(201,131,191)&lt;br /&gt;
    |anisian=rgb(188,117,183)&lt;br /&gt;
   |lower triassic|early triassic=rgb(152,57,153)&lt;br /&gt;
    |olenekian=rgb(176,81,165)&lt;br /&gt;
    |induan=rgb(164,70,159)&lt;br /&gt;
 |paleozoic|palæozoic|palaeozoic=rgb(153,192,141)&lt;br /&gt;
  |permian=rgb(240,64,40)&lt;br /&gt;
   |lopingian|late permian|upper permian=rgb(251,167,148)&lt;br /&gt;
    |changhsingian=rgb(252,192,178)&lt;br /&gt;
    |wuchiapingian=rgb(252,180,162)&lt;br /&gt;
   |guadalupian|middle permian|mid permian=rgb(251,116,92)&lt;br /&gt;
    |capitanian=rgb(251,154,133)&lt;br /&gt;
    |wordian=rgb(251,141,118)&lt;br /&gt;
    |roadian=rgb(251,128,105)&lt;br /&gt;
   |cisuralian|early permian|lower permian=rgb(239,88,69)&lt;br /&gt;
    |kungurian=rgb(227,135,118)&lt;br /&gt;
    |artinskian=rgb(227,123,104)&lt;br /&gt;
    |sakmarian=rgb(227,111,92)&lt;br /&gt;
    |asselian=rgb(227,99,80)&lt;br /&gt;
  |carboniferous=rgb(103,165,153)&lt;br /&gt;
   |pennsylvanian|upper carboniferous|late carboniferous=rgb(126,188,198)&lt;br /&gt;
    |upper pennsylvanian|late pennsylvanian=rgb(191,208,186)&lt;br /&gt;
     |gzhelian=rgb(204,212,199)&lt;br /&gt;
     |kasimovian=rgb(191,208,197)&lt;br /&gt;
    |middle pennsylvanian|mid pennsylvanian=rgb(166,199,183)&lt;br /&gt;
     |moscovian=rgb(179,203,185)&lt;br /&gt;
    |lower pennsylvanian|early pennsylvanian=rgb(140,190,180)&lt;br /&gt;
     |bashkirian=rgb(153,194,181)&lt;br /&gt;
   |mississippian|lower carboniferous|early carboniferous=rgb(103,143,102)&lt;br /&gt;
    |upper mississippian|late mississippian=rgb(179,190,108)&lt;br /&gt;
     |serpukhovian=rgb(191,194,107)&lt;br /&gt;
    |middle mississippian=rgb(153,180,108)&lt;br /&gt;
     |visean=rgb(166,185,108)&lt;br /&gt;
    |lower mississippian=rgb(128,171,108)&lt;br /&gt;
     |tournaisian=rgb(140,176,108)&lt;br /&gt;
  |devonian=rgb(203,140,55)&lt;br /&gt;
   |upper devonian|late devonian=rgb(241,225,157)&lt;br /&gt;
    |famennian=rgb(242,237,179)&lt;br /&gt;
    |frasnian=rgb(242,237,173)&lt;br /&gt;
   |middle devonian|mid devonian=rgb(241,200,104)&lt;br /&gt;
    |givetian=rgb(241,225,133)&lt;br /&gt;
    |eifelian=rgb(241,213,118)&lt;br /&gt;
   |lower devonian|early devonian=rgb(229,172,77)&lt;br /&gt;
    |emsian=rgb(229,208,117)&lt;br /&gt;
    |pragian|praghian=rgb(229,196,104)&lt;br /&gt;
    |lochkovian=rgb(229,183,90)&lt;br /&gt;
  |silurian=rgb(179,225,182)&lt;br /&gt;
   |pridoli|latest silurian=rgb(230,245,225)&lt;br /&gt;
   |ludlow|late silurian|upper silurian=rgb(191,230,207)&lt;br /&gt;
    |ludfordian=rgb(217,240,223)&lt;br /&gt;
    |gorstian=rgb(204,236,221)&lt;br /&gt;
   |wenlock|middle silurian|mid silurian=rgb(179,225,194)&lt;br /&gt;
    |homerian=rgb(204,235,209)&lt;br /&gt;
    |sheinwoodian=rgb(191,230,195)&lt;br /&gt;
   |llandovery|lower silurian|early silurian=rgb(153,215,179)&lt;br /&gt;
    |telychian=rgb(191,230,207)&lt;br /&gt;
    |aeronian=rgb(179,225,194)&lt;br /&gt;
    |rhuddanian=rgb(166,220,181)&lt;br /&gt;
  |ordovician=rgb(0,146,112)&lt;br /&gt;
   |upper ordovician|late ordovician=rgb(127,202,147)&lt;br /&gt;
    |hirnantian=rgb(166,219,171)&lt;br /&gt;
    |katian=rgb(153,214,159)&lt;br /&gt;
    |sandbian=rgb(140,208,148)&lt;br /&gt;
   |middle ordovician|mid ordovician=rgb(77,180,126)&lt;br /&gt;
    |darriwilian=rgb(116,198,156)&lt;br /&gt;
    |dapingian=rgb(102,192,146)&lt;br /&gt;
   |lower ordovician|early ordovician|tremadoc|ashgill=rgb(26,157,111)&lt;br /&gt;
    |floian=rgb(65,176,135)&lt;br /&gt;
    |tremadocian=rgb(51,169,126)&lt;br /&gt;
  |cambrian=rgb(127,160,86)&lt;br /&gt;
   |furongian|cambrian series 4|series 4=rgb(179,224,149)&lt;br /&gt;
    |cambrian stage 10|stage 10=rgb(230,245,201)&lt;br /&gt;
    |jiangshanian|cambrian stage 9|stage 9=rgb(217,240,187)&lt;br /&gt;
    |paibian=rgb(204,235,174)&lt;br /&gt;
   |miaolingian|cambrian series 3|series 3|middle cambrian|mid cambrian=rgb(166,207,134)&lt;br /&gt;
    |guzhangian=rgb(204,223,170)&lt;br /&gt;
    |drumian=rgb(191,217,157)&lt;br /&gt;
    |wuliuan|cambrian stage 5|stage 5=rgb(179,212,146)&lt;br /&gt;
   |cambrian series 2|lower cambrian|series 2=rgb(153,192,120)&lt;br /&gt;
    |cambrian stage 4|stage 4=rgb(179,202,142)&lt;br /&gt;
    |cambrian stage 3|stage 3=rgb(166,197,131)&lt;br /&gt;
   |terreneuvian|cambrian series 1|series 1=rgb(140,176,108)&lt;br /&gt;
    |cambrian stage 2|stage 2=rgb(166,186,128)&lt;br /&gt;
    |fortunian|cambrian stage 1|stage 1=rgb(153,181,117)&lt;br /&gt;
|precambrian=rgb(247,67,112)&lt;br /&gt;
 |proterozoic=rgb(247,53,99)&lt;br /&gt;
  |neoproterozoic=rgb(254,179,66)&lt;br /&gt;
   |ediacaran=rgb(254,217,106)&lt;br /&gt;
   |cryogenian=rgb(254,204,92)&lt;br /&gt;
   |tonian=rgb(254,191,78)&lt;br /&gt;
  |mesoproterozoic=rgb(253,180,98)&lt;br /&gt;
   |stenian=rgb(254,217,154)&lt;br /&gt;
   |ectasian=rgb(253,204,138)&lt;br /&gt;
   |calymmian=rgb(253,192,122)&lt;br /&gt;
  |paleoproterozoic|palaeoproterozoic|palæoproterozoic=rgb(247,67,112)&lt;br /&gt;
   |statherian=rgb(248,117,167)&lt;br /&gt;
   |orosirian=rgb(247,104,152)&lt;br /&gt;
   |rhyacian=rgb(247,91,137)&lt;br /&gt;
   |siderian=rgb(247,79,124)&lt;br /&gt;
 |archean=rgb(240,4,127)&lt;br /&gt;
   |neoarchean=rgb(249,155,193)&lt;br /&gt;
   |mesoarchean=rgb(247,104,169)&lt;br /&gt;
   |paleoarchean|palæoarchean|palaeoarchean=rgb(244,68,159)&lt;br /&gt;
   |eoarchean=rgb(218,3,127)&lt;br /&gt;
 |hadean=rgb(174,2,126)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Unused/Unofficial Time Spans--&amp;gt;&lt;br /&gt;
|tertiary=rgb(242,249,2)&lt;br /&gt;
|early cambrian=rgb(159,184,133)&amp;lt;!--Unofficial! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Next_period&amp;diff=629</id>
		<title>Szablon:Next period</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Next_period&amp;diff=629"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1|{{PAGENAME}}}}}}}&lt;br /&gt;
|hadean=archean &lt;br /&gt;
|isuan=swazian&lt;br /&gt;
|archean=proterozoic &lt;br /&gt;
|proterozoic|precambrian=phanerozoic&lt;br /&gt;
&lt;br /&gt;
|eoarchean=palaeoarchean&lt;br /&gt;
|palaeoarchean|paleoarchean=mesoarchean&lt;br /&gt;
|mesoarchean=neoarchean&lt;br /&gt;
|neoarchean=paleoproterozoic &lt;br /&gt;
|paleoproterozoic=mesoproterozoic &lt;br /&gt;
|mesoproterozoic=neoproterozoic &lt;br /&gt;
|neoproterozoic=paleozoic &lt;br /&gt;
|sinian=paleozoic&lt;br /&gt;
|sturtian=vendian&lt;br /&gt;
|paleozoic=mesozoic &lt;br /&gt;
|mesozoic=cenozoic &lt;br /&gt;
&lt;br /&gt;
|siderian=rhyacian&lt;br /&gt;
|rhyacian=orosirian&lt;br /&gt;
|orosirian=statherian&lt;br /&gt;
|statherian=calymmian&lt;br /&gt;
|calymmian=ectasian&lt;br /&gt;
|ectasian=stenian&lt;br /&gt;
|stenian=tonian&lt;br /&gt;
|tonian=cryogenian&lt;br /&gt;
|baikalian=vendian&lt;br /&gt;
|riphean=aimchanian&lt;br /&gt;
|aimchanian=mayanian&lt;br /&gt;
|cryogenian=ediacaran&lt;br /&gt;
|ediacaran=cambrian &lt;br /&gt;
|vendian=cambrian&lt;br /&gt;
|merioneth=ordovician&lt;br /&gt;
|cambrian=ordovician &lt;br /&gt;
|ordovician=silurian &lt;br /&gt;
|silurian=devonian &lt;br /&gt;
|devonian=mississippian&lt;br /&gt;
|carboniferous=permian &lt;br /&gt;
|permian=triassic &lt;br /&gt;
|triassic=jurassic &lt;br /&gt;
|jurassic=cretaceous &lt;br /&gt;
|cretaceous=paleogene &lt;br /&gt;
|paleogene=neogene &lt;br /&gt;
&lt;br /&gt;
|early ediacaran|lower ediacaran=mid ediacaran&lt;br /&gt;
|mid ediacaran|middle ediacaran=late ediacaran&lt;br /&gt;
|terminal ediacaran|late ediacaran=early cambrian&lt;br /&gt;
&lt;br /&gt;
|terreneuvian|tommotian=series 2&lt;br /&gt;
|atdabanian=botomian&lt;br /&gt;
|series 2|cambrian series 2=series 3&lt;br /&gt;
|series 3|cambrian series 3=upper cambrian&lt;br /&gt;
|middle cambrian|mid cambrian|st davids=late cambrian&lt;br /&gt;
|manykaian|nemakit-daldynian=caerfai&lt;br /&gt;
|early cambrian|lower cambrian|caerfai=middle cambrian&lt;br /&gt;
|mayan=nganasanian&lt;br /&gt;
|nganasanian|mindyallan=merioneth&lt;br /&gt;
|late cambrian|upper cambrian|franconian|furongian|mansian=lower ordovician&amp;lt;!--Franconian doesn&#039;t really belong here but this&#039;ll do for a crude approximation--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|early ordovician|lower ordovician|late early ordovician=middle ordovician&lt;br /&gt;
|middle ordovician|mid ordovician = late ordovician&lt;br /&gt;
|late ordovician|upper ordovician=llandovery|llandovery=wenlock&lt;br /&gt;
|wenlock=ludlow&lt;br /&gt;
|ludlow=pridoli&lt;br /&gt;
|pridoli|unnamed pridoli stage=lochkovian&lt;br /&gt;
|early silurian|lower silurian=late silurian &lt;br /&gt;
|late silurian|upper silurian=early devonian&lt;br /&gt;
|early devonian|lower devonian=middle devonian&lt;br /&gt;
|middle devonian|mid devonian=late devonian&lt;br /&gt;
|late devonian|upper devonian=mississippian&lt;br /&gt;
|early carboniferous|lower carboniferous|mississippian=pennsylvanian&lt;br /&gt;
|early mississippian|lower mississippian=middle mississippian&lt;br /&gt;
|middle mississippian|mid mississippian=late mississippian&lt;br /&gt;
|late mississippian|upper mississippian=early pennsylvanian&lt;br /&gt;
|early pennsylvanian|lower pennsylvanian=middle pennsylvanian&lt;br /&gt;
|middle pennsylvanian|mid pennsylvanian=late pennsylvanian&lt;br /&gt;
|late pennsylvanian|upper pennsylvanian=early permian&lt;br /&gt;
|late carboniferous|upper carboniferous|pennsylvanian=permian&lt;br /&gt;
|early permian|lower permian|cisuralian=middle permian&lt;br /&gt;
|middle permian|mid permian|guadalupian=late permian&lt;br /&gt;
|late permian|upper permian|lopingian=early triassic&lt;br /&gt;
|early triassic|lower triassic=middle triassic&lt;br /&gt;
|middle triassic|mid triassic=late triassic&lt;br /&gt;
|late triassic|upper triassic=early jurassic&lt;br /&gt;
|early jurassic|lower jurassic=middle jurassic&lt;br /&gt;
|middle jurassic|mid jurassic=late jurassic&lt;br /&gt;
|late jurassic|upper jurassic=early cretaceous&lt;br /&gt;
|early cretaceous|lower cretaceous=late cretaceous&lt;br /&gt;
|late cretaceous|upper cretaceous|senonian=paleocene&lt;br /&gt;
|paleocene=eocene&lt;br /&gt;
|eocene=oligocene &lt;br /&gt;
|oligocene=miocene &lt;br /&gt;
|miocene=pliocene &lt;br /&gt;
|pliocene=pleistocene&lt;br /&gt;
|pleistocene|rancholabrean=holocene&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- these are duplicated below, and the last one is wrong --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|early paleocene|lower paleocene=middle paleocene&lt;br /&gt;
|middle paleocene|mid paleocene=late paleocene&lt;br /&gt;
|late paleocene|upper paleocene=early eocene&lt;br /&gt;
|early eocene|lower eocene=middle eocene&lt;br /&gt;
|middle eocene|mid eocene=late eocene&lt;br /&gt;
|late eocene|upper eocene=early oligocene&lt;br /&gt;
|early oligocene|lower oligocene=late oligocene&lt;br /&gt;
|late oligocene|upper oligocene=early miocene&lt;br /&gt;
|early miocene|lower miocene=middle miocene&lt;br /&gt;
|middle miocene|mid miocene=late miocene&lt;br /&gt;
|late miocene|upper miocene=early pliocene&lt;br /&gt;
|early pliocene|lower pliocene=late pliocene&lt;br /&gt;
|late pliocene|upper pliocene=holocene&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|fortunian|earliest cambrian=stage 2&lt;br /&gt;
|cambrian stage 2|stage 2=stage 3&lt;br /&gt;
|cambrian stage 3|stage 3=stage 4&lt;br /&gt;
|cambrian stage 4|stage 4|late early cambrian=wuliuan&lt;br /&gt;
|wuliuan|cambrian stage 5|stage 5|early middle cambrian=drumian&lt;br /&gt;
|drumian=guzhangian&lt;br /&gt;
|guzhangian=paibian&lt;br /&gt;
|late middle cambrian|paibian=jiangshanian&lt;br /&gt;
|jiangshanian=stage 10&lt;br /&gt;
|cambrian stage 10|stage 10=tremadocian&lt;br /&gt;
|tremadocian=floian&lt;br /&gt;
|arenig|floian=dapingian&lt;br /&gt;
|ordovician iii|dapingian|early middle ordovician=darriwilian&lt;br /&gt;
|darriwilian=sandbian&lt;br /&gt;
|ordovician v|sandbian=katian&lt;br /&gt;
|early late ordovician=middle late ordovician&lt;br /&gt;
|ordovician vi|katian|middle late ordovician=hirnantian&lt;br /&gt;
|hirnantian=llandovery &lt;br /&gt;
|lochkovian=pragian&lt;br /&gt;
|pragian|praghian=emsian&lt;br /&gt;
|emsian=eifelian&lt;br /&gt;
|eifelian=givetian&lt;br /&gt;
|givetian=frasnian&lt;br /&gt;
|frasnian=famennian&lt;br /&gt;
|famennian=early mississippian&lt;br /&gt;
|namurian=westphalian&lt;br /&gt;
|westphalian=stephanian&lt;br /&gt;
|stephanian=permian&lt;br /&gt;
|asselian=sakmarian&lt;br /&gt;
|sakmarian=artinskian&lt;br /&gt;
|artinskian=kungurian&lt;br /&gt;
|kungurian=roadian&lt;br /&gt;
|roadian|ufimian=wordian&lt;br /&gt;
|wordian=capitanian&lt;br /&gt;
|capitanian=wuchiapingian&lt;br /&gt;
|wuchiapingian|longtanian=changhsingian&lt;br /&gt;
|changhsingian=induan&lt;br /&gt;
|induan=olenekian&lt;br /&gt;
|olenekian|spathian=anisian&lt;br /&gt;
|hydaspian=pelsonian&lt;br /&gt;
|pelsonian=illirian&lt;br /&gt;
|anisian|illirian=ladinian&lt;br /&gt;
|lower ladinian=middle ladinian&lt;br /&gt;
|middle ladinian=upper ladinian&lt;br /&gt;
|ladinian|upper ladinian=carnian&lt;br /&gt;
|carnian=norian&lt;br /&gt;
|norian=rhaetian&lt;br /&gt;
|rhaetian=hettangian&lt;br /&gt;
|hettangian=sinemurian&lt;br /&gt;
|sinemurian=pliensbachian&lt;br /&gt;
|pliensbachian=toarcian&lt;br /&gt;
|toarcian=aalenian&lt;br /&gt;
|aalenian=bajocian&lt;br /&gt;
|bajocian=bathonian&lt;br /&gt;
|bathonian=callovian&lt;br /&gt;
|callovian=oxfordian&lt;br /&gt;
|oxfordian=kimmeridgian&lt;br /&gt;
|kimmeridgian=tithonian&lt;br /&gt;
|tithonian=berriasian&lt;br /&gt;
|berriasian=valanginian&lt;br /&gt;
|valanginian=hauterivian&lt;br /&gt;
|hauterivian|neocomian=barremian&lt;br /&gt;
|barremian=aptian&lt;br /&gt;
|aptian=albian&lt;br /&gt;
|albian=cenomanian&lt;br /&gt;
|cenomanian=turonian&lt;br /&gt;
|turonian|gallic=coniacian&lt;br /&gt;
|coniacian=santonian&lt;br /&gt;
|santonian=campanian&lt;br /&gt;
|campanian=maastrichtian&lt;br /&gt;
|maastrichtian=early paleocene &lt;br /&gt;
|early paleocene|lower paleocene=middle paleocene &lt;br /&gt;
|middle paleocene|mid paleocene=late paleocene &lt;br /&gt;
|late paleocene|upper paleocene=early eocene &lt;br /&gt;
|early eocene|lower eocene=middle eocene &lt;br /&gt;
|middle eocene|mid eocene=late eocene &lt;br /&gt;
|late eocene|upper eocene=early oligocene &lt;br /&gt;
|early oligocene|lower oligocene=late oligocene &lt;br /&gt;
|late oligocene|upper oligocene=early miocene &lt;br /&gt;
|early miocene|lower miocene=middle miocene &lt;br /&gt;
|middle miocene|mid miocene=late miocene &lt;br /&gt;
|late miocene|upper miocene=early pliocene &lt;br /&gt;
|early pliocene|lower pliocene=late pliocene &lt;br /&gt;
|late pliocene|upper pliocene=early pleistocene&lt;br /&gt;
|early pleistocene|lower pleistocene=middle pleistocene&lt;br /&gt;
|middle pleistocene|mid pleistocene=late pleistocene&lt;br /&gt;
|late pleistocene=early holocene&lt;br /&gt;
|early holocene|lower holocene=middle holocene&lt;br /&gt;
|middle holocene=late holocene&lt;br /&gt;
&lt;br /&gt;
|rhuddanian=aeronian&lt;br /&gt;
|aeronian=telychian&lt;br /&gt;
|telychian=sheinwoodian&lt;br /&gt;
|sheinwoodian=homerian&lt;br /&gt;
|homerian=gorstian&lt;br /&gt;
|gorstian=ludfordian&lt;br /&gt;
|ludfordian=pridoli&lt;br /&gt;
&lt;br /&gt;
|tournaisian=visean&lt;br /&gt;
|visean=serpukhovian&lt;br /&gt;
|serpukhovian=bashkirian&lt;br /&gt;
|bashkirian=moscovian&lt;br /&gt;
|moscovian=kasimovian&lt;br /&gt;
|kasimovian=gzhelian&lt;br /&gt;
|gzhelian=asselian&lt;br /&gt;
&lt;br /&gt;
|puercan=torrejonian&lt;br /&gt;
|torrejonian=tiffanian&lt;br /&gt;
|tiffanian=clarkforkian&lt;br /&gt;
|clarkforkian=wasatchian&lt;br /&gt;
|wasatchian=bridgerian&lt;br /&gt;
|bridgerian=uintan&lt;br /&gt;
|uintan=duchesnean&lt;br /&gt;
|duchesnean=chadronian&lt;br /&gt;
|chadronian=orellan&lt;br /&gt;
|orellan=whitneyan&lt;br /&gt;
|whitneyan=arikareean&lt;br /&gt;
|arikareean=hemingfordian&lt;br /&gt;
|hemingfordian=barstovian&lt;br /&gt;
|barstovian=clarendonian&lt;br /&gt;
|clarendonian=hemphillian&lt;br /&gt;
|hemphillian=blancan&lt;br /&gt;
|blancan=irvingtonian&lt;br /&gt;
|irvingtonian=rancholabrean&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|danian=selandian&lt;br /&gt;
|selandian=thanetian&lt;br /&gt;
|thanetian=ypresian&lt;br /&gt;
|ypresian=lutetian&lt;br /&gt;
|mp 10=mp 11&lt;br /&gt;
|lutetian|mp 11=bartonian&lt;br /&gt;
|bartonian=priabonian&lt;br /&gt;
|priabonian=rupelian&lt;br /&gt;
|rupelian=chattian&lt;br /&gt;
|chattian=aquitanian&lt;br /&gt;
|aquitanian=burdigalian&lt;br /&gt;
|burdigalian=langhian&lt;br /&gt;
|langhian=serravallian&lt;br /&gt;
|serravallian=tortonian&lt;br /&gt;
|tortonian=messinian&lt;br /&gt;
|messinian=zanclean&lt;br /&gt;
|zanclean=piacenzian&lt;br /&gt;
|piacenzian=gelasian&lt;br /&gt;
|gelasian=calabrian&lt;br /&gt;
|calabrian=chibanian&lt;br /&gt;
|chibanian|ionian=late pleistocene&lt;br /&gt;
|tarantian=greenlandian&lt;br /&gt;
|greenlandian=northgrippian&lt;br /&gt;
|northgrippian=meghalayan&lt;br /&gt;
&lt;br /&gt;
|tertiary=quaternary&lt;br /&gt;
|neogene=quaternary&lt;br /&gt;
|late holocene|upper holocene|meghalayan|holocene|quaternary|cenozoic|phanerozoic|now|recent|present=now&lt;br /&gt;
|{{{1|{{PAGENAME}} }}} }}&amp;lt;noinclude&amp;gt;{{template doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Smaller&amp;diff=627</id>
		<title>Szablon:Smaller</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Smaller&amp;diff=627"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Small]]&lt;br /&gt;
&lt;br /&gt;
{{r from merge}}&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Small&amp;diff=625</id>
		<title>Szablon:Small</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Small&amp;diff=625"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;{{{1}}}&amp;lt;/span&amp;gt;&amp;lt;includeonly&amp;gt;{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&amp;lt;!--Categories and interwikis go in the /doc sub-page.--&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Template_link_general&amp;diff=623</id>
		<title>Moduł:Template link general</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Template_link_general&amp;diff=623"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This implements Template:Tlg&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Is a string non-empty?&lt;br /&gt;
local function _ne(s) &lt;br /&gt;
	return s ~= nil and s ~= &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local nw = mw.text.nowiki&lt;br /&gt;
&lt;br /&gt;
local function addTemplate(s)&lt;br /&gt;
	local i, _ = s:find(&#039;:&#039;, 1, true)&lt;br /&gt;
	if i == nil then&lt;br /&gt;
		return &#039;Template:&#039; .. s&lt;br /&gt;
	end&lt;br /&gt;
	local ns = s:sub(1, i - 1)&lt;br /&gt;
	if ns == &#039;&#039; or mw.site.namespaces[ns] then&lt;br /&gt;
		return s&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;Template:&#039; .. s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function trimTemplate(s)&lt;br /&gt;
	local needle = &#039;template:&#039;&lt;br /&gt;
	if s:sub(1, needle:len()):lower() == needle then&lt;br /&gt;
		return s:sub(needle:len() + 1)	&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 linkTitle(args)&lt;br /&gt;
	if _ne(args.nolink) then&lt;br /&gt;
		return args[&#039;1&#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local titleObj&lt;br /&gt;
	local titlePart = &#039;[[&#039;&lt;br /&gt;
	if args[&#039;1&#039;] then&lt;br /&gt;
		-- This handles :Page and other NS&lt;br /&gt;
		titleObj = mw.title.new(args[&#039;1&#039;], &#039;Template&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		titleObj = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or&lt;br /&gt;
				addTemplate(args[&#039;1&#039;]))&lt;br /&gt;
	&lt;br /&gt;
	local textPart = args.alttext&lt;br /&gt;
	if not _ne(textPart) then&lt;br /&gt;
		if titleObj ~= nil then&lt;br /&gt;
			textPart = titleObj:inNamespace(&amp;quot;Template&amp;quot;) and args[&#039;1&#039;] or titleObj.fullText&lt;br /&gt;
		else&lt;br /&gt;
			-- redlink&lt;br /&gt;
			textPart = args[&#039;1&#039;]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if _ne(args.subst) then&lt;br /&gt;
		-- HACK: the ns thing above is probably broken&lt;br /&gt;
		textPart = &#039;subst:&#039; .. textPart&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if _ne(args.brace) then&lt;br /&gt;
		textPart = nw(&#039;{{&#039;) .. textPart .. nw(&#039;}}&#039;)&lt;br /&gt;
	elseif _ne(args.braceinside) then&lt;br /&gt;
		textPart = nw(&#039;{&#039;) .. textPart .. nw(&#039;}&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	titlePart = titlePart .. &#039;|&#039; .. textPart .. &#039;]]&#039;&lt;br /&gt;
	if _ne(args.braceinside) then&lt;br /&gt;
		titlePart = nw(&#039;{&#039;) .. titlePart .. nw(&#039;}&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return titlePart&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = false&lt;br /&gt;
	})&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 bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)&lt;br /&gt;
	local italic = _ne(args.italic) or _ne(args.italics)&lt;br /&gt;
	local dontBrace = _ne(args.brace) or _ne(args.braceinside)&lt;br /&gt;
	local code = _ne(args.code) or _ne(args.tt)&lt;br /&gt;
	local show_result = _ne(args._show_result)&lt;br /&gt;
	local expand = _ne(args._expand)&lt;br /&gt;
	&lt;br /&gt;
	-- Build the link part&lt;br /&gt;
	local titlePart = linkTitle(args)&lt;br /&gt;
	if bold then titlePart = &amp;quot;&#039;&#039;&#039;&amp;quot; .. titlePart .. &amp;quot;&#039;&#039;&#039;&amp;quot; end&lt;br /&gt;
	if _ne(args.nowrapname) then titlePart = &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039; .. titlePart .. &#039;&amp;lt;/span&amp;gt;&#039; end&lt;br /&gt;
	&lt;br /&gt;
	-- Build the arguments&lt;br /&gt;
	local textPart = &amp;quot;&amp;quot;&lt;br /&gt;
	local textPartBuffer = &amp;quot;&amp;amp;#124;&amp;quot;&lt;br /&gt;
	local codeArguments = {}&lt;br /&gt;
	local codeArgumentsString = &amp;quot;&amp;quot;&lt;br /&gt;
	local i = 2&lt;br /&gt;
	local j = 1&lt;br /&gt;
	while args[i] do&lt;br /&gt;
		local val = args[i]&lt;br /&gt;
		if val ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			if _ne(args.nowiki) then&lt;br /&gt;
				-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will&lt;br /&gt;
				-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up&lt;br /&gt;
				val = nw(mw.text.unstripNoWiki(val))&lt;br /&gt;
			end&lt;br /&gt;
			local k, v = string.match(val, &amp;quot;(.*)=(.*)&amp;quot;)&lt;br /&gt;
			if not k then&lt;br /&gt;
				codeArguments[j] = val&lt;br /&gt;
				j = j + 1&lt;br /&gt;
			else&lt;br /&gt;
				codeArguments[k] = v&lt;br /&gt;
			end&lt;br /&gt;
			codeArgumentsString = codeArgumentsString .. textPartBuffer .. val&lt;br /&gt;
			if italic then&lt;br /&gt;
				val = &#039;&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&#039; .. val .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
			end&lt;br /&gt;
			textPart = textPart .. textPartBuffer .. val&lt;br /&gt;
		end&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- final wrap&lt;br /&gt;
	local ret = titlePart .. textPart&lt;br /&gt;
	if not dontBrace then ret = nw(&#039;{{&#039;) .. ret .. nw(&#039;}}&#039;) end&lt;br /&gt;
	if _ne(args.a) then ret = nw(&#039;*&#039;) .. &#039;&amp;amp;nbsp;&#039; .. ret end&lt;br /&gt;
	if _ne(args.kbd) then ret = &#039;&amp;lt;kbd&amp;gt;&#039; .. ret .. &#039;&amp;lt;/kbd&amp;gt;&#039; end&lt;br /&gt;
	if code then&lt;br /&gt;
		ret = &#039;&amp;lt;code&amp;gt;&#039; .. ret .. &#039;&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
	elseif _ne(args.plaincode) then&lt;br /&gt;
		ret = &#039;&amp;lt;code style=&amp;quot;border:none;background:transparent;&amp;quot;&amp;gt;&#039; .. ret .. &#039;&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if _ne(args.nowrap) then ret = &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039; .. ret .. &#039;&amp;lt;/span&amp;gt;&#039; end&lt;br /&gt;
	&lt;br /&gt;
	--[[ Wrap as html?? &lt;br /&gt;
	local span = mw.html.create(&#039;span&#039;)&lt;br /&gt;
	span:wikitext(ret)&lt;br /&gt;
	--]]&lt;br /&gt;
	if _ne(args.debug) then ret = ret .. &#039;\n&amp;lt;pre&amp;gt;&#039; .. mw.text.encode(mw.dumpObject(args)) .. &#039;&amp;lt;/pre&amp;gt;&#039; end&lt;br /&gt;
&lt;br /&gt;
	if show_result then&lt;br /&gt;
		local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}&lt;br /&gt;
		ret = ret .. &amp;quot; → &amp;quot; .. result&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if expand then&lt;br /&gt;
		local query = mw.text.encode(&#039;{{&#039; .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, &amp;quot;|&amp;quot;) .. &#039;}}&#039;)&lt;br /&gt;
		local url = mw.uri.fullUrl(&#039;special:ExpandTemplates&#039;, &#039;wpInput=&#039; .. query)&lt;br /&gt;
		mw.log()&lt;br /&gt;
		ret = ret .. &amp;quot; [&amp;quot; .. tostring(url) .. &amp;quot;]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:MultiReplace&amp;diff=621</id>
		<title>Moduł:MultiReplace</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:MultiReplace&amp;diff=621"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function MultiReplace(args)&lt;br /&gt;
	local input = args[1] or &amp;quot;{{{1}}}&amp;quot;&lt;br /&gt;
	local plain = args.plain == &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	local i = 1&lt;br /&gt;
	local changeList = {}&lt;br /&gt;
	while args[i * 2] do&lt;br /&gt;
		local change = {pattern = args[i * 2], repl = args[i * 2 + 1]}&lt;br /&gt;
		if not change.repl then&lt;br /&gt;
			return require(&#039;Module:Error&#039;).error{&lt;br /&gt;
				&#039;MultiReplace: Unpaired argument: &amp;lt;code&amp;gt;&#039; .. (i * 2) .. &#039; = &#039; .. mw.text.nowiki(change.pattern) .. &#039;&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
		changeList[i] = change&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local matchList = {}&lt;br /&gt;
	local pos = 1&lt;br /&gt;
	local len = mw.ustring.len(input)&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
	while pos &amp;lt;= len do&lt;br /&gt;
		local bestStart = len + 1&lt;br /&gt;
		local bestStop = len&lt;br /&gt;
		local bestChange&lt;br /&gt;
		for _, change in ipairs(changeList) do&lt;br /&gt;
			local start, stop = mw.ustring.find(input, change.pattern, pos, plain)&lt;br /&gt;
			if start and (start &amp;lt; bestStart) then&lt;br /&gt;
				bestStart = start&lt;br /&gt;
				bestStop = stop&lt;br /&gt;
				bestChange = change&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. mw.ustring.sub(input, pos, bestStart - 1)&lt;br /&gt;
		if bestChange then&lt;br /&gt;
			local fragment = mw.ustring.sub(input, bestStart, bestStop)&lt;br /&gt;
			result = result .. (plain and bestChange.repl or&lt;br /&gt;
				mw.ustring.gsub(fragment, bestChange.pattern, bestChange.repl, 1))&lt;br /&gt;
		end&lt;br /&gt;
		pos = bestStop + 1&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame, ...)&lt;br /&gt;
	local args =&lt;br /&gt;
		type(frame) ~= &#039;table&#039; and {frame, ...} or&lt;br /&gt;
		type(frame.args) ~= &#039;table&#039; and frame or&lt;br /&gt;
		frame.args[1] and frame.args or&lt;br /&gt;
		frame:getParent().args&lt;br /&gt;
	return MultiReplace(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Module_rating&amp;diff=619</id>
		<title>Szablon:Module rating</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Module_rating&amp;diff=619"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|doc|&amp;lt;!--do not show protection level of the module on the doc page, use the second and optionally third parameter if the doc page is also protected --&amp;gt;{{#if:{{{2|}}}|{{Pp|{{{2}}}|action={{{3|}}}}}}}|{{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=|alt=Pre-alpha]]&lt;br /&gt;
   | alpha | a                 = [[File:Alpha lowercase.svg|26x26px|link=|alt=Alpha]]&lt;br /&gt;
   | beta | b                  = [[File:Greek lc beta.svg|40x40px|link=|alt=Beta]]&lt;br /&gt;
   | release | r | general | g = [[File:Green check.svg|40x40px|link=|alt=Ready for use]]&lt;br /&gt;
   | protected | protect | p   = [[File:{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=Semi|extendedconfirmed=Extended|accountcreator|templateeditor=Template|#default=Full}}-protection-shackle.svg|40x40px|link=|alt=Protected]]&lt;br /&gt;
   | semiprotected | semiprotect | semi =[[File:Semi-protection-shackle.svg|40x40px|link=|alt=Semi-protected]]&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 relatively 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 [[Wikipedia:Template sandbox and test cases|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 [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[Wikipedia:Protection policy|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;
   | semiprotected | semiprotect | semi   = 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 [[Wikipedia:Substitution|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:SEMI|semi-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.}} [[Category:Pages with templates in the wrong namespace]]|demospace={{{demospace|&amp;lt;noinclude&amp;gt;module&amp;lt;/noinclude&amp;gt;}}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{module rating|release|nocat=true|demospace=module}}&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Module_other&amp;diff=617</id>
		<title>Szablon:Module other</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Module_other&amp;diff=617"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Ombox&amp;diff=615</id>
		<title>Szablon:Ombox</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Ombox&amp;diff=615"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Message box|ombox}}&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>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline/doc&amp;diff=613</id>
		<title>Szablon:Graphical timeline/doc</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline/doc&amp;diff=613"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{nutshell|&lt;br /&gt;
*This template constructs a vertically arranged timeline. The editor defines 2D rectangles (bars) and optional annotations (notes).&lt;br /&gt;
*The header is customizable. A scale appears on the left, and annotations appear on the right. An optional legend appears at the foot.&lt;br /&gt;
*Has built-in compatibility for [[Geological time scale|geological divisions]].&lt;br /&gt;
*Use {{tl|Include timeline}} in the main article for assisted generation.&lt;br /&gt;
*Type &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Graphical timeline|help=on}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; into a page, then press preview for a ready-to-go template.&lt;br /&gt;
*Check that complicated timelines display as you expect in both [[internet explorer|IE]] and [[Firefox]].}}&lt;br /&gt;
{{Lua|Module:Graphical timeline}}&lt;br /&gt;
&lt;br /&gt;
==The easy way==&lt;br /&gt;
Type {{tlx|include timeline}} in your article, press preview, and follow the link generated. You&#039;ll be presented with a ready-to-go template; once this is finished, return to your article, and { {include timeline} } will display your timeline.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
As of May 2021, the template has been converted to Lua and is now implemented at [[Module:Graphical timeline]]. New features include:&lt;br /&gt;
* Unlimited numbered parameters --- use note435, note34234532, whatever is convenient&lt;br /&gt;
* HTML size, memory, and run-time are all proportional to the number of items, not the number of potential items&lt;br /&gt;
* Incorrect HTML and fragile CSS now cleaned up&lt;br /&gt;
* Annotation text now automatically aligned with arrows ({{para|disable-arrow-align|true}} to turn off)&lt;br /&gt;
* Box text now automatically centered ({{para|disable-box-align|true}} to turn off)&lt;br /&gt;
&lt;br /&gt;
==Template function==&lt;br /&gt;
This template provides an intuitive, user-friendly and flexible way to insert timelines into articles. It&#039;s designed to require the minimum number of variables, and to generate an HTML table.&lt;br /&gt;
&lt;br /&gt;
==Why use this template?==&lt;br /&gt;
The alternative to this template is [[m:EasyTimeline]], using the &amp;lt;nowiki&amp;gt;&amp;lt;template&amp;gt;&amp;lt;/nowiki&amp;gt; syntax. EasyTimeline has the following weaknesses:&lt;br /&gt;
&lt;br /&gt;
* Pixelated image produced, which looks different and increases page load time&lt;br /&gt;
* Long set-up time – taking 30 minutes plus even when you know what you are doing&lt;br /&gt;
* Impenetrable code requiring precise syntax&lt;br /&gt;
* Difficult to place bars exactly where you want them&lt;br /&gt;
* Changing minimum dates and sizes requires modification in many places&lt;br /&gt;
* Everything must be specified – nothing is automatic&lt;br /&gt;
* It is not scalable – it does not enlarge with text size.&lt;br /&gt;
&lt;br /&gt;
==Using the template==&lt;br /&gt;
&lt;br /&gt;
===Where to use it===&lt;br /&gt;
Whilst short timelines can be inserted directly into the article, some editors complain that long, complex timelines break up the flow of the page and make editing difficult. Therefore, you may want to use {{tl|Include timeline}} to host the timeline code on a separate page, which will be automatically included.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You can set the switch &amp;lt;code&amp;gt;|help=on&amp;lt;/code&amp;gt; in the template to produce some quick pointers.&amp;lt;br&amp;gt; When you are getting started, you might want to use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Graphical timeline|help=on}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to generate a ready-made, empty template – or type &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:Graphical timeline/blank}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; into a sandbox page, save the page, and edit the resulting code. Hopefully, the parameter names are pretty self-explanatory.&lt;br /&gt;
&lt;br /&gt;
===What numbers mean===&lt;br /&gt;
Numeric values are by default in units of [[em (typography)|em]], that is, the height and width of a capital M.&lt;br /&gt;
&lt;br /&gt;
The exception to this is the left and right parameters of a bar, which are set using fractional coordinates. That is to say, the code&lt;br /&gt;
 |bar1-right=0.5 &lt;br /&gt;
 |bar2-left=0.666&lt;br /&gt;
 |bar3-left=0.5&lt;br /&gt;
 |bar3-right=0.666&lt;br /&gt;
...will produce bar1 covering the left half of the area, bar2 covering the right-most third, and bar3 in between them. Further, for operational reasons, the height-units are always used to generate border widths.&lt;br /&gt;
&lt;br /&gt;
===Bar borders===&lt;br /&gt;
Borders appear only on the top and bottom of any given bar. Unfortunately, this cannot be changed – to have a border at the top or bottom only of a bar, you should create a separate bar to overlay the end. &lt;br /&gt;
&lt;br /&gt;
Border style can be set to the [[CSS]] standards of &amp;lt;code&amp;gt;solid, dotted, dashed, double, groove, ridge, inset&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;outset&amp;lt;/code&amp;gt;. Width is in the same units as height, and if none is specified 0.1 to 0.2 is a suitable hairline value.&lt;br /&gt;
&lt;br /&gt;
===Blank parameters===&lt;br /&gt;
Leaving a parameter blank is NOT the same as not specifying it – it will override the template&#039;s default value. Be sure to remove any lines you do not specify.&lt;br /&gt;
&lt;br /&gt;
===Geological periods===&lt;br /&gt;
To draw a geological period, use the syntax |period3=Cenozoic, with |period3-left=0.1 as usual.  The template will then calculate the beginning, end and correct color of the bar.  For an example, see {{tiw|Cenozoic graphical timeline}}&lt;br /&gt;
&lt;br /&gt;
===Considerations===&lt;br /&gt;
&lt;br /&gt;
====Browsers====&lt;br /&gt;
Unfortunately, different browsers have different ways of dealing with lines of text that overflow their container – some stretch the container whilst others wrap the text. This means it&#039;s probably worth checking your finished timeline in at least [[Internet Explorer|IE]] and [[Mozilla Firefox|Firefox]] if you are making a particularly complex timeline.&lt;br /&gt;
&lt;br /&gt;
====Colors====&lt;br /&gt;
If you are setting colors using html values that look like &amp;lt;code&amp;gt;#e0b539&amp;lt;/code&amp;gt;, do consider that some older monitors, and many projectors, cannot display some colours. Sticking to [[Web colors#Web-safe colors|Web-safe colors]] ensures maximum compatibility, which is often appreciated; i.e. multiples of &amp;lt;code&amp;gt;33&amp;lt;/code&amp;gt;, e.g. &amp;lt;code&amp;gt;#ff99cc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;#03C&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Easy editing====&lt;br /&gt;
If you create a timeline on a template page, do use the &amp;lt;code&amp;gt; | link-to= &amp;lt;/code&amp;gt; parameter. Specify the page name without &amp;lt;code&amp;gt;Template:&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;My graphical timeline&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;Template:My graphical timeline&amp;lt;/code&amp;gt;), and &amp;quot;view&amp;quot;, &amp;quot;talk&amp;quot;, &amp;quot;edit&amp;quot; links will appear.&lt;br /&gt;
&lt;br /&gt;
==Parameter list==&lt;br /&gt;
&lt;br /&gt;
The list may be long, but do not be daunted – you only need to use a couple, and the rest give you incredible flexibility!&lt;br /&gt;
&lt;br /&gt;
Replace any instance of # with a number.&lt;br /&gt;
&lt;br /&gt;
To and from are mandatory, all other parameters are optional.&lt;br /&gt;
&lt;br /&gt;
Either spelling of &#039;&#039;colour&#039;&#039;/&#039;&#039;color&#039;&#039; is always acceptable.&lt;br /&gt;
&lt;br /&gt;
===General parameters===&lt;br /&gt;
{{Graphical timeline|&lt;br /&gt;
|from=-221&lt;br /&gt;
|to=1912&lt;br /&gt;
|instance-id=42&lt;br /&gt;
|height=24&lt;br /&gt;
|title=General parameters&lt;br /&gt;
|title-colour=lightgray&lt;br /&gt;
|plot-colour=darkgray&lt;br /&gt;
|collapsible=yes&lt;br /&gt;
|state=expanded&lt;br /&gt;
}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+Timeline parameters&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default&lt;br /&gt;
|-&lt;br /&gt;
| from&amp;lt;br/&amp;gt;to&lt;br /&gt;
| Bounds the start &amp;amp; end of the timeline. May be negative.&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| instance-id&lt;br /&gt;
| Differentiates this timeline from others that appear on the page&lt;br /&gt;
| {{maybe|&#039;&#039;Sometimes required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| title&lt;br /&gt;
| Writes the title bar&lt;br /&gt;
| &#039;&#039;No title&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| title-colour&lt;br /&gt;
| Colours the title bar&#039;s background&lt;br /&gt;
| &#039;&#039;No colour&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| plot-colour&lt;br /&gt;
| Colours the background for the timeline space&lt;br /&gt;
| &#039;&#039;No colour&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| unit&lt;br /&gt;
| Defines the unit of (graphical) measurement&lt;br /&gt;
| &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| height-unit&amp;lt;br/&amp;gt;width-unit&lt;br /&gt;
| Overrides either the height or width unit&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&#039;&#039;unit&#039;&#039;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| height&amp;lt;br/&amp;gt;width&lt;br /&gt;
| Sizes the timeline container&lt;br /&gt;
| &amp;lt;code&amp;gt;36&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| disable-arrow-align&lt;br /&gt;
| If true (or equivalent), enables text in notes to be nudged away from arrow&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| disable-box-align&lt;br /&gt;
| If true (or equivalent), enables text in bars to be nudged away from center&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| collapsible&lt;br /&gt;
| If true (or equivalent), enables infobox to be collapsed&lt;br /&gt;
| false&lt;br /&gt;
|-&lt;br /&gt;
| state&lt;br /&gt;
| Use {{para|state|expanded}} to force the box to the expanded state, or {{para|state|collapsed}} to hide it.&lt;br /&gt;
| expanded&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Bars===&lt;br /&gt;
Bars are sizable coloured rectangles with a text label in the middle.&lt;br /&gt;
&lt;br /&gt;
Bar parameters are prefixed with &amp;lt;code&amp;gt;bar#&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is the bar&#039;s ID. The number doesn&#039;t imply any particular order, but it does have to be unique.&lt;br /&gt;
{{Graphical timeline|&lt;br /&gt;
|from=-221&lt;br /&gt;
|to=1912&lt;br /&gt;
|instance-id=2&lt;br /&gt;
|height=24&lt;br /&gt;
|bar1-from=-221&lt;br /&gt;
|bar1-to=-206&lt;br /&gt;
|bar1-colour=burlywood&lt;br /&gt;
|bar1-text=&#039;&#039;bar1&#039;&#039;&lt;br /&gt;
|bar2-from=-206&lt;br /&gt;
|bar2-to=581&lt;br /&gt;
|bar2-colour=wheat&lt;br /&gt;
|bar2-text=&#039;&#039;bar2&#039;&#039;&lt;br /&gt;
|bar3-from=581&lt;br /&gt;
|bar3-to=618&lt;br /&gt;
|bar3-colour=burlywood&lt;br /&gt;
|bar3-text=&#039;&#039;bar3&#039;&#039;&lt;br /&gt;
|bar4-from=618&lt;br /&gt;
|bar4-to=907&lt;br /&gt;
|bar4-colour=wheat&lt;br /&gt;
|bar4-text=&#039;&#039;bar4&#039;&#039;&lt;br /&gt;
|bar5-from=907&lt;br /&gt;
|bar5-to=1279&lt;br /&gt;
|bar5-colour=burlywood&lt;br /&gt;
|bar5-text=&#039;&#039;bar5&#039;&#039;&lt;br /&gt;
|bar6-from=1279&lt;br /&gt;
|bar6-to=1368&lt;br /&gt;
|bar6-colour=wheat&lt;br /&gt;
|bar6-text=&#039;&#039;bar6&#039;&#039;&lt;br /&gt;
|bar7-from=1368&lt;br /&gt;
|bar7-to=1644&lt;br /&gt;
|bar7-colour=burlywood&lt;br /&gt;
|bar7-text=&#039;&#039;bar7&#039;&#039;&lt;br /&gt;
|bar8-from=1644&lt;br /&gt;
|bar8-to=1912&lt;br /&gt;
|bar8-colour=wheat&lt;br /&gt;
|bar8-text=&#039;&#039;bar8&#039;&#039;&lt;br /&gt;
|bar9-from=916&lt;br /&gt;
|bar9-to=1125&lt;br /&gt;
|bar9-left=.66&lt;br /&gt;
|bar9-colour=blanchedalmond&lt;br /&gt;
|bar9-text=&#039;&#039;bar9&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default&lt;br /&gt;
|- &lt;br /&gt;
| -colour (-color)&lt;br /&gt;
| Sets the background colour&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|- &lt;br /&gt;
| -from&amp;lt;br/&amp;gt;-to&lt;br /&gt;
| Positions the top &amp;amp; bottom edges along the timeline&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|- &lt;br /&gt;
| -left&amp;lt;br/&amp;gt;-right&lt;br /&gt;
| Positions the left &amp;amp; right edges, as a fraction of the width (&amp;lt;code&amp;gt;0.0 to 1.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -border-width&amp;lt;br/&amp;gt;-border-colour&amp;lt;br/&amp;gt;-border-style&lt;br /&gt;
| Stylises the top &amp;amp; bottom borders, simultaneously; styles are &amp;lt;code&amp;gt;solid dotted dashed double groove ridge inset outset&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;No border&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| -text&lt;br /&gt;
| Writes the central label&lt;br /&gt;
| &#039;&#039;No text&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| -font-size&lt;br /&gt;
| Sizes the label&lt;br /&gt;
| &amp;lt;code&amp;gt;90%&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| -nudge-down&amp;lt;br/&amp;gt;-nudge-up&amp;lt;br/&amp;gt;-nudge-right&amp;lt;br/&amp;gt;-nudge-left&lt;br /&gt;
| Nudges the label around (Units are in [[em (typography)|em]]s). Only enabled if {{para|disable-box-align|1}}&lt;br /&gt;
| &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|+ Bar parameters&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Geological periods===&lt;br /&gt;
Gets data to create a bar with default values for &amp;lt;code&amp;gt;-colour, -from, -to, -text&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Period parameters are prefixed with &amp;lt;code&amp;gt;period#&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is the period&#039;s unique number.&lt;br /&gt;
{{Graphical timeline|&lt;br /&gt;
|from=-{{Period start|Paleozoic}}&lt;br /&gt;
|to=-{{Period end|Paleozoic}}&lt;br /&gt;
|instance-id=3&lt;br /&gt;
|height=24&lt;br /&gt;
|period1=Permian&lt;br /&gt;
|period2=Carboniferous&lt;br /&gt;
|period3=Devonian&lt;br /&gt;
|period4=Silurian&lt;br /&gt;
|period5=Ordovician&lt;br /&gt;
|period6=Cambrian&lt;br /&gt;
}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;null&#039;&#039;&lt;br /&gt;
| Names the geological division (e.g. &amp;lt;code&amp;gt;period1=Phanerozoic&amp;lt;/code&amp;gt;)&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| -colour (-color)&lt;br /&gt;
| Overrides the division&#039;s colour&lt;br /&gt;
| &amp;lt;code&amp;gt;{{tlp|Period color|&amp;lt;&#039;&#039;period&#039;&#039;&amp;gt;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -text&lt;br /&gt;
| Overrides the division&#039;s label&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&#039;&#039;period&#039;&#039;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| -from&amp;lt;br/&amp;gt;-to&lt;br /&gt;
| Overrides the division&#039;s start &amp;amp; end times&lt;br /&gt;
| &amp;lt;code&amp;gt;-{{tlp|Period start|&amp;lt;&#039;&#039;period&#039;&#039;&amp;gt;}}&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;-{{tlp|Period end|&amp;lt;&#039;&#039;period&#039;&#039;&amp;gt;}}&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| -left&amp;lt;br/&amp;gt;-right&lt;br /&gt;
| Positions the left &amp;amp; right edges, as a fraction of the width (&amp;lt;code&amp;gt;0.0 to 1.0&amp;lt;/code&amp;gt;)&lt;br /&gt;
| &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -border-width&amp;lt;br/&amp;gt;-border-colour&amp;lt;br/&amp;gt;-border-style&lt;br /&gt;
| Stylises the top &amp;amp; bottom borders, simultaneously; styles are &amp;lt;code&amp;gt;solid dotted dashed double groove ridge inset outset&amp;lt;/code&amp;gt;&lt;br /&gt;
| &#039;&#039;No border&#039;&#039;&lt;br /&gt;
|- &lt;br /&gt;
| -font-size&lt;br /&gt;
| Sizes the central label&lt;br /&gt;
| &amp;lt;code&amp;gt;90%&amp;lt;/code&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| -nudge-down&amp;lt;br/&amp;gt;-nudge-up&amp;lt;br/&amp;gt;-nudge-right&amp;lt;br/&amp;gt;-nudge-left&lt;br /&gt;
| Nudges the label around (Units are in [[em (typography)|em]]s). Only enabled if {{para|disable-box-align|1}}&lt;br /&gt;
| &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|+ Period parameters&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Legend===&lt;br /&gt;
Legend entries coordinate with bars (i.e. &amp;lt;code&amp;gt;legend1&amp;lt;/code&amp;gt; matches the colour of &amp;lt;code&amp;gt;bar1&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
{{Graphical timeline|&lt;br /&gt;
|from=-{{Period start|Devonian}}&lt;br /&gt;
|to=-{{Period end|Permian}}&lt;br /&gt;
|instance-id=6&lt;br /&gt;
|height=24&lt;br /&gt;
|bar1-colour=burlywood&lt;br /&gt;
|bar1-from=-{{Period start|Permian}}&lt;br /&gt;
|bar1-to=-{{Period end|Permian}}&lt;br /&gt;
|bar1-text=&#039;&#039;bar1&#039;&#039;&lt;br /&gt;
|bar2-colour=blanchedalmond&lt;br /&gt;
|bar2-from=-{{Period start|Carboniferous}}&lt;br /&gt;
|bar2-to=-{{Period end|Carboniferous}}&lt;br /&gt;
|bar2-text=&#039;&#039;bar2&#039;&#039;&lt;br /&gt;
|bar3-colour=wheat&lt;br /&gt;
|bar3-from=-{{Period start|Devonian}}&lt;br /&gt;
|bar3-to=-{{Period end|Devonian}}&lt;br /&gt;
|bar3-text=&#039;&#039;bar3&#039;&#039;&lt;br /&gt;
|legend1=&#039;&#039;legend1&#039;&#039;&lt;br /&gt;
|legend2=&#039;&#039;legend2&#039;&#039;&lt;br /&gt;
|legend3=&#039;&#039;legend3&#039;&#039;&lt;br /&gt;
|note1=&#039;&#039;note1&#039;&#039;&lt;br /&gt;
|note1-at=-{{Period end|Devonian}}&lt;br /&gt;
|note2=&#039;&#039;note2&#039;&#039;&lt;br /&gt;
|note2-at=-{{#expr:{{Period end|Devonian}}-100}}&lt;br /&gt;
|note3=&#039;&#039;note3&#039;&#039;&lt;br /&gt;
|note3-at=-{{#expr:{{Period end|Devonian}}-20}}&lt;br /&gt;
|caption=&#039;&#039;caption&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;null&#039;&#039; (-text)&lt;br /&gt;
| Writes the entry&#039;s label (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;legend1=[[Phanerozoic]] eon&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
|  -colour (-color)&lt;br /&gt;
| Overrides the entry&#039;s colour&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&#039;&#039;bar#-colour&#039;&#039;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|+ Legend parameters&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Notes===&lt;br /&gt;
Notes are annotations that show up to the right of the timeline with an arrow (←).&lt;br /&gt;
&lt;br /&gt;
Note parameters are prefixed with &amp;lt;code&amp;gt;note#&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; is the note&#039;s unique number.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Parameter&lt;br /&gt;
! Function&lt;br /&gt;
! Default&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;null&#039;&#039;&lt;br /&gt;
| Writes the note&#039;s content (e.g. &amp;lt;code&amp;gt;note1=Cambrian explosion&amp;lt;/code&amp;gt;)&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| -at&lt;br /&gt;
| Positions the arrow &amp;amp; note text vertically along the timeline&lt;br /&gt;
| {{yes|&#039;&#039;Required&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
| -remove-arrow (-no-arrow)&lt;br /&gt;
| Removes the note&#039;s arrow, if true&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -nudge-down&amp;lt;br/&amp;gt;-nudge-up&amp;lt;br/&amp;gt;-nudge-right&amp;lt;br/&amp;gt;-nudge-left&lt;br /&gt;
| Nudges the note&#039;s text around (units are in [[em (typography)|em]]s)&amp;lt;br&amp;gt;&lt;br /&gt;
If arrow, then text is centered next to arrow unless {{para|disable-arrow-align|1}}. Also,&lt;br /&gt;
nudge left/right affects both arrow and text.&lt;br /&gt;
| &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -size (-font-size)&lt;br /&gt;
| Sizes the note&#039;s font&lt;br /&gt;
| &amp;lt;code&amp;gt;100%&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| -colour (-color)&lt;br /&gt;
| Colours the note&#039;s font&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|+ Note/Annotation parameters&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==In use: an example==&lt;br /&gt;
The code on the left produces the timeline on the right. For another example, please see [[Ediacaran biota]].&lt;br /&gt;
&lt;br /&gt;
{{Graphical timeline&lt;br /&gt;
&lt;br /&gt;
|title=Example Timeline&lt;br /&gt;
|align=right&lt;br /&gt;
&lt;br /&gt;
|plot-colour=#bbeebb&lt;br /&gt;
&lt;br /&gt;
|from=-550&lt;br /&gt;
|to=-500&lt;br /&gt;
|scale-increment=10&lt;br /&gt;
&lt;br /&gt;
|width=10&lt;br /&gt;
|height=250&lt;br /&gt;
|height-unit=px&lt;br /&gt;
&lt;br /&gt;
|legend1=[[Phanerozoic]]&lt;br /&gt;
&lt;br /&gt;
|bar1-from=-542&lt;br /&gt;
|bar1-left=0&lt;br /&gt;
|bar1-right=0.1&lt;br /&gt;
&lt;br /&gt;
|legend2=[[Precambrian]]&lt;br /&gt;
&lt;br /&gt;
|bar2-to=-542&lt;br /&gt;
|bar2-left=0&lt;br /&gt;
|bar2-right=0.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|legend3=[[Infracambrian]]&lt;br /&gt;
|legend3-colour=#e0aacc&lt;br /&gt;
&lt;br /&gt;
|bar3-to=-534&lt;br /&gt;
|bar3-left=0.1&lt;br /&gt;
|bar3-right=0.2&lt;br /&gt;
|bar3-colour=#e0aacc&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- If this were bar 4, it would be overlapped by the Botomian bar --&amp;gt;&lt;br /&gt;
|bar14-from=-530&lt;br /&gt;
|bar14-to=-520&lt;br /&gt;
|bar14-left=0.95&lt;br /&gt;
|bar14-right=1.05&lt;br /&gt;
|bar14-colour=red&lt;br /&gt;
|legend14=Cambrian explosion&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!--Epochs &amp;amp; stages--&amp;gt;&lt;br /&gt;
|bar5-text=[[Ediacaran]]&lt;br /&gt;
|bar5-to=-540&lt;br /&gt;
|bar5-left=0.2&lt;br /&gt;
|bar5-border-width=1&lt;br /&gt;
|bar5-colour=#cc9999&lt;br /&gt;
&lt;br /&gt;
|bar6-text=[[Nemakit-Daldynian]]&lt;br /&gt;
|bar6-from=-542&lt;br /&gt;
|bar6-to=-534&lt;br /&gt;
|bar6-left=0.2&lt;br /&gt;
|bar6-border-width=0.1&lt;br /&gt;
|bar6-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
|bar7-text=[[Tommotian]]&lt;br /&gt;
|bar7-from=-534&lt;br /&gt;
|bar7-to=-530&lt;br /&gt;
|bar7-left=0.1&lt;br /&gt;
|bar7-colour=#99cc99&lt;br /&gt;
|bar7-border-width=0.1&lt;br /&gt;
&lt;br /&gt;
|bar8-from=-530.1&lt;br /&gt;
|bar8-to=-529.9&lt;br /&gt;
|bar8-left=0.2&lt;br /&gt;
|bar8-colour=black&lt;br /&gt;
&lt;br /&gt;
|bar9-text=[[Atdabanian]]&lt;br /&gt;
|bar9-from=-530&lt;br /&gt;
|bar9-to=-524&lt;br /&gt;
|bar9-left=0.1&lt;br /&gt;
|bar9-right=0.95&lt;br /&gt;
|bar9-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
|bar10-text=[[Botomian]]&lt;br /&gt;
|bar10-from=-524&lt;br /&gt;
|bar10-to=-518&lt;br /&gt;
|bar10-left=0.1&lt;br /&gt;
|bar10-colour=#99cc99&lt;br /&gt;
|bar10-border-width=0.1&lt;br /&gt;
&lt;br /&gt;
|bar11-text=[[Toyonian]]&lt;br /&gt;
|bar11-from=-518&lt;br /&gt;
|bar11-to=-513&lt;br /&gt;
|bar11-left=0.1&lt;br /&gt;
|bar11-border-width=0.1&lt;br /&gt;
|bar11-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|note1=Base of the Cambrian&lt;br /&gt;
|note1-at=-542&lt;br /&gt;
|note1-colour=green&lt;br /&gt;
&lt;br /&gt;
|note2=[[Middle Cambrian]]&lt;br /&gt;
|note2-nudge-left=8.5&lt;br /&gt;
|note2-nudge-down=0&lt;br /&gt;
|note2-at=-507&lt;br /&gt;
|note2-remove-arrow=yes&lt;br /&gt;
&lt;br /&gt;
|caption=An approximate time-scale of events&amp;lt;br&amp;gt;at the base of the [[Cambrian]] [[Period (geology){{!}}Period]].&lt;br /&gt;
&amp;lt;br&amp;gt;Axis scale is in millions of years ago.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;{{Graphical timeline&lt;br /&gt;
&lt;br /&gt;
|title=Example Timeline&lt;br /&gt;
|align=right&lt;br /&gt;
&lt;br /&gt;
|plot-colour=#bbeebb&lt;br /&gt;
&lt;br /&gt;
|from=-550&lt;br /&gt;
|to=-500&lt;br /&gt;
|scale-increment=10&lt;br /&gt;
&lt;br /&gt;
|width=10&lt;br /&gt;
|height=250&lt;br /&gt;
|height-unit=px&lt;br /&gt;
&lt;br /&gt;
|legend1=[[Phanerozoic]]&lt;br /&gt;
&lt;br /&gt;
|bar1-from=-542&lt;br /&gt;
|bar1-left=0&lt;br /&gt;
|bar1-right=0.1&lt;br /&gt;
&lt;br /&gt;
|legend2=[[Precambrian]]&lt;br /&gt;
&lt;br /&gt;
|bar2-to=-542&lt;br /&gt;
|bar2-left=0&lt;br /&gt;
|bar2-right=0.2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|legend3=[[Infracambrian]]&lt;br /&gt;
|legend3-colour=#e0aacc&lt;br /&gt;
&lt;br /&gt;
|bar3-to=-534&lt;br /&gt;
|bar3-left=0.1&lt;br /&gt;
|bar3-right=0.2&lt;br /&gt;
|bar3-colour=#e0aacc&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- If this were bar 4, it would be overlapped by the Botomian bar --&amp;gt;&lt;br /&gt;
|bar14-from=-530&lt;br /&gt;
|bar14-to=-520&lt;br /&gt;
|bar14-left=0.95&lt;br /&gt;
|bar14-right=1.05&lt;br /&gt;
|bar14-colour=red&lt;br /&gt;
|legend14=Cambrian explosion&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!--Epochs &amp;amp; stages--&amp;gt;&lt;br /&gt;
|bar5-text=[[Ediacaran]]&lt;br /&gt;
|bar5-to=-540&lt;br /&gt;
|bar5-left=0.2&lt;br /&gt;
|bar5-border-width=1&lt;br /&gt;
|bar5-border-colour= #996666&lt;br /&gt;
|bar5-colour=#cc9999&lt;br /&gt;
&lt;br /&gt;
|bar6-text=[[Nemakit-Daldynian]]&lt;br /&gt;
|bar6-from=-542&lt;br /&gt;
|bar6-to=-534&lt;br /&gt;
|bar6-left=0.2&lt;br /&gt;
|bar6-border-width=0.1&lt;br /&gt;
|bar6-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
|bar7-text=[[Tommotian]]&lt;br /&gt;
|bar7-from=-534&lt;br /&gt;
|bar7-to=-530&lt;br /&gt;
|bar7-left=0.1&lt;br /&gt;
|bar7-colour=#99cc99&lt;br /&gt;
|bar7-border-width=0.1&lt;br /&gt;
&lt;br /&gt;
|bar8-from=-530.1&lt;br /&gt;
|bar8-to=-529.9&lt;br /&gt;
|bar8-left=0.2&lt;br /&gt;
|bar8-colour=black&lt;br /&gt;
&lt;br /&gt;
|bar9-text=[[Atdabanian]]&lt;br /&gt;
|bar9-from=-530&lt;br /&gt;
|bar9-to=-524&lt;br /&gt;
|bar9-left=0.1&lt;br /&gt;
|bar9-right=0.95&lt;br /&gt;
|bar9-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
|bar10-text=[[Botomian]]&lt;br /&gt;
|bar10-from=-524&lt;br /&gt;
|bar10-to=-518&lt;br /&gt;
|bar10-left=0.1&lt;br /&gt;
|bar10-colour=#99cc99&lt;br /&gt;
|bar10-border-width=0.1&lt;br /&gt;
&lt;br /&gt;
|bar11-text=[[Toyonian]]&lt;br /&gt;
|bar11-from=-518&lt;br /&gt;
|bar11-to=-513&lt;br /&gt;
|bar11-left=0.1&lt;br /&gt;
|bar11-border-width=0.1&lt;br /&gt;
|bar11-colour=#99cc99&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|note1=Base of the Cambrian&lt;br /&gt;
|note1-at=-542&lt;br /&gt;
|note1-colour=green&lt;br /&gt;
&lt;br /&gt;
|note2=[[Middle Cambrian]]&lt;br /&gt;
|note2-nudge-left=8.5&lt;br /&gt;
|note2-nudge-down=0&lt;br /&gt;
|note2-at=-507&lt;br /&gt;
|note2-remove-arrow=yes&lt;br /&gt;
&lt;br /&gt;
|caption=An approximate time-scale of events&amp;lt;br&amp;gt;at the base of the [[Cambrian]] [[Period (geology){{!}}Period]].&lt;br /&gt;
&amp;lt;br&amp;gt;Axis scale is in millions of years ago.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes on the example==&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{!}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;  must be used wherever you want a | to appear (e.g. the caption)&lt;br /&gt;
* If you do not specify when a bar should start or end, it will continue to the edge of the plot&lt;br /&gt;
* Text should not be too long for the bar&lt;br /&gt;
* The way that overflowing text wraps is also handled differently in different browsers – it pokes out of the right of the bar on Firefox, but is wrapped within it by IE. Try to manually enter newlines when required rather than relying on browsers to sort it out. Or position a note over the bar – check out note2, which is nudged left over the plot background.&lt;br /&gt;
&lt;br /&gt;
==Blank template to copy==&lt;br /&gt;
{{Graphical timeline/blank}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Categories below this line --&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
[[Category:Generic timeline templates|{{PAGENAME}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline&amp;diff=611</id>
		<title>Szablon:Graphical timeline</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Graphical_timeline&amp;diff=611"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Graphical timeline|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Graphical_timeline/doc&amp;diff=609</id>
		<title>Moduł:Graphical timeline/doc</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Graphical_timeline/doc&amp;diff=609"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Module rating |beta}}&lt;br /&gt;
&amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&amp;gt;&lt;br /&gt;
See {{tl|Graphical timeline/testcases}} for tests.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;#invoke:{{BASEPAGENAME}}|main}}&amp;lt;/code&amp;gt;: generates a graphical timeline.&lt;br /&gt;
&lt;br /&gt;
See {{tl|Graphical timeline/doc}} for parameters&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;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Graphical_timeline&amp;diff=607</id>
		<title>Moduł:Graphical timeline</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Modu%C5%82:Graphical_timeline&amp;diff=607"/>
		<updated>2023-10-12T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local compressSparseArray = require(&#039;Module:TableTools&#039;).compressSparseArray&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Note for translators of this module:&lt;br /&gt;
-- This module depends on [[:Template:period color]], [[:template:period start]], and [[:template:period end]].&lt;br /&gt;
-- Those templates must be implemented on the wiki. If the names are changed, they need to be changed here:&lt;br /&gt;
local periodColor = &amp;quot;period color&amp;quot;&lt;br /&gt;
local periodStart = &amp;quot;period start&amp;quot;&lt;br /&gt;
local periodEnd = &amp;quot;period end&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- =================&lt;br /&gt;
-- UTILITY FUNCTIONS&lt;br /&gt;
-- =================&lt;br /&gt;
&lt;br /&gt;
-- Default colors for first 28 bars/periods&lt;br /&gt;
local defaultColor = {&amp;quot;#6ca&amp;quot;,&amp;quot;#ff9&amp;quot;,&amp;quot;#6cf&amp;quot;,&amp;quot;#c96&amp;quot;,&amp;quot;#fcc&amp;quot;,&amp;quot;#9f9&amp;quot;,&amp;quot;#96c&amp;quot;,&amp;quot;#cc6&amp;quot;,&amp;quot;#ccc&amp;quot;,&amp;quot;#f66&amp;quot;,&amp;quot;#6c6&amp;quot;,&amp;quot;#99f&amp;quot;,&amp;quot;#c66&amp;quot;,&amp;quot;#f9c&amp;quot;,&lt;br /&gt;
					  &amp;quot;#396&amp;quot;,&amp;quot;#ff3&amp;quot;,&amp;quot;#06c&amp;quot;,&amp;quot;#963&amp;quot;,&amp;quot;#c9c&amp;quot;,&amp;quot;#9c6&amp;quot;,&amp;quot;#c63&amp;quot;,&amp;quot;#c96&amp;quot;,&amp;quot;#999&amp;quot;,&amp;quot;#c03&amp;quot;,&amp;quot;#393&amp;quot;,&amp;quot;#939&amp;quot;,&amp;quot;#996&amp;quot;,&amp;quot;#f69&amp;quot;}&lt;br /&gt;
			&lt;br /&gt;
-- The default width of annotations (in em)		  &lt;br /&gt;
local defaultAW = 8&lt;br /&gt;
-- Previous version default width (in em)&lt;br /&gt;
local oldDefaultAW = 7&lt;br /&gt;
&lt;br /&gt;
-- Function to turn blank arguments back into nil&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--    s = a string argument&lt;br /&gt;
-- Returns&lt;br /&gt;
--    if s is empty, turn back into nil (considered false by Lua)&lt;br /&gt;
local function ignoreBlank(s)&lt;br /&gt;
	if s == &amp;quot;&amp;quot; then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to suppress incorrect CSS values&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--    val = dimensional value &lt;br /&gt;
--    unit = unit of value&lt;br /&gt;
--    nonneg = [bool] value needs to be non-negative&lt;br /&gt;
--    formatstr = optional format string&lt;br /&gt;
-- Returns:&lt;br /&gt;
--    correct string for html, or nil if val is negative&lt;br /&gt;
local function checkDim(val, unit, nonneg, formatstr)&lt;br /&gt;
	if not val then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	val = tonumber(val)&lt;br /&gt;
	if not val or (nonneg and val &amp;lt; 0) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if formatstr then&lt;br /&gt;
		return mw.ustring.format(formatstr,val)..unit&lt;br /&gt;
	end&lt;br /&gt;
	return val..unit&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- function to scan argument list for pattern&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--   args = an argument dict that will be scanned for one or more patterns&lt;br /&gt;
--   patterns = a list of Lua string patters to scan for&lt;br /&gt;
--   other = a list of other argument specification lists&lt;br /&gt;
--      each element o corresponds to a new argument to produce in the results&lt;br /&gt;
--         o[1] = key in new argument list&lt;br /&gt;
--         o[2] = prefix of old argument&lt;br /&gt;
--         o[3] = suffix of old argument&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   new argument list that matches patterns specified, with new key names&lt;br /&gt;
--&lt;br /&gt;
-- This function makes the Lua module scalable, by specifying a list of string patterns that&lt;br /&gt;
-- contain relevant arguments for a single graphical element, e.g., &amp;quot;period(%d+)&amp;quot;. These&lt;br /&gt;
-- patterns should have exactly one capture that returns a number.&lt;br /&gt;
--&lt;br /&gt;
-- When such a pattern is detected, the number is extracted and then other arguments&lt;br /&gt;
-- with the same number is searched for. Thus, if &amp;quot;period57&amp;quot; is detected, other relevant&lt;br /&gt;
-- arguments like &amp;quot;period57-text&amp;quot; are searched for and, if non-empty, are copied to the&lt;br /&gt;
-- output list with a new argument key. Thus, there is {&amp;quot;text&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-text&amp;quot;}, and&lt;br /&gt;
-- &amp;quot;period(%d+)&amp;quot; detects period57, the code will look for &amp;quot;period57-text&amp;quot; in the input&lt;br /&gt;
-- and copy it&#039;s value to &amp;quot;text&amp;quot; on the output.&lt;br /&gt;
--&lt;br /&gt;
-- This function thus pulls all relevant arguments for a single graphical item out, and&lt;br /&gt;
-- makes an argument list to call a function to produce a single element (such as a bar or note)&lt;br /&gt;
function p._scanArgs(args,patterns,other)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for _, p in pairs(patterns) do&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			local m = tonumber(mw.ustring.match(k,p))&lt;br /&gt;
			-- if there is a matching argument, and it&#039;s not blank&lt;br /&gt;
			-- and we haven&#039;t handled that match yet, then find other&lt;br /&gt;
			-- arguments and copy them into output arg list. &lt;br /&gt;
			-- We have to handle blank arguments for backward compatibility with the template&lt;br /&gt;
			-- we check for an existing output with item m to save time&lt;br /&gt;
			if m and v ~= &amp;quot;&amp;quot; and not result[m] then&lt;br /&gt;
				local singleResult = {}&lt;br /&gt;
				for _, o in ipairs(other) do&lt;br /&gt;
					local foundVal = args[(o[2] or &amp;quot;&amp;quot;)..m..(o[3] or &amp;quot;&amp;quot;)]&lt;br /&gt;
					if foundVal then&lt;br /&gt;
						singleResult[o[1]] = foundVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				-- A hack: for any argument number m, there is a magic list of default&lt;br /&gt;
				-- colors. We copy that default color for m into the new argument list, in &lt;br /&gt;
				-- case it&#039;s useful. After this, m is discarded&lt;br /&gt;
				singleResult.defaultColor = defaultColor[m]&lt;br /&gt;
				result[m] = singleResult&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Squeeze out all skipped values. Thus, continguous argument numbers are not&lt;br /&gt;
	-- required: the module can get called with bar3, bar17, bar59 and it will only produce&lt;br /&gt;
	-- three bars, in numerical order that they were called (3, 17, 59)&lt;br /&gt;
	return compressSparseArray(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to compute the numeric step in the timescale&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--   p1, p2 = lower and upper bounds of timescale&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   round step size that produces ~10 steps between p1 and p2&lt;br /&gt;
--&lt;br /&gt;
-- Implements [[Template:Calculate increment]], except with a slight tweak:&lt;br /&gt;
-- The round value (0.1, 0.2, 0.5, 1.0) is selected based on minimum log&lt;br /&gt;
-- distance, so the thresholds are slightly tweaked&lt;br /&gt;
function p._calculateIncrement(p1, p2)&lt;br /&gt;
	local d = math.abs(p1-p2)&lt;br /&gt;
	if d &amp;lt; 1e-10 then&lt;br /&gt;
		return 1e-10&lt;br /&gt;
	end&lt;br /&gt;
	local logd = math.log10(d)&lt;br /&gt;
	local n = math.floor(logd)&lt;br /&gt;
	local frac = logd-n&lt;br /&gt;
	local prevPower = math.pow(10,n-1)&lt;br /&gt;
	if frac &amp;lt; 0.5*math.log10(2) then&lt;br /&gt;
		return prevPower&lt;br /&gt;
	elseif frac &amp;lt; 0.5 then&lt;br /&gt;
		return 2*prevPower&lt;br /&gt;
	elseif frac &amp;lt; 0.5*math.log10(50) then&lt;br /&gt;
		return 5*prevPower&lt;br /&gt;
	else&lt;br /&gt;
		return 10*prevPower&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Signed power function for squashing timeline to be more readable&lt;br /&gt;
function p._signedPow(x,p)&lt;br /&gt;
	if x &amp;lt; 0 then&lt;br /&gt;
		return -math.pow(-x,p)&lt;br /&gt;
	end&lt;br /&gt;
	return math.pow(x,p)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to convert from time to location in HTML&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   t = time&lt;br /&gt;
--   from = earliest time in timeline&lt;br /&gt;
--   to = latest time in timeline&lt;br /&gt;
--   height = height of timeline (in some units)&lt;br /&gt;
--   scaling = method of scaling (&#039;linear&#039; or &#039;sqrt&#039; or &#039;pow&#039;)&lt;br /&gt;
--   power = power law of scaling (if scaling=&#039;pow&#039;)&lt;br /&gt;
function p._scaleTime(t, from, to, height, scaling, power)&lt;br /&gt;
	if scaling == &#039;pow&#039; then&lt;br /&gt;
		from = p._signedPow(from,power)&lt;br /&gt;
		to = p._signedPow(to,power)&lt;br /&gt;
		t = p._signedPow(t,power)&lt;br /&gt;
	end&lt;br /&gt;
	return height*(to-t)/(to-from)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Utility function to create HTML container for entire graphical timeline&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--   container = HTML container for title&lt;br /&gt;
--   args = arguments passed to main&lt;br /&gt;
--      args[&amp;quot;instance-id&amp;quot;] = unique string per Graphical timeline per page&lt;br /&gt;
--      args.embedded = is timeline embedded in another infobox?&lt;br /&gt;
--      args.align = float of timeline (default=right)&lt;br /&gt;
--      args.margin = uniform margin around timeline&lt;br /&gt;
--      args.bodyclass = CSS class for whole container&lt;br /&gt;
--      args.collapsible = make timeline collapsible&lt;br /&gt;
--      args.state = set collapse state&lt;br /&gt;
-- Returns;&lt;br /&gt;
--   html div object that is root of DOM for graphical timeline&lt;br /&gt;
--&lt;br /&gt;
--  CSS taken from previous version of [[Template:Grpahical timeline]]&lt;br /&gt;
local function createContainer(args)&lt;br /&gt;
	args.align = args.align or &amp;quot;right&amp;quot;&lt;br /&gt;
	local container = mw.html.create(&#039;table&#039;)&lt;br /&gt;
	container:attr(&amp;quot;id&amp;quot;,&amp;quot;Container&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	container:attr(&amp;quot;role&amp;quot;,&amp;quot;presentation&amp;quot;)&lt;br /&gt;
	container:addClass(args.bodyclass)&lt;br /&gt;
	container:addClass(&amp;quot;toccolours&amp;quot;)&lt;br /&gt;
	container:addClass(&amp;quot;searchaux&amp;quot;)&lt;br /&gt;
	if not args.embedded then&lt;br /&gt;
		if args.state == &amp;quot;collapsed&amp;quot; then&lt;br /&gt;
			args.collapsible = true&lt;br /&gt;
			container:addClass(&amp;quot;mw-collapsed&amp;quot;)&lt;br /&gt;
			container:addClass(&amp;quot;nomobile&amp;quot;)&lt;br /&gt;
		elseif args.state == &amp;quot;autocollapse&amp;quot; then&lt;br /&gt;
			args.collapsible = true&lt;br /&gt;
			container:addClass(&amp;quot;autocollapse&amp;quot;)&lt;br /&gt;
			container:addClass(&amp;quot;nomobile&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		if args.collapsible then&lt;br /&gt;
			container:addClass(&amp;quot;mw-collapsible&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	container:css(&amp;quot;text-align&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;padding&amp;quot;,&amp;quot;0 0.5em&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;border-style&amp;quot;,args.embedded and &amp;quot;none&amp;quot; or &amp;quot;solid&amp;quot;)&lt;br /&gt;
	if args.embedded then&lt;br /&gt;
		container:css(&amp;quot;margin&amp;quot;,&amp;quot;auto&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		container:css(&amp;quot;float&amp;quot;,args.align)&lt;br /&gt;
		if args.align == &amp;quot;right&amp;quot; or args.align == &amp;quot;left&amp;quot; then&lt;br /&gt;
			container:css(&amp;quot;clear&amp;quot;,args.align)&lt;br /&gt;
		end&lt;br /&gt;
		local margins = {}&lt;br /&gt;
		margins[1] = args.margin or &amp;quot;0.3em&amp;quot;&lt;br /&gt;
		margins[2] = (args.align == &amp;quot;right&amp;quot; and 0) or args.margin or &amp;quot;1.4em&amp;quot;&lt;br /&gt;
		margins[3] = args.margin or &amp;quot;0.8em&amp;quot;&lt;br /&gt;
		margins[4] = (args.align == &amp;quot;left&amp;quot; and 0) or args.margin or &amp;quot;1.4em&amp;quot;&lt;br /&gt;
		container:css(&amp;quot;margin&amp;quot;,table.concat(margins,&amp;quot; &amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	container:css(&amp;quot;overflow&amp;quot;,&amp;quot;hidden&amp;quot;)&lt;br /&gt;
	return container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Utility function to create title for graphical timeline&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--   args = arguments passed to main&lt;br /&gt;
--      args[&amp;quot;instance-id&amp;quot;] = unique string per Graphical timeline per page&lt;br /&gt;
--      args[&amp;quot;title-color&amp;quot;] = background color for title&lt;br /&gt;
--      args.title = title of timeline&lt;br /&gt;
-- Returns;&lt;br /&gt;
--   html div object that is the title&lt;br /&gt;
--&lt;br /&gt;
--  CSS taken from previous version of [[Template:Grpahical timeline]]&lt;br /&gt;
local function createTitle(container,args)&lt;br /&gt;
	container:attr(&amp;quot;id&amp;quot;,&amp;quot;Title&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	local bottomPadding = args[&amp;quot;link-to&amp;quot;] and (not args.embedded) &lt;br /&gt;
	   and (not args.collapsible) and &amp;quot;0&amp;quot; or &amp;quot;1em&amp;quot;&lt;br /&gt;
	container:css(&amp;quot;padding&amp;quot;,&amp;quot;1em 1em &amp;quot;..bottomPadding..&amp;quot; 1em&amp;quot;)&lt;br /&gt;
	local title = container:tag(&#039;div&#039;)&lt;br /&gt;
	title:css(&amp;quot;background-color&amp;quot;,ignoreBlank(args[&amp;quot;title-colour&amp;quot;] or args[&amp;quot;title-color&amp;quot;] or &amp;quot;#77bb77&amp;quot;))&lt;br /&gt;
	title:css(&amp;quot;padding&amp;quot;,&amp;quot;0 0.2em 0 0.2em&amp;quot;)&lt;br /&gt;
	title:css(&amp;quot;font-weight&amp;quot;,&amp;quot;bold&amp;quot;)&lt;br /&gt;
	title:css(&amp;quot;text-align&amp;quot;,&amp;quot;center&amp;quot;)&lt;br /&gt;
	title:wikitext(args.title)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Utility function to create optional navbox header for timeline&lt;br /&gt;
-- Parameters:&lt;br /&gt;
--   container = container for navbox header&lt;br /&gt;
--   args = arguments passed to main&lt;br /&gt;
--      args.title = title of timeline&lt;br /&gt;
--      args[&amp;quot;link-to&amp;quot;] = name of parent template (without namespace)&lt;br /&gt;
-- Returns;&lt;br /&gt;
--   html div object that is the navbox header&lt;br /&gt;
--&lt;br /&gt;
--  CSS taken from previous version of [[Template:Grpahical timeline]]&lt;br /&gt;
local function navboxHeader(container,args)&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
    container:attr(&amp;quot;id&amp;quot;,&amp;quot;Navbox&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
    local topMargin = args.title and &amp;quot;0&amp;quot; or &amp;quot;0.2em&amp;quot;&lt;br /&gt;
    container:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;margin&amp;quot;,topMargin..&amp;quot; 1em 0 0&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;text-align&amp;quot;,&amp;quot;right&amp;quot;)&lt;br /&gt;
	container:wikitext(frame:expandTemplate{title=&amp;quot;Navbar&amp;quot;,args={&amp;quot;Template:&amp;quot;..args[&amp;quot;link-to&amp;quot;]}})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- ==================&lt;br /&gt;
-- TIME AXIS AND BARS&lt;br /&gt;
-- ==================&lt;br /&gt;
&lt;br /&gt;
--Function to create HTML time axis on left side of timeline&lt;br /&gt;
--Arguments:&lt;br /&gt;
--  container = HTML parent object&lt;br /&gt;
--  args = arguments passed to main&lt;br /&gt;
--    args.from = beginning (earliest) time of timeline&lt;br /&gt;
--    args.to = ending (latest) time of timeline&lt;br /&gt;
--    args.height = height of timeline&lt;br /&gt;
--    args[&amp;quot;height-unit&amp;quot;] = unit of height (default args.unit)&lt;br /&gt;
--    args.unit = unit of measurement (default em)&lt;br /&gt;
--    args[&amp;quot;instance-id&amp;quot;] = unique string per Graphical timeline per page&lt;br /&gt;
--    args[&amp;quot;scale-increment&amp;quot;] = gap between time ticks (default=automatically computed)&lt;br /&gt;
--    args.scaling = method of scaling (linear or sqrt, linear by default)&lt;br /&gt;
--    args[&amp;quot;label-freq&amp;quot;] = frequency of labels (per major tick)&lt;br /&gt;
-- Returns;&lt;br /&gt;
--   html div object for the time axis&lt;br /&gt;
--&lt;br /&gt;
--  CSS taken from previous version of [[Template:Grpahical timeline]]&lt;br /&gt;
function p._scalemarkers(container,args)&lt;br /&gt;
	local height = tonumber(args.height) or 36&lt;br /&gt;
	local unit = args[&amp;quot;height-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	container:attr(&amp;quot;id&amp;quot;,&amp;quot;Scale&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	container:css(&amp;quot;width&amp;quot;,&amp;quot;4.2em&amp;quot;)&lt;br /&gt;
	args.computedWidth = args.computedWidth+4.2&lt;br /&gt;
	container:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;height&amp;quot;,checkDim(height,unit,true))&lt;br /&gt;
    container:css(&amp;quot;border-right&amp;quot;,&amp;quot;1px solid #242020&amp;quot;)&lt;br /&gt;
	local incr = args[&amp;quot;scale-increment&amp;quot;] or p._calculateIncrement(args.from,args.to)&lt;br /&gt;
	-- step through by half the desired increment, alternating small and large ticks&lt;br /&gt;
	-- put labels every args[&amp;quot;label-freq&amp;quot;] large ticks&lt;br /&gt;
	local labelFreq = args[&amp;quot;label-freq&amp;quot;] or 1&lt;br /&gt;
	labelFreq = labelFreq*2 -- account for minor ticks&lt;br /&gt;
	local halfIncr = incr/2&lt;br /&gt;
	local tIndex = math.ceil(args.from/incr)*2 -- always start on a label&lt;br /&gt;
	local toIndex = math.floor(args.to/halfIncr)&lt;br /&gt;
	local tickCount = 0&lt;br /&gt;
	while tIndex &amp;lt;= toIndex do&lt;br /&gt;
		local t = tIndex*halfIncr&lt;br /&gt;
		local div = container:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
		div:css(&amp;quot;float&amp;quot;,&amp;quot;right&amp;quot;)&lt;br /&gt;
		div:css(&amp;quot;position&amp;quot;,&amp;quot;absolute&amp;quot;)&lt;br /&gt;
		div:css(&amp;quot;right&amp;quot;,&amp;quot;-1px&amp;quot;)&lt;br /&gt;
		div:css(&amp;quot;top&amp;quot;,checkDim(p._scaleTime(t,args.from,args.to,height,args.scaling,args.power),&lt;br /&gt;
			                   unit,nil,&amp;quot;%.2f&amp;quot;))&lt;br /&gt;
	    div:css(&amp;quot;transform&amp;quot;,&amp;quot;translateY(-50%)&amp;quot;)&lt;br /&gt;
		local span = div:tag(&amp;quot;span&amp;quot;)&lt;br /&gt;
		span:attr(&amp;quot;name&amp;quot;,showNum and &amp;quot;Number&amp;quot; or &amp;quot;Tick&amp;quot;)&lt;br /&gt;
		span:css(&amp;quot;font-size&amp;quot;,&amp;quot;90%&amp;quot;)&lt;br /&gt;
		span:css(&amp;quot;white-space:nowrap&amp;quot;)&lt;br /&gt;
		local text = &amp;quot;&amp;quot;&lt;br /&gt;
		if tickCount%labelFreq == 0 then&lt;br /&gt;
			if t &amp;lt; 0 then&lt;br /&gt;
				text = mw.ustring.format(&amp;quot;&amp;amp;minus;%g&amp;amp;nbsp;&amp;quot;,-t)&lt;br /&gt;
			else&lt;br /&gt;
			    text = mw.ustring.format(&amp;quot;%g&amp;amp;nbsp;&amp;quot;,t)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if tickCount%2 == 0 then&lt;br /&gt;
			text = text..&amp;quot;&amp;amp;mdash;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			text = text..&amp;quot;&amp;amp;ndash;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		span:wikitext(text)&lt;br /&gt;
		tIndex = tIndex + 1&lt;br /&gt;
		tickCount = tickCount + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to create timeline container div&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = HTML parent object&lt;br /&gt;
--   args = arguments passed to main&lt;br /&gt;
--     args[&amp;quot;plot-colour&amp;quot;] = background color for timeline&lt;br /&gt;
--     args[&amp;quot;instance-id&amp;quot;] = unique string per graphical timeline per page&lt;br /&gt;
--     args.height = height of timeline (36 by default)&lt;br /&gt;
--     args.width = width of timeline (10 by default)&lt;br /&gt;
--     args[&amp;quot;height-unit&amp;quot;] = unit of height measurement (args.unit by default)&lt;br /&gt;
--     args[&amp;quot;width-unit&amp;quot;] = unit of width measurement (args.unit by default)&lt;br /&gt;
--     args.unit = unit of measurement (em by default)&lt;br /&gt;
-- Returns:&lt;br /&gt;
--   timeline HTML object created&lt;br /&gt;
local function createTimeline(container,args)&lt;br /&gt;
	local color = ignoreBlank(args[&amp;quot;plot-colour&amp;quot;] or args[&amp;quot;plot-color&amp;quot;])&lt;br /&gt;
	container:attr(&amp;quot;id&amp;quot;,&amp;quot;Timeline&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	container:addClass(&amp;quot;toccolours&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;width&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;height&amp;quot;,checkDim(args.height or 36,args[&amp;quot;height-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;,true))&lt;br /&gt;
	container:css(&amp;quot;padding&amp;quot;,&amp;quot;0px&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	local width = args.width or 10&lt;br /&gt;
	local widthUnit = args[&amp;quot;width-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	container:css(&amp;quot;width&amp;quot;,checkDim(width,widthUnit,true))&lt;br /&gt;
	if widthUnit == &amp;quot;em&amp;quot; then&lt;br /&gt;
        args.computedWidth = args.computedWidth+width&lt;br /&gt;
	elseif widthUnit == &amp;quot;px&amp;quot; then&lt;br /&gt;
	    args.computedWidth = args.computedWidth+width/13.3&lt;br /&gt;
	else&lt;br /&gt;
		args.computedWidth = args.computedWidth+10&lt;br /&gt;
	end&lt;br /&gt;
	container:css(&amp;quot;border&amp;quot;,&amp;quot;none&amp;quot;)&lt;br /&gt;
	container:css(&amp;quot;background-color&amp;quot;,color)&lt;br /&gt;
	return container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to draw single bar (or box)&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = parent HTML object for bar&lt;br /&gt;
--   args = arguments for this box&lt;br /&gt;
--     args.text = text to display&lt;br /&gt;
--     args.nudgedown = distance to nudge text down (in em)&lt;br /&gt;
--     args.nudgeup = distance to nudge text up (in em)&lt;br /&gt;
--     args.nudgeright = distance to nudge text right (in em)&lt;br /&gt;
--     args.nudgeleft = distance to nudge text left (in em)&lt;br /&gt;
--     args.colour = color of bar (default to color assigned to bar number)&lt;br /&gt;
--     args.left = fraction of timeline width for left edge of bar (default 0)&lt;br /&gt;
--     args.right = fraction of timeline width for right edge of bar (default 1)&lt;br /&gt;
--     args.to = beginning (bottom) of bar, in time units (default timeline begin)&lt;br /&gt;
--     args.from = end (top) of bar, in time units (default timeline end)&lt;br /&gt;
--     args.height = timeline height&lt;br /&gt;
--     args.width = timeline width&lt;br /&gt;
--     args[&amp;quot;height-unit&amp;quot;] = units of timeline height (default args.unit)&lt;br /&gt;
--     args[&amp;quot;width-unit&amp;quot;] = units of timeline width (default args.unit)&lt;br /&gt;
--     args.unit = units for timeline dimensions (default em)&lt;br /&gt;
--     args.border-style = CSS style for top/bottom of border (default &amp;quot;solid&amp;quot; if args.border)&lt;br /&gt;
function p._singleBar(container,args)&lt;br /&gt;
	args.text = args.text or &amp;quot;&amp;amp;nbsp;&amp;quot;&lt;br /&gt;
	args.nudgedown = (tonumber(args.nudgedown) or 0) - (tonumber(args.nudgeup) or 0)&lt;br /&gt;
	args.nudgeright = (tonumber(args.nudgeright) or 0) - (tonumber(args.nudgeleft) or 0)&lt;br /&gt;
	args.colour = args.colour or args.defaultColor&lt;br /&gt;
	args.left = tonumber(args.left) or 0&lt;br /&gt;
	args.right = tonumber(args.right) or 1&lt;br /&gt;
	args.to = tonumber(args.to) or args[&amp;quot;tl-to&amp;quot;]&lt;br /&gt;
	args.from = tonumber(args.from) or args[&amp;quot;tl-from&amp;quot;]&lt;br /&gt;
	args.height = tonumber(args.height) or 36&lt;br /&gt;
	args.width = tonumber(args.width) or 10&lt;br /&gt;
	args[&amp;quot;height-unit&amp;quot;] = args[&amp;quot;height-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	args[&amp;quot;width-unit&amp;quot;] = args[&amp;quot;width-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	args.border = tonumber(args.border)&lt;br /&gt;
	args[&amp;quot;border-style&amp;quot;] = args[&amp;quot;border-style&amp;quot;] or ((args.border or args[&amp;quot;border-colour&amp;quot;]) and &amp;quot;solid&amp;quot;) or &amp;quot;none&amp;quot;&lt;br /&gt;
	-- the HTML element for the box/bar itself&lt;br /&gt;
	local bar = container:tag(&#039;div&#039;)&lt;br /&gt;
	bar:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
	bar:css(&amp;quot;background-color&amp;quot;,ignoreBlank(args.colour or &amp;quot;#aaccff&amp;quot;))&lt;br /&gt;
	bar:css(&amp;quot;border-width&amp;quot;,checkDim(args.border,args[&amp;quot;height-unit&amp;quot;],true))&lt;br /&gt;
	bar:css(&amp;quot;border-color&amp;quot;,ignoreBlank(args[&amp;quot;border-colour&amp;quot;]))&lt;br /&gt;
	bar:css(&amp;quot;border-style&amp;quot;,args[&amp;quot;border-style&amp;quot;]..&amp;quot; none&amp;quot;)&lt;br /&gt;
	bar:css(&amp;quot;position&amp;quot;,&amp;quot;absolute&amp;quot;)&lt;br /&gt;
	bar:css(&amp;quot;text-align&amp;quot;,&amp;quot;center&amp;quot;)&lt;br /&gt;
	bar:css(&amp;quot;margin&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	bar:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	local bar_top = p._scaleTime(args.to,args[&amp;quot;tl-from&amp;quot;],args[&amp;quot;tl-to&amp;quot;],args.height,args.scaling,args.power)&lt;br /&gt;
    local bar_bottom = p._scaleTime(args.from,args[&amp;quot;tl-from&amp;quot;],args[&amp;quot;tl-to&amp;quot;],args.height,args.scaling,args.power)&lt;br /&gt;
    local bar_height = bar_bottom-bar_top&lt;br /&gt;
	bar:css(&amp;quot;top&amp;quot;,checkDim(bar_top,args[&amp;quot;height-unit&amp;quot;],nil,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
	if args[&amp;quot;border-style&amp;quot;] ~= &amp;quot;none&amp;quot; and args.border then&lt;br /&gt;
		bar_height = bar_height-2*args.border&lt;br /&gt;
	end&lt;br /&gt;
	bar:css(&amp;quot;height&amp;quot;,checkDim(bar_height,args[&amp;quot;height-unit&amp;quot;],true,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
	bar:css(&amp;quot;left&amp;quot;,checkDim(args.left*args.width,args[&amp;quot;width-unit&amp;quot;],nil,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
	bar:css(&amp;quot;width&amp;quot;,checkDim((args.right-args.left)*args.width,args[&amp;quot;width-unit&amp;quot;],true,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
	-- within the bar, use a div to nudge text away from center&lt;br /&gt;
	local textParent = bar&lt;br /&gt;
	if not args.alignBoxText then&lt;br /&gt;
	    local nudge = bar:tag(&#039;div&#039;)&lt;br /&gt;
	    nudge:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
	    nudge:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
	    nudge:css(&amp;quot;top&amp;quot;,checkDim(args.nudgedown,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
	    nudge:css(&amp;quot;left&amp;quot;,checkDim(args.nudgeright,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
	    textParent = nudge&lt;br /&gt;
	end&lt;br /&gt;
	-- put text div as child of nudge div (if exists)&lt;br /&gt;
	local text = textParent:tag(&#039;div&#039;)&lt;br /&gt;
	text:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
	text:css(&amp;quot;text-align&amp;quot;,&amp;quot;center&amp;quot;)&lt;br /&gt;
	text:css(&amp;quot;font-size&amp;quot;,ignoreBlank(args.textsize))&lt;br /&gt;
	text:css(&amp;quot;vertical-align&amp;quot;,&amp;quot;middle&amp;quot;)&lt;br /&gt;
	local text_bottom = -0.5*bar_height&lt;br /&gt;
	text:css(&amp;quot;display&amp;quot;,&amp;quot;block&amp;quot;)&lt;br /&gt;
	text:css(&amp;quot;bottom&amp;quot;,checkDim(text_bottom,args[&amp;quot;height-unit&amp;quot;],nil,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
	text:css(&amp;quot;transform&amp;quot;,&amp;quot;translateY(-50%)&amp;quot;)&lt;br /&gt;
	text:css(&amp;quot;z-index&amp;quot;,&amp;quot;5&amp;quot;)&lt;br /&gt;
	text:wikitext(ignoreBlank(args.text))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to render all bars/boxes in timeline&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = parent HTML object&lt;br /&gt;
--   args = arguments to main function&lt;br /&gt;
--&lt;br /&gt;
--  Global (main) arguments are parsed, individual box arguments are picked out&lt;br /&gt;
--  and passed to p._singleBar() above&lt;br /&gt;
--&lt;br /&gt;
--  The function looks for bar*-left, bar*-right, bar*-from, or bar*-to,&lt;br /&gt;
--     where * is a string of digits. That string of digits is then used to&lt;br /&gt;
--     find corresponding parameters of the individual bar.&lt;br /&gt;
--  For example, if bar23-left is found, then bar23-colour turns into local colour,&lt;br /&gt;
--     bar23-left turns into local left, bar23-from turns into local from, etc.&lt;br /&gt;
function p._bars(container,args)&lt;br /&gt;
	local barArgs = p._scanArgs(args,{&amp;quot;^bar(%d+)-left$&amp;quot;,&amp;quot;^bar(%d+)-right$&amp;quot;,&amp;quot;^bar(%d+)-from&amp;quot;,&amp;quot;^bar(%d+)-to&amp;quot;},&lt;br /&gt;
		{{&amp;quot;text&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-text&amp;quot;},&lt;br /&gt;
	     {&amp;quot;textsize&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-font-size&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgedown&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-nudge-down&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeup&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-nudge-up&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeright&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-nudge-right&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeleft&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-nudge-left&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-color&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-border-width&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-border-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-border-color&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-style&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-border-style&amp;quot;},&lt;br /&gt;
		 {&amp;quot;left&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-left&amp;quot;},&lt;br /&gt;
		 {&amp;quot;right&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-right&amp;quot;},&lt;br /&gt;
		 {&amp;quot;from&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-from&amp;quot;},&lt;br /&gt;
		 {&amp;quot;to&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-to&amp;quot;}})&lt;br /&gt;
    -- The individual bar arguments are placed into the barArgs table&lt;br /&gt;
    -- Iterating through barArgs picks out the &lt;br /&gt;
	for _, barg in ipairs(barArgs) do&lt;br /&gt;
		-- barg is a table with the local arguments for one bar.&lt;br /&gt;
		-- barg needs to have some global arguments copied into it:&lt;br /&gt;
		barg[&amp;quot;tl-from&amp;quot;] = args.from&lt;br /&gt;
		barg[&amp;quot;tl-to&amp;quot;] = args.to&lt;br /&gt;
		barg.height = args.height&lt;br /&gt;
		barg.width = args.width&lt;br /&gt;
		barg[&amp;quot;height-unit&amp;quot;] = args[&amp;quot;height-unit&amp;quot;]&lt;br /&gt;
		barg[&amp;quot;width-unit&amp;quot;] = args[&amp;quot;width-unit&amp;quot;]&lt;br /&gt;
		barg.unit = args.unit&lt;br /&gt;
		barg.scaling = args.scaling&lt;br /&gt;
		barg.power = args.power&lt;br /&gt;
		barg.alignBoxText = not args[&amp;quot;disable-box-align&amp;quot;]&lt;br /&gt;
		-- call _singleBar with the local arguments for one bar&lt;br /&gt;
		p._singleBar(container,barg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to draw a bar corresponding to a geological period&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = parent HTML object&lt;br /&gt;
--   args = global arguments passed to main&lt;br /&gt;
--&lt;br /&gt;
-- This function is just like _bars(), above, except with defaults for periods:&lt;br /&gt;
--    a period bar is triggered by period* (* = string of digits)&lt;br /&gt;
--    all other parameters start with &amp;quot;period&amp;quot;, not &amp;quot;bar&amp;quot;&lt;br /&gt;
--    colour, from, and to parameters default to data from named period&lt;br /&gt;
--    text is a wikilink to period article&lt;br /&gt;
function p._periods(container,args)&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local periodArgs = p._scanArgs(args,{&amp;quot;^period(%d+)$&amp;quot;},&lt;br /&gt;
		{{&amp;quot;text&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-text&amp;quot;},&lt;br /&gt;
		 {&amp;quot;textsize&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-font-size&amp;quot;},&lt;br /&gt;
		 {&amp;quot;period&amp;quot;,&amp;quot;period&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgedown&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-nudge-down&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeup&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-nudge-up&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeright&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-nudge-right&amp;quot;},&lt;br /&gt;
		 {&amp;quot;nudgeleft&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-nudge-left&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-color&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-width&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-border-width&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-colour&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-border-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-colour&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-border-color&amp;quot;},&lt;br /&gt;
		 {&amp;quot;border-style&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-border-style&amp;quot;},&lt;br /&gt;
		 {&amp;quot;left&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-left&amp;quot;},&lt;br /&gt;
		 {&amp;quot;right&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-right&amp;quot;},&lt;br /&gt;
		 {&amp;quot;from&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-from&amp;quot;},&lt;br /&gt;
		 {&amp;quot;to&amp;quot;,&amp;quot;period&amp;quot;,&amp;quot;-to&amp;quot;}})&lt;br /&gt;
	-- Iterate through period* arguments, translating much like bar* arguments&lt;br /&gt;
	-- Supply period defaults to local arguments, also&lt;br /&gt;
	for _, parg in ipairs(periodArgs) do&lt;br /&gt;
		parg.text = parg.text or (&amp;quot;[[&amp;quot;..parg.period..&amp;quot;]]&amp;quot;)&lt;br /&gt;
		parg.textsize = &amp;quot;90%&amp;quot;&lt;br /&gt;
		parg.colour = parg.colour or frame:expandTemplate{title=periodColor,args={parg.period}}&lt;br /&gt;
		parg.from = parg.from or tonumber(&amp;quot;-&amp;quot;..frame:expandTemplate{title=periodStart,args={parg.period}})&lt;br /&gt;
		parg.to = parg.to or tonumber(&amp;quot;-&amp;quot;..frame:expandTemplate{title=periodEnd,args={parg.period}})&lt;br /&gt;
		if tonumber(parg.from) &amp;lt; tonumber(args.from) then&lt;br /&gt;
			parg.from = args.from&lt;br /&gt;
		end&lt;br /&gt;
		if tonumber(parg.to) &amp;gt; tonumber(args.to) then&lt;br /&gt;
			parg.to = args.to&lt;br /&gt;
		end&lt;br /&gt;
		parg[&amp;quot;tl-from&amp;quot;] = args.from&lt;br /&gt;
		parg[&amp;quot;tl-to&amp;quot;] = args.to&lt;br /&gt;
		parg.height = args.height&lt;br /&gt;
		parg.width = args.width&lt;br /&gt;
		parg[&amp;quot;height-unit&amp;quot;] = args[&amp;quot;height-unit&amp;quot;]&lt;br /&gt;
		parg[&amp;quot;width-unit&amp;quot;] = args[&amp;quot;width-unit&amp;quot;]&lt;br /&gt;
		parg.unit = args.unit&lt;br /&gt;
		parg.scaling = args.scaling&lt;br /&gt;
		parg.power = args.power&lt;br /&gt;
		parg.alignBoxText = not args[&amp;quot;disable-box-align&amp;quot;]&lt;br /&gt;
		p._singleBar(container,parg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- ===========&lt;br /&gt;
-- ANNOTATIONS&lt;br /&gt;
-- ===========&lt;br /&gt;
&lt;br /&gt;
-- Function to render a single note (annotation)&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--    container = parent HTML object&lt;br /&gt;
--    args = arguments for this single note&lt;br /&gt;
--       args.text = text to display in note&lt;br /&gt;
--       args.noarr = bool, true if no arrow should be used&lt;br /&gt;
--       args.height = height of timeline&lt;br /&gt;
--       args.unit = height units&lt;br /&gt;
--       args.at = position of annotation (in time units)&lt;br /&gt;
--       args.colour = color of text in note&lt;br /&gt;
--       args.textsize = size of text (default 90%)&lt;br /&gt;
--       args.nudgeright = nudge text (and arrow) to right (in em)&lt;br /&gt;
--       args.nudgeleft = nudge text (and arrow) to left (in em)&lt;br /&gt;
--       Following parameters are only applicable to &amp;quot;no arrow&amp;quot; case or when&lt;br /&gt;
--       args.alignArrow is false:&lt;br /&gt;
--         args.nudgedown = nudge text down (in em)&lt;br /&gt;
--         args.nudgeup = nudge text up (in em)&lt;br /&gt;
--         args.aw = annotation width (in em)&lt;br /&gt;
&lt;br /&gt;
function p._singleNote(container,args)&lt;br /&gt;
	-- Ensure some parameters default to sensible values&lt;br /&gt;
	args.height = tonumber(args.height) or 36&lt;br /&gt;
	args.at = tonumber(args.at) or 0.5*(args.to+args.from)&lt;br /&gt;
	args.colour = args.colour or &amp;quot;black&amp;quot;&lt;br /&gt;
	args.aw = tonumber(args.aw)&lt;br /&gt;
	          -- if string is centering, use old width to not break it&lt;br /&gt;
	          or mw.ustring.find(args.text,&amp;quot;center&amp;quot;,1,true) and oldDefaultAW&lt;br /&gt;
	          or defaultAW&lt;br /&gt;
	args.textsize = args.textsize or &amp;quot;90%&amp;quot;&lt;br /&gt;
	-- Convert 4 nudge arguments to 2 numeric signed nudge dimensions (right, down)&lt;br /&gt;
	args.nudgeright = (tonumber(args.nudgeright) or 0)-(tonumber(args.nudgeleft) or 0)&lt;br /&gt;
	args.nudgedown = (tonumber(args.nudgedown) or 0)-(tonumber(args.nudgeup) or 0)&lt;br /&gt;
	-- Two cases: no arrow, and arrow&lt;br /&gt;
	--   For no arrow case, use previous CSS which works well to position text&lt;br /&gt;
	if args.noarr then&lt;br /&gt;
		-- First, place a bar that pushes annotation down to right spot&lt;br /&gt;
		local bar = container:tag(&#039;div&#039;)&lt;br /&gt;
		bar:addClass(&amp;quot;annot-bar&amp;quot;)&lt;br /&gt;
		bar:css(&amp;quot;width&amp;quot;,&amp;quot;auto&amp;quot;)&lt;br /&gt;
		bar:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
		bar:css(&amp;quot;position&amp;quot;,&amp;quot;absolute&amp;quot;)&lt;br /&gt;
		bar:css(&amp;quot;text-align&amp;quot;,&amp;quot;center&amp;quot;)&lt;br /&gt;
		bar:css(&amp;quot;margin-top&amp;quot;,checkDim(p._scaleTime(args.at,args.from,args.to,args.height,args.scaling,args.power),&lt;br /&gt;
			                          args.unit,nil,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
		-- Now, nudge the text per nudge dimensions&lt;br /&gt;
		local nudge = bar:tag(&#039;div&#039;)&lt;br /&gt;
		nudge:addClass(&amp;quot;annot-nudge&amp;quot;)&lt;br /&gt;
		nudge:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
		nudge:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
		nudge:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
		nudge:css(&amp;quot;text-align&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
		nudge:css(&amp;quot;top&amp;quot;,checkDim(args.nudgedown-0.75,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
		nudge:css(&amp;quot;left&amp;quot;,checkDim(args.nudgeright,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
		nudge:css(&amp;quot;width&amp;quot;,checkDim(args.aw,&amp;quot;em&amp;quot;,true))&lt;br /&gt;
		-- Finally, place a dev for the text&lt;br /&gt;
		local text = nudge:tag(&#039;div&#039;)&lt;br /&gt;
		text:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;width&amp;quot;,&amp;quot;auto&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;z-index&amp;quot;,&amp;quot;10&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;font-size&amp;quot;,ignoreBlank(args.textsize))&lt;br /&gt;
		text:css(&amp;quot;color&amp;quot;,ignoreBlank(args.colour))&lt;br /&gt;
		text:css(&amp;quot;vertical-align&amp;quot;,&amp;quot;middle&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;line-height&amp;quot;,&amp;quot;105%&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;bottom&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		text:wikitext(ignoreBlank(args.text))&lt;br /&gt;
	else&lt;br /&gt;
		-- In the arrow case, previous code didn&#039;t correctly line up the text&lt;br /&gt;
		-- Now that we&#039;re in Lua, it&#039;s easy to use a table to hold the arrow against the text&lt;br /&gt;
		-- One row: first td is arrow, second td is text&lt;br /&gt;
		-- Table gets placed directly using top CSS and absolute position&lt;br /&gt;
		local tbl = container:tag(&#039;table&#039;)&lt;br /&gt;
		tbl:attr(&amp;quot;role&amp;quot;,&amp;quot;presentation&amp;quot;) -- warn screen readers this table is for layout only&lt;br /&gt;
		-- choose a reasonable height for table, then position middle of that height in the timeline&lt;br /&gt;
		tbl:css(&amp;quot;position&amp;quot;,&amp;quot;absolute&amp;quot;)&lt;br /&gt;
		tbl:css(&amp;quot;z-index&amp;quot;,&amp;quot;15&amp;quot;)&lt;br /&gt;
		local at_location = p._scaleTime(args.at,args.from,args.to,args.height,args.scaling,args.power)&lt;br /&gt;
		tbl:css(&amp;quot;top&amp;quot;,checkDim(at_location,args.unit,nil,&amp;quot;%.3f&amp;quot;))&lt;br /&gt;
		tbl:css(&amp;quot;left&amp;quot;,checkDim(args.nudgeright,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
		tbl:css(&amp;quot;transform&amp;quot;,&amp;quot;translateY(-50%)&amp;quot;)&lt;br /&gt;
		tbl:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		tbl:css(&amp;quot;margin&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		tbl:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
		local row = tbl:tag(&#039;tr&#039;)&lt;br /&gt;
		local arrowCell = row:tag(&#039;td&#039;)&lt;br /&gt;
		arrowCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		arrowCell:css(&amp;quot;text-align&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
		arrowCell:css(&amp;quot;vertical-align&amp;quot;,&amp;quot;middle&amp;quot;)&lt;br /&gt;
		local arrowSpan = arrowCell:tag(&#039;span&#039;)&lt;br /&gt;
		arrowSpan:css(&amp;quot;color&amp;quot;,args.colour)&lt;br /&gt;
		arrowSpan:wikitext(&amp;quot;&amp;amp;#8592;&amp;quot;) --- HTML for left-pointing arrow&lt;br /&gt;
		local textCell = row:tag(&#039;td&#039;)&lt;br /&gt;
		textCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		textCell:css(&amp;quot;text-align&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
		textCell:css(&amp;quot;vertical-align&amp;quot;,&amp;quot;middle&amp;quot;)&lt;br /&gt;
		local textParent = textCell&lt;br /&gt;
		-- If disable-arrow-align is true, nudge the text per nudge dimensions:&lt;br /&gt;
		if not args.alignArrow then&lt;br /&gt;
		  local nudge = textCell:tag(&#039;div&#039;)&lt;br /&gt;
		  nudge:addClass(&amp;quot;annot-nudge&amp;quot;)&lt;br /&gt;
		  nudge:css(&amp;quot;font-size&amp;quot;,&amp;quot;100%&amp;quot;)&lt;br /&gt;
		  nudge:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
		  nudge:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
		  nudge:css(&amp;quot;top&amp;quot;,checkDim(args.nudgedown,&amp;quot;em&amp;quot;,nil))&lt;br /&gt;
		  textParent = nudge&lt;br /&gt;
		end&lt;br /&gt;
		local text = textParent:tag(&#039;div&#039;)&lt;br /&gt;
		text:css(&amp;quot;z-index&amp;quot;,&amp;quot;10&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;font-size&amp;quot;,ignoreBlank(args.textsize))&lt;br /&gt;
		text:css(&amp;quot;color&amp;quot;,ignoreBlank(args.colour))&lt;br /&gt;
		text:css(&amp;quot;display&amp;quot;,&amp;quot;block&amp;quot;)&lt;br /&gt;
		text:css(&amp;quot;line-height&amp;quot;,&amp;quot;105%&amp;quot;) --- don&#039;t crunch multiple lines of text&lt;br /&gt;
		text:css(&amp;quot;bottom&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
		text:wikitext(ignoreBlank(args.text))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to render all annotations in timeline&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = parent HTML object&lt;br /&gt;
--   args = arguments to main function&lt;br /&gt;
--&lt;br /&gt;
--  Global (main) arguments are parsed, individual box arguments are picked out&lt;br /&gt;
--  and passed to p._singleNote() above&lt;br /&gt;
--&lt;br /&gt;
--  The function looks for note*, where * is a string of digits&lt;br /&gt;
--     That string of digits is then used to find corresponding parameters of the individual note.&lt;br /&gt;
--  For example, if note23 is found, then note23-colour turns into local colour,&lt;br /&gt;
--     note-at turns into local at, note-texdt turns into local text, etc.&lt;br /&gt;
--&lt;br /&gt;
--  args[&amp;quot;annotation-width&amp;quot;] overrides automatically determined width of annotation div&lt;br /&gt;
function p._annotations(container,args)&lt;br /&gt;
	local noteArgs = p._scanArgs(args,{&amp;quot;^note(%d+)$&amp;quot;},&lt;br /&gt;
								{{&amp;quot;text&amp;quot;,&amp;quot;note&amp;quot;},&lt;br /&gt;
								 {&amp;quot;noarr&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-remove-arrow&amp;quot;},&lt;br /&gt;
								 {&amp;quot;noarr&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-no-arrow&amp;quot;},&lt;br /&gt;
								 {&amp;quot;textsize&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-size&amp;quot;},&lt;br /&gt;
								 {&amp;quot;textsize&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-font-size&amp;quot;},&lt;br /&gt;
								 {&amp;quot;nudgedown&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-nudge-down&amp;quot;},&lt;br /&gt;
								 {&amp;quot;nudgeup&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-nudge-up&amp;quot;},&lt;br /&gt;
								 {&amp;quot;nudgeright&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-nudge-right&amp;quot;},&lt;br /&gt;
								 {&amp;quot;nudgeleft&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-nudge-left&amp;quot;},&lt;br /&gt;
								 {&amp;quot;colour&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-colour&amp;quot;},&lt;br /&gt;
								 {&amp;quot;colour&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-color&amp;quot;},&lt;br /&gt;
								 {&amp;quot;at&amp;quot;,&amp;quot;note&amp;quot;,&amp;quot;-at&amp;quot;}})&lt;br /&gt;
	if #noteArgs == 0 then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	-- a div to hold all of the notes&lt;br /&gt;
	local notes= container:tag(&#039;td&#039;)&lt;br /&gt;
	notes:attr(&amp;quot;id&amp;quot;,&amp;quot;Annotations&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	notes:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	notes:css(&amp;quot;margin&amp;quot;,&amp;quot;0.7em 0 0.7em 0&amp;quot;)&lt;br /&gt;
	notes:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	notes:css(&amp;quot;position&amp;quot;,&amp;quot;relative&amp;quot;)&lt;br /&gt;
	-- Is there a &amp;quot;real&amp;quot; note? If so, leave room for it&lt;br /&gt;
	-- real is: is non-empty and (has arrow or isn&#039;t nudged left)&lt;br /&gt;
	local realNote = false&lt;br /&gt;
	for _, narg in ipairs(noteArgs) do&lt;br /&gt;
		local left = (tonumber(narg.nudgeleft) or 0)-(tonumber(narg.nudgeright) or 0)&lt;br /&gt;
		if narg.text ~= &amp;quot;&amp;quot; and (not narg.noarr or left &amp;lt;= 0) then&lt;br /&gt;
			realNote = true&lt;br /&gt;
			args.hasRealNote = true -- record realNote boolean in args for further use&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- width of notes holder depends on whethere there are any &amp;quot;real&amp;quot; notes&lt;br /&gt;
	-- width can be overriden&lt;br /&gt;
	local aw = tonumber(args[&amp;quot;annotations-width&amp;quot;]) or (realNote and defaultAW) or 0&lt;br /&gt;
	aw = aw+2.25&lt;br /&gt;
	notes:css(&amp;quot;width&amp;quot;,checkDim(aw,&amp;quot;em&amp;quot;,true))&lt;br /&gt;
	args.computedWidth = args.computedWidth+aw&lt;br /&gt;
	local height = tonumber(args.height) or 36&lt;br /&gt;
	local unit = args[&amp;quot;height-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	notes:css(&amp;quot;height&amp;quot;,checkDim(height,unit,true))&lt;br /&gt;
	for _, narg in ipairs(noteArgs) do&lt;br /&gt;
		--- copy required global parameters to local note args&lt;br /&gt;
		narg.from = args.from&lt;br /&gt;
		narg.to = args.to&lt;br /&gt;
		narg.height = args.height&lt;br /&gt;
		narg.unit = args[&amp;quot;height-unit&amp;quot;] or args[&amp;quot;width-unit&amp;quot;] or &amp;quot;em&amp;quot;&lt;br /&gt;
		narg.aw = args[&amp;quot;annotations-width&amp;quot;]&lt;br /&gt;
		narg.alignArrow = not args[&amp;quot;disable-arrow-align&amp;quot;]&lt;br /&gt;
		narg.scaling = args.scaling&lt;br /&gt;
		narg.power = args.power&lt;br /&gt;
		p._singleNote(notes,narg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--  ====================&lt;br /&gt;
--  LEGENDS AND CAPTIONS&lt;br /&gt;
--  ====================&lt;br /&gt;
&lt;br /&gt;
-- Function to render a single legend (below the timeline)&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   container = parent HTML object&lt;br /&gt;
--   args = argument table for this legend&lt;br /&gt;
--     args.colour = color to show in square&lt;br /&gt;
--     args.text = text that describes color&lt;br /&gt;
function p._singleLegend(container,args)&lt;br /&gt;
	if not args.text then  -- if no text, not a sensible legend&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	args.colour = args.colour or args.defaultColor or &amp;quot;transparent&amp;quot;&lt;br /&gt;
	local row = container:tag(&#039;tr&#039;)&lt;br /&gt;
	local squareCell = row:tag(&#039;td&#039;)&lt;br /&gt;
	squareCell:css(&amp;quot;padding&amp;quot;,0)&lt;br /&gt;
	local square = squareCell:tag(&#039;span&#039;)&lt;br /&gt;
	square:css(&amp;quot;background&amp;quot;,ignoreBlank(args.colour))&lt;br /&gt;
	square:css(&amp;quot;padding&amp;quot;,&amp;quot;0em .1em&amp;quot;)&lt;br /&gt;
	square:css(&amp;quot;border&amp;quot;,&amp;quot;solid 1px #242020&amp;quot;)&lt;br /&gt;
	square:css(&amp;quot;height&amp;quot;,&amp;quot;1.5em&amp;quot;)&lt;br /&gt;
	square:css(&amp;quot;width&amp;quot;,&amp;quot;1.5em&amp;quot;)&lt;br /&gt;
	square:css(&amp;quot;margin&amp;quot;,&amp;quot;.25em .9em .25em .25em&amp;quot;)&lt;br /&gt;
	square:wikitext(&amp;quot;&amp;amp;emsp;&amp;quot;)&lt;br /&gt;
	local textCell = row:tag(&#039;td&#039;)&lt;br /&gt;
	textCell:css(&amp;quot;padding&amp;quot;,0)&lt;br /&gt;
	local text = textCell:tag(&#039;div&#039;)&lt;br /&gt;
	text:wikitext(args.text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._legends(container,args)&lt;br /&gt;
	local legendArgs = p._scanArgs(args,{&amp;quot;^legend(%d+)$&amp;quot;},&lt;br /&gt;
		{{&amp;quot;text&amp;quot;,&amp;quot;legend&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;bar&amp;quot;,&amp;quot;-color&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;legend&amp;quot;,&amp;quot;-colour&amp;quot;},&lt;br /&gt;
		 {&amp;quot;colour&amp;quot;,&amp;quot;legend&amp;quot;,&amp;quot;-color&amp;quot;}&lt;br /&gt;
		 })&lt;br /&gt;
	if #legendArgs == 0 then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	local legendRow = container:tag(&#039;tr&#039;)&lt;br /&gt;
	local legendCell = container:tag(&#039;td&#039;)&lt;br /&gt;
    legendCell:attr(&amp;quot;id&amp;quot;,&amp;quot;Legend&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	legendCell:attr(&amp;quot;colspan&amp;quot;,3)&lt;br /&gt;
	legendCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0 0.2em 0.7em 1em&amp;quot;)&lt;br /&gt;
	local legend = legendCell:tag(&#039;table&#039;)&lt;br /&gt;
	legend:attr(&amp;quot;id&amp;quot;,&amp;quot;Legend&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
    legend:attr(&amp;quot;role&amp;quot;,&amp;quot;presentation&amp;quot;)&lt;br /&gt;
    legend:addClass(&amp;quot;toccolours&amp;quot;)&lt;br /&gt;
	legend:css(&amp;quot;margin-left&amp;quot;,&amp;quot;3.1em&amp;quot;)&lt;br /&gt;
	legend:css(&amp;quot;border-style&amp;quot;,&amp;quot;none&amp;quot;)&lt;br /&gt;
	legend:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	legend:css(&amp;quot;clear&amp;quot;,&amp;quot;both&amp;quot;)&lt;br /&gt;
	for _,larg in ipairs(legendArgs) do&lt;br /&gt;
		p._singleLegend(legend,larg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local helpString = [=[&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Copy the text below, adding multiple bars, legends and notes as required.&lt;br /&gt;
&amp;lt;br&amp;gt;Comments, enclosed in &amp;lt;code&amp;gt;&amp;lt;!-&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;- -&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;-&amp;gt;&amp;lt;/code&amp;gt;, should be removed.&lt;br /&gt;
&lt;br /&gt;
Remember:&lt;br /&gt;
* You must use &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;{!}&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt; wherever you want a {{!}} to be&lt;br /&gt;
: rendered in the timeline&lt;br /&gt;
* Large borders will displace bars in many browsers&lt;br /&gt;
* Text should not be wider than its containing bar,&lt;br /&gt;
: as this may cause compatibility issues&lt;br /&gt;
* Units default to [[em (typography){{!}}em]], the height and width of an &#039;M&#039;.&lt;br /&gt;
&lt;br /&gt;
See {{tl|Graphical timeline}} for full documentation.&lt;br /&gt;
&lt;br /&gt;
{{Graphical timeline/blank}}}}]=]&lt;br /&gt;
&lt;br /&gt;
local function createCaption(container,args)&lt;br /&gt;
	local captionRow = container:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
	local captionCell = captionRow:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
    captionCell:attr(&amp;quot;id&amp;quot;,&amp;quot;Caption&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	captionCell:attr(&amp;quot;colspan&amp;quot;,3)&lt;br /&gt;
	captionCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	captionCell:css(&amp;quot;margin&amp;quot;,&amp;quot;0 0.2em 0.7em 0.2em&amp;quot;)&lt;br /&gt;
	local caption = captionCell:tag(&amp;quot;div&amp;quot;)&lt;br /&gt;
	caption:attr(&amp;quot;id&amp;quot;,&amp;quot;Caption&amp;quot;..(args[&amp;quot;instance-id&amp;quot;] or &amp;quot;&amp;quot;))&lt;br /&gt;
	caption:addClass(&amp;quot;toccolours&amp;quot;)&lt;br /&gt;
	if args.embedded then&lt;br /&gt;
		caption:css(&amp;quot;margin&amp;quot;,&amp;quot;0 auto&amp;quot;)&lt;br /&gt;
		caption:css(&amp;quot;float&amp;quot;,&amp;quot;left&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		caption:css(&amp;quot;margin&amp;quot;,&amp;quot;0 0.5em&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	caption:css(&amp;quot;border-style&amp;quot;,&amp;quot;none&amp;quot;)&lt;br /&gt;
	caption:css(&amp;quot;clear&amp;quot;,&amp;quot;both&amp;quot;)&lt;br /&gt;
	caption:css(&amp;quot;text-align&amp;quot;,&amp;quot;center&amp;quot;)&lt;br /&gt;
	local widthUnit = args[&amp;quot;width-unit&amp;quot;] or args.unit or &amp;quot;em&amp;quot;&lt;br /&gt;
	local aw = tonumber(args[&amp;quot;annotations-width&amp;quot;]) or (args.hasRealNote and defaultAW) or -0.25&lt;br /&gt;
	aw = aw+5+((widthUnit == &amp;quot;em&amp;quot; and tonumber(args.width)) or 10)&lt;br /&gt;
	if aw &amp;gt; args.computedWidth then&lt;br /&gt;
		args.computedWidth = aw&lt;br /&gt;
	end&lt;br /&gt;
	caption:css(&amp;quot;width&amp;quot;,checkDim(aw,&amp;quot;em&amp;quot;,true))&lt;br /&gt;
	caption:wikitext((args.caption or &amp;quot;&amp;quot;)..((args.help and args.help ~= &amp;quot;off&amp;quot; and helpString) or &amp;quot;&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- For backward compatibility with template, all empty arguments are accepted.&lt;br /&gt;
	-- But, for some parameters, empty will cause a Lua error, so for those, we convert&lt;br /&gt;
	-- empty to nil.&lt;br /&gt;
	for _, attr in pairs({&amp;quot;title&amp;quot;,&amp;quot;link-to&amp;quot;,&amp;quot;embedded&amp;quot;,&amp;quot;align&amp;quot;,&amp;quot;margin&amp;quot;,&lt;br /&gt;
		&amp;quot;height&amp;quot;,&amp;quot;width&amp;quot;,&amp;quot;unit&amp;quot;,&amp;quot;height-unit&amp;quot;,&amp;quot;width-unit&amp;quot;,&amp;quot;scale-increment&amp;quot;,&lt;br /&gt;
		&amp;quot;annotations-width&amp;quot;,&amp;quot;disable-arrow-align&amp;quot;,&amp;quot;disable-box-align&amp;quot;,&amp;quot;from&amp;quot;,&amp;quot;to&amp;quot;}) do&lt;br /&gt;
		args[attr] = ignoreBlank(args[attr])&lt;br /&gt;
	end&lt;br /&gt;
	-- Check that to &amp;gt; from, and that they&#039;re both defined&lt;br /&gt;
	local from = tonumber(args.from) or 0&lt;br /&gt;
	local to = tonumber(args.to) or 0&lt;br /&gt;
	if from &amp;gt; to then&lt;br /&gt;
		args.from = to&lt;br /&gt;
		args.to = from&lt;br /&gt;
	else&lt;br /&gt;
		args.from = from&lt;br /&gt;
		args.to = to&lt;br /&gt;
	end&lt;br /&gt;
	if args.scaling == &#039;sqrt&#039; then&lt;br /&gt;
		args.scaling = &#039;pow&#039;&lt;br /&gt;
		args.power = 0.5&lt;br /&gt;
	end&lt;br /&gt;
	if args.scaling == &#039;pow&#039; then&lt;br /&gt;
		args.power = args.power or 0.5&lt;br /&gt;
	end&lt;br /&gt;
	args.computedWidth = 1.7&lt;br /&gt;
	-- Create container table&lt;br /&gt;
	local container = createContainer(args)&lt;br /&gt;
	-- TITLE&lt;br /&gt;
	if args.title and not args.embedded then&lt;br /&gt;
		local titleRow = container:tag(&#039;tr&#039;)&lt;br /&gt;
		local titleCell = titleRow:tag(&#039;td&#039;)&lt;br /&gt;
		titleCell:attr(&amp;quot;colspan&amp;quot;,3)&lt;br /&gt;
		createTitle(titleCell,args)&lt;br /&gt;
	end&lt;br /&gt;
	-- NAVBOX HEADER&lt;br /&gt;
	if args[&amp;quot;link-to&amp;quot;] and not args.embedded then&lt;br /&gt;
		local navboxRow = container:tag(&#039;tr&#039;)&lt;br /&gt;
		local navboxCell = navboxRow:tag(&#039;td&#039;)&lt;br /&gt;
		navboxCell:attr(&amp;quot;colspan&amp;quot;,3)&lt;br /&gt;
		navboxHeader(navboxCell,args)&lt;br /&gt;
	end&lt;br /&gt;
	local centralRow = container:tag(&#039;tr&#039;)&lt;br /&gt;
	centralRow:css(&amp;quot;vertical-align&amp;quot;,&amp;quot;top&amp;quot;)&lt;br /&gt;
	-- SCALEBAR&lt;br /&gt;
	local scaleCell = centralRow:tag(&#039;td&#039;)&lt;br /&gt;
	scaleCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	scaleCell:css(&amp;quot;margin&amp;quot;,&amp;quot;0.7em 0 0.7em 0&amp;quot;)&lt;br /&gt;
	p._scalemarkers(scaleCell,args)&lt;br /&gt;
	-- TIMELINE&lt;br /&gt;
	local timelineCell = centralRow:tag(&#039;td&#039;)&lt;br /&gt;
	timelineCell:css(&amp;quot;padding&amp;quot;,&amp;quot;0&amp;quot;)&lt;br /&gt;
	timelineCell:css(&amp;quot;margin&amp;quot;,&amp;quot;0.7em 0 0.7em 0&amp;quot;)&lt;br /&gt;
	local timeline = createTimeline(timelineCell,args)&lt;br /&gt;
	-- PERIODS&lt;br /&gt;
	p._periods(timeline,args)&lt;br /&gt;
	-- BARS&lt;br /&gt;
	p._bars(timeline,args)&lt;br /&gt;
	-- ANNOTATIONS&lt;br /&gt;
	p._annotations(centralRow,args)&lt;br /&gt;
	-- LEGEND&lt;br /&gt;
	p._legends(container,args)&lt;br /&gt;
	-- CAPTION&lt;br /&gt;
	createCaption(container,args)&lt;br /&gt;
	container:css(&amp;quot;min-width&amp;quot;,checkDim(args.computedWidth,&amp;quot;em&amp;quot;))&lt;br /&gt;
	return container&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame,{frameOnly=false,parentOnly=false,parentFirst=true,removeBlanks=false})&lt;br /&gt;
	return tostring(p._main(args):allDone())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=O%C5%9B_wydarze%C5%84&amp;diff=605</id>
		<title>Oś wydarzeń</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=O%C5%9B_wydarze%C5%84&amp;diff=605"/>
		<updated>2023-10-12T14:43:39Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;pwtk&#039;&#039; – przed Wojną o Tron Kolejarzy, &#039;&#039;wtk&#039;&#039; – po rozpoczęciu Wojny o Tron Kolejarzy&lt;br /&gt;
&lt;br /&gt;
{{timeline-start}}&lt;br /&gt;
{{timeline-item&lt;br /&gt;
| {{start date|9999 pwtk}}&lt;br /&gt;
| &lt;br /&gt;
* Ucieczka [[Sułtan Orłowca|Sułtana Orłowca]] z Radomia (wymiana studencka) do Rydułtów&lt;br /&gt;
* Ustanowienie Sułtanatu Orłowieckiego&lt;br /&gt;
}}&lt;br /&gt;
{{timeline-item&lt;br /&gt;
| {{start date|1 pwtk}}&lt;br /&gt;
| &lt;br /&gt;
* Obrona Manhattanu&lt;br /&gt;
}}&lt;br /&gt;
{{timeline-item&lt;br /&gt;
| {{start date|1 wtk}}&lt;br /&gt;
|&lt;br /&gt;
* Sułtan Orłowca wysyła wojska za Anaberg&lt;br /&gt;
}}&lt;br /&gt;
{{timeline-end}}&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Timeline-links&amp;diff=604</id>
		<title>Szablon:Timeline-links</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Timeline-links&amp;diff=604"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Simile site has moved; seeking new URL&lt;br /&gt;
&lt;br /&gt;
*[http://www.simile-widgets.org/timeline/?hcal={{canonicalurl:{{FULLPAGENAMEE}}}} Timeline] ([[SIMILE Timeline]], generated from [[hCalendar|hCalendar microformats]] on this page)&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;*{{#ifeq:{{NAMESPACE}}|Category||[http://microform.at/?type=hcalendar-rdf&amp;amp;url={{canonicalurl:{{FULLPAGENAMEE}}}} Event data as RDF]}} {{dead link|date=May 2017}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Dead_link&amp;diff=602</id>
		<title>Szablon:Dead link</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Dead_link&amp;diff=602"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Unsubst||date=__DATE__ |$B=&lt;br /&gt;
&amp;lt;!--{{Dead link}} begin--&amp;gt;{{Fix&lt;br /&gt;
| special  = &amp;lt;sup class=&amp;quot;noprint Inline-Template&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if: {{{url|}}}|[https://web.archive.org/web/*/{{{url|}}} &amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;tagged {{{date}}}}}&amp;quot;&amp;gt;dead link&amp;lt;/span&amp;gt;]|[[Wikipedia:Link rot|&amp;lt;span title=&amp;quot;{{{title|}}}{{#if:{{{date|}}}|&amp;amp;nbsp;Dead link tagged {{{date}}}}}&amp;quot;&amp;gt;{{#if:{{{fix-attempted|}}}|permanent dead link|dead link}}&amp;lt;/span&amp;gt;]]}}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| date     = {{{date|}}}&lt;br /&gt;
| cat      = {{main other|[[Category:All articles with dead external links]]}}&lt;br /&gt;
| cat-date = Category:Articles with dead external links&lt;br /&gt;
| cat2     = {{main other|{{#if:{{{fix-attempted|}}}|[[Category:Articles with permanently dead external links]]}}}}&lt;br /&gt;
}}&amp;lt;!--{{Dead link}} end--&amp;gt;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE; INTERWIKIS GO TO WIKIDATA, THANK YOU! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Reflist/styles.css&amp;diff=600</id>
		<title>Szablon:Reflist/styles.css</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Reflist/styles.css&amp;diff=600"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
/* can we remove the font size declarations? .references gets a font-size in&lt;br /&gt;
 * common.css that is always 90, and there is nothing else in reflist out in&lt;br /&gt;
 * the wild. May affect column sizes.&lt;br /&gt;
 */&lt;br /&gt;
.reflist {&lt;br /&gt;
	font-size: 90%;            /* Default font-size */&lt;br /&gt;
	margin-bottom: 0.5em;&lt;br /&gt;
	list-style-type: decimal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist .references {&lt;br /&gt;
	font-size: 100%;           /* Reset font-size when nested in div.reflist */&lt;br /&gt;
	margin-bottom: 0;          /* Avoid double margin when nested in div.reflist */&lt;br /&gt;
	list-style-type: inherit;  /* Enable custom list style types */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* columns-2 and columns-3 are legacy for &amp;quot;2 or more&amp;quot; column view from when the&lt;br /&gt;
 * template was implemented with column-count.&lt;br /&gt;
 */&lt;br /&gt;
.reflist-columns-2 {&lt;br /&gt;
	column-width: 30em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-columns-3 {&lt;br /&gt;
	column-width: 25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Reset top margin for lists embedded in columns */&lt;br /&gt;
.reflist-columns {&lt;br /&gt;
	margin-top: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-columns ol {&lt;br /&gt;
	margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Avoid elements breaking between columns */&lt;br /&gt;
.reflist-columns li {&lt;br /&gt;
	page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */&lt;br /&gt;
	break-inside: avoid-column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-upper-alpha {&lt;br /&gt;
	list-style-type: upper-alpha;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-upper-roman {&lt;br /&gt;
	list-style-type: upper-roman;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-lower-alpha {&lt;br /&gt;
	list-style-type: lower-alpha;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-lower-greek {&lt;br /&gt;
	list-style-type: lower-greek;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.reflist-lower-roman {&lt;br /&gt;
	list-style-type: lower-roman;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Reflist&amp;diff=598</id>
		<title>Szablon:Reflist</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Reflist&amp;diff=598"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Reflist/styles.css&amp;quot; /&amp;gt;&amp;lt;div class=&amp;quot;reflist &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} &amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} &amp;gt; 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}&amp;quot; &amp;lt;!-- end class&lt;br /&gt;
--&amp;gt;{{#if: {{{1|}}}&amp;lt;!-- start style --&amp;gt;&lt;br /&gt;
    | {{#iferror: {{#ifexpr: {{{1|1}}} &amp;gt; 1 }} |style=&amp;quot;column-width: {{{1}}};&amp;quot;}}&lt;br /&gt;
    | {{#if: {{{colwidth|}}}|style=&amp;quot;column-width: {{{colwidth}}};&amp;quot;}}&lt;br /&gt;
    }}&amp;gt;&lt;br /&gt;
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}&amp;lt;/div&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Fix&amp;diff=596</id>
		<title>Szablon:Fix</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Fix&amp;diff=596"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{{subst|¬}}}&lt;br /&gt;
 |¬={{category handler&lt;br /&gt;
  |template=[[Category:Templates needing substitution checking]]&lt;br /&gt;
  |nocat={{{nocat|&amp;lt;noinclude&amp;gt;true&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
 }}&lt;br /&gt;
 |SUBST=[[Category:Pages with incorrectly substituted templates]]&lt;br /&gt;
}}{{Category handler&lt;br /&gt;
 |main={{Fix/category&lt;br /&gt;
  |cat-date={{{cat-date|}}} &lt;br /&gt;
  |cat={{{cat|}}} &lt;br /&gt;
  |cat-date2={{{cat-date2|}}} &lt;br /&gt;
  |cat2={{{cat2|}}} &lt;br /&gt;
  |cat-date3={{{cat-date3|}}} &lt;br /&gt;
  |cat3={{{cat3|}}} &lt;br /&gt;
  |date={{{date|}}}&lt;br /&gt;
 }}&lt;br /&gt;
 |template={{#if:{{{name|}}}|{{#ifeq:{{{name}}}|{{ROOTPAGENAME}}||{{#if:{{{date|}}}||[[Category:Templates including undated clean-up tags]]}}}}}} &lt;br /&gt;
 |subpage=no&lt;br /&gt;
}}{{#if:{{{text|}}}&lt;br /&gt;
 |&amp;lt;sup class=&amp;quot;noprint Inline-Template {{{class|}}}&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;{{#if:{{{pre-text|}}}&lt;br /&gt;
  |{{{pre-text}}}&amp;amp;#32;&lt;br /&gt;
 }}[[{{{link|Wikipedia:Cleanup}}}|&amp;lt;span title=&amp;quot;{{#invoke:string|replace|source={{delink|1={{{title|{{{link|Wikipedia:Cleanup}}}}}}{{#if:{{{date|}}}|&amp;amp;#32;({{{date}}})}}}}|pattern=&amp;quot; |replace=&amp;amp;quot; |plain=true}}&amp;quot;&amp;gt;{{{text|}}}&amp;lt;/span&amp;gt;]]{{#if:{{{post-text|}}}&lt;br /&gt;
  |&amp;amp;#32;{{{post-text}}}&lt;br /&gt;
 }}&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/sup&amp;gt;|{{{special|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add cats and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
	<entry>
		<id>https://lore.tehnoruum.eu/index.php?title=Szablon:Category_handler&amp;diff=594</id>
		<title>Szablon:Category handler</title>
		<link rel="alternate" type="text/html" href="https://lore.tehnoruum.eu/index.php?title=Szablon:Category_handler&amp;diff=594"/>
		<updated>2023-10-12T14:33:07Z</updated>

		<summary type="html">&lt;p&gt;Sulejman: 1 wersja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Category handler|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, and interwikis to Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sulejman</name></author>
	</entry>
</feed>