Text & writing

Bulk text template

Turn rows of data into lists, messages and repeated snippets with one reusable template.

Bulk text template
Esc to restore
Work stays on your device

Data & template

Use {{1}} for the first column, {{name}} for a heading, and {{@row}} for the row number. No expressions or code run.

Blank rows are skipped. Up to 10,000 rows and 100 columns. Ctrl/⌘ + Enter updates the result.

Generated text

Nothing is uploaded or saved. Generated content is shown as text. Export anything you want to keep.

A clear answer. Here’s how.

Generate one text block per non-empty data row. Use {{1}}, {{2}} and so on for columns, {{heading}} for named CSV headers, and {{@row}} for the one-based output row number. Supports quoted CSV/TSV/semicolon/pipe fields, multiline fields and headerless lists. Blank records are skipped; every record must have the same number of columns. Headings are trimmed and case sensitive. Unknown or unclosed placeholders show an error. Optional HTML escaping applies only to inserted values; templates and results are plain text and are never executed. Separators join the blocks, with optional prefix and suffix around the whole result. Limits: 1 million data characters, 10,000 rows, 100 columns, 20,000 template characters and 2 million output characters. Everything stays in page memory.