Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.The edit appears to have already been undone. Anti-spam check. Do not fill this in!{{high use}} {{Lua|Module:Yesno}} '''<code>Text</code>''' – Module containing methods for the manipulation of text, wikimarkup and some HTML. == {{Anchor|Vorlage}} Functions for templates == All methods have an unnamed parameter containing the text. The return value is an empty string if the parameter does not meet the conditions. When the condition is matched or some result is successfully found, strings of at least one character are returned. ; char {{Anchor|char}} : Creates a string from a list of character codes. ::; 1 ::: Space-separated list of character codes ::; * ::: Number of repetitions of the list in parameter '''1'''; (Default 1). ::; errors ::: <code>0</code> – Silence errors ; concatParams {{Anchor|concatParams}} : Combine any number of elements into a list, like <code>table.concat()</code> in Lua. : From a template: ::; 1 ::: First element; missing and empty elements are ignored. ::; 2 3 4 5 6 … ::: Further list elements : From Lua ::; args ::: ''table (sequence)'' of the elements ::; apply ::: Separator between elements; defaults to <code>|</code> ::; adapt ::: optional formatting, which will be applied to each element; must contain <code>%s</code>. ; containsCJK {{Anchor|containsCJK}} : Returns whether the input string contains any [[CJK characters]] :* Returns nothing if there are no CJK characters ; removeDelimited : Remove all text between delimiters, including the delimiters themselves. ; getPlain{{Anchor|getPlain}} : Remove wikimarkup (except templates): comments, tags, bold, italic, nbsp ; isLatinRange {{Anchor|isLatinRange}} : Returns some content, unless the string contains a character that would not normally be found in Latin text. :* Returns nothing if there is a non-Latin string. ; isQuote {{Anchor|isQuote}} : Returns some content if the parameter passed is a single character, and that character is a quote, such as <code>'</code>. :* Returns nothing for multiple characters, or if the character passed is not a quote. ; listToText {{Anchor|listToText}} : Formats list elements analogously to [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.listToText|mw.text.listToText()]]. : The elements are separated by a comma and space ; the word "and" appears between the first and last. : Unnamed parameters become the list items. : Optional parameters for <code>#invoke</code>: :* <code>format</code> – Every list element will first be formatted with this format string; see [[:mw:Extension:Scribunto/Lua_reference_manual#string.format|here]] for how to construct this string. The string must contain at least one <code>%s</code> sequence. :* <code>template=1</code> – List elements should be taken from the calling template. : Returns the resulting string. ; quote {{Anchor|quote}} : Wrap the string in quotes; quotes can be chosen for a specific language. ::; 1 ::: Input text (will be automatically trimmed); may be empty. ::; 2 ::: ''(optional)'' the [[ISO 639]] language code for the quote marks; should be one of the [[:de:Wikipedia:Lua/Modul/Text/Test#Anführungszeichen|supported languages]] {{in lang|de}} ::; 3 ::: ''(optional)'' <code>2</code> for second level quotes. This means the single quote marks in a statement such as: Jack said, “Jill said ‘fish’ last Tuesday.” ; quoteUnquoted {{Anchor|quoteUnquoted}} : : Wrap the string in quotes; quotes can be chosen for a specific language. Will not quote an empty string, and will not quote if there is a quote at the start or end of the (trimmed) string. ::; 1 ::: Input text (will be automatically trimmed); may be empty. ::; 2 ::: ''(optional)'' the [[ISO 639]] language code for the quote marks; should be one of the [[:de:Wikipedia:Lua/Modul/Text/Test#Anführungszeichen|supported languages]] {{in lang|de}} ::; 3 ::: ''(optional)'' <code>2</code> for second level quotes. This means the single quote marks in a statement such as: Jack said, “Jill said ‘fish’ last Tuesday.” ; removeDiacritics {{Anchor|removeDiacritics}} : Removes all [[diacritical marks]] from the input. ::; 1 ::;: Input text ; sentenceTerminated {{Anchor|sentenceTerminated}} : Is this sentence terminated? Should work with CJK, and allows quotation marks to follow. :* Returns nothing if the sentence is unterminated. ; ucfirstAll {{Anchor|ucfirstAll}} : The first letter of every recognized word is converted to upper case. This contrasts with the parser function {{tlg|:mw:ucfirst|alttext=ucfirst:}} which changes only the first character of the whole string passed. : A few common HTML entities are protected; the implementation of this may mean that numerical entities passed (e.g. <code>&#38;)</code> are converted to <code>&amp;</code> form ; uprightNonlatin {{Anchor|uprightNonlatin}} : Takes a string. Italicized non-Latin characters are un-italicized, unless they are a single Greek letter. ; zip {{Anchor|zip}} : Combines a tuple of lists by [[convolution (computer science)|convolution]]. This is easiest to explain by example: given two lists, list1 = "a b c" and list2 = "1 2 3", then<br><code>zip(liste1, liste2, sep = " ", isep = "-", osep = "/")</code><br>outputs<br><code>a-1/b-2/c-3</code> :* 1, 2, 3, … – Lists to be combined :* <code>sep</code> – A separator (in Lua [[regex]] form) used to split the lists. If empty, the lists are split into individual characters. :* <code>sep1</code>, <code>sep2</code>, <code>sep3</code>, … – Allows a different separator to be used for each list. :* <code>isep</code> – Output separator; placed between elements which were at the ''same'' index in their lists. :* <code>osep</code> – Output separator; placed between elements which had ''different'' original indices; i.e. between the groups joined with <code>isep</code> ; split {{Anchor|split}} : Splits a string into chunks at the specified delimiter, and returns the first (or user-specified) chunk. This is non-Unicode-aware implementation of [[:mw:Lua_reference_manual#mw.text.split|mw.text.split]] which, for ASCII-only text, can be up to 60 times faster. :* 1 (or <code>text</code>) – the text to be split :* 2 (or <code>pattern</code>) – the pattern to use when splitting the text. By default, this can be a [[:mw:Extension:Scribunto/Lua_reference_manual#Patterns|string library pattern]]. :* 3 (or <code>plain</code>) – if set to "true", <code>pattern</code> will be interpreted as plain text, not a pattern. :* 4 (or <code>index</code>) – The chunk to return. If omitted, the first chunk will be returned. Can be set to a negative number to count from the end (e.g. <code>-1</code> will return the last chunk). === Examples and test page === There are [[:de:Wikipedia:Lua/Modul/Text/Test|tests available]] {{in lang|de}} to illustrate this in practice. == {{Anchor|Lua}} Use in another Lua module == All of the above functions can be called from other Lua modules. Use <code>require()</code>; the below code checks for errors loading it: <syntaxhighlight lang="lua"> local lucky, Text = pcall( require, "Module:Text" ) if type( Text ) == "table" then Text = Text.Text() else -- In the event of errors, Text is an error message. return "<span class=\"error\">" .. Text .. "</span>" end </syntaxhighlight> You may then call: * <code>Text.char( apply, again, accept )</code> * <code>Text.concatParams( args, separator, format )</code> * <code>Text.containsCJK( s )</code> * <code>Text.removeDelimited( s )</code> * <code>Text.getPlain( s )</code> * <code>Text.isLatinRange( s )</code> * <code>Text.isQuote( c )</code> * <code>Text.listToText( table, format )</code> * <code>Text.quote( s, lang, mode )</code> * <code>Text.quoteUnquoted( s, lang, mode )</code> * <code>Text.removeDiacritics( s )</code> * <code>Text.sentenceTerminated( s )</code> * <code>Text.split( text, pattern, plain )</code> – non Unicode version of [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.split|mw.text.split]] * <code>Text.gsplit( text, pattern, plain )</code> – non Unicode version of [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.gsplit|mw.text.gsplit]] * <code>Text.ucfirstAll( s )</code> * <code>Text.uprightNonlatin( s )</code> * <s><code>Text.zip(…)</code></s> * ''<code>Text.test( s )</code>'' == Usage == This is a general library; use it anywhere. == Dependencies == * [[Module:Yesno]] * [[Module:Text/data]] --- Lua patterns and information about quotes == See also == {{String-handling templates}} <includeonly>{{Sandbox other|| <!-- Categories below this line; interwikis at Wikidata --> [[Category:Modules that manipulate strings]] }}</includeonly> Summary: Please note that all contributions to Arcadian Odyssey Extended Universe may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Arcadian Odyssey Extended Universe:Copyrights for details). Do not submit copyrighted work without permission! Cancel Editing help (opens in new window) Templates used on this page: Template:Aligned table (edit) Template:Anchor (edit) Template:Div col (edit) Template:Div col/styles.css (edit) Template:Div col end (edit) Template:High-use (edit) Template:High use (edit) Template:Hlist/styles.css (edit) Template:In lang (edit) Template:Lua (edit) Template:Main other (edit) Template:Nowrap (edit) Template:Plainlist/styles.css (edit) Template:String-handling templates (edit) Template:Template link (edit) Template:Template link general (edit) Template:Tl (edit) Template:Tlg (edit) Module:Aligned table (edit) Module:Anchor (edit) Module:Arguments (edit) Module:Check for unknown parameters (edit) Module:High-use (edit) Module:In lang (edit) Module:Lang (edit) Module:Lang/ISO 639 synonyms (edit) Module:Lang/configuration (edit) Module:Lang/data (edit) Module:Lang/data/iana languages (edit) Module:Lang/data/iana regions (edit) Module:Lang/data/iana scripts (edit) Module:Lang/data/iana suppressed scripts (edit) Module:Lang/data/iana variants (edit) Module:List (edit) Module:Lua banner (edit) Module:Message box (edit) Module:Message box/configuration (edit) Module:Message box/ombox.css (edit) Module:Navbar (edit) Module:Navbar/configuration (edit) Module:Navbar/styles.css (edit) Module:Navbox (edit) Module:Navbox/configuration (edit) Module:Navbox/styles.css (edit) Module:Navbox with collapsible groups (edit) Module:Navbox with collapsible groups/configuration (edit) Module:TableTools (edit) Module:Template link general (edit) Module:Transclusion count (edit) Module:Transclusion count/data/T (edit) Module:Unicode data (edit) Module:Yesno (edit)