<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pub.solar/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Teutat3s</id>
	<title>pub.solar wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pub.solar/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Teutat3s"/>
	<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php/Special:Contributions/Teutat3s"/>
	<updated>2026-06-04T14:12:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=360</id>
		<title>OpenBikeSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=360"/>
		<updated>2026-04-12T16:12:57Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Portal for the [https://www.openbikesensor.org/ OpenBikeSensor] project. This portal currently only hosts the Cologne/Bonn region. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
===== Configuration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
===== Helpful links =====&lt;br /&gt;
List of portals for other regions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Link to official user guide (in German):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/Page_display_title/de&amp;diff=359</id>
		<title>Translations:OpenBikeSensor/Page display title/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/Page_display_title/de&amp;diff=359"/>
		<updated>2026-04-12T15:38:05Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;OpenBikeSensor&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenBikeSensor&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor/de&amp;diff=358</id>
		<title>OpenBikeSensor/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor/de&amp;diff=358"/>
		<updated>2026-04-12T15:34:23Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portal für das [https://www.openbikesensor.org/ OpenBikeSensor] Projekt. Dieses Portal hosted aktuell nur die Region Köln/Bonn. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
===== Konfiguration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Hilfreiche Links =====&lt;br /&gt;
Liste mit Portalen für andere Regionen:&lt;br /&gt;
&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&lt;br /&gt;
Link zum offiziellen Benutzer:innen Handbuch:&lt;br /&gt;
&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/6/de&amp;diff=357</id>
		<title>Translations:OpenBikeSensor/6/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/6/de&amp;diff=357"/>
		<updated>2026-04-12T15:33:59Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/5/de&amp;diff=356</id>
		<title>Translations:OpenBikeSensor/5/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/5/de&amp;diff=356"/>
		<updated>2026-04-12T15:33:55Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;Link zum offiziellen Benutzer:innen Handbuch:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link zum offiziellen Benutzer:innen Handbuch:&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/4/de&amp;diff=355</id>
		<title>Translations:OpenBikeSensor/4/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/4/de&amp;diff=355"/>
		<updated>2026-04-12T15:33:33Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor/de&amp;diff=354</id>
		<title>OpenBikeSensor/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor/de&amp;diff=354"/>
		<updated>2026-04-12T15:30:18Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;Portal für das [https://www.openbikesensor.org/ OpenBikeSensor] Projekt. Dieses Portal hosted aktuell nur die Region Köln/Bonn. https://obs-portal.pub.solar/&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portal für das [https://www.openbikesensor.org/ OpenBikeSensor] Projekt. Dieses Portal hosted aktuell nur die Region Köln/Bonn. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
===== Konfiguration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Hilfreiche Links =====&lt;br /&gt;
Liste mit Portalen für andere Regionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Link to official user guide (in German):&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/3/de&amp;diff=353</id>
		<title>Translations:OpenBikeSensor/3/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/3/de&amp;diff=353"/>
		<updated>2026-04-12T15:30:11Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;===== Hilfreiche Links ===== Liste mit Portalen für andere Regionen:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Hilfreiche Links =====&lt;br /&gt;
Liste mit Portalen für andere Regionen:&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/2/de&amp;diff=352</id>
		<title>Translations:OpenBikeSensor/2/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/2/de&amp;diff=352"/>
		<updated>2026-04-12T15:29:41Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;===== Konfiguration ===== API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Konfiguration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/1/de&amp;diff=351</id>
		<title>Translations:OpenBikeSensor/1/de</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Translations:OpenBikeSensor/1/de&amp;diff=351"/>
		<updated>2026-04-12T15:29:17Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Created page with &amp;quot;Portal für das [https://www.openbikesensor.org/ OpenBikeSensor] Projekt. Dieses Portal hosted aktuell nur die Region Köln/Bonn. https://obs-portal.pub.solar/&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portal für das [https://www.openbikesensor.org/ OpenBikeSensor] Projekt. Dieses Portal hosted aktuell nur die Region Köln/Bonn. https://obs-portal.pub.solar/&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=342</id>
		<title>OpenBikeSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=342"/>
		<updated>2026-04-12T15:27:48Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Marked this version for translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Portal for the [https://www.openbikesensor.org/ OpenBikeSensor] project. This portal currently only hosts the Cologne/Bonn region. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
===== Configuration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
===== Helpful links =====&lt;br /&gt;
List of portals for other regions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Link to official user guide (in German):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=341</id>
		<title>OpenBikeSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=341"/>
		<updated>2026-04-12T15:27:42Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
Portal for the [https://www.openbikesensor.org/ OpenBikeSensor] project. This portal currently only hosts the Cologne/Bonn region. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
===== Configuration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Helpful links =====&lt;br /&gt;
List of portals for other regions:&lt;br /&gt;
&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&lt;br /&gt;
Link to official user guide (in German):&lt;br /&gt;
&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=340</id>
		<title>OpenBikeSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=340"/>
		<updated>2026-04-12T13:06:59Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Updated OBS page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portal for the [https://www.openbikesensor.org/ OpenBikeSensor] project. This portal currently only hosts the Cologne/Bonn region. https://obs-portal.pub.solar/&lt;br /&gt;
&lt;br /&gt;
===== Configuration =====&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Helpful links =====&lt;br /&gt;
List of portals for other regions:&lt;br /&gt;
&lt;br /&gt;
https://forum.openbikesensor.org/t/uebersicht-verfuegbarer-portale/688&lt;br /&gt;
&lt;br /&gt;
Link to official user guide (in German):&lt;br /&gt;
&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=339</id>
		<title>OpenBikeSensor</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=OpenBikeSensor&amp;diff=339"/>
		<updated>2026-04-12T13:03:04Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Initial OpenBikeSensor page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Portal for the OpenBikeSensor project. This portal currently only hosts the Cologne/Bonn region.&lt;br /&gt;
&lt;br /&gt;
Link to official user guide:&lt;br /&gt;
&lt;br /&gt;
https://www.openbikesensor.org/docs/user-guide/configuration/#wichtige-einstellungen&lt;br /&gt;
&lt;br /&gt;
API URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://obs-portal.pub.solar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=How-to:_Moderation&amp;diff=335</id>
		<title>How-to: Moderation</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=How-to:_Moderation&amp;diff=335"/>
		<updated>2025-11-19T18:40:25Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Add Matrix and Mastodon moderation sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Making a moderation decision ===&lt;br /&gt;
Moderation decisions should be made in consensus with all other moderators. Moderation decisions should preferably be logged, though we do not have a set place yet where this can happen.&lt;br /&gt;
&lt;br /&gt;
=== Matrix: How to ban an account ===&lt;br /&gt;
We use the [https://the-draupnir-project.github.io/draupnir-documentation/ draupnir] moderation bot to moderate our Matrix homeserver.&lt;br /&gt;
&lt;br /&gt;
Requirement:&lt;br /&gt;
&lt;br /&gt;
* Access to the room &amp;lt;code&amp;gt;#matrix-moderators:pub.solar&amp;lt;/code&amp;gt;&lt;br /&gt;
* Moderator permission level in pub.solar rooms&lt;br /&gt;
&lt;br /&gt;
Element Web has a built-in &amp;quot;Ban from room&amp;quot; button that can be used by selecting an account from the &amp;quot;People&amp;quot; list of a room. After using this button, &amp;lt;code&amp;gt;draupnir&amp;lt;/code&amp;gt; will prompt for a reaction in &amp;lt;code&amp;gt;#matrix-moderators:pub.solar&amp;lt;/code&amp;gt; asking whether to add this ban to the local ban list, applying the ban to all rooms in the pub.solar space.&lt;br /&gt;
[[File:20251119 19h24m32s grim.png|none|thumb|Screenshot of an account in the &amp;quot;People&amp;quot; sidebar of Element Web. Several buttons are visible, notably &amp;quot;Ban from room&amp;quot;.]]&lt;br /&gt;
Another option is to directly add an account to the local ban list by sending a message command to the &amp;lt;code&amp;gt;draupnir&amp;lt;/code&amp;gt; bot in the room &amp;lt;code&amp;gt;#matrix-moderators:pub.solar&amp;lt;/code&amp;gt;. The syntax to add a ban is:&lt;br /&gt;
 !draupnir ban @account:homeserver.domain ps-bans spam&lt;br /&gt;
&amp;lt;code&amp;gt;ps-bans&amp;lt;/code&amp;gt; is the short code of our local pub.solar ban list. In this example &amp;lt;code&amp;gt;spam&amp;lt;/code&amp;gt; is the reason for the ban.&lt;br /&gt;
&lt;br /&gt;
=== Mastodon: How to moderate ===&lt;br /&gt;
Requirement:&lt;br /&gt;
&lt;br /&gt;
* Moderator role assigned to account&lt;br /&gt;
&lt;br /&gt;
The moderation tools in Mastodon are available at: https://mastodon.pub.solar/admin/reports&lt;br /&gt;
&lt;br /&gt;
=== On-boarding a new moderator ===&lt;br /&gt;
# Add them to the &amp;quot;Matrix Moderators&amp;quot; room on Matrix&lt;br /&gt;
# Give them moderator rights in all relevant services&lt;br /&gt;
## Mastodon&lt;br /&gt;
## Matrix (#general and #hakken rooms)&lt;br /&gt;
#Add their name to the wiki [[Main Page|Main page]]&lt;br /&gt;
# Announce the change in Matrix community rooms &amp;amp; on Mastodon&lt;br /&gt;
&lt;br /&gt;
=== Off-boarding a moderator ===&lt;br /&gt;
&lt;br /&gt;
# Remove their moderator rights in all relevant services&lt;br /&gt;
## Mastodon&lt;br /&gt;
## Matrix (#general and #hakken rooms)&lt;br /&gt;
# Remove them from the &amp;quot;Matrix Moderators&amp;quot; room on Matrix&lt;br /&gt;
# Remove their name from the wiki [[Main Page|Main page]]&lt;br /&gt;
# Announce the change in Matrix community rooms &amp;amp; on Mastodon&lt;br /&gt;
&lt;br /&gt;
[[Category:How-To]]&lt;br /&gt;
[[Category:Community]]&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=File:20251119_19h24m32s_grim.png&amp;diff=334</id>
		<title>File:20251119 19h24m32s grim.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=File:20251119_19h24m32s_grim.png&amp;diff=334"/>
		<updated>2025-11-19T18:36:47Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of an account in the &amp;quot;People&amp;quot; sidebar of Element Web. Several buttons are visible, notably &amp;quot;Ban from room&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=333</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=333"/>
		<updated>2025-11-01T20:07:45Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Add wolkenblume to moderators&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the [https://pub.solar pub.solar] services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to &amp;lt;code&amp;gt;crew@pub.solar&amp;lt;/code&amp;gt; and include your desired &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]]. Our legal body is a registered association (e.V.) in Germany.&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @wolkenblume&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @b12f&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our association&#039;s [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=332</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=332"/>
		<updated>2025-10-22T09:55:27Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Mention legal body (e.V.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the [https://pub.solar pub.solar] services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to &amp;lt;code&amp;gt;crew@pub.solar&amp;lt;/code&amp;gt; and include your desired &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]]. Our legal body is a registered association (e.V.) in Germany.&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @b12f&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our association&#039;s [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=331</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=331"/>
		<updated>2025-10-20T14:57:09Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Update members with access to the bank account&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the [https://pub.solar pub.solar] services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to &amp;lt;code&amp;gt;crew@pub.solar&amp;lt;/code&amp;gt; and include your desired &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]].&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @b12f&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Category:Templates_using_TemplateStyles&amp;diff=330</id>
		<title>Category:Templates using TemplateStyles</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Category:Templates_using_TemplateStyles&amp;diff=330"/>
		<updated>2025-10-20T14:53:31Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Add link to TemplateStyles category on mediawiki.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://www.mediawiki.org/wiki/Category:Templates_using_TemplateStyles&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Category:Templates&amp;diff=329</id>
		<title>Category:Templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Category:Templates&amp;diff=329"/>
		<updated>2025-10-20T14:51:39Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Add link to Templates documentation on mediawiki.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See: https://www.mediawiki.org/wiki/Category:Templates&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=328</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=328"/>
		<updated>2025-10-20T14:49:39Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the [https://pub.solar pub.solar] services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to &amp;lt;code&amp;gt;crew@pub.solar&amp;lt;/code&amp;gt; and include your desired &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]].&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=327</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=327"/>
		<updated>2025-10-20T14:48:32Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the pub.solar services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to &amp;lt;code&amp;gt;crew@pub.solar&amp;lt;/code&amp;gt; and include your desired &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]].&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=326</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=326"/>
		<updated>2025-10-20T14:47:47Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the pub.solar services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = &amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to crew@pub.solar and include your desired username.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]].&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=325</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Main_Page&amp;diff=325"/>
		<updated>2025-10-20T14:47:10Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: Use Template:Note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the pub.solar wiki!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This wiki is meant for collecting information and documentation around the pub.solar services and community. This wiki is open for everyone with a [https://auth.pub.solar pub.solar ID] to edit. If you think information is missing, feel free to add it! We&#039;re especially grateful for tutorials and [[:Category:How-To|How-tos]] on moving away from proprietary services to pub.solar.&lt;br /&gt;
&lt;br /&gt;
== Using pub.solar services ==&lt;br /&gt;
To use services hosted by pub.solar you will need your own [https://auth.pub.solar/realms/pub.solar/login-actions/authenticate?client_id=account-console pub.solar ID], a [[wikipedia:Single_sign-on|single sign-on]] account for pub.solar. You will be redirected to &amp;lt;code&amp;gt;auth.pub.solar&amp;lt;/code&amp;gt; whenever you try to login to one of the sites mentioned below.&lt;br /&gt;
&lt;br /&gt;
{{Note&lt;br /&gt;
| inline = 1&lt;br /&gt;
| text = Note: Sign-up for new acounts is currently disabled. If you would like to create an account, please send a friendly email to crew@pub.solar and include your desired username.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To update account information connected to your pub.solar ID, go to: [https://auth.pub.solar auth.pub.solar].&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re new to our services, check out [[Migrating from a proprietary cloud]] for a basic overview of how to use our services.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatestyles src=&amp;quot;Project:Main Page/services.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;ul id=&amp;quot;mainpage-services&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Matrix_icon.svg|46x46px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Matrix]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Chat&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Nextcloud-svgrepo-com.svg|40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Nextcloud]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Cloud productivity suite&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Forgejo logo.svg|40x40px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Forgejo]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Code forge for Git&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;[[File:Mastodon logotype (simple) new hue.svg|40x40px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&amp;lt;div&amp;gt;[[Mastodon]]&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Microblogging&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The pub.solar community ==&lt;br /&gt;
pub.solar is a self-organized community, and everyone is invited to take part. Please read our [[Code of Conduct]] and [[Community Rules]].&lt;br /&gt;
&lt;br /&gt;
Community members that have administrative access to technical, community, or financial areas are considered part of the crew.&lt;br /&gt;
&lt;br /&gt;
Following the [https://wiki.social.coop/wiki/Operations social.coop model], pub.solar is divided up into several areas of work: community, tech, and finance &amp;amp; legal. We are currently a lot smaller than social.coop however, so pub.solarians are not members of just one working group, but rather just part of the crew.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
This working group concerns itself with organizing community events like [https://pub.solar/hakken/ hakken.irl], making sure user documentation is up-to-date, moderating community spaces, improving the on-boarding process for new pub.solarians, and other people-things.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with moderation rights are:&lt;br /&gt;
&lt;br /&gt;
* @lechimp&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
&lt;br /&gt;
=== Technical ===&lt;br /&gt;
This working group is about maintaining the pub.solar servers and infrastructure. Our infrastructure is captured in one git repository, which can be accessed in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/infra pub-solar/infra]. The technical documentation for the infrastructure is also located there.&lt;br /&gt;
&lt;br /&gt;
pub.solarians with administrative (root) access to the infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
* @axeman&lt;br /&gt;
* @hensoko&lt;br /&gt;
* @b12f&lt;br /&gt;
* @realestninja&lt;br /&gt;
&lt;br /&gt;
=== Finance ===&lt;br /&gt;
This working group is about making sure that the finances are in order, bookkeeping, and handling payments and donations. Financial statements can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/finances pub-solar/finances]. &lt;br /&gt;
&lt;br /&gt;
pub.solarians with access to the bank account are:&lt;br /&gt;
&lt;br /&gt;
* @teutat3s&lt;br /&gt;
&lt;br /&gt;
=== Legal ===&lt;br /&gt;
This working group concerns itself with making sure the [https://pub.solar/privacy/ privacy policy] is up-to-date and correct, that we&#039;re running everything according to our [https://pub.solar/satzung statutes], and anything else that might touch the law. Legal documents can be found in our [[forgejo]] instance under [https://git.pub.solar/pub-solar/legal pub-solar/legal].&lt;br /&gt;
&lt;br /&gt;
== Other pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Privacy resources]]&lt;br /&gt;
* [[:Category:How-To|How-to resources]]&lt;br /&gt;
&lt;br /&gt;
== Editing the wiki ==&lt;br /&gt;
&lt;br /&gt;
For information on editing the wiki, check out the [[pub.solar_wiki:Editing|Editing]] page.&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Warn&amp;diff=324</id>
		<title>Template:Warn</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Warn&amp;diff=324"/>
		<updated>2025-10-20T14:40:32Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{mbox&lt;br /&gt;
 | type = content&lt;br /&gt;
 | text = {{{1}}}&lt;br /&gt;
 | image = {{{image|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{documentation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Warning templates{{#translation:}}|{{PAGENAME}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Magic_words/en&amp;diff=322</id>
		<title>Template:Magic words/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Magic_words/en&amp;diff=322"/>
		<updated>2025-10-20T14:33:48Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{nmbox|image=[[File:Codex icon function.svg|20px|link=|class=skin-invert-image]]&lt;br /&gt;
|header=Magic words&lt;br /&gt;
|headerstyle=background-color=#8d7ebd;|textstyle=background-color=#e6e0f0;&lt;br /&gt;
|text={{flatlist|&lt;br /&gt;
* {{#if:{{{general|}}}||&#039;&#039;&#039;General editors:&#039;&#039;&#039;{{nbsp}}}}{{ll|Help:Magic words|nsp=no}}&lt;br /&gt;
* {{ll|Help:Extension:ParserFunctions|2=Additional parser functions}}&amp;lt;!-- &lt;br /&gt;
* &#039;&#039;{{ll|Extension:ParserFunctions/String functions|String functions}}*&#039;&#039; --&amp;gt; ({{ll|Extension:ParserFunctions|nsp=no}})&lt;br /&gt;
* {{ll|Module:String|2=String functions module}} ({{ll|Extension:Scribunto|nsp=no}})&lt;br /&gt;
* {{ll|Template:Parser functions nav|2=Navbox of parser functions}}&lt;br /&gt;
}}{{#if:{{{general|}}}||&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
{{flatlist|&lt;br /&gt;
* &#039;&#039;&#039;Developers and technical contributors:&#039;&#039;&#039;&lt;br /&gt;
* {{ll|Manual:Expr parser function syntax|2=&amp;lt;code&amp;gt;#expr&amp;lt;/code&amp;gt; syntax}}&lt;br /&gt;
* {{ll|Help:Parser functions in templates|nsp=no}}&lt;br /&gt;
* Parser function extension development: ({{ll|Manual:Extending wiki markup|2=Overview}}&lt;br /&gt;
* {{ll|Manual:Magic words|nsp=no}}&lt;br /&gt;
* {{ll|Manual:Variables|2=Variables}}&lt;br /&gt;
* {{ll|Manual:Parser functions|nsp=no}}&lt;br /&gt;
* {{ll|Manual:Tag extensions|2=Parser tags}})&lt;br /&gt;
* {{ll|Parser function extensions}}&lt;br /&gt;
* {{ll|Parser function extensions#Table of functions|2=List of additional parser functions}}&lt;br /&gt;
* {{ll|Parser function hooks|nsp=no}}&lt;br /&gt;
* {{ll|Parser extension tags|2=List of parser tags}}&lt;br /&gt;
* {{ll|Category:Parser extensions}} ({{ll|Category:Parser function extensions}}&lt;br /&gt;
* {{ll|Category:Tag extensions}}&lt;br /&gt;
* {{ll|Category:Variable extensions}})&lt;br /&gt;
}}&lt;br /&gt;
}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
[[Category:Navigation templates{{#translation:}}]]&lt;br /&gt;
[[Category:Magic words{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Magic_words&amp;diff=320</id>
		<title>Template:Magic words</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Magic_words&amp;diff=320"/>
		<updated>2025-10-20T14:33:47Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{nmbox|image=[[File:Codex icon function.svg|20px|link=|class=skin-invert-image]]&lt;br /&gt;
|header=&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; Magic words&amp;lt;/translate&amp;gt;&lt;br /&gt;
|headerstyle=background-color=#8d7ebd;|textstyle=background-color=#e6e0f0;&lt;br /&gt;
|text={{flatlist|&lt;br /&gt;
* {{#if:{{{general|}}}||&#039;&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; General editors:&amp;lt;/translate&amp;gt;&#039;&#039;&#039;{{nbsp}}}}{{ll|Help:Magic words|nsp=no}}&lt;br /&gt;
* {{ll|Help:Extension:ParserFunctions|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Additional parser functions&amp;lt;/translate&amp;gt;}}&amp;lt;!-- &lt;br /&gt;
* &#039;&#039;{{ll|Extension:ParserFunctions/String functions|String functions}}*&#039;&#039; --&amp;gt; ({{ll|Extension:ParserFunctions|nsp=no}})&lt;br /&gt;
* {{ll|Module:String|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; String functions module&amp;lt;/translate&amp;gt;}} ({{ll|Extension:Scribunto|nsp=no}})&lt;br /&gt;
* {{ll|Template:Parser functions nav|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; Navbox of parser functions&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
}}{{#if:{{{general|}}}||&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
{{flatlist|&lt;br /&gt;
* &#039;&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; Developers and technical contributors:&amp;lt;/translate&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* {{ll|Manual:Expr parser function syntax|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;#expr&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; syntax&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Help:Parser functions in templates|nsp=no}}&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; Parser function extension development:&amp;lt;/translate&amp;gt; ({{ll|Manual:Extending wiki markup|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Overview&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Manual:Magic words|nsp=no}}&lt;br /&gt;
* {{ll|Manual:Variables|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Variables&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Manual:Parser functions|nsp=no}}&lt;br /&gt;
* {{ll|Manual:Tag extensions|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Parser tags&amp;lt;/translate&amp;gt;}})&lt;br /&gt;
* {{ll|Parser function extensions}}&lt;br /&gt;
* {{ll|Parser function extensions#Table of functions|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; List of additional parser functions&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Parser function hooks|nsp=no}}&lt;br /&gt;
* {{ll|Parser extension tags|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; List of parser tags&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Category:Parser extensions}} ({{ll|Category:Parser function extensions}}&lt;br /&gt;
* {{ll|Category:Tag extensions}}&lt;br /&gt;
* {{ll|Category:Variable extensions}})&lt;br /&gt;
}}&lt;br /&gt;
}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
[[Category:Navigation templates{{#translation:}}]]&lt;br /&gt;
[[Category:Magic words{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Module:String/doc/en&amp;diff=318</id>
		<title>Module:String/doc/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Module:String/doc/en&amp;diff=318"/>
		<updated>2025-10-20T14:33:46Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{SUBPAGENAME}}|doc||{{Documentation subpage}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;languages/&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;{{#switch:&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Languages|Module:String/doc}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{Magic words|general=1}}&lt;br /&gt;
{{Module rating|release}}&lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&lt;br /&gt;
Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture.&lt;br /&gt;
If named parameters are used, MediaWiki will automatically remove any leading or trailing whitespace from the parameter.&lt;br /&gt;
Depending on the intended use, it may be advantageous to either preserve or remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
== Global options ==&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;ignore_errors&amp;lt;/code&amp;gt;&lt;br /&gt;
: If set to {{phpi|true}} or 1, any error condition will result in an empty string being returned rather than an error message.&lt;br /&gt;
; &amp;lt;code&amp;gt;error_category&amp;lt;/code&amp;gt;&lt;br /&gt;
: If an error occurs, specifies the name of a category to include with the error message. The default category is {{ll|Category:Errors reported by Module String}}.&lt;br /&gt;
; &amp;lt;code&amp;gt;no_category&amp;lt;/code&amp;gt;&lt;br /&gt;
: If set to {{phpi|true}} or 1, no category will be added if an error is generated.&lt;br /&gt;
&lt;br /&gt;
Unit tests for this module are available at [[Module:String/testcases]].&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}len{{!}}&#039;&#039;$1&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}len{{!}}s= &#039;&#039;$1&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
: This function returns a substring of the target string at specified indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}sub{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
|2=start_index&lt;br /&gt;
|3=end_index&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}sub&amp;lt;wbr/&amp;gt;{{!}}s= &#039;&#039;$1&#039;&#039; {{!}}i= &#039;&#039;$2&#039;&#039; {{!}}j= &#039;&#039;$3&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
|2=start_index&lt;br /&gt;
|3=end_index&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to return a subset of&lt;br /&gt;
; &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&lt;br /&gt;
: The first index of the substring to return, defaults to 1.&lt;br /&gt;
; &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;&lt;br /&gt;
: The last index of the string to return, defaults to the last character.&lt;br /&gt;
&lt;br /&gt;
The first character of the string is assigned an index of 1.&lt;br /&gt;
If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string.&lt;br /&gt;
Hence, a value of -1 is the same as selecting the last character of the string.&lt;br /&gt;
&lt;br /&gt;
If the requested indices are out of range for the given string, an error is reported.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
This function returns a substring from the source string that matches a specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}match{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;{{!}}&#039;&#039;$5&#039;&#039;{{!}}&#039;&#039;$6&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_string&lt;br /&gt;
|2=pattern_string&lt;br /&gt;
|3=start_index&lt;br /&gt;
|4=match_number&lt;br /&gt;
|5=plain_flag&lt;br /&gt;
|6=nomatch_output&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}match{{!}}s= &#039;&#039;$1&#039;&#039; {{!}}pattern= &#039;&#039;$2&#039;&#039; {{!}}start= &#039;&#039;$3&#039;&#039; {{!}}match= &#039;&#039;$4&#039;&#039; {{!}}plain= &#039;&#039;$5&#039;&#039; {{!}}nomatch= &#039;&#039;$6&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_string&lt;br /&gt;
|2=pattern_string&lt;br /&gt;
|3=start_index&lt;br /&gt;
|4=match_number&lt;br /&gt;
|5=plain_flag&lt;br /&gt;
|6=nomatch_output&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to search&lt;br /&gt;
; &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
: The pattern or string to find within the string&lt;br /&gt;
; &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;&lt;br /&gt;
: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1.&lt;br /&gt;
; &amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt;&lt;br /&gt;
: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is &amp;lt;code&amp;gt;match = 1&amp;lt;/code&amp;gt;. If a negative number is specified then a match is returned counting from the last match. Hence &amp;lt;code&amp;gt;match = -1&amp;lt;/code&amp;gt; is the same as requesting the last match. Defaults to 1.&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: Boolean flag indicating that pattern should be understood as plain text and not as a [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]]. Defaults to {{phpi|false}}.&lt;br /&gt;
; &amp;lt;code&amp;gt;nomatch&amp;lt;/code&amp;gt;&lt;br /&gt;
: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; are out of range for the string being queried, then this function generates an error.&lt;br /&gt;
An error is also generated if no match is found.&lt;br /&gt;
If one adds the parameter &amp;lt;code&amp;gt;ignore_errors=true&amp;lt;/code&amp;gt;, then the error will be suppressed and an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing [[w:Lua (programming language)|Lua]] patterns, a form of [[w:Regular expression|regular expression]], see:&lt;br /&gt;
&lt;br /&gt;
* [https://www.lua.org/manual/5.1/manual.html#5.4.1 Lua reference: Patterns] - as of version 5.1&lt;br /&gt;
* {{ll|Extension:Scribunto/Lua reference manual#Patterns|2=Scribunto patterns}}&lt;br /&gt;
* {{ll|Extension:Scribunto/Lua reference manual#Ustring patterns|2=Scribunto Unicode string patterns}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;pos&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}pos{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
|2=index_value&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}pos{{!}}target= &#039;&#039;$1&#039;&#039; {{!}}pos= &#039;&#039;$2&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=target_string&lt;br /&gt;
|2=index_value&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to search&lt;br /&gt;
; &amp;lt;code&amp;gt;pos&amp;lt;/code&amp;gt;&lt;br /&gt;
: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&lt;br /&gt;
If one requests a negative value, this function will select a character by counting backwards from the end of the string.&lt;br /&gt;
In other words &amp;lt;code&amp;gt;pos = -1&amp;lt;/code&amp;gt; is the same as asking for the last character.&lt;br /&gt;
&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
This function allows one to search for a target string or pattern within another string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}find{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_str&lt;br /&gt;
|2=target_string&lt;br /&gt;
|3=start_index&lt;br /&gt;
|4=plain_flag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}find{{!}}source= &#039;&#039;$1&#039;&#039; {{!}}target= &#039;&#039;$2&#039;&#039; {{!}}start= &#039;&#039;$3&#039;&#039; {{!}}plain= &#039;&#039;$4&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_str&lt;br /&gt;
|2=target_str&lt;br /&gt;
|3=start_index&lt;br /&gt;
|4=plain_flag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to search&lt;br /&gt;
; &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string or pattern to find within source&lt;br /&gt;
; &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;&lt;br /&gt;
: The index within the source string to start the search, defaults to 1&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: Boolean flag indicating that target should be understood as plain text and not as a [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]], defaults to {{phpi|true}}&lt;br /&gt;
&lt;br /&gt;
This function returns the first index &amp;gt;= &amp;quot;start&amp;quot; where &amp;quot;target&amp;quot; can be found within &amp;quot;source&amp;quot;.&lt;br /&gt;
Indices are 1-based.&lt;br /&gt;
If &amp;quot;target&amp;quot; is not found, then this function returns 0.&lt;br /&gt;
If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this function also returns 0.&lt;br /&gt;
&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}replace{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;{{!}}&#039;&#039;$5&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_str&lt;br /&gt;
|2=pattern_string&lt;br /&gt;
|3=replace_string&lt;br /&gt;
|4=replacement_count&lt;br /&gt;
|5=plain_flag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}replace{{!}}source= &#039;&#039;$1&#039;&#039; {{!}}pattern= &#039;&#039;$2&#039;&#039; {{!}}replace= &#039;&#039;$3&#039;&#039; {{!}}count= &#039;&#039;$4&#039;&#039; {{!}}plain= &#039;&#039;$5&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source_string&lt;br /&gt;
|2=pattern_string&lt;br /&gt;
|3=replace_string&lt;br /&gt;
|4=replacement_count&lt;br /&gt;
|5=plain_flag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to search&lt;br /&gt;
; &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string or pattern to find within source&lt;br /&gt;
; &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt;&lt;br /&gt;
: The replacement text&lt;br /&gt;
; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
: The number of occurrences to replace; defaults to all&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: Boolean flag indicating that pattern should be understood as plain text and not as a [[Special:MyLanguage/Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]]); defaults to {{phpi|true}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;rep&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Repeats a string &#039;&#039;n&#039;&#039; times.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}rep{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=source&lt;br /&gt;
|2=count&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: The string to repeat&lt;br /&gt;
; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
: The number of repetitions.&lt;br /&gt;
&lt;br /&gt;
Example {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}rep{{!}}$1{{!}}3&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;|hello}} gives {{tmpl|0={{#invoke:String|rep|$1|3}}|hello}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Module:String/doc|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Module:String/doc&amp;diff=316</id>
		<title>Module:String/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Module:String/doc&amp;diff=316"/>
		<updated>2025-10-20T14:33:44Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{SUBPAGENAME}}|doc||{{Documentation subpage}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;languages/&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;{{#switch:&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Languages|Module:String/doc}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{Magic words|general=1}}&lt;br /&gt;
{{Module rating|release}}&lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; If named parameters are used, MediaWiki will automatically remove any leading or trailing whitespace from the parameter.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Depending on the intended use, it may be advantageous to either preserve or remove such whitespace.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Global options == &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;ignore_errors&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; If set to &amp;lt;tvar name=1&amp;gt;{{phpi|true}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;1&amp;lt;/tvar&amp;gt;, any error condition will result in an empty string being returned rather than an error message.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;error_category&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; If an error occurs, specifies the name of a category to include with the error message.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; The default category is &amp;lt;tvar name=1&amp;gt;{{ll|Category:Errors reported by Module String}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;no_category&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; If set to &amp;lt;tvar name=1&amp;gt;{{phpi|true}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;1&amp;lt;/tvar&amp;gt;, no category will be added if an error is generated.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
Unit tests for this module are available at &amp;lt;tvar name=1&amp;gt;[[Module:String/testcases]]&amp;lt;/tvar&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;len&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}len{{!}}&#039;&#039;$1&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}len{{!}}s= &#039;&#039;$1&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; The string whose length to report&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;sub&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; This function returns a substring of the target string at specified indices.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}sub{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; end_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}sub&amp;lt;wbr/&amp;gt;{{!}}s= &#039;&#039;$1&#039;&#039; {{!}}i= &#039;&#039;$2&#039;&#039; {{!}}j= &#039;&#039;$3&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; end_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; The string to return a subset of&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; The first index of the substring to return, defaults to 1.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; The last index of the string to return, defaults to the last character.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; The first character of the string is assigned an index of 1.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; If either &amp;lt;tvar name=1&amp;gt;i&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;j&amp;lt;/tvar&amp;gt; is a negative value, it is interpreted the same as selecting a character by counting from the end of the string.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; Hence, a value of -1 is the same as selecting the last character of the string.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
If the requested indices are out of range for the given string, an error is reported.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
This function returns a substring from the source string that matches a specified pattern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}match{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;{{!}}&#039;&#039;$5&#039;&#039;{{!}}&#039;&#039;$6&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; source_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; pattern_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; match_number&amp;lt;/translate&amp;gt;&lt;br /&gt;
|5=&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
|6=&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; nomatch_output&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}match{{!}}s= &#039;&#039;$1&#039;&#039; {{!}}pattern= &#039;&#039;$2&#039;&#039; {{!}}start= &#039;&#039;$3&#039;&#039; {{!}}match= &#039;&#039;$4&#039;&#039; {{!}}plain= &#039;&#039;$5&#039;&#039; {{!}}nomatch= &#039;&#039;$6&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt; source_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; pattern_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt; match_number&amp;lt;/translate&amp;gt;&lt;br /&gt;
|5=&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
|6=&amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt; nomatch_output&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt; The string to search&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; The pattern or string to find within the string&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; The index within the source string to start the search.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt; The first character of the string has index 1.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; Defaults to 1.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt; In some cases it may be possible to make multiple matches on a single string.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt; This specifies which match to return, where the first match is &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;match = 1&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; If a negative number is specified then a match is returned counting from the last match.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt; Hence &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;match = -1&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; is the same as requesting the last match.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt; Defaults to 1.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt; Boolean flag indicating that pattern should be understood as plain text and not as a [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]].&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt; Defaults to &amp;lt;tvar name=1&amp;gt;{{phpi|false}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;nomatch&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt; If no match is found, output the &amp;quot;&amp;lt;tvar name=1&amp;gt;nomatch&amp;lt;/tvar&amp;gt;&amp;quot; value rather than an error.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; If the &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;match&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;&amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; are out of range for the string being queried, then this function generates an error.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; An error is also generated if no match is found.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt; If one adds the parameter &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;ignore_errors=true&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;, then the error will be suppressed and an empty string will be returned on any failure.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
For information on constructing [[w:Lua (programming language)|Lua]] patterns, a form of [[w:Regular expression|regular expression]], see:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.lua.org/manual/5.1/manual.html#5.4.1 &amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt; Lua reference: Patterns&amp;lt;/translate&amp;gt;] - &amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt; as of version 5.1&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{ll|Extension:Scribunto/Lua reference manual#Patterns|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt; Scribunto patterns&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{ll|Extension:Scribunto/Lua reference manual#Ustring patterns|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt; Scribunto Unicode string patterns&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;pos&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}pos{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:132--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:133--&amp;gt; index_value&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}pos{{!}}target= &#039;&#039;$1&#039;&#039; {{!}}pos= &#039;&#039;$2&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt; index_value&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:78--&amp;gt; The string to search&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;pos&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt; The index for the character to return&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt; If one requests a negative value, this function will select a character by counting backwards from the end of the string.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt; In other words &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;pos = -1&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; is the same as asking for the last character.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;find&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
This function allows one to search for a target string or pattern within another string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}find{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt; source_str&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt; target_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}find{{!}}source= &#039;&#039;$1&#039;&#039; {{!}}target= &#039;&#039;$2&#039;&#039; {{!}}start= &#039;&#039;$3&#039;&#039; {{!}}plain= &#039;&#039;$4&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:91--&amp;gt; source_str&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:92--&amp;gt; target_str&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt; start_index&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:94--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt; The string to search&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt; The string or pattern to find within source&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt; The index within the source string to start the search, defaults to 1&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt; Boolean flag indicating that target should be understood as plain text and not as a [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]], defaults to &amp;lt;tvar name=1&amp;gt;{{phpi|true}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt; This function returns the first index &amp;gt;= &amp;quot;&amp;lt;tvar name=1&amp;gt;start&amp;lt;/tvar&amp;gt;&amp;quot; where &amp;quot;&amp;lt;tvar name=2&amp;gt;target&amp;lt;/tvar&amp;gt;&amp;quot; can be found within &amp;quot;&amp;lt;tvar name=3&amp;gt;source&amp;lt;/tvar&amp;gt;&amp;quot;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:101--&amp;gt; Indices are 1-based.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt; If &amp;quot;&amp;lt;tvar name=1&amp;gt;target&amp;lt;/tvar&amp;gt;&amp;quot; is not found, then this function returns 0.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt; If either &amp;quot;&amp;lt;tvar name=1&amp;gt;source&amp;lt;/tvar&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tvar name=2&amp;gt;target&amp;lt;/tvar&amp;gt;&amp;quot; are missing / empty, this function also returns 0.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
This function allows one to replace a target string or pattern within another string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}replace{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;{{!}}&#039;&#039;$3&#039;&#039;{{!}}&#039;&#039;$4&#039;&#039;{{!}}&#039;&#039;$5&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt; source_str&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt; pattern_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:109--&amp;gt; replace_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:110--&amp;gt; replacement_count&amp;lt;/translate&amp;gt;&lt;br /&gt;
|5=&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}replace{{!}}source= &#039;&#039;$1&#039;&#039; {{!}}pattern= &#039;&#039;$2&#039;&#039; {{!}}replace= &#039;&#039;$3&#039;&#039; {{!}}count= &#039;&#039;$4&#039;&#039; {{!}}plain= &#039;&#039;$5&#039;&#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt; source_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt; pattern_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|3=&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;gt; replace_string&amp;lt;/translate&amp;gt;&lt;br /&gt;
|4=&amp;lt;translate&amp;gt;&amp;lt;!--T:116--&amp;gt; replacement_count&amp;lt;/translate&amp;gt;&lt;br /&gt;
|5=&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt; plain_flag&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt; The string to search&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt; The string or pattern to find within source&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:121--&amp;gt; The replacement text&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:122--&amp;gt; The number of occurrences to replace; defaults to all&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;plain&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt; Boolean flag indicating that pattern should be understood as plain text and not as a [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Extension:Scribunto/Lua reference manual#Ustring patterns&amp;lt;/tvar&amp;gt;|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua (programming language)|Lua]]-style [[w:Regular expression|regular expression]]); defaults to &amp;lt;tvar name=2&amp;gt;{{phpi|true}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;rep&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
Repeats a string &#039;&#039;n&#039;&#039; times.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}rep{{!}}&#039;&#039;$1&#039;&#039;{{!}}&#039;&#039;$2&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:126--&amp;gt; source&amp;lt;/translate&amp;gt;&lt;br /&gt;
|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:127--&amp;gt; count&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:129--&amp;gt; The string to repeat&amp;lt;/translate&amp;gt;&lt;br /&gt;
; &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;translate&amp;gt;&amp;lt;!--T:130--&amp;gt; The number of repetitions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Example {{&amp;lt;tvar name=1&amp;gt;tmpl|0=&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String{{!}}rep{{!}}$1{{!}}3&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;|hello}} gives {{&amp;lt;tvar name=2&amp;gt;tmpl|0={{#invoke:String|rep|$1|3}}&amp;lt;/tvar&amp;gt;|hello}}&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Module:String/doc|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Module_rating/en&amp;diff=314</id>
		<title>Template:Module rating/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Module_rating/en&amp;diff=314"/>
		<updated>2025-10-20T14:33:42Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{Module other|{{ombox&lt;br /&gt;
 | type      = notice&lt;br /&gt;
 | image     = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = [[File:OOjs UI icon text-style.svg|40x40px|link=]]&lt;br /&gt;
   | alpha | a                 = [[File:OOjs UI icon bold-a.svg|40x40px|link=]]&lt;br /&gt;
   | beta | b                  = [[File:OOjs UI icon bold-b.svg|40x40px|link=]]&lt;br /&gt;
   | release | r | general | g = [[File:OOjs UI icon check-constructive.svg|40x40px|link=]]&lt;br /&gt;
   | protected | protect | p   = [[File:{{#if:{{CASCADINGSOURCES:{{FULLPAGENAME}}}}|Cascade-protection-shackle.svg|{{#ifeq:{{PROTECTIONLEVEL:edit}}|sysop|Full-protection-shackle-red.svg|Semi-protection-shackle-no-text.svg}}}}|40x40px|link=]]&lt;br /&gt;
   | semiprotected | semiprotect | semi = [[File:Semi-protection-shackle.svg|40x40px|link=]]&lt;br /&gt;
   | #default = [[File:OOjs UI icon alert-destructive.svg|40x40px|link=]]&lt;br /&gt;
  }}&lt;br /&gt;
 | style     = &lt;br /&gt;
 | textstyle = &lt;br /&gt;
 | text      = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = This module is rated as [[Special:MyLanguage/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;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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 [[Special:MyLanguage/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;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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 [[Special:MyLanguage/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;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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 [[Special:MyLanguage/Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[w:WP:TESTCASES|sandbox testing]] rather than repeated trial-and-error editing.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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 [[Special:MyLanguage/Category:Modules subject to page protection|subject to {{#if:{{CASCADINGSOURCES:{{FULLPAGENAME}}}}|cascading|page}} protection]]. It is a highly visible module in use by a very large number of pages. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[Special:MyLanguage/Project:Protected page|protected]] from editing.&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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|1=Module rating is invalid or not specified.}}&lt;br /&gt;
  }}&lt;br /&gt;
}}|{{error|1=Error: {{tl|Module rating}} must be placed in the Module namespace.}}|demospace={{{demospace|&amp;lt;noinclude&amp;gt;module&amp;lt;/noinclude&amp;gt;}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
This template is used to rate [[Lua/Overview|Lua modules]] by quality.&lt;br /&gt;
It is placed at the top of the module&#039;s /doc subpage.&lt;br /&gt;
It produces a message informing users about the rating system, and it also places the module into a tracking category.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Basic usage:&lt;br /&gt;
{{pre|{{tlx|module rating|&#039;&#039;rating&#039;&#039;}}}}&lt;br /&gt;
&lt;br /&gt;
Without categories:&lt;br /&gt;
{{pre|{{tlx|module rating|&#039;&#039;rating&#039;&#039;|3=nocat=true}}}}&lt;br /&gt;
&lt;br /&gt;
If {{tlx|Module rating}} is used outside the Module namespace, an error message is shown: {{module rating}}&lt;br /&gt;
&lt;br /&gt;
== Ratings ==&lt;br /&gt;
The rating should be placed in the first positional parameter.&lt;br /&gt;
There are five different ratings: &#039;&#039;&#039;pre-alpha&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;alpha&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;beta&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;release&#039;&#039;&#039;{{int|and}}{{int|word-separator}}&#039;&#039;&#039;protected&#039;&#039;&#039;.&lt;br /&gt;
There are also short alias codes for each of the ratings.&lt;br /&gt;
&lt;br /&gt;
{{(!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Rating&lt;br /&gt;
! Aliases&lt;br /&gt;
! Result&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;pre-alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;prealpha&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;pa&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|pre-alpha|nocat=true|demospace=Module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|alpha|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;beta&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|beta|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;release&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;general&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|release|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;protected&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;protect&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|protected|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &#039;&#039;Anything else or if missing&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} {{module rating|prdaskidkated|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!)}}&lt;br /&gt;
&lt;br /&gt;
== TemplateData ==&lt;br /&gt;
{{Module rating/doc}}&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
The template will put modules in one of the following categories, according to the rating specified:&lt;br /&gt;
&lt;br /&gt;
* {{ll|Category:Modules in pre-alpha development}}&lt;br /&gt;
* {{ll|Category:Modules in alpha}}&lt;br /&gt;
* {{ll|Category:Modules in beta}}&lt;br /&gt;
* {{ll|Category:Modules for general use}}&lt;br /&gt;
* {{ll|Category:Modules subject to page protection}}&lt;br /&gt;
&lt;br /&gt;
These categories are suppressed on pages ending with /doc.&lt;br /&gt;
To suppress categories on all pages, you can use the code {{para|nocat|true}}.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|module-rating categories}}&lt;br /&gt;
* [[Lua]]&lt;br /&gt;
* {{tl|Lua}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Module_rating&amp;diff=312</id>
		<title>Template:Module rating</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Module_rating&amp;diff=312"/>
		<updated>2025-10-20T14:33:34Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{Module other|{{ombox&lt;br /&gt;
 | type      = notice&lt;br /&gt;
 | image     = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = [[File:OOjs UI icon text-style.svg|40x40px|link=]]&lt;br /&gt;
   | alpha | a                 = [[File:OOjs UI icon bold-a.svg|40x40px|link=]]&lt;br /&gt;
   | beta | b                  = [[File:OOjs UI icon bold-b.svg|40x40px|link=]]&lt;br /&gt;
   | release | r | general | g = [[File:OOjs UI icon check-constructive.svg|40x40px|link=]]&lt;br /&gt;
   | protected | protect | p   = [[File:{{#if:{{CASCADINGSOURCES:{{FULLPAGENAME}}}}|Cascade-protection-shackle.svg|{{#ifeq:{{PROTECTIONLEVEL:edit}}|sysop|Full-protection-shackle-red.svg|Semi-protection-shackle-no-text.svg}}}}|40x40px|link=]]&lt;br /&gt;
   | semiprotected | semiprotect | semi = [[File:Semi-protection-shackle.svg|40x40px|link=]]&lt;br /&gt;
   | #default = [[File:OOjs UI icon alert-destructive.svg|40x40px|link=]]&lt;br /&gt;
  }}&lt;br /&gt;
 | style     = &lt;br /&gt;
 | textstyle = &lt;br /&gt;
 | text      = {{#switch: {{{1|}}}&lt;br /&gt;
   | pre-alpha | prealpha | pa = &amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; This module is rated as [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Category:Modules in pre-alpha development&amp;lt;/tvar&amp;gt;|pre-alpha]].&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; It is unfinished, and may or may not be in active development.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; It should not be used from article namespace pages.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; 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;/translate&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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                 = &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; This module is rated as [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Category:Modules in alpha&amp;lt;/tvar&amp;gt;|alpha]].&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; It is ready for third party input, and may be used on a few pages to see if problems arise, but should be watched.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; Suggestions for new features or changes in their input and output mechanisms are welcome.&amp;lt;/translate&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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                  = &amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; This module is rated as [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Category:Modules in beta&amp;lt;/tvar&amp;gt;|beta]], and is ready for widespread use.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt; It is still new and should be used with some caution to ensure the results are as expected.&amp;lt;/translate&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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 = &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; This module is rated as [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Category:Modules for general use&amp;lt;/tvar&amp;gt;|ready for general use]].&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; It is ready to mention on help pages and other resources as an option for new users to learn.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; To reduce server load and bad output, it should be improved by [[w:WP:TESTCASES|sandbox testing]] rather than repeated trial-and-error editing.&amp;lt;/translate&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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   = &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; This module is [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Category:Modules subject to page protection&amp;lt;/tvar&amp;gt;|subject to {{&amp;lt;tvar name=2&amp;gt;#if:{{CASCADINGSOURCES:{{FULLPAGENAME}}}}&amp;lt;/tvar&amp;gt;|cascading|page}} protection]].&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; It is a highly visible module in use by a very large number of pages.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Project:Protected page&amp;lt;/tvar&amp;gt;|protected]] from editing.&amp;lt;/translate&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;{{#ifexpr:&lt;br /&gt;
         &amp;lt;!-- No category for /doc or /sandbox subpages --&amp;gt;&lt;br /&gt;
         {{IsDocSubpage|false=0}} or {{#ifeq:{{SUBPAGENAME}}|sandbox|1|0}}&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|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; Module rating is invalid or not specified.&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
  }}&lt;br /&gt;
}}|{{error|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; Error:&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; &amp;lt;tvar name=1&amp;gt;{{tl|Module rating}}&amp;lt;/tvar&amp;gt; must be placed in the Module namespace.&amp;lt;/translate&amp;gt;}}|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;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; This template is used to rate [[Lua/Overview|Lua modules]] by quality.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; It is placed at the top of the module&#039;s /doc subpage.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; It produces a message informing users about the rating system, and it also places the module into a tracking category.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Basic usage:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{pre|{{tlx|module rating|&#039;&#039;rating&#039;&#039;}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; Without categories:&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{pre|{{tlx|module rating|&#039;&#039;rating&#039;&#039;|3=nocat=true}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; If &amp;lt;tvar name=1&amp;gt;{{tlx|Module rating}}&amp;lt;/tvar&amp;gt; is used outside the Module namespace, an error message is shown: &amp;lt;tvar name=2&amp;gt;{{module rating}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Ratings == &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; The rating should be placed in the first positional parameter.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt; There are five different ratings: &amp;lt;tvar name=1&amp;gt;&#039;&#039;&#039;pre-alpha&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;alpha&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;beta&#039;&#039;&#039;{{int|comma-separator}}&#039;&#039;&#039;release&#039;&#039;&#039;{{int|and}}{{int|word-separator}}&#039;&#039;&#039;protected&#039;&#039;&#039;&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; There are also short alias codes for each of the ratings.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{(!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; Rating&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Aliases&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; Result&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;pre-alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;prealpha&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;pa&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|pre-alpha|nocat=true|demospace=Module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;alpha&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|alpha|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;beta&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|beta|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;release&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;general&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;g&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|release|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;protected&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} &amp;lt;code&amp;gt;protect&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
{{!}} {{module rating|protected|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt; &#039;&#039;Anything else or if missing&#039;&#039;&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}} {{module rating|prdaskidkated|nocat=true|demospace=module}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!)}}&lt;br /&gt;
&lt;br /&gt;
== TemplateData ==&lt;br /&gt;
{{Module rating/doc}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Categories == &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
The template will put modules in one of the following categories, according to the rating specified:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{ll|Category:Modules in pre-alpha development}}&lt;br /&gt;
* {{ll|Category:Modules in alpha}}&lt;br /&gt;
* {{ll|Category:Modules in beta}}&lt;br /&gt;
* {{ll|Category:Modules for general use}}&lt;br /&gt;
* {{ll|Category:Modules subject to page protection}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; These categories are suppressed on pages ending with /doc.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt; To suppress categories on all pages, you can use the code &amp;lt;tvar name=1&amp;gt;{{para|nocat|true}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|module-rating categories}}&lt;br /&gt;
* [[Lua]]&lt;br /&gt;
* {{tl|Lua}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Inline-code&amp;diff=310</id>
		<title>Template:Inline-code</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Inline-code&amp;diff=310"/>
		<updated>2025-10-20T14:33:28Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{yesno|{{{nowrap|}}}}}|&amp;lt;templatestyles src=&amp;quot;Template:Nowrap/styles.css&amp;quot;/&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|inline=1&lt;br /&gt;
{{#if:{{{id|}}}| id = {{{id|}}}}}&lt;br /&gt;
| class = {{#if:{{yesno|{{{nowrap|}}}}}|nowrap}} {{{class|}}}&lt;br /&gt;
| style = {{{style|}}}&lt;br /&gt;
| lang  = {{{lang|{{{2|php}}}}}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Phpi&amp;diff=308</id>
		<title>Template:Phpi</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Phpi&amp;diff=308"/>
		<updated>2025-10-20T14:33:28Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Languages|Template:Phpi}}&amp;lt;/noinclude&amp;gt;{{inline-code|{{{1}}}|lang=php}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;1&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Content&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Conteúdo&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;The PHP program code to be displayed.&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;O código-fonte PHP a ser exibido.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;Display PHP code inline with syntax highlighting.&amp;quot;,&lt;br /&gt;
		&amp;quot;pt-br&amp;quot;: &amp;quot;Exibe código PHP em linha, com realce de sintaxe.&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}]]&lt;br /&gt;
[[Category:Semantic markup templates{{#translation:}}]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Module:Tmpl&amp;diff=306</id>
		<title>Module:Tmpl</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Module:Tmpl&amp;diff=306"/>
		<updated>2025-10-20T14:33:28Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This is a helper module for {{tmpl}}&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
-- The trailing `[^0-9]?` ensures that `$10` doesn&#039;t potentially change&lt;br /&gt;
-- from being treated as `${1}0` to being treated as `${10}`&lt;br /&gt;
-- if the number of supported parameters is ever expanded:&lt;br /&gt;
local PATTERN = &amp;quot;%$([1-9])[^0-9]?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local this = {}&lt;br /&gt;
&lt;br /&gt;
function this.renderTmpl(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = (frame:getParent() or {}).args&lt;br /&gt;
	local input = pargs[0] or &#039;&#039;&lt;br /&gt;
	local result = {}&lt;br /&gt;
&lt;br /&gt;
	local prevPos = 1&lt;br /&gt;
	do&lt;br /&gt;
		local startPos, _, k&lt;br /&gt;
		while true do&lt;br /&gt;
			startPos, _, k = string.find(input, PATTERN, prevPos)&lt;br /&gt;
			if (not startPos) then break end&lt;br /&gt;
			table.insert(result, string.sub(input, prevPos, startPos - 1))&lt;br /&gt;
&lt;br /&gt;
			local n = tonumber(k)&lt;br /&gt;
			local r = pargs[n]&lt;br /&gt;
			if (r) then&lt;br /&gt;
				table.insert(result, r)&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(result, &#039;$&#039; .. n)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			prevPos = startPos + #k + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(result, string.sub(input, prevPos))&lt;br /&gt;
	return table.concat(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return this&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Tmpl&amp;diff=304</id>
		<title>Template:Tmpl</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Tmpl&amp;diff=304"/>
		<updated>2025-10-20T14:33:28Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:Tmpl|renderTmpl}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Module:String&amp;diff=302</id>
		<title>Module:String</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Module:String&amp;diff=302"/>
		<updated>2025-10-20T14:33:27Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&lt;br /&gt;
Most of the functions provided here can be invoked with named parameters,&lt;br /&gt;
unnamed parameters, or a mixture.  If named parameters are used, Mediawiki will&lt;br /&gt;
automatically remove any leading or trailing whitespace from the parameter.&lt;br /&gt;
Depending on the intended use, it may be advantageous to either preserve or&lt;br /&gt;
remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
Global options&lt;br /&gt;
    ignore_errors: If set to &#039;true&#039; or 1, any error condition will result in&lt;br /&gt;
        an empty string being returned rather than an error message.&lt;br /&gt;
&lt;br /&gt;
    error_category: If an error occurs, specifies the name of a category to&lt;br /&gt;
        include with the error message.  The default category is&lt;br /&gt;
        [Category:Errors reported by Module String].&lt;br /&gt;
&lt;br /&gt;
    no_category: If set to &#039;true&#039; or 1, no category will be added if an error&lt;br /&gt;
        is generated.&lt;br /&gt;
&lt;br /&gt;
Unit tests for this module are available at Module:String/tests.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local str = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
len&lt;br /&gt;
&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|len|target_string|}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|len|s=target_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.&lt;br /&gt;
]]&lt;br /&gt;
function str.len( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;s&#039;} );&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;;&lt;br /&gt;
	return mw.ustring.len( s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
sub&lt;br /&gt;
&lt;br /&gt;
This function returns a substring of the target string at specified indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|sub|target_string|start_index|end_index}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to return a subset of&lt;br /&gt;
    i: The fist index of the substring to return, defaults to 1.&lt;br /&gt;
    j: The last index of the string to return, defaults to the last character.&lt;br /&gt;
&lt;br /&gt;
The first character of the string is assigned an index of 1.  If either i or j&lt;br /&gt;
is a negative value, it is interpreted the same as selecting a character by&lt;br /&gt;
counting from the end of the string.  Hence, a value of -1 is the same as&lt;br /&gt;
selecting the last character of the string.&lt;br /&gt;
&lt;br /&gt;
If the requested indices are out of range for the given string, an error is&lt;br /&gt;
reported.&lt;br /&gt;
]]&lt;br /&gt;
function str.sub( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, { &#039;s&#039;, &#039;i&#039;, &#039;j&#039; } );&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;;&lt;br /&gt;
	local i = tonumber( new_args[&#039;i&#039;] ) or 1;&lt;br /&gt;
	local j = tonumber( new_args[&#039;j&#039;] ) or -1;&lt;br /&gt;
&lt;br /&gt;
	local len = mw.ustring.len( s );&lt;br /&gt;
&lt;br /&gt;
	-- Convert negatives for range checking&lt;br /&gt;
	if i &amp;lt; 0 then&lt;br /&gt;
		i = len + i + 1;&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; 0 then&lt;br /&gt;
		j = len + j + 1;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if i &amp;gt; len or j &amp;gt; len or i &amp;lt; 1 or j &amp;lt; 1 then&lt;br /&gt;
		return str._error( &#039;String subset index out of range&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; i then&lt;br /&gt;
		return str._error( &#039;String subset indices out of order&#039; );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( s, i, j )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This function implements that features of {{str sub old}} and is kept in order&lt;br /&gt;
to maintain these older templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.sublength( frame )&lt;br /&gt;
	local i = tonumber( frame.args.i ) or 0&lt;br /&gt;
	local len = tonumber( frame.args.len )&lt;br /&gt;
	return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
match&lt;br /&gt;
&lt;br /&gt;
This function returns a substring from the source string that matches a&lt;br /&gt;
specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index&lt;br /&gt;
    |match=match_number|plain=plain_flag|nomatch=nomatch_output}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to search&lt;br /&gt;
    pattern: The pattern or string to find within the string&lt;br /&gt;
    start: The index within the source string to start the search.  The first&lt;br /&gt;
        character of the string has index 1.  Defaults to 1.&lt;br /&gt;
    match: In some cases it may be possible to make multiple matches on a single&lt;br /&gt;
        string.  This specifies which match to return, where the first match is&lt;br /&gt;
        match= 1.  If a negative number is specified then a match is returned&lt;br /&gt;
        counting from the last match.  Hence match = -1 is the same as requesting&lt;br /&gt;
        the last match.  Defaults to 1.&lt;br /&gt;
    plain: A flag indicating that the pattern should be understood as plain&lt;br /&gt;
        text.  Defaults to false.&lt;br /&gt;
    nomatch: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from each string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
If the match_number or start_index are out of range for the string being queried, then&lt;br /&gt;
this function generates an error.  An error is also generated if no match is found.&lt;br /&gt;
If one adds the parameter ignore_errors=true, then the error will be suppressed and&lt;br /&gt;
an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing Lua patterns, a form of [regular expression], see:&lt;br /&gt;
&lt;br /&gt;
* https://www.lua.org/manual/5.1/manual.html#5.4.1&lt;br /&gt;
* https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
* https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
-- This sub-routine is exported for use in other modules&lt;br /&gt;
function str._match( s, pattern, start, match_index, plain, nomatch )&lt;br /&gt;
	if s == &#039;&#039; then&lt;br /&gt;
		return str._error( &#039;Target string is empty&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	if pattern == &#039;&#039; then&lt;br /&gt;
		return str._error( &#039;Pattern string is empty&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	start = tonumber(start) or 1&lt;br /&gt;
	if math.abs(start) &amp;lt; 1 or math.abs(start) &amp;gt; mw.ustring.len( s ) then&lt;br /&gt;
		return str._error( &#039;Requested start is out of range&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	if match_index == 0 then&lt;br /&gt;
		return str._error( &#039;Match index is out of range&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	if plain_flag then&lt;br /&gt;
		pattern = str._escapePattern( pattern );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
	if match_index == 1 then&lt;br /&gt;
		-- Find first match is simple case&lt;br /&gt;
		result = mw.ustring.match( s, pattern, start )&lt;br /&gt;
	else&lt;br /&gt;
		if start &amp;gt; 1 then&lt;br /&gt;
			s = mw.ustring.sub( s, start );&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local iterator = mw.ustring.gmatch(s, pattern);&lt;br /&gt;
		if match_index &amp;gt; 0 then&lt;br /&gt;
			-- Forward search&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				match_index = match_index - 1;&lt;br /&gt;
				if match_index == 0 then&lt;br /&gt;
					result = w;&lt;br /&gt;
					break;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- Reverse search&lt;br /&gt;
			local result_table = {};&lt;br /&gt;
			local count = 1;&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				result_table[count] = w;&lt;br /&gt;
				count = count + 1;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			result = result_table[ count + match_index ];&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if result == nil then&lt;br /&gt;
		if nomatch == nil then&lt;br /&gt;
			return str._error( &#039;Match not found&#039; );&lt;br /&gt;
		else&lt;br /&gt;
			return nomatch;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return result;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-- This is the entry point for #invoke:String|match&lt;br /&gt;
function str.match( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;s&#039;, &#039;pattern&#039;, &#039;start&#039;, &#039;match&#039;, &#039;plain&#039;, &#039;nomatch&#039;} );&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;;&lt;br /&gt;
	local start = tonumber( new_args[&#039;start&#039;] ) or 1;&lt;br /&gt;
	local plain_flag = str._getBoolean( new_args[&#039;plain&#039;] or false );&lt;br /&gt;
	local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;;&lt;br /&gt;
	local match_index = math.floor( tonumber(new_args[&#039;match&#039;]) or 1 );&lt;br /&gt;
	local nomatch = new_args[&#039;nomatch&#039;];&lt;br /&gt;
&lt;br /&gt;
	return str._match( s, pattern, start, match_index, plain, nomatch )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
pos&lt;br /&gt;
&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|pos|target_string|index_value}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|target=target_string|pos=index_value}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    target: The string to search&lt;br /&gt;
    pos: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&lt;br /&gt;
If one requests a negative value, this function will select a character by counting backwards&lt;br /&gt;
from the end of the string.  In other words pos = -1 is the same as asking for the last character.&lt;br /&gt;
&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
]]&lt;br /&gt;
function str.pos( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;target&#039;, &#039;pos&#039;} );&lt;br /&gt;
	local target_str = new_args[&#039;target&#039;] or &#039;&#039;;&lt;br /&gt;
	local pos = tonumber( new_args[&#039;pos&#039;] ) or 0;&lt;br /&gt;
&lt;br /&gt;
	if pos == 0 or math.abs(pos) &amp;gt; mw.ustring.len( target_str ) then&lt;br /&gt;
		return str._error( &#039;String index out of range&#039; );&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( target_str, pos, pos );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
str_find&lt;br /&gt;
&lt;br /&gt;
This function duplicates the behavior of {{str_find}}, including all of its quirks.&lt;br /&gt;
This is provided in order to support existing templates, but is NOT RECOMMENDED for&lt;br /&gt;
new code and templates.  New code is recommended to use the &amp;quot;find&amp;quot; function instead.&lt;br /&gt;
&lt;br /&gt;
Returns the first index in &amp;quot;source&amp;quot; that is a match to &amp;quot;target&amp;quot;.  Indexing is 1-based,&lt;br /&gt;
and the function returns -1 if the &amp;quot;target&amp;quot; string is not present in &amp;quot;source&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Important Note: If the &amp;quot;target&amp;quot; string is empty / missing, this function returns a&lt;br /&gt;
value of &amp;quot;1&amp;quot;, which is generally unexpected behavior, and must be accounted for&lt;br /&gt;
separatetly.&lt;br /&gt;
]]&lt;br /&gt;
function str.str_find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;} );&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;;&lt;br /&gt;
	local target_str = new_args[&#039;target&#039;] or &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
	if target_str == &#039;&#039; then&lt;br /&gt;
		return 1;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, target_str, 1, true )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
find&lt;br /&gt;
&lt;br /&gt;
This function allows one to search for a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    target: The string or pattern to find within source&lt;br /&gt;
    start: The index within the source string to start the search, defaults to 1&lt;br /&gt;
    plain: Boolean flag indicating that target should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the parameter.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
This function returns the first index &amp;gt;= &amp;quot;start&amp;quot; where &amp;quot;target&amp;quot; can be found&lt;br /&gt;
within &amp;quot;source&amp;quot;.  Indices are 1-based.  If &amp;quot;target&amp;quot; is not found, then this&lt;br /&gt;
function returns 0.  If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this&lt;br /&gt;
function also returns 0.&lt;br /&gt;
&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
]]&lt;br /&gt;
function str.find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;, &#039;start&#039;, &#039;plain&#039; } );&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;;&lt;br /&gt;
	local pattern = new_args[&#039;target&#039;] or &#039;&#039;;&lt;br /&gt;
	local start_pos = tonumber(new_args[&#039;start&#039;]) or 1;&lt;br /&gt;
	local plain = new_args[&#039;plain&#039;] or true;&lt;br /&gt;
&lt;br /&gt;
	if source_str == &#039;&#039; or pattern == &#039;&#039; then&lt;br /&gt;
		return 0;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	plain = str._getBoolean( plain );&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, pattern, start_pos, plain )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
replace&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|&lt;br /&gt;
   count=replacement_count|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    pattern: The string or pattern to find within source&lt;br /&gt;
    replace: The replacement text&lt;br /&gt;
    count: The number of occurences to replace, defaults to all.&lt;br /&gt;
    plain: Boolean flag indicating that pattern should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
]]&lt;br /&gt;
function str.replace( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;pattern&#039;, &#039;replace&#039;, &#039;count&#039;, &#039;plain&#039; } );&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;;&lt;br /&gt;
	local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;;&lt;br /&gt;
	local replace = new_args[&#039;replace&#039;] or &#039;&#039;;&lt;br /&gt;
	local count = tonumber( new_args[&#039;count&#039;] );&lt;br /&gt;
	local plain = new_args[&#039;plain&#039;] or true;&lt;br /&gt;
&lt;br /&gt;
	if source_str == &#039;&#039; or pattern == &#039;&#039; then&lt;br /&gt;
		return source_str;&lt;br /&gt;
	end&lt;br /&gt;
	plain = str._getBoolean( plain );&lt;br /&gt;
&lt;br /&gt;
	if plain then&lt;br /&gt;
		pattern = str._escapePattern( pattern );&lt;br /&gt;
		replace = mw.ustring.gsub( replace, &amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot; ); --Only need to escape replacement sequences.&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result;&lt;br /&gt;
&lt;br /&gt;
	if count ~= nil then&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace, count );&lt;br /&gt;
	else&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace );&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;
    simple function to pipe string.rep to templates.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function str.rep( frame )&lt;br /&gt;
	local repetitions = tonumber( frame.args[2] )&lt;br /&gt;
	if not repetitions then&lt;br /&gt;
		return str._error( &#039;function rep expects a number as second parameter, received &amp;quot;&#039; .. ( frame.args[2] or &#039;&#039; ) .. &#039;&amp;quot;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return string.rep( frame.args[1] or &#039;&#039;, repetitions )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
escapePattern&lt;br /&gt;
&lt;br /&gt;
This function escapes special characters from a Lua string pattern. See [1]&lt;br /&gt;
for details on how patterns work.&lt;br /&gt;
&lt;br /&gt;
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|escapePattern|pattern_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    pattern_string: The pattern string to escape.&lt;br /&gt;
]]&lt;br /&gt;
function str.escapePattern( frame )&lt;br /&gt;
	local pattern_str = frame.args[1]&lt;br /&gt;
	if not pattern_str then&lt;br /&gt;
		return str._error( &#039;No pattern string specified&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	local result = str._escapePattern( pattern_str )&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function str._getParameters( frame_args, arg_list )&lt;br /&gt;
	local new_args = {};&lt;br /&gt;
	local index = 1;&lt;br /&gt;
	local value;&lt;br /&gt;
&lt;br /&gt;
	for i,arg in ipairs( arg_list ) do&lt;br /&gt;
		value = frame_args[arg]&lt;br /&gt;
		if value == nil then&lt;br /&gt;
			value = frame_args[index];&lt;br /&gt;
			index = index + 1;&lt;br /&gt;
		end&lt;br /&gt;
		new_args[arg] = value;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return new_args;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to handle error messages.&lt;br /&gt;
]]&lt;br /&gt;
function str._error( error_str )&lt;br /&gt;
	local frame = mw.getCurrentFrame();&lt;br /&gt;
	local error_category = frame.args.error_category or &#039;Errors reported by Module String&#039;;&lt;br /&gt;
	local ignore_errors = frame.args.ignore_errors or false;&lt;br /&gt;
	local no_category = frame.args.no_category or false;&lt;br /&gt;
&lt;br /&gt;
	if str._getBoolean(ignore_errors) then&lt;br /&gt;
		return &#039;&#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local error_str = &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;String Module Error: &#039; .. error_str .. &#039;&amp;lt;/strong&amp;gt;&#039;;&lt;br /&gt;
	if error_category ~= &#039;&#039; and not str._getBoolean( no_category ) then&lt;br /&gt;
		error_str = &#039;[[Category:&#039; .. error_category .. &#039;]]&#039; .. error_str;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return error_str;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper Function to interpret boolean strings&lt;br /&gt;
]]&lt;br /&gt;
function str._getBoolean( boolean_str )&lt;br /&gt;
	local boolean_value;&lt;br /&gt;
&lt;br /&gt;
	if type( boolean_str ) == &#039;string&#039; then&lt;br /&gt;
		boolean_str = boolean_str:lower();&lt;br /&gt;
		if boolean_str == &#039;false&#039; or boolean_str == &#039;no&#039; or boolean_str == &#039;0&#039;&lt;br /&gt;
				or boolean_str == &#039;&#039; then&lt;br /&gt;
			boolean_value = false;&lt;br /&gt;
		else&lt;br /&gt;
			boolean_value = true;&lt;br /&gt;
		end&lt;br /&gt;
	elseif type( boolean_str ) == &#039;boolean&#039; then&lt;br /&gt;
		boolean_value = boolean_str;&lt;br /&gt;
	else&lt;br /&gt;
		error( &#039;No boolean value found&#039; );&lt;br /&gt;
	end&lt;br /&gt;
	return boolean_value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that escapes all pattern characters so that they will be treated&lt;br /&gt;
as plain text.&lt;br /&gt;
]]&lt;br /&gt;
function str._escapePattern( pattern_str )&lt;br /&gt;
	return mw.ustring.gsub( pattern_str, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return str&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Mbox/doc&amp;diff=300</id>
		<title>Template:Mbox/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Mbox/doc&amp;diff=300"/>
		<updated>2025-10-20T13:48:20Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{Languages|Template:Mbox}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{{Mbox templates}}&lt;br /&gt;
{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{Lua|Module:Message box}}&lt;br /&gt;
{{Uses TemplateStyles&lt;br /&gt;
| Module:Message box/ambox.css&lt;br /&gt;
| Module:Message box/cmbox.css&lt;br /&gt;
| Module:Message box/imbox.css&lt;br /&gt;
| Module:Message box/ombox.css&lt;br /&gt;
| Module:Message box/tmbox.css&lt;br /&gt;
}}&lt;br /&gt;
{{High-use|15,000}}&lt;br /&gt;
&lt;br /&gt;
This is the {{tlx|mbox}} or &#039;&#039;&#039;multi namespace message box&#039;&#039;&#039; meta-template.&lt;br /&gt;
&lt;br /&gt;
This meta-template is used to build message box templates that are used on several types of pages and thus need to change style depending on what page they are used on. Based on page type detected it uses one of {{tlx|ambox}}, {{tlx|tmbox}}, {{tlx|imbox}}, {{tlx|cmbox}} and {{tlx|ombox}}.&lt;br /&gt;
&lt;br /&gt;
Note that this template should only be used for message boxes that really need to adapt their style. Most message boxes do not need this and should use one of {{tlx|ambox}}, {{tlx|tmbox}}, {{tlx|imbox}}, {{tlx|cmbox}} or {{tlx|ombox}} directly. Using those templates directly means that your template will look the same on its template page and at any other place you show it, which makes it clear on what kind of pages it is supposed to be used. It also gives you access to any extra features those templates offer, and it saves some server load.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
This template takes the same parameters as {{tlx|ambox}} and {{tlx|imbox}} etc. See full documentation there.&lt;br /&gt;
&lt;br /&gt;
Some of the boxes this template calls only handles images of max 52px width, thus that limitation also applies to this template or you will get ugly padding problems.&lt;br /&gt;
&lt;br /&gt;
== Demospace ==&lt;br /&gt;
This template optionally takes the &amp;quot;demospace&amp;quot; parameter to specify a namespace for testing and demonstration purposes. If you want to lock your message box to one style then instead use one of the other mboxes directly.&lt;br /&gt;
&lt;br /&gt;
Namespace &amp;quot;Image:&amp;quot; was renamed to &amp;quot;File:&amp;quot; on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands &amp;quot;demospace = image&amp;quot; which means the same thing as &amp;quot;demospace = file&amp;quot;. But using &amp;quot;demospace = image&amp;quot; is now deprecated.&lt;br /&gt;
&lt;br /&gt;
Namespace &amp;quot;Book:&amp;quot; was added to the English Wikipedia on 28 December 2009. This template uses the {{tlx|ombox}} style on &amp;quot;Book:&amp;quot; pages or when &amp;quot;demospace=book&amp;quot;. And it uses the {{tlx|tmbox}} style on &amp;quot;Book talk:&amp;quot; pages or when &amp;quot;demospace=talk&amp;quot;. Note that &amp;quot;demospace=talk&amp;quot; means any talk space, there is no &amp;quot;demospace=book talk&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
List of all parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=wikitext&amp;gt;&lt;br /&gt;
{{mbox&lt;br /&gt;
| demospace = {{{demospace|}}} / main / talk / file / category / other&lt;br /&gt;
| type  = speedy / delete / content / style / notice / move / protection&lt;br /&gt;
| image = none / [[File:Some image.svg|40px]]&lt;br /&gt;
| imageright = [[File:Some image.svg|40px]]&lt;br /&gt;
| style = CSS values&lt;br /&gt;
| textstyle  = CSS values&lt;br /&gt;
| text  = The message body text.&lt;br /&gt;
| small = {{{small|}}} / left / yes&lt;br /&gt;
| smallimage = none / [[Image:Some image.svg|30px]]&lt;br /&gt;
| smallimageright = none / [[Image:Some image.svg|30px]]&lt;br /&gt;
| smalltext  = A shorter message body text.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The small parameters only have effect when the template is on an article, talk page or an &amp;quot;other&amp;quot; page. For documentation on the small parameters see {{tlx|ambox}}, {{tlx|tmbox}} and {{tlx|ombox}}. Using the small parameters when they are not valid has no effect, but also does no harm.&lt;br /&gt;
&lt;br /&gt;
=== TemplateData ===&lt;br /&gt;
{{TemplateData header}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;This is the {{mbox}} or “multi namespace message box” meta-template.&amp;quot;,&lt;br /&gt;
		&amp;quot;pt-br&amp;quot;: &amp;quot;Esta é a meta-predefinição {{mbox}}, ou “caixa de mensagem para múltiplos espaços nominais”.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;format&amp;quot;: &amp;quot;block&amp;quot;,&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;demospace&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Demo namespace&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Espaço nominal de demonstração&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;main&amp;quot;,&lt;br /&gt;
				&amp;quot;talk&amp;quot;,&lt;br /&gt;
				&amp;quot;file&amp;quot;,&lt;br /&gt;
				&amp;quot;category&amp;quot;,&lt;br /&gt;
				&amp;quot;other&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;type&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Type&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Tipo&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;speedy&amp;quot;,&lt;br /&gt;
				&amp;quot;delete&amp;quot;,&lt;br /&gt;
				&amp;quot;content&amp;quot;,&lt;br /&gt;
				&amp;quot;style&amp;quot;,&lt;br /&gt;
				&amp;quot;notice&amp;quot;,&lt;br /&gt;
				&amp;quot;move&amp;quot;,&lt;br /&gt;
				&amp;quot;protection&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;notice&amp;quot;,&lt;br /&gt;
			&amp;quot;suggested&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Image (left)&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Imagem (esquerda)&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;default&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Depends on the “type” parameter.&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Depende do parâmetro “type”.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggested&amp;quot;: true,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Do not put in File:, can put \&amp;quot;none\&amp;quot; for no image.&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;imageright&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Image (right)&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Imagem (direita)&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Do not put in File:&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;style&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;CSS style&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Estilo CSS&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;textstyle&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Text CSS style&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Estilo CSS para o texto&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;text&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Text&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Texto&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggested&amp;quot;: true,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;small&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Small?&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Caixa pequena?&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;{{{small|}}}&amp;quot;,&lt;br /&gt;
				&amp;quot;left&amp;quot;,&lt;br /&gt;
				&amp;quot;yes&amp;quot;,&lt;br /&gt;
				&amp;quot;1&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;smallimage&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Small image (left)&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Imagem da caixa pequena (esquerda)&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;none&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;{{{image}}}&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;smallimageright&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Small image (right)&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Imagem da caixa pequena (direita)&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;none&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;{{{imageright}}}&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;smalltext&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Small text&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Texto da caixa pequena&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;{{{text}}}&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Message boxes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Template&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|ambox}}&lt;br /&gt;
| Article message box, identifies problems or issues with the article&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|cmbox}}&lt;br /&gt;
| Category message box, {{tlx|ambox}} for categories&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|imbox}}&lt;br /&gt;
| Image message box, {{tlx|ambox}} for file (image) pages&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|ombox}}&lt;br /&gt;
| Other pages message box, {{tlx|ambox}} for pages of the types User, Wikipedia, MediaWiki, Template, Help, Portal and any new future namespaces&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|tmbox}}&lt;br /&gt;
| Talk page message box, {{tlx|ambox}} for talk pages&lt;br /&gt;
|-&lt;br /&gt;
! colspan = 2 | The following templates are not called by Mbox&lt;br /&gt;
|-&lt;br /&gt;
| {{tlx|fmbox}}&lt;br /&gt;
| used in system messages&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[w:Wikipedia:Classes in Ambox]] – Describes how to use the ambox CSS classes directly in [[w:Help:Table|wikitables]] and [[w:HTML element#Tables|HTML tables]].&lt;br /&gt;
* [[w:Wikipedia:Manual of Style/Article message boxes]] – The style guideline for creating article message boxes.&lt;br /&gt;
* [[w:Wikipedia talk:Manual of Style/Article message boxes]] – For discussion about these matters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Mbox templates{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Mbox_templates/en&amp;diff=298</id>
		<title>Template:Mbox templates/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Mbox_templates/en&amp;diff=298"/>
		<updated>2025-10-20T13:48:16Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{nmbox&lt;br /&gt;
| image = [[File:Codex icon puzzle.svg|22px|link=|class=skin-invert]]&lt;br /&gt;
| header = {{ll|Template:Mbox|2=Message box templates}}&lt;br /&gt;
| text = {{flatlist|1=&lt;br /&gt;
* {{tll|ambox}}&lt;br /&gt;
* {{tll|cmbox}}&lt;br /&gt;
* {{tll|fmbox}}&lt;br /&gt;
* {{tll|imbox}}&lt;br /&gt;
* {{tll|nmbox}}&lt;br /&gt;
* {{tll|ombox}}&lt;br /&gt;
* {{tll|tmbox}}&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
[[Category:Navigation templates{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Mbox_templates&amp;diff=296</id>
		<title>Template:Mbox templates</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Mbox_templates&amp;diff=296"/>
		<updated>2025-10-20T13:48:16Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{nmbox&lt;br /&gt;
| image = [[File:Codex icon puzzle.svg|22px|link=|class=skin-invert]]&lt;br /&gt;
| header = {{ll|Template:Mbox|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; Message box templates&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
| text = {{flatlist|1=&lt;br /&gt;
* {{tll|ambox}}&lt;br /&gt;
* {{tll|cmbox}}&lt;br /&gt;
* {{tll|fmbox}}&lt;br /&gt;
* {{tll|imbox}}&lt;br /&gt;
* {{tll|nmbox}}&lt;br /&gt;
* {{tll|ombox}}&lt;br /&gt;
* {{tll|tmbox}}&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
[[Category:Navigation templates{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Tll&amp;diff=294</id>
		<title>Template:Tll</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Tll&amp;diff=294"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;templatestyles src=&amp;quot;Template:Mono/styles.css&amp;quot;/&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{yesno|{{{nowrap|}}}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|&amp;lt;templatestyles src=&amp;quot;Template:Nowrap/styles.css&amp;quot;/&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;span class=&amp;quot;&lt;br /&gt;
	monospaced&lt;br /&gt;
	{{#if:{{yesno|{{{nowrap|}}}}}|nowrap}}&lt;br /&gt;
&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{((}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;[[Special:MyLanguage/Template:{{{{{|safesubst:}}}ucfirst:{{{1}}}}}|{{{1}}}]]&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;[[Special:MyLanguage/{{translatable}}|Template link localized]]&amp;lt;/noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{2|}}}|{{{2}}}|{{!}}{{{2}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{3|}}}|{{{3}}}|{{!}}{{{3}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{4|}}}|{{{4}}}|{{!}}{{{4}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{5|}}}|{{{5}}}|{{!}}{{{5}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{6|}}}|{{{6}}}|{{!}}{{{6}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{7|}}}|{{{7}}}|{{!}}{{{7}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{8|}}}|{{{8}}}|{{!}}{{{8}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{{{{|safesubst:}}}#ifeq:{{{9|}}}|{{{9}}}|{{!}}{{{9}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{))}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/onlyinclude&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;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Languages/Lang&amp;diff=292</id>
		<title>Template:Languages/Lang</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Languages/Lang&amp;diff=292"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifexist: {{#if:{{{2|}}}|{{{2}}}|{{translatable}}}}/{{{1|}}}&lt;br /&gt;
|&amp;amp;nbsp;• &amp;lt;bdi lang=&amp;quot;{{{1|}}}&amp;quot;&amp;gt;{{#if:{{{2|}}}&lt;br /&gt;
  |&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:{{{2|}}}/{{{1|}}}}} {{#language:{{{1|}}}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:{{translatable}}/{{{1|}}}}} {{#language:{{{1|}}}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
  }}&amp;lt;/bdi&amp;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>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Languages&amp;diff=290</id>
		<title>Template:Languages</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Languages&amp;diff=290"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:&amp;lt;languages exists/&amp;gt;|&amp;lt;languages/&amp;gt;|&amp;lt;languages/&amp;gt;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flow-root;&amp;quot;&amp;gt;{{nmbox&lt;br /&gt;
 | header = {{ll|Project:Language policy|{{int:tpt-languages-legend}}}}&lt;br /&gt;
 | text = &lt;br /&gt;
&#039;&#039;&#039;[[{{{1|:{{translatable}}}}}|English]]&#039;&#039;&#039; {{Languages/Lang|af|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ar|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ast|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|az|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bcc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be-tarask|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bg|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bn|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ca|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ckb|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|cs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|da|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|de|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|diq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|el|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|eo|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|es|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fa|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|he|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hy|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ia|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|id|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|io|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|it|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ja|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|jv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ka|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kk|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;span class=&amp;quot;autonym&amp;quot;&amp;gt;{{Languages/Lang|km|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;/span&amp;gt;{{Languages/Lang|ko|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko-kp|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ksh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kw|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|la|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|map-bms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|min|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ml|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;span class=&amp;quot;autonym&amp;quot;&amp;gt;{{Languages/Lang|mr|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;/span&amp;gt;{{Languages/Lang|ms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mwl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|nl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|no|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|oc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|or|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt-br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ro|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ru|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|si|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|so|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|syl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ta|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|th|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|tr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|uk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|vi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yue|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hans|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hant|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-tw|{{{1|}}}}}|&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;!--/nmbox--&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{Languages/Lang|af|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ar|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ast|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|az|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bcc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be-tarask|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bg|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bn|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ca|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ckb|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|cs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|da|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|de|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|diq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|el|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|eo|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|es|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fa|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|he|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hy|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ia|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|id|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|io|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|it|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ja|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|jv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ka|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|km|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko-kp|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ksh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kw|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|la|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|map-bms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|min|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ml|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mwl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|nl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|no|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|oc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|or|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt-br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ro|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ru|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|si|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|so|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|syl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ta|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|th|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|tr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|uk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|vi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yue|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hans|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hant|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-tw|{{{1|}}}}}&lt;br /&gt;
||[[Category:Languages pages without translations]]}}&amp;lt;!--/#if--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[[Category:Languages pages]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#switch:{{PAGELANGUAGE}}&lt;br /&gt;
|en=&amp;lt;!--empty--&amp;gt;&lt;br /&gt;
|ku-latn=[[Category:Languages pages/ku]]&lt;br /&gt;
|zh-hans|zh-hant=[[Category:Languages pages/zh]]&lt;br /&gt;
|#default=[[Category:Languages pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;!--/#switch--&amp;gt;&amp;lt;/includeonly&amp;gt;}}&amp;lt;!--/#ifeq--&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>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Flatlist/styles.css&amp;diff=288</id>
		<title>Template:Flatlist/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Flatlist/styles.css&amp;diff=288"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * Style for horizontal lists (separator following item).&lt;br /&gt;
 * @source https://www.mediawiki.org/wiki/Snippets/Horizontal_lists&lt;br /&gt;
 * @revision 9 (2016-08-10)&lt;br /&gt;
 * @author [[User:Edokter]]&lt;br /&gt;
 */&lt;br /&gt;
.hlist dl,&lt;br /&gt;
.hlist ol,&lt;br /&gt;
.hlist ul {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display list items inline */&lt;br /&gt;
.hlist dd,&lt;br /&gt;
.hlist dt,&lt;br /&gt;
.hlist li {&lt;br /&gt;
	/* don&#039;t trust the note that says margin doesn&#039;t work with inline&lt;br /&gt;
	 * removing margin: 0 makes dds have margins again */&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Display nested lists inline */&lt;br /&gt;
/*&lt;br /&gt;
We remove .inline since it&#039;s not used here.&lt;br /&gt;
.hlist.inline,&lt;br /&gt;
.hlist.inline dl,&lt;br /&gt;
.hlist.inline ol,&lt;br /&gt;
.hlist.inline ul,&lt;br /&gt;
*/&lt;br /&gt;
.hlist dl dl, .hlist dl ol, .hlist dl ul,&lt;br /&gt;
.hlist ol dl, .hlist ol ol, .hlist ol ul,&lt;br /&gt;
.hlist ul dl, .hlist ul ol, .hlist ul ul {&lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Hide empty list items */&lt;br /&gt;
.hlist .mw-empty-li,&lt;br /&gt;
.hlist .mw-empty-elt {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Generate interpuncts */&lt;br /&gt;
.hlist dt:after {&lt;br /&gt;
	content: &amp;quot;: &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd:after,&lt;br /&gt;
.hlist li:after {&lt;br /&gt;
	content: &amp;quot; · &amp;quot;;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd:last-child:after,&lt;br /&gt;
.hlist dt:last-child:after,&lt;br /&gt;
.hlist li:last-child:after {&lt;br /&gt;
	content: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Add parentheses around nested lists */&lt;br /&gt;
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,&lt;br /&gt;
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,&lt;br /&gt;
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,&lt;br /&gt;
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,&lt;br /&gt;
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {&lt;br /&gt;
	content: &amp;quot;)&amp;quot;;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Put ordinals in front of ordered list items */&lt;br /&gt;
.hlist ol {&lt;br /&gt;
	counter-reset: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li {&lt;br /&gt;
	counter-increment: listitem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist ol &amp;gt; li:before {&lt;br /&gt;
	content: &amp;quot; &amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.hlist dd ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist dt ol &amp;gt; li:first-child:before,&lt;br /&gt;
.hlist li ol &amp;gt; li:first-child:before {&lt;br /&gt;
	content: &amp;quot; (&amp;quot; counter(listitem) &amp;quot;\a0&amp;quot;;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Flatlist&amp;diff=286</id>
		<title>Template:Flatlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Flatlist&amp;diff=286"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;templatestyles src=&amp;quot;Template:Flatlist/styles.css&amp;quot;/&amp;gt;&amp;lt;div class=&amp;quot;hlist {{{class|}}}&amp;quot; {{#if:{{{style|}}}{{{indent|}}}|style=&amp;quot;{{#if:{{{indent|}}}|margin-left: {{#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}&amp;quot;}}&amp;gt;{{#if:{{{1|}}}|&lt;br /&gt;
{{{1}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Nmbox/styles.css&amp;diff=284</id>
		<title>Template:Nmbox/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Nmbox/styles.css&amp;diff=284"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.nmbox {&lt;br /&gt;
	/* clear: both; */&lt;br /&gt;
	background: #f8f9fa;&lt;br /&gt;
	border: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
	margin: 2px 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.nmbox * {&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
.nmbox-header {&lt;br /&gt;
	background: #eaecf0;&lt;br /&gt;
	padding: 4px 0.5em;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	white-space: nowrap&lt;br /&gt;
}&lt;br /&gt;
.nmbox .mbox-image {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding-right: 1em;&lt;br /&gt;
}&lt;br /&gt;
.nmbox-text {&lt;br /&gt;
	border-top: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	padding: 4px 0.5em;&lt;br /&gt;
}&lt;br /&gt;
@media screen and (min-width: 768px) {&lt;br /&gt;
	.nmbox-header {&lt;br /&gt;
		display: table-cell;&lt;br /&gt;
		border-right: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
		width: 1%;&lt;br /&gt;
	}&lt;br /&gt;
	.nmbox-text {&lt;br /&gt;
		border-top: none;&lt;br /&gt;
		display: table-cell;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .nmbox-header,&lt;br /&gt;
	html.skin-theme-clientpref-night  .nmbox {&lt;br /&gt;
	    background: transparent;&lt;br /&gt;
	    color: inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
    /* automatic mode */&lt;br /&gt;
    html.skin-theme-clientpref-os .nmbox-header,&lt;br /&gt;
    html.skin-theme-clientpref-os  .nmbox {&lt;br /&gt;
    	background: transparent;&lt;br /&gt;
    	color: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Nmbox&amp;diff=282</id>
		<title>Template:Nmbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Nmbox&amp;diff=282"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Template:Nmbox/styles.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nmbox noprint {{dir|{{PAGELANGUAGE}}|mw-content-rtl|mw-content-ltr}}&amp;quot;&amp;gt;{{#if: {{{image|}}}{{{header|}}}&lt;br /&gt;
|&amp;lt;div class=&amp;quot;nmbox-header&amp;quot;&amp;gt;{{#if: {{{image|}}}|&amp;lt;div class=&amp;quot;nmbox-image mbox-image&amp;quot;&amp;gt;{{{image|}}}&amp;lt;/div&amp;gt;}}{{{header|}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
{{#if:{{{text|}}}|&amp;lt;div class=&amp;quot;nmbox-text mbox-text&amp;quot;&amp;gt;{{{text|}}}&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&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>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Mbox&amp;diff=280</id>
		<title>Template:Mbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Mbox&amp;diff=280"/>
		<updated>2025-10-20T13:48:15Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Message box|mbox}}&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>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Translatable_template_name/en&amp;diff=278</id>
		<title>Template:Translatable template name/en</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Translatable_template_name/en&amp;diff=278"/>
		<updated>2025-10-20T13:46:56Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:Template translation{{{sandbox|}}}|getTranslatedTemplate|uselang={{{uselang|}}}|tntns={{{tntns|{{{namespace|}}}}}}|template={{#if:{{{noshift|}}}|{{{template}}}|{{{1}}}}}|noshift={{{noshift|}}}&amp;lt;!-- there are no other parameters here --&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{High-use|15000}}&lt;br /&gt;
{{tsh|TNTN|tntn}}&lt;br /&gt;
{{Lua|Module:Template translation}}&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
This template is used to return the name of translatable templates in the language of the current page.&lt;br /&gt;
Templates, like all other MediaWiki pages, can be translated using the {{ll|Extension:Translate|nsp=0}} extension, which creates subpages with the form &amp;quot;pagename/language code&amp;quot;.&lt;br /&gt;
The template first checks if the name of the page contains a language code.&lt;br /&gt;
If it does, it then checks if the template name given as a first parameter has a translation in that language.&lt;br /&gt;
If the page name does not contain a language code, or if the navigation template doesn&#039;t exist in that language, it will display the English template.&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{Translatable template name|&amp;lt;/nowiki&amp;gt;&#039;&#039;name of navigation template&#039;&#039;&amp;lt;nowiki&amp;gt;}}|&amp;lt;/nowiki&amp;gt;&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{TNTN|&amp;lt;/nowiki&amp;gt;&#039;&#039;name of navigation template&#039;&#039;&amp;lt;nowiki&amp;gt;}}|&amp;lt;/nowiki&amp;gt;&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{tntn|&amp;lt;/nowiki&amp;gt;&#039;&#039;name of navigation template&#039;&#039;&amp;lt;nowiki&amp;gt;}}|&amp;lt;/nowiki&amp;gt;&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example (from translatable [[meta:Template:Meta]], used in translatable page [[meta:Meta:About]]):&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Translatable template name|Navbar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TNTN|Navbar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which returns the translated versions of {{tl|Navbar}} if it exists, or the English version if translations don&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
The current version of the template may now include any kind of named or numbered parameters, whose values will be transferred into the called template (except for parameter 1 containing the basename of the translatable template to transclude).&lt;br /&gt;
Numbered parameters will be shifted down by one position, all named parameters will be passed unchanged.&lt;br /&gt;
&lt;br /&gt;
One named parameter is treated specially:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Translatable template name|tntns=&amp;lt;/nowiki&amp;gt;&#039;&#039;:somename:&#039;&#039;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&#039;&#039;page name&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TNTN|tntns=&amp;lt;/nowiki&amp;gt;&#039;&#039;:somename:&#039;&#039;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&#039;&#039;page name&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tntn|tntns=&amp;lt;/nowiki&amp;gt;&#039;&#039;:somename:&#039;&#039;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&#039;&#039;page name&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This &amp;lt;code&amp;gt;tntns&amp;lt;/code&amp;gt; will be used to specify another namespace from which the translatable pagename will be transcluded, instead of referencing the page name from the default &amp;lt;code&amp;gt;:Template:&amp;lt;/code&amp;gt; namespace. Note that this parameter is also passed (without modification) within the parameters of the transclusion.&lt;br /&gt;
&lt;br /&gt;
Example with one parameters (from [[meta:Meta:About]] which is translatable):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{TNTN|Navbar}} |Meta:About}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
* [[Module:Template translation]] (standard version)&lt;br /&gt;
* [[meta:Module:Template translation/sandbox]] (used when this template is called with optional parameter &amp;lt;code&amp;gt;sandbox=/sandbox&amp;lt;/code&amp;gt;, for testing modifications only)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|Translatable template}}, alias {{tl|TNT}} or {{tl|tnt}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Navigation templates{{#translation:}}|* {{PAGENAME}}]]&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Lua-based templates]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
	<entry>
		<id>https://wiki.pub.solar/index.php?title=Template:Translatable_template/doc&amp;diff=276</id>
		<title>Template:Translatable template/doc</title>
		<link rel="alternate" type="text/html" href="https://wiki.pub.solar/index.php?title=Template:Translatable_template/doc&amp;diff=276"/>
		<updated>2025-10-20T13:46:53Z</updated>

		<summary type="html">&lt;p&gt;Teutat3s: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Documentation subpage}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{high-use|1300}}&lt;br /&gt;
{{TNT|Template shortcut|TNT|tnt}}&lt;br /&gt;
{{lua|Module:Template translation}}&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
This template is used to show translatable templates in the language of the current page. Templates, like all other MediaWiki pages, can be translated using the [[Special:MyLanguage/Extension:Translate|Translate extension]], which creates subpages with the form &amp;quot;&#039;&#039;pagename/language code&#039;&#039;&amp;quot;. The template first checks if the name of the page contains a language code. If it does, it then checks if the template name given as a first parameter has a translation in that language. If the page name does not contain a language code, or if the navigation template doesn&#039;t exist in that language, it will display the English template.&lt;br /&gt;
&lt;br /&gt;
This template has alias &#039;&#039;&#039;TNT&#039;&#039;&#039; which means &#039;&#039;&#039;T&#039;&#039;&#039;ranslatable &#039;&#039;&#039;N&#039;&#039;&#039;avigation &#039;&#039;&#039;T&#039;&#039;&#039;emplate.&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
* {{tlx|Translatable template|&#039;&#039;name of template&#039;&#039;|&#039;&#039;parameters....&#039;&#039;}}&lt;br /&gt;
* {{tlx|TNT|&#039;&#039;name of template&#039;&#039;|&#039;&#039;parameters....&#039;&#039;}}&lt;br /&gt;
* {{tlx|tnt|&#039;&#039;name of template&#039;&#039;|&#039;&#039;parameters....&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
The above simplified syntax cannot work if the named template also needs to be transcluded in other translatable templates, because it would cause self-recursion of {{tl|Translatable template}}. An alternative is to use {{tl|Translatable template name}} which does not expand the template with its parameters, but only returns the resolved template name, which can then be&lt;br /&gt;
transcluded normally:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{&amp;lt;/nowiki&amp;gt;Translatable template name|&#039;&#039;name of template&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; |&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{&amp;lt;/nowiki&amp;gt;TNTN|&#039;&#039;name of template&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; |&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ {{&amp;lt;/nowiki&amp;gt;tntn|&#039;&#039;name of template&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; |&#039;&#039;parameters....&#039;&#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example (from {{ll|Help:Extension:Translate}}):&lt;br /&gt;
&lt;br /&gt;
:{{tlx|Translatable template|Extension-Translate}} or {{tlx|TNT|Extension-Translate}}&lt;br /&gt;
which includes translated versions of {{tl|Extension-Translate}} if it exists, or the English version if translations don&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
The current version of the template may now include any kind of named or numbered parameters, whose values will be transferred into the called template (except for parameter 1 containing the basename of the translatable template to transclude). Numbered parameters will be shifted down by one position, all named parameters will be passed unchanged.&lt;br /&gt;
&lt;br /&gt;
When that&#039;s problematic, you can use the special &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;noshift&amp;lt;/code&amp;gt; parameters:&lt;br /&gt;
* {{tlx|Translatable template|template{{=}}&#039;&#039;name of template&#039;&#039;|noshift{{=}}1|1{{=}}&#039;&#039;first parameter of called template&#039;&#039;|...}}&lt;br /&gt;
&lt;br /&gt;
One named parameter is treated specially:&lt;br /&gt;
* {{tlx|Translatable template|template{{=}}&#039;&#039;name of template&#039;&#039;|noshift{{=}}1|1{{=}}&#039;&#039;first parameter of called template&#039;&#039;|...}}&lt;br /&gt;
* {{tlx|TNT|template{{=}}&#039;&#039;name of template&#039;&#039;|noshift{{=}}1|1{{=}}&#039;&#039;first parameter of called template&#039;&#039;|...}}&lt;br /&gt;
* {{tlx|tnt|template{{=}}&#039;&#039;name of template&#039;&#039;|noshift{{=}}1|1{{=}}&#039;&#039;first parameter of called template&#039;&#039;|...}}&lt;br /&gt;
This &amp;lt;code&amp;gt;tntns&amp;lt;/code&amp;gt; will be used to specify another namespace from which the translatable pagename will be transcluded, instead of referencing the page name from the default &amp;lt;code&amp;gt;:Template:&amp;lt;/code&amp;gt; namespace. Note that this parameter is also passed (without modification) within the parameters of the transclusion.&lt;br /&gt;
&lt;br /&gt;
Example with one parameters (from [[m:Special:MyLanguage/Global sysops]]):&lt;br /&gt;
* {{tlx|TNT|Special global permissions/Seealso|Global sysops}}&lt;br /&gt;
where the second parameter &amp;quot;Global sysops&amp;quot; is the value of the first numbered parameter transferred into called page &amp;quot;Special global permissions/Seealso&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dependency ==&lt;br /&gt;
* [[Module:Template translation]] (standard version)&lt;br /&gt;
* [[m:Module:Template translation/sandbox]] (used when this template is called with optional dummy parameter &amp;lt;code&amp;gt;sandbox=/sandbox&amp;lt;/code&amp;gt;, for testing only&lt;br /&gt;
&lt;br /&gt;
For other wikis: [{{canonicalurl:Template:Translatable_template|oldid=868147}} this revision] does not require LUA and is simple.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|Translatable template name}}, alias {{tl|TNTN}} or {{tl|tntn}}&lt;br /&gt;
* {{tl|Localized link}}, alias {{tl|ll}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;1&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Назва шаблёну&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Template name&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;Nom du modèle&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Назва шаблёну да перакладу&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Name of the template to be translated.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;Nom du modèle à traduire.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;wiki-template-name&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;sandbox&amp;quot;: {},&lt;br /&gt;
		&amp;quot;uselang&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Мова&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Language&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;Langue&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Мова, на якую перакладацьмецца шаблён&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Language in which the template will be translated.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;Langue dans laquelle le modèle sera traduit.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Мова цяперашняй старонкі&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;language of the current page&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;langue de la page actuelle&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;tntns&amp;quot;: {&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Замест спасылкі на старонку з дапомнай прасторы назваў :Шаблён: пазначце іншую прастору назваў, зь якой будзе ўключацца перакладаная назва старонкі.&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Specify another namespace from which the translatable pagename will be transcluded, instead of referencing the page name from the default :Template: namespace.&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;noshift&amp;quot;: {&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Адключыць дапомныя паводзіны рухомых нумараваных парамэтраў на адну пазыцыю ўніз. Калі гэта ўключана, трэба таксама дадаваць «шаблён».&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Disable default behavior of shifting numbered parameters down by one position. &#039;template&#039; must also be used if this is enabled.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;template&amp;quot;: {&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;be-tarask&amp;quot;: &amp;quot;Назва шаблёну для пошуку перакладзенай вэрсіі. Калі ўключаны «noshift=1», замест $1 для пошуку шаблёну на абранай мове карыстальніка будзе выкарыстаны гэты парамэтар.&amp;quot;,&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Name of template to find translated version of. When &#039;noshift=1&#039; is also present, this parameter will be used instead of $1 to lookup the template in the user&#039;s selected language.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;wiki-page-name&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;be-tarask&amp;quot;: &amp;quot;Перакладае шаблён&amp;quot;,&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;Translates a template.&amp;quot;,&lt;br /&gt;
		&amp;quot;fr&amp;quot;: &amp;quot;Traduit un modèle.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;paramOrder&amp;quot;: [&lt;br /&gt;
		&amp;quot;1&amp;quot;,&lt;br /&gt;
		&amp;quot;uselang&amp;quot;,&lt;br /&gt;
		&amp;quot;tntns&amp;quot;,&lt;br /&gt;
		&amp;quot;template&amp;quot;,&lt;br /&gt;
		&amp;quot;noshift&amp;quot;,&lt;br /&gt;
		&amp;quot;sandbox&amp;quot;&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PUT HERE THE CATEGORIES OF THE TEMPLATE --&amp;gt;&lt;br /&gt;
[[Category:Internationalization templates|{{PAGENAME}}]]&lt;br /&gt;
[[Category:Lua-based templates]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Teutat3s</name></author>
	</entry>
</feed>