[An update: WordPress now includes a “Verse” block that makes it possible to format poetry visually. It took many years, but it finally happened. The block is much more simpleminded than what Dr. Boli proposed in this article, but it does at least preserve spacing used as indentation.]

You can tell the Internet was invented after the death of poetry, because HTML, the engine that formats the World-Wide Web, has no way of dealing with even the most elementary poetic form—such as, for example, a ballad.

Here is a stanza from a ballad by Thackeray:

It is perfectly simple; there is not a simpler poetic form. But how would one achieve those simple and obvious indentations in HTML?

One might add spaces at the beginnings of lines. But it won’t work, because, like most of the Internet, one uses WordPress. And WordPress will look at a series of spaces at the beginning of a line and panic. “How did those get there?” it will say. “I’ll get rid of them at once, before anybody notices.”

You may recall that, two days ago, Dr. Boli published a little poem whose form was not especially complex, but nevertheless required indenting some of the lines. The only practical way to do that is by adding codes for nonbreaking spaces.

Here is how the poem looked while it was being set in WordPress type.

composing-a-poemThat, you will agree, is very cumbersome; but we have not come to the worst part. Here is the worst part: that article is uneditable. If one needs to change as much as a single comma, one will lose all the formatting, because before opening the post for editing, WordPress will have another panic attack. “Nonbreaking spaces!” it will wail in a quavering and slightly tinny voice. “Something terrible must have happened!” And the formatting is gone forever.

One can, of course, maintain a copy of the post in a text editor, as Dr. Boli has done. It is also possible to define CSS styles that can be applied to different lines and add them to the WordPress theme. But the point of using software like WordPress, instead of composing in straight HTML, is to be able to get on with the business of writing without having to think about HTML code. Just think how ugly the code would be if the form of the poem were only a little more complex:

This is a serious problem for the whole Internet. Although poetry has died as a category of commercial publishing, it is still practiced as a craft, in the same way that people make pictures out of macaroni without ever expecting to go into the macaroni-picture business on an industrial scale. By the most conservative estimate, there are approximately one gazillion poetry bloggers typing their witterings into computers right now. They find it impossible to write poems with any form at all; their development as artists runs into the stone wall that is WordPress.

What the world desperately needs is a poetry plugin for WordPress. A worldwide publishing empire does not run itself, and Dr. Boli does not have time to figure out the WordPress plugin system and write the thing on his own. But it should not be difficult for someone experienced in that sort of programming.

Here are the features we desperately need:

1. When we are writing poetry, single-spaced lines must be the default.

2. Lines that run over must receive a hanging indent automatically.

3. It must be possible to begin a line at any arbitrary distance from the left margin.

4. It must be possible to remember that arbitrary distance in some way so as to create a class of lines with the same indentation.

5. It would be desirable to have a small number of standard styles, so that, for example, one could choose a “Ballad” style and have every second line indented automatically.

The poets among Dr. Boli’s readers can probably think of a few other features that would be necessary or useful. And if there are any programmers out there looking for a project where the task is not too challenging but the gratitude earned from the literary world would be enormous, here is one you might consider.



  1. fred says:

    There are a couple of ways to do varying indentation. The least attractive is to use CSS Structural pseudo-class selectors like :nth-child(even) or :nth-child(4n+3).

    The easiest way is to enclose the poem in “<pre>” tags and then indent as whim would suit you.

    examples provided below

    <style type="text/css">
    .poem1:nth-child(odd) {
    display: block;
    text-indent: 1em;
    .poem1:nth-child(even) {
    display: block;
    text-indent: 2em;
    .poem2:nth-child(4n+1) {
    display: block;
    margin-top: 1em;
    text-indent: 1em;
    .poem2:nth-child(4n+3) {
    display: block;
    text-indent: 2.5em;
    .poem2:nth-child(4n+4) {
    display: block;
    text-indent: 6em;
    .freespace {
    font-family: Georgia, serif;
    <span class="poem1">See her as she moves!</span>
    <span class="poem1">Scarce the ground she touches;</span>
    <span class="poem1">Airy as a fay,</span>
    <span class="poem1">Graceful as a duchess;</span>
    <span class="poem1">Bare her rounded arm,</span>
    <span class="poem1">Bare her little leg is;</span>
    <span class="poem1">Vestris never showed</span>
    <span class="poem1">Ankles like to Peggy's;</span>
    <span class="poem1">Braided is her hair,</span>
    <span class="poem1">Soft her look and modest,</span>
    <span class="poem1">Slim her little waist,</span>
    <span class="poem1">Comfortably bodiced.</span>

    <span class="poem2">A peaceful place it was but now,</span>
    <span class="poem2">And lo! within its shining streets</span>
    <span class="poem2">A multitude of nations meets;</span>
    <span class="poem2">A countless throng,</span>
    <span class="poem2">I see beneath the crystal bow,</span>
    <span class="poem2">And Gaul and German, Russ and Turk,</span>
    <span class="poem2">Each with his native handiwork</span>
    <span class="poem2">And busy tongue.</span>

    <pre class="freespace">

    See her as she moves!
    Scarce the ground she touches;
    Airy as a fay,
    Graceful as a duchess;
    Bare her rounded arm,
    Bare her little leg is;
    Vestris never showed
    Ankles like to Peggy's;
    Braided is her hair,
    Soft her look and modest,
    Slim her little waist,
    Comfortably bodiced.

    A peaceful place it was but now,
    And lo! within its shining streets
    A multitude of nations meets;
    A countless throng,

    I see beneath the crystal bow,
    And Gaul and German, Russ and Turk,
    Each with his native handiwork
    And busy tongue.

  2. fred says:

    Ah, I see that the formatting got removed from the second example by your site’s comment handler. You’ll have to add spaces or tabs on your own before opening the html in a browser.

  3. Captain DaFt says:

    It is the custom on the Internet, that when one desires to learn how something is to be done, is to go to the appropriate forum (in this case a WordPress developers forum), and announce quite succinctly that the desired action is impossible.

    You will then be inundated with responses, explaining in great detail, how to accomplish the desired action.

    One would assume that all one had to do is politely ask, “How can I do such-and-such?”, but the universal answer to such an inquiry is always, “LOL RTFM N00B!”.

  4. Sigivald says:

    I suggest the reform of simply banning poetry.

    It’s much simpler, and therefore the preferable course.

  1. […] suggestion that WordPress needed a poetry plugin provoked a number of helpful comments. “Sigivald,” for […]

Leave a Reply

Your email address will not be published. Required fields are marked *