Title: Lineate — Poetry Blocks
Author: Johnathon Williams
Published: <strong>2012 ལོའི་ཟླ 8 ཚེས 19 ཉིན།</strong>
Last modified: 2026 ལོའི་ཟླ 7 ཚེས 31 ཉིན།

---

མཐུད་སྣེ་བཤེར་འཚོལ།

![](https://ps.w.org/lineate/assets/banner-772x250.png?rev=3629244)

![](https://ps.w.org/lineate/assets/icon.svg?rev=3629244)

# Lineate — Poetry Blocks

 རྩོམ་པ་པོ། [Johnathon Williams](https://profiles.wordpress.org/oddjar/)

[ཕབ་ལེན།](https://downloads.wordpress.org/plugin/lineate.2.0.zip)

 * [ཞིབ་ཕྲ།](https://bo.wordpress.org/plugins/lineate/#description)
 * [གདེང་འཇོག](https://bo.wordpress.org/plugins/lineate/#reviews)
 * [ཡར་རྒྱས།](https://bo.wordpress.org/plugins/lineate/#developers)

 [རམ་འདེགས།](https://wordpress.org/support/plugin/lineate/)

## ཞིབ་བརྗོད།

The web has never known what to do with a poem.

For thirty years browsers have treated verse as prose with pretensions, or else 
as a picture of text. HTML collapses white space on principle. Indentation vanishes
on publish. A long line, wrapping on a phone, breaks into two lines nobody wrote.
The distances a poet opens inside a line — the pause, the held breath — flatten 
to a single space, when they survive at all.

Poets and their editors have met all this with duct tape: strings of `&nbsp;`, periods
dyed the color of the page, `pre` tags that set Keats in monospace, and, most often,
screenshots — pictures of poems, unsearchable, silent to a screen reader, soft at
the edges on the very phones where poetry is now mostly read. The Poetry Foundation,
which publishes verse as carefully as anyone, still resorts to an image when a poem’s
shape turns ambitious. Until now there has been no better way.

This is the better way.

#### What a poem requires

A poem is made of lines, and a line is a unit of sense. Where a line ends is not
an accident. Nor is the pause inside it. Nor is the white space that holds one stanza
off from the next. Each of these is a choice that conveys meaning. Print created
conventions to carry this meaning by about 1501. The web never has.

Lineate treats the poem as a structure, not a string.

#### What Lineate does

 * **A line is a line.** Enter makes the next one; Enter on an empty line closes
   the stanza. That is the whole tutorial.
 * **Indentation is real.** Tab steps a line inward, Shift+Tab back, eight steps
   deep — and the steps are set in the poem’s own type, so the shape survives every
   theme, every font, every screen.
 * **A wrapped line confesses.** When a long line must fold, its continuation hangs,
   indented, as print has done it for centuries. The reader always knows one line
   from two.
 * **The silences are kept.** Tab in the middle of a line opens a caesura gap — 
   the held space HTML has always swallowed. Click it to widen, narrow, or remove
   it.
 * **Paste does the decent thing.** From Word, Docs, or plain text: line breaks 
   become lines, blank lines become stanza breaks, leading tabs become indents, 
   and the old `&nbsp;` contrivances convert quietly to structure. A note reports
   what was done.
 * **Poems remain text.** Selectable, searchable, translatable. Screen readers pause
   at line ends and take gaps as word breaks. No pictures of language.
 * **An image when you want one.** One click sets the poem as a PNG — Instagram 
   sizes or link preview — with the entire poem as its alt text, because accessibility
   is not a garnish.
 * **No JavaScript on your pages.** The rendering is CSS entire. Nothing runs, nothing
   slows, nothing breaks.

#### Against the built-in Poetry block

WordPress ships a Poetry block. It is not a bad `pre` tag; it is only a `pre` tag.
The differences are quickly told:

 * **Lines.** The core block stores a poem as one run of text with breaks in it.
   Lineate stores lines and stanzas as blocks — real things you can select, move,
   and address.
 * **Indentation.** Core: type spaces, count them, hope. Lineate: Tab and Shift+
   Tab, eight steps, set in the poem’s own type.
 * **Wrapping.** Core: a folded line reads exactly like a written one, and on phones
   the poem is silently rewritten. Lineate: continuations hang, indented; a line
   survives its fold.
 * **Spacing within the line.** Core: typewriter spaces, fixed in nobody’s font,
   fragile as frost. Lineate: a measured gap you can widen, narrow, or remove, scaling
   with the type around it.
 * **Type.** Core: monospace unless the theme troubles itself to say otherwise, 
   and half of them never do. Lineate: the theme’s own body type from the first 
   keystroke.
 * **Accessibility.** Core: one undifferentiated slab of preformatted text. Lineate:
   semantic lines and stanzas, pauses at line ends, gaps read as word breaks, and
   exported images carrying the whole poem as alt text.
 * **Leaving.** The one respect in which the two blocks are equals: a click turns
   a Verse poem into a Lineate poem, and a click turns it back. Bring your old poems;
   they are not hostages either.

#### The problems, taken one at a time

Every one of these has stood between poetry and the web since the beginning. Every
one of them ends here.

 1. **Collapsing white space.** HTML treats a run of spaces as one space and a tab 
    as a suggestion; the indents a poet types are destroyed on publish. Lineate stores
    indentation as structure, not spaces — there is nothing left for the parser to 
    destroy. Solved.
 2. **The false line break.** On a narrow screen a long line wraps, and the wrap is
    indistinguishable from a break the poet wrote. The phone rewrites the poem, and
    most readers now hold a phone. Lineate hangs every continuation with an indent,
    the centuries-old print convention, so a turned line can never impersonate a new
    one. Solved.
 3. **Typewriter type.** Verse in a `pre` tag arrives in monospace, and a sonnet should
    not dress like a stack trace. Lineate sets poems in the theme’s own type. Solved.
 4. **Spacing built of glue.** The workaround of record — chains of `&nbsp;` — is measured
    in fixed units of nobody’s font. Change the theme, the font, or the screen, and
    the alignment shears apart. Lineate sets indents and gaps in the poem’s own em 
    and ch; the shape scales with the type it belongs to. Solved.
 5. **Pictures of poems.** When all else failed, poetry went online as screenshots:
    invisible to search, silent to screen readers, soft at every zoom. Lineate keeps
    the poem text — and when you want an image for the feeds, renders one properly,
    full poem in the alt. Solved.
 6. **The Word-file toll.** Poems arrive from Word and Docs with their shapes held 
    together by habit, and pasting one into a CMS has always cost an editor twenty 
    minutes of repair. Lineate’s paste interpreter converts line breaks, blank lines,
    leading tabs, internal spacing, and the old `&nbsp;` contrivances into structure,
    then reports what it did. Solved.
 7. **Punctuation improved without consent.** WordPress smartens quotes and fuses hyphens
    wherever it finds them — a courtesy in prose, a corruption in verse. Lineate exempts
    the poem; the poet’s characters are published verbatim. Solved.

#### The smaller courtesies

Epigraphs, dedications, and attributions set as proper poem notes. Centering on 
the longest line, the way print does it. A scroll mode for long-lined poems that
must not wrap at all. A phone-width preview inside the editor, so you see the fold
before your readers do. And straight quotes stay straight, double hyphens stay double:
WordPress does not “smarten” a poem’s punctuation while Lineate is watching.

Poems set in the theme’s own type — never monospace, unless you ask for it — and
they are free to leave: one click returns any Lineate poem to plain Verse or paragraphs.
It would be a poor tribute to poetry to hold it hostage.

#### Who made this

I am, regrettably, a poet, and for years I edited an online poetry journal called
Linebreak. A decade of good poems arrived as Word attachments and left as compromises;
every hack condemned above, I have committed personally. Lineate is the tool I needed
then and could not find, because it did not exist.

Forgive my boasting, but this is the best way there has ever been to publish a poem
on the web. The problem is as old as the browser, and it has simply never been solved
before — not by the built-in block, not by the workarounds, not by the systems behind
the handsomest poetry publications on the internet. Now it is solved, and the solution
is free software — GPL, no premium tier, no locked features — because the shape 
of a poem must not be a luxury good.

### Source Code & Bundled Libraries

The human-readable source of all compiled JavaScript and CSS ships inside the plugin:
the `src/` directory holds the original code and `package.json` the build configuration.
To build: install a Node.js LTS release, then run `npm install` and `npm run build`
from the plugin directory (the toolchain is the standard `@wordpress/scripts`).

Bundled third-party libraries (all GPL-compatible):

 * [html-to-image](https://github.com/bubkoo/html-to-image) (MIT) — renders the 
   poem-image export in your browser; nothing is sent to any server.
 * [@wordpress/icons](https://www.npmjs.com/package/@wordpress/icons) (GPL-2.0-or-
   later) — toolbar icons.

Lineate makes no network requests of its own: no external services, no tracking,
no phoning home.

## གཏུབ་རེིས།

[⌊A staircase poem in the editor — Tab to indent, guides while you write.⌉⌊A staircase
poem in the editor — Tab to indent, guides while you write.⌉[

A staircase poem in the editor — Tab to indent, guides while you write.

[⌊The caesura gap with its width control.⌉⌊The caesura gap with its width control
.⌉[

The caesura gap with its width control.

[⌊Paste interpretation: a Word poem becomes structure, with a summary of what was
done.⌉⌊Paste interpretation: a Word poem becomes structure, with a summary of what
was done.⌉[

Paste interpretation: a Word poem becomes structure, with a summary of what was 
done.

[⌊The image export dialog with live preview.⌉⌊The image export dialog with live 
preview.⌉[

The image export dialog with live preview.

[⌊A poem on a phone: long lines wrap with hanging indents, and the reader knows 
one line from two.⌉⌊A poem on a phone: long lines wrap with hanging indents, and
the reader knows one line from two.⌉[

A poem on a phone: long lines wrap with hanging indents, and the reader knows one
line from two.

## Blocks

This plugin provides 4 blocks.

 *   Poem Publish a properly formatted poem: real lines and stanzas, staircase indents,
   hanging indents on wrapped lines, caesura gaps — and one-click export as a shareable
   image.
 *   Stanza A stanza: a group of poem lines.
 *   Poem Note An epigraph, dedication, or attribution accompanying a poem.
 *   Poem Line A single line of a poem.

## FAQ

### How is this different from the built-in Poetry (Verse) block?

The core block is a `pre` element. It preserves the line breaks you type and does
nothing else: indentation is hand-typed and dies on a phone, wrapped lines masquerade
as written ones, spacing inside the line collapses, and the type is monospace wherever
the theme forgets to say otherwise. Lineate models lines, stanzas, indents, and 
gaps as real structure and keeps them at every width. There is no comparison, which
is why this plugin exists.

### Will my poems survive a theme switch?

Yes. The layout is set in font-proportional units carried by the block’s own stylesheet.
Fonts and colors follow your theme; the shape belongs to the poem.

### What happens in RSS readers and reader modes?

The markup degrades politely: every line keeps its own line; only the visual indentation
steps aside. No `&nbsp;` soup, ever.

### Can I get my poems back out?

Yes, and without ceremony: transform any Lineate poem back to Verse or paragraphs.
Indents become tabs, gaps become spaces. No lock-in.

### I used the 2012 shortcode version of Lineate. What happens to my poems?

Nothing. The `[stanza]` and `[lineate]` shortcodes render exactly as they always
have, saved settings honored. Only the old settings page and editor button are retired.
New poems deserve the Poem block.

### Is it really free?

Entirely. GPL, like WordPress itself. Poetry made me no money either.

## གདེང་འཇོག

There are no reviews for this plugin.

## བྱས་རྗེས་འཇོག་མཁན། & གསར་འབྱེད་པ།

“Lineate — Poetry Blocks” is open source software. The following people have contributed
to this plugin.

བྱས་རྗེས་འཇོག་མཁན།

 *   [ Johnathon Williams ](https://profiles.wordpress.org/oddjar/)

[ཁྱེད་ཀྱི་སྐད་ཡིག་ནང་ལ་ “Lineate — Poetry Blocks” ཡིག་སྒྱུར་བྱོས།](https://translate.wordpress.org/projects/wp-plugins/lineate)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/lineate/), check out
the [SVN repository](https://plugins.svn.wordpress.org/lineate/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/lineate/) by [RSS](https://plugins.trac.wordpress.org/log/lineate/?limit=100&mode=stop_on_copy&format=rss).

## དག་བཅོས་ཉིན་ཐོ།

#### 2.0

 * Lineate returns as a block. The 2012 shortcode plugin, rebuilt whole for the 
   block editor: true lines and stanzas, staircase and hanging indents, caesura 
   gaps, paste interpretation, transforms in and out of Verse, alignment modes, 
   a phone-width preview, and one-click export of the poem as an image with its 
   full text as alt.
 * Poems published with the 2012 shortcodes render exactly as they always have, 
   saved settings honored. The old settings page and editor button are retired; 
   the shortcodes are not.

## ཟུར་བརྗོད།

 *  Version **2.0**
 *  Last updated **ཉིན 2 སྔོན།**
 *  Active installations **10+**
 *  WordPress version ** 6.8 ཡང་ན་དེ་ལས་མཐོ་བ། **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 ཡང་ན་དེ་ལས་མཐོ་བ། **
 *  Language
 * [English (US)](https://wordpress.org/plugins/lineate/)
 * Tags
 * [poem](https://bo.wordpress.org/plugins/tags/poem/)[poetry](https://bo.wordpress.org/plugins/tags/poetry/)
   [Verse](https://bo.wordpress.org/plugins/tags/verse/)[writing](https://bo.wordpress.org/plugins/tags/writing/)
 *  [མཐོ་རིམ་མཐོང་སྣང་།](https://bo.wordpress.org/plugins/lineate/advanced/)

## གདེང་འཇོག

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/lineate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/lineate/reviews/)

## བྱས་རྗེས་འཇོག་མཁན།

 *   [ Johnathon Williams ](https://profiles.wordpress.org/oddjar/)

## རམ་འདེགས།

Got something to say? Need help?

 [རམ་འདེགས་གླེང་སྟེགས་ལ་ལྟ།](https://wordpress.org/support/plugin/lineate/)