The Editor
Body content on pages and posts is written in a rich-text editor (Quill): familiar formatting buttons, plain HTML underneath, with a few Chinaski-specific helpers for images, links, and content blocks. This page covers what’s on the toolbar, the smart helpers built into it, and the rules for what counts as valid body content.
Where it appears
The editor is the Body field on the page editor and the post editor. It edits content only: titles, slugs, SEO fields, dates, and everything else on those screens are separate form fields. The editor’s files are served from your own server (no external CDN) and integrity-checked like the rest of the admin UI.
The toolbar
| Group | Buttons |
|---|---|
| Text | Bold, italic, underline, strikethrough |
| Headings | Heading 2, 3, 4, and Normal: headings start at H2 |
| Blocks | Blockquote, code block |
| Lists | Numbered, bulleted |
| Inline objects | Link, Image |
| Cleanup | Clear formatting |
There is no H1 in the body editor; the page/post’s own title field is the one h1; body headings start at H2 so every page has a single, consistent heading hierarchy. There are also no font or color pickers: typography is the theme’s job, and that’s what keeps the published site consistent (and free of runtime JavaScript).
Working with images
The image button opens the media library in a picker rather than asking for a URL. Choose the image you’ve already uploaded (or upload there), and it’s placed at your cursor. Images therefore always come from the library; you stock it first, use it in pages after.
Working with links
The link button, or Ctrl/Cmd+K anywhere in the editor, opens a link panel. While you type, it suggests published pages and posts on your own site by title or slug (in the same language you’re editing, where applicable), including the full URL of nested pages. Enter (or click) a suggestion to use it, or paste any external URL. Suggestions only include pages that are actually live, so you can’t accidentally link to drafts.
Content blocks in the body
Reusable content blocks (CTAs, quotes, galleries, forms…) are embedded in the body as {{block:name}} shortcodes, but the editor shows them as friendly chips rather than raw code:
- Insert a block: use the Insert Block button (a searchable dialog listing your blocks), type
/in the text to open an in-line block picker (arrow keys + Enter, Esc to cancel), or insert a shortcode from the Content Library. - Chips display what they are: each chip is labelled with the block’s name instead of exposing shortcode syntax.
- Chips are clickable: click a chip to open that block’s edit screen in a new tab, adjust the block, and it’s already updated everywhere it’s used on rebuild.
- On save, chips become real shortcodes in the stored body; on reload, they become chips again. Pasting content containing
{{block:…}}marks into the editor also turns them into chips.
How your text behaves with the server
A few quality rules exist so that months of editing don’t slowly corrupt pages:
- Empty lines are cleaned. Blank lines Quill’s machinery adds on every save are collapsed: repeated empty paragraphs become one, and the stray trailing blank line at the end of an article is stripped.
- Body can’t be empty. A page or post needs body content: visible text, an image, or an embedded block, pure whitespace and empty tags are rejected with a clear “Body is required” message, both in the form and again on the server.
- Everything else is stored as-is. The HTML the editor produces is exactly what the published site serves.
Drafts
While you edit, your work is periodically saved server-side as a draft. If your browser closes or crashes, the editor shows a banner offering the saved draft so you can continue rather than retype. (Once you save properly, the draft store syncs to match.)
Related editor surfaces
- A document picker modal is available from the page/post editors for linking to managed documents.
- The editor is shared between pages and posts, so both use the same heading rules, image handling, and block embedding.