Block
Text
The everyday block for words on the page — a line, a paragraph, or a formatted passage.
What it is for
Words you write. A new Text block is a plain paragraph in one style: the settings in the side panel. Format any of its words (bold one, add a heading, start a list) and the same block becomes a formatted passage, with nothing to switch or convert first. It can also hold live data instead of fixed text, so a value updates from your data (an invoice number, a customer name).
Choose something else when:
- the passage, or a field in it, arrives already formatted from your system and should draw real headings and bold: use Markdown;
- you want a bullet or numbered line of short items, possibly one per record in your data: use List;
- you want a label with its value kept together on one line: use Label + value;
- the content is a grid: use Table.
Add and edit it
Click Text in the palette or drag it onto the page; on a page that is still empty, the page itself offers Write text. Either way the page lands the caret in the new block immediately, so you can type. (The page's separate Add a table button inserts a ready 3x3 grid with no caret: click into a cell to start editing.) There is no separate save step: what you type goes into the block when you finish.
On the page (the quick way). Double-click the passage to edit it right where it sits. A small
formatting toolbar appears above your selection. Select a word and press Bold or Italic, pick a
heading level, start a list, or add a link. Markdown shortcuts work as you type: # for a heading,
- for a bullet, **word** for bold. Click anywhere outside the passage to finish and keep what you
typed; pressing Escape does the same. Undo takes the whole sitting back in one step. Clicking an existing block
only selects it; it never re-opens the editor on its own.
In the full editor. Use Edit rich text… (on the block's bar, its ⋮ menu or by right-click) to open the same passage in a dialog with more room and a Data pane beside it. Press Apply (or Escape while typing in it) to keep your changes. Cancel, the ✕, the backdrop or Escape from the toolbar close it without applying; if you changed anything, it first asks "Discard your rich-text changes?". A passage that has split across a page break always opens in the dialog, because a page-split piece cannot be edited inline. Both ways edit the same stored passage.
Live data. Open Data bindings from the toolbar and click a field; it goes in at the caret.
From the keyboard, press Tab to move on from the passage to the field and press Enter. You always
edit the {{ … }} wording, never the value, so a keystroke cannot freeze a live value into fixed
text. If the editor is still loading, what you type is kept; if it cannot load, the page says so and
tells you when it is safe to reload (wait for the ✓ in the toolbar, which means every change is
saved).
Plain until you format it. A passage with no formatting stays plain text and opens exactly as
stored; a line starting with # or words between *stars* stay ordinary text. Formatting any part,
or pressing Enter to start a second paragraph, saves it as formatted text instead; undo to get the
plain text back. Shift+Enter starts a new line inside the same paragraph and keeps it plain. The side
panel says which it is under Edit rich text…: Plain text, or Formatted text with the
formatting it uses (for example "Uses bold and headings."). A migrated Word/RTF document brings plain
paragraphs in as plain text and mixed-style ones as formatted text.
Changing it into another kind of block. Change type, near the bottom of the side panel, turns a Text block into Markdown, a Label + value or a List. Point at a choice first: a preview shows the block Now and After, and lists what is not kept (formatting, a text style, settings the new block does not have), a placeholder the new block adds (a Label + value starts with the label "Label"), and whether live data prints differently. One click converts and one undo restores the block exactly. A conversion that would leave the block empty asks you to confirm first.
Settings
The side panel holds the block's base style. It applies to everything you have not styled individually. To make one phrase different, select it and use the toolbar.
- Font size (points; default 11). Headings scale up from it.
- Font. The base typeface. Words you gave their own font keep it.
- Bold and Italic. Style the entire block on top of any bold or italic on single words. Use the toolbar when only part should stand out.
- Alignment. Left (default), Center, Right or Justify, for the whole block.
- Color (default black). Words you coloured individually keep their own colour. Links always print in the standard link colour.
- Line spacing. Single, 1.5 lines, Double, At least, Exactly or Multiple (Word's rule). Multiple uses its number (1.2 is normal; it is a multiplier, not a measurement). At least and Exactly use At, an absolute height per line; Exactly never grows for larger text, so very large text can clip.
- Space before and Space after (millimetres). Extra space above and below every paragraph, heading and list item in the block; it adds to the neighbour's space instead of replacing it.
- Left indent, Special, and By (millimetres). Left indent moves the whole paragraph in from the left margin. Special offsets just the first line: First line pushes it in further, Hanging pulls it out to the left (the numbered-clause shape). By is how far, and does nothing while Special is "(none)". Special applies to body paragraphs only; headings and list items keep just the Left indent.
- Page split. How many lines must fit at the bottom of a page before the block may start there (2 unless you change it). If fewer fit, the block starts on the next page or column. A paragraph with fewer lines is kept together. Raising the number never makes a paragraph split more easily. In a formatted passage the count applies to its first paragraph.
- Line and Page Breaks → Keep with next. Keeps this block on the same page as the one after it.
- The general Box (margins, padding, fill, border) and Visibility sections.
On the words you select (toolbar): bold, italic, underline, strikethrough, links, headings (levels 1 to 3), bullet and numbered lists, colour, font, size and a highlighter (pick a colour, or "No colour" to clear it). Block quotes and code blocks are deliberately not offered, because the document cannot draw them.
Data prints as written
A value from your data is always printed as plain text here. If your data contains **stars**, the
document shows the literal stars, not bold text, and a value can never invent a heading or bullet.
The one block where a value can bring its own formatting, on purpose, is Markdown.
Links. A value placed in a link's address fills only the part it sits in, so it can never send the
link elsewhere. In a web address's path, after a ? or after a #, anything other than letters,
digits and - . _ ~ is written escaped (a space becomes %20). In the site's name, between
https:// and the next /, a value must be a plain name (letters of any alphabet, digits, -, .,
_, ~); otherwise the words print without the link and the preview warns you. To let data supply a
whole address, put the placeholder at the very start of the address; a link that could run a script,
or that opens with //, is still refused. Every refused link prints without its link, and the warning
names it by its place ("the 2nd link in this block"), never by showing the address or a value.
Variations and combinations
A title with one bold phrase. A block with Font size 20 holding Offer for **Baltic Timber SIA**, valid until {{ $data.validUntil }}. The fixture is rich-text-1.json. With validUntil = "31 October
2026" the page shows one 20 pt line, "Offer for Baltic Timber SIA, valid until 31 October 2026", with
only the customer's name in bold. (A heading level would make the whole line bold; here the bold is
the one phrase you selected.)
An invoice paragraph containing fields. A formatted block with two paragraphs mixing wording and
fields, a first-line indent of 6 mm, 1.5 line spacing and 2 mm after each paragraph. The fixture is
rich-text-2.json. With the sample data (customer Elina Kalnina, order SO-1042, total EUR 1,452.00
and a note "delivery before noon") the page shows "Dear Elina Kalnina," then "thank you for your
order SO-1042 of EUR 1,452.00. Note from our sales team: delivery before noon". The order number is
bold, and the asterisks in the note are printed as typed, because data is never interpreted.
A signature paragraph that stays with its name. "Yours sincerely," with Keep with next
switched on, followed by a three-line block with the signer's name, role and company. The fixture is
rich-text-3.json; a tall gap stands in for a long letter, so the sign-off would land at the foot of
page 1. With Keep with next on, the sign-off moves to page 2 together with the name beneath it. With
it off, "Yours sincerely," would stay alone at the bottom of page 1 and the name would start page 2.
Output differences
- PDF and web page (HTML). Everything is drawn as laid out.
- Word (.docx). Text is written as ordinary Word paragraphs and runs: font, size, bold, italic, underline, strikethrough, colour, highlight (as shading), alignment, line spacing, space before/after, indents, and links as real clickable hyperlinks. Pages are the ones the layout worked out, so Keep with next and Page split shape where they break, but Word re-flows text if someone edits the file with other fonts or margins.
Page breaks inside a long block
A long paragraph flows across a page break at a line boundary, never mid-word. A formatted passage
breaks between paragraphs when it can. A heading is never left alone at the bottom of a page: it moves
down with the paragraph under it, with nothing to turn on. A long value from your data breaks between
the value's words exactly where the same words typed in would. The exception is a placeholder that
also uses the page number ({{ $data.notes + $page.number }}): it is only known on the page it prints
on, so it is never divided and, if taller than a page, visibly overflows.
Troubleshooting
- Asterisks or hashes show in the printed text. Data is printed as typed here. Use Markdown if the data really carries formatting, or remove the symbols from the data.
- My Bold button does nothing on a Label + value or List item. Those are plain text. Use Change type → Text to format single words.
- A blank block will not save in the dialog. Blank lines are not storable as text, and the dialog says so. For vertical space use a Spacer; or type real text.
- The heading is stranded at the bottom of a page / the sign-off is separated from the name. Set Keep with next on the first block. Headings already move with the next paragraph.
- The space between paragraphs is too small or large. Check Space before/Space after and the block's Box margins; they add together.
- A link prints without being a link. Its address is not allowed; the preview names which link.