<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tulip.aspertia.city/index.php?action=history&amp;feed=atom&amp;title=Template%3AStr_left%2Fdoc</id>
	<title>Template:Str left/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tulip.aspertia.city/index.php?action=history&amp;feed=atom&amp;title=Template%3AStr_left%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://tulip.aspertia.city/index.php?title=Template:Str_left/doc&amp;action=history"/>
	<updated>2026-04-05T12:06:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://tulip.aspertia.city/index.php?title=Template:Str_left/doc&amp;diff=217&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://tulip.aspertia.city/index.php?title=Template:Str_left/doc&amp;diff=217&amp;oldid=prev"/>
		<updated>2026-04-04T13:17:57Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:17, 4 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff:1.41:old-216:rev-217 --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://tulip.aspertia.city/index.php?title=Template:Str_left/doc&amp;diff=216&amp;oldid=prev</id>
		<title>wikipedia&gt;Plantaest at 22:17, 21 December 2024</title>
		<link rel="alternate" type="text/html" href="https://tulip.aspertia.city/index.php?title=Template:Str_left/doc&amp;diff=216&amp;oldid=prev"/>
		<updated>2024-12-21T22:17:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{used in system}}&lt;br /&gt;
{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
: {{Template link expanded|Str left|&amp;lt;string&amp;gt;|&amp;lt;count&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Gives the resultant &amp;lt;count&amp;gt; of characters &amp;#039;&amp;#039;creating a substring of characters&amp;#039;&amp;#039; from the start of the [[w:Trim (programming)|trimmed]] string (i.e. the substring returned will have length &amp;lt;count&amp;gt;, exclusive of leading whitespace characters, which are trimmed first before &amp;lt;count&amp;gt; is invoked).&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;count&amp;gt; is invalid, empty or zero, an empty string is returned. If undefined, it defaults to 1.&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
* Length to 500: The maximum substring stops at 500 long, yet gives no error message. Only 500 characters can be extracted even if the &amp;lt;string&amp;gt; is longer.&lt;br /&gt;
* Inexpensive (uses no other templates).&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 10 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 10 }}&lt;br /&gt;
:*&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Str left| &amp;amp;nbsp; Lorem ipsum dolor sit amet | 4 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{Str left|    Lorem ipsum dolor sit amet | 4 }}, (note leading spaces trimmed!)&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 1 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 1 }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 0 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 0 }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 40 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 40 }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | àçé | 2 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | àçé | 2 }}&lt;br /&gt;
:*: This example is demonstrating the safety of this template with the UTF-8 encoding (this should work now) :&lt;br /&gt;
&lt;br /&gt;
===Examples of limitations===&lt;br /&gt;
All the limitations of use for this template and shown below are caused by the current implementation of the &amp;lt;nowiki&amp;gt;{{padleft:}}&amp;lt;/nowiki&amp;gt; parser function used in this template, which does not filter its third parameter containing the characters used for padding a string to the specified length (it currently counts incorrectly the characters to extract from the padding string, and incorrectly measures its effective length; in addition this parameter is limited to 500 bytes).&lt;br /&gt;
&lt;br /&gt;
The following examples are demonstrating that this template does not interpret character entity references as the character they represent. It treats them as multiple characters and can leave them truncated.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;amp;nbsp;c | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;amp;nbsp;c | 3 }}&lt;br /&gt;
*: The output &amp;quot;a&amp;amp;nbsp;c&amp;quot; may have been intended, but the named character entity was truncated, leaving no length available for the final &amp;quot;c&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;amp;#66;c | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;amp;#66;c | 3 }}&lt;br /&gt;
*: This should display &amp;quot;abc&amp;quot;, but the named character entity was truncated, leaving no length available for the final &amp;quot;c&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a c | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a c | 3 }}&lt;br /&gt;
*: The result is correct, as expected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;amp;#32;c | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;amp;#32;c | 3 }}&lt;br /&gt;
*: This last example should be equivalent to the previous one, but it is not.&lt;br /&gt;
&lt;br /&gt;
This template will erase nowiki tags without counting their length:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;lt;nowiki/&amp;amp;gt;bcd | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bcd | 3 }}&lt;br /&gt;
*: Returns three characters as expected&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;lt;nowiki&amp;gt;E&amp;amp;lt;/nowiki&amp;amp;gt;bcd | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;lt;nowiki&amp;gt;E&amp;lt;/nowiki&amp;gt;bcd | 3 }}&lt;br /&gt;
*: Returns three characters, but not aEb as might have been expected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;lt;nowiki/&amp;amp;gt;bc | 10 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bc | 10 }}&lt;br /&gt;
*: Returns 10 characters as expected.&lt;br /&gt;
&lt;br /&gt;
HTML comments, and the &amp;quot;noinclude&amp;quot;, &amp;quot;includeonly&amp;quot; and &amp;quot;onlyinclude&amp;quot; wiki markup tags are also ignored, because they are preprocessed in template parameters, before including it and substituting parameters:&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;lt;noinclude/&amp;amp;gt;bc | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;lt;noinclude/&amp;gt;bc | 3 }}&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | a&amp;amp;lt;!-- comment --&amp;amp;gt;bc | 3 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | a&amp;lt;!-- comment --&amp;gt;bc | 3 }}&lt;br /&gt;
&lt;br /&gt;
Note also that the specified length will cause the input string to be padded by repeating it, if this length is larger than the input string length:&lt;br /&gt;
:* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt; {{BASEPAGENAME}} | Abc. | 10 &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; {{ {{BASEPAGENAME}} | Abc. | 10 }}&lt;br /&gt;
&lt;br /&gt;
== Template data ==&lt;br /&gt;
{{TemplateData header}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;A template to give the &amp;lt;count&amp;gt; substring of characters from the start of the trimmed string &amp;quot;,&lt;br /&gt;
        &amp;quot;params&amp;quot;: {&lt;br /&gt;
                &amp;quot;1&amp;quot;: {&lt;br /&gt;
                        &amp;quot;label&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                        &amp;quot;description&amp;quot;: &amp;quot;The string to be trimmed and counted&amp;quot;,&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;
                &amp;quot;2&amp;quot;: {&lt;br /&gt;
                        &amp;quot;label&amp;quot;: &amp;quot;Count&amp;quot;,&lt;br /&gt;
                        &amp;quot;description&amp;quot;: &amp;quot;Gives the &amp;lt;count&amp;gt; substring of characters from the start of the trimmed string&amp;quot;,&lt;br /&gt;
                        &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
                        &amp;quot;required&amp;quot;: true&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Bugzilla:22555]] (historical; need for correcting padleft/padright functions and to provide better string-handling parser functions)&lt;br /&gt;
&lt;br /&gt;
{{String-handling templates |sub}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&amp;gt;&lt;br /&gt;
[[Category:String manipulation templates]]&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Plantaest</name></author>
	</entry>
</feed>