<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.openfortress.wiki/w/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://www.openfortress.wiki/w/index.php?action=history&amp;feed=atom&amp;title=Template%3AStr_left%2FDoc"/>
	<link rel="alternate" type="text/html" href="https://www.openfortress.wiki/w/index.php?title=Template:Str_left/Doc&amp;action=history"/>
	<updated>2026-05-03T15:16:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://www.openfortress.wiki/w/index.php?title=Template:Str_left/Doc&amp;diff=309&amp;oldid=prev</id>
		<title>Kate: Created page with &quot;{{Doc/subpage}} {{Wikipedia port|documentation=1}} &lt;!-- Categories go where indicated at the bottom of this page, please --&gt;  == Usage == : {{Template link expanded|Str left|&lt;string&gt;|&lt;count&gt;}}  Gives the resultant &lt;count&gt; of characters &#039;&#039;creating a substring of characters&#039;&#039; from the start of the trimmed string (i.e. the substring returned will have length &lt;count&gt;, exclusive of leading whitespace characters, which are trimmed first before &lt;count&gt;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.openfortress.wiki/w/index.php?title=Template:Str_left/Doc&amp;diff=309&amp;oldid=prev"/>
		<updated>2025-01-04T03:06:33Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Doc/subpage}} {{Wikipedia port|documentation=1}} &amp;lt;!-- Categories go where indicated at the bottom of this page, please --&amp;gt;  == Usage == : {{Template link expanded|Str left|&amp;lt;string&amp;gt;|&amp;lt;count&amp;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 &lt;a href=&quot;/w/index.php?title=W:Trim_(programming)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;W:Trim (programming) (page does not exist)&quot;&gt;trimmed&lt;/a&gt; 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;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Doc/subpage}}&lt;br /&gt;
{{Wikipedia port|documentation=1}}&lt;br /&gt;
&amp;lt;!-- Categories go where indicated at the bottom of this page, please --&amp;gt;&lt;br /&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; → {{ {{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; → {{ {{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; → {{ {{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; → {{ {{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; → {{ {{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; → {{ {{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; → {{ {{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;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories go below this line, please --&amp;gt;&lt;br /&gt;
[[Category:String manipulation templates]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kate</name></author>
	</entry>
</feed>