logologo
Get Started
Guide
Development
Plugins
API
English
简体中文
Get Started
Guide
Development
Plugins
API
English
简体中文
logologo
Overview
Configuration

Template Syntax

Basic Usage
Loop Processing

Formatters

Overview
Text Formatting
Number Formatting
Currency Formatting
Date Formatting
Time Interval Formatting
Array Formatting

Advanced Features

Conditional Statements
Advanced Features
FAQ
Application Scenarios
Previous PageOverview
Next PageNumber Formatting

#Text Formatting

This section provides various formatters for text data. The following subsections introduce each formatter's syntax, examples, and results.

#1. :lowerCase

#Syntax Explanation

Converts all letters to lower case.

#Example
'My Car':lowerCase()   // Outputs "my car"
'my car':lowerCase()   // Outputs "my car"
null:lowerCase()       // Outputs null
1203:lowerCase()       // Outputs 1203
#Result

Each example outputs as indicated in the comments.

#2. :upperCase

#Syntax Explanation

Converts all letters to upper case.

#Example
'My Car':upperCase()   // Outputs "MY CAR"
'my car':upperCase()   // Outputs "MY CAR"
null:upperCase()       // Outputs null
1203:upperCase()       // Outputs 1203
#Result

Each example outputs as indicated in the comments.

#3. :ucFirst

#Syntax Explanation

Capitalizes only the first letter of the string while leaving the rest unchanged.

#Example
'My Car':ucFirst()     // Outputs "My Car"
'my car':ucFirst()     // Outputs "My car"
null:ucFirst()         // Outputs null
undefined:ucFirst()    // Outputs undefined
1203:ucFirst()         // Outputs 1203
#Result

The output is as described in the comments.

#4. :ucWords

#Syntax Explanation

Capitalizes the first letter of each word in the string.

#Example
'my car':ucWords()     // Outputs "My Car"
'My cAR':ucWords()     // Outputs "My CAR"
null:ucWords()         // Outputs null
undefined:ucWords()    // Outputs undefined
1203:ucWords()         // Outputs 1203
#Result

The output is as shown in the examples.

#5. :print(message)

#Syntax Explanation

Always returns the specified message regardless of the original data, making it useful as a fallback formatter.
Parameter:

  • message: The text to print.
#Example
'My Car':print('hello!')   // Outputs "hello!"
'my car':print('hello!')   // Outputs "hello!"
null:print('hello!')       // Outputs "hello!"
1203:print('hello!')       // Outputs "hello!"
#Result

Returns the specified string "hello!" in all cases.

#6. :printJSON

#Syntax Explanation

Converts an object or array into a JSON-formatted string.

#Example
[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:printJSON()
// Outputs "[
  {"id": 2, "name": "homer"},
  {"id": 3, "name": "bart"}
]"
'my car':printJSON()   // Outputs ""my car""
#Result

The output is the JSON-formatted string of the given data.

#7. :unaccent

#Syntax Explanation

Removes diacritical marks from text, converting it to an unaccented format.

#Example
'crème brulée':unaccent()   // Outputs "creme brulee"
'CRÈME BRULÉE':unaccent()   // Outputs "CREME BRULEE"
'être':unaccent()           // Outputs "etre"
'éùïêèà':unaccent()       // Outputs "euieea"
#Result

All examples output the text with accents removed.

#8. :convCRLF

#Syntax Explanation

Converts carriage return and newline characters (\r\n or \n) into document-specific line break tags. This is useful for formats such as DOCX, PPTX, ODT, ODP, and ODS.
Note: When using :html before :convCRLF, \r\n is converted to a <br> tag.

#Example
// For ODT format:
'my blue 
 car':convCRLF()    // Outputs "my blue <text:line-break/> car"
'my blue 
 car':convCRLF()    // Outputs "my blue <text:line-break/> car"

// For DOCX format:
'my blue 
 car':convCRLF()    // Outputs "my blue </w:t><w:br/><w:t> car"
'my blue 
 car':convCRLF()    // Outputs "my blue </w:t><w:br/><w:t> car"
#Result

The output shows the line break markers appropriate for the target document format.

#9. :substr(begin, end, wordMode)

#Syntax Explanation

Performs substring operations on a string, starting at index begin (0-based) and ending just before index end.
An optional parameter wordMode (boolean or last) controls whether to avoid breaking a word in the middle.

#Example
'foobar':substr(0, 3)            // Outputs "foo"
'foobar':substr(1)               // Outputs "oobar"
'foobar':substr(-2)              // Outputs "ar"
'foobar':substr(2, -1)           // Outputs "oba"
'abcd efg hijklm':substr(0, 11, true)  // Outputs "abcd efg "
'abcd efg hijklm':substr(1, 11, true)  // Outputs "abcd efg "
#Result

The output is the substring extracted according to the parameters.

#10. :split(delimiter)

#Syntax Explanation

Splits a string into an array using the specified delimiter.
Parameter:

  • delimiter: The delimiter string.
#Example
'abcdefc12':split('c')    // Outputs ["ab", "def", "12"]
1222.1:split('.')         // Outputs ["1222", "1"]
'ab/cd/ef':split('/')      // Outputs ["ab", "cd", "ef"]
#Result

The example results in an array split by the given delimiter.

#11. :padl(targetLength, padString)

#Syntax Explanation

Pads the left side of a string with a specified character until the final string reaches targetLength.
If the target length is less than the original string length, the original string is returned.
Parameters:

  • targetLength: The desired total length.
  • padString: The string used for padding (default is a space).
#Example
'abc':padl(10)              // Outputs "       abc"
'abc':padl(10, 'foo')       // Outputs "foofoofabc"
'abc':padl(6, '123465')     // Outputs "123abc"
'abc':padl(8, '0')          // Outputs "00000abc"
'abc':padl(1)               // Outputs "abc"
#Result

Each example outputs the string padded on the left accordingly.

#12. :padr(targetLength, padString)

#Syntax Explanation

Pads the right side of a string with a specified character until the final string reaches targetLength.
Parameters are the same as for :padl.

#Example
'abc':padr(10)              // Outputs "abc       "
'abc':padr(10, 'foo')       // Outputs "abcfoofoof"
'abc':padr(6, '123465')     // Outputs "abc123"
'abc':padr(8, '0')          // Outputs "abc00000"
'abc':padr(1)               // Outputs "abc"
#Result

The output shows the string padded on the right.

#13. :ellipsis(maximum)

#Syntax Explanation

If the text exceeds the specified number of characters, appends an ellipsis ("...") at the end.
Parameter:

  • maximum: The maximum allowed number of characters.
#Example
'abcdef':ellipsis(3)      // Outputs "abc..."
'abcdef':ellipsis(6)      // Outputs "abcdef"
'abcdef':ellipsis(10)     // Outputs "abcdef"
#Result

The examples show text truncated and appended with an ellipsis if needed.

#14. :prepend(textToPrepend)

#Syntax Explanation

Prepends the specified text to the beginning of the string.
Parameter:

  • textToPrepend: The prefix text.
#Example
'abcdef':prepend('123')     // Outputs "123abcdef"
#Result

The output shows the text with the specified prefix added.

#15. :append(textToAppend)

#Syntax Explanation

Appends the specified text to the end of the string.
Parameter:

  • textToAppend: The suffix text.
#Example
'abcdef':append('123')      // Outputs "abcdef123"
#Result

The output shows the text with the specified suffix added.

#16. :replace(oldText, newText)

#Syntax Explanation

Replaces all occurrences of oldText in the text with newText.
Parameters:

  • oldText: The text to be replaced.
  • newText: The new text to replace with.
    Note: If newText is null, it indicates that the matching text should be removed.
#Example
'abcdef abcde':replace('cd', 'OK')    // Outputs "abOKef abOKe"
'abcdef abcde':replace('cd')          // Outputs "abef abe"
'abcdef abcde':replace('cd', null)      // Outputs "abef abe"
'abcdef abcde':replace('cd', 1000)      // Outputs "ab1000ef ab1000e"
#Result

The output is the text after replacing the specified segments.

#17. :len

#Syntax Explanation

Returns the length of a string or an array.

#Example
'Hello World':len()     // Outputs 11
'':len()                // Outputs 0
[1,2,3,4,5]:len()       // Outputs 5
[1,'Hello']:len()       // Outputs 2
#Result

Outputs the corresponding length as a number.

#18. :t

#Syntax Explanation

Translates the text using a translation dictionary.
Examples and results depend on the actual translation dictionary configuration.

#19. :preserveCharRef

#Syntax Explanation

By default, certain illegal characters from XML (such as &, >, <, etc.) are removed. This formatter preserves character references (for example, &#xa7; remains unchanged) and is suitable for specific XML generation scenarios.
Examples and results depend on the specific use case.