Files
talemate/docs/user-guide/node-editor/reference/nodes/data-string.md
veguAI 89e01ac138 Node editor node reference glossary (#107) (#111)
* docs: complete node editor node reference glossary (#107) - generated by new nodes.tools glossary subcommand, 47 categorized pages covering all 403 nodes, docstring gap fixes, help-agent docs-index entries

* docs: fix Jinja2 Format discoverability - document dynamic-input template variables, move node to string page, link key inference from dynamic-input notes, strip links from index summaries

* help agent: keep node reference out of the chat prompt - collapse glossary entries to one pointer line (~19k chars saved), agent retrieves node info via search_docs/read_doc tool calls

* help agent: replace in-prompt docs index with find_docs lookup tool - prompt carries a 13-line section overview (~1.5k chars vs ~66k), pages located via keyword-scored find_docs at runtime

* changelog: help agent prompt slimming + find_docs lookup

* docs: sort node reference index and nav alphabetically by page title

* review: move module constants into top-of-file constant blocks (glossary MAX_DEFAULT_LENGTH; docs SECTION_DESCRIPTIONS, _FIND_STOPWORDS, FIND_DOCS_LIMIT)

* review: word-boundary find_docs scoring with plural/-ing folds, find_docs+section_overview unit tests, jinja2 template field description override

* docs: help agent overview no longer claims an in-prompt index of all documentation pages

* docs: full node docstring audit pass - 335 classes audited by 5 agents, ~89 accuracy fixes (nonexistent/misnamed sockets, wrong behavior claims), ~94 expansions, 5 factually-wrong PropertyField descriptions corrected, glossary regenerated
2026-07-20 01:49:33 +03:00

13 KiB

String Nodes

String manipulation: formatting, case, join/split, replace, trim, substrings and excerpts. The Advanced Format ({name} placeholders) and Jinja2 Format ({{ name }} templates) nodes build strings from dynamic inputs — connect other nodes into their input slots and each connected value becomes a template variable (see Collector Nodes for the key inference rules).

16 nodes.

Node Registry path
Advanced Format data/string/AdvancedFormat
As String data/string/AsString
Case data/string/Case
Condensed data/string/Condensed
Excerpt data/string/Excerpt
Extract data/string/Extract
Format data/string/Format
Join data/string/Join
Make String data/string/Make
Make Text data/string/MakeText
Replace data/string/Replace
Split data/string/Split
String Check data/string/StringCheck
Substring data/string/Substring
Trim data/string/Trim
Jinja2 Format prompt/Jinja2Format

Advanced Format

data/string/AdvancedFormat

Python-style string formatting with dynamic inputs. Uses Python's .format() syntax - reference variables with single curly braces ({name}); for jinja2 templates ({{ name }}) use the Jinja2 Format node.

Behaves like Format but supports dynamic inputs similar to DictCollector. Dynamic inputs can be:

  • a tuple (key, value)
  • a scalar value, in which case the key is derived from the source socket/node using a best-effort heuristic.

Dynamic inputs: item{i}

Inputs

Input Type Description
template str A format string with placeholders (e.g., "Hello, {name}")
variables dict (optional) Optional base dictionary to merge into (dynamic inputs extend/override these)

This node supports dynamic inputs - additional input sockets can be added in the editor as needed, and connected values are collected with key inference (see Collector Nodes).

Outputs

Output Type Description
result str The formatted string

Properties

Property Type Default Description
template text "" A format string with placeholders (e.g., "Hello, {name}")

As String

data/string/AsString

Converts a value to a string

Inputs

Input Type Description
value any

Outputs

Output Type Description
value str

Case

data/string/Case

Changes string case (upper, lower, title, capitalize)

Converts a string to a different case format, such as uppercase, lowercase, title case, or capitalized.

Inputs

Input Type Description
string str The string to transform

Outputs

Output Type Description
result str The transformed string

Properties

Property Type Default Description
operation str "lower" Case operation to perform. Choices: upper, lower, title, capitalize.

Condensed

data/string/Condensed

Condenses a string by removing line breaks and extra spaces.

Inputs

Input Type Description
string str

Outputs

Output Type Description
result str

Excerpt

data/string/Excerpt

Returns an excerpt of a string based on length

Takes the first length characters of the string. If the string was truncated and add_ellipsis is enabled, "..." is appended.

Inputs

Input Type Description
string str The string to excerpt

Outputs

Output Type Description
result str The excerpt

Properties

Property Type Default Description
length int 100 The length of the excerpt
add_ellipsis bool True Whether to add an ellipsis to the end of the excerpt

Extract

data/string/Extract

Extracts a portion of a string using a left and right anchor

Finds the first valid block between anchors (no nested left_anchor inside). Falls back to everything after the last left_anchor if no complete block is found. If the left_anchor does not occur at all, the result is an empty string.

Examples:

  • "nestedvalue" -> "value" (first clean block)
  • "value ... other" -> "value" (first valid block)
  • "no closing tag" -> "no closing tag" (fallback)

Inputs

Input Type Description
string str The string to extract from
left_anchor str (optional) The left anchor
right_anchor str (optional) The right anchor

Outputs

Output Type Description
result str The extracted substring

Properties

Property Type Default Description
left_anchor str "" The left anchor
right_anchor str "" The right anchor
trim bool True Whether to trim the result

Format

data/string/Format

Python-style string formatting with variables

Formats a template string by replacing placeholders with values from a variables dictionary, using Python's format() string method.

Inputs

Input Type Description
template str A format string with placeholders (e.g., "Hello, {name}")
variables dict Dictionary of variable names and values to insert

Outputs

Output Type Description
result str The formatted string

Join

data/string/Join

Joins a list of strings with a delimiter

Combines a list of strings into a single string with a specified delimiter between each element.

Inputs

Input Type Description
strings list List of strings to join
delimiter str (optional) Character(s) to insert between each string (optional; a literal "\n" is treated as a newline)

Outputs

Output Type Description
result str The joined string

Properties

Property Type Default Description
delimiter str " " Character(s) to insert between each string

Make String

data/string/Make

Creates a string

Creates a string with the specified value.

Outputs

Output Type Description
value str The created string value

Properties

Property Type Default Description
value str "" The string value to create

Make Text

data/string/MakeText

Same as make string but will be rendered with a multiline text editor

Outputs

Output Type Description
value str The created string value

Properties

Property Type Default Description
value text "" The string value to create

Replace

data/string/Replace

Replaces occurrences of a substring with another

Searches for all occurrences of a substring and replaces them with a new string.

Inputs

Input Type Description
string str The original string
old str Substring to find and replace
new str Replacement string

Outputs

Output Type Description
result str The string after replacements

Properties

Property Type Default Description
old str "" Substring to find and replace
new str "" Replacement string
count int -1 Maximum number of replacements to make (-1 for all occurrences)

Split

data/string/Split

Splits a string into a list based on a delimiter

Divides a string into multiple parts using a specified delimiter.

Inputs

Input Type Description
string str The string to split
delimiter str (optional) Character(s) to use as the split point (optional; a literal "\n" is treated as a newline)

Outputs

Output Type Description
parts list List of string parts after splitting

Properties

Property Type Default Description
delimiter str " " Character(s) to use as the split point
max_splits int -1 Maximum number of splits to perform (-1 for all possible splits)

String Check

data/string/StringCheck

Checks if a string starts with, ends with, or contains a substring

Tests whether a string starts with, ends with, contains, or exactly equals a substring, with optional case sensitivity. An empty (or unset) string always yields False, regardless of mode.

Inputs

Input Type Description
string str The string to check
substring str The substring to look for

Outputs

Output Type Description
result bool Boolean result of the check

Properties

Property Type Default Description
substring str "" Default substring to check for
mode str "contains" Check operation to perform. Choices: startswith, endswith, contains, exact.
case_sensitive bool True Whether the check should be case-sensitive

Substring

data/string/Substring

Extracts a portion of a string using indices

Extracts a substring from the original string using start and end indices.

Inputs

Input Type Description
string str The source string
start int Starting index (optional)
end int Ending index (optional)

Outputs

Output Type Description
result str The extracted substring

Properties

Property Type Default Description
start int 0 Starting index. Min: 0.
end int None Ending index. Min: 0.

Trim

data/string/Trim

Removes characters from start/end of string

Removes specified characters from the beginning, end, or both ends of a string. By default, it removes whitespace if no specific characters are provided.

Inputs

Input Type Description
string str The string to trim
chars str (optional) Character(s) to remove (optional, defaults to whitespace; a literal "\n" is treated as a newline)

Outputs

Output Type Description
result str The trimmed string

Properties

Property Type Default Description
mode str "both" Trim mode. Choices: left, right, both.
chars str None Character(s) to remove

Jinja2 Format

prompt/Jinja2Format

Renders a jinja2 template string using Prompt's template environment, providing access to all Prompt globals, filters, and template features. Reference variables with double curly braces: {{ name }}.

Variables come from the connected inputs: every dynamic input becomes a template variable. Connect any node output to a dynamic input slot and the variable name is inferred from the source node's name / key / attribute (falling back to the socket name), or connect a (key, value) tuple from Make Key-Value Pair to name it explicitly. The optional variables dict is merged in first; dynamic inputs extend/override it.

Dynamic inputs: item{i} - each connected value becomes a template variable

Inputs

Input Type Description
template str The jinja2 template string to render
variables dict (optional) Optional base dictionary of template variables (dynamic inputs extend/override these)
scope str (optional) Optional agent scope (e.g., "director") for template includes

This node supports dynamic inputs - additional input sockets can be added in the editor as needed, and connected values are collected with key inference (see Collector Nodes).

Outputs

Output Type Description
result str The rendered string

Properties

Property Type Default Description
template text "" A jinja2 template string (e.g., "Hello, {{ name }}")