{"id":1011330,"date":"2023-04-10T05:30:17","date_gmt":"2023-04-10T10:30:17","guid":{"rendered":"https:\/\/jahangiri.us\/2020\/?p=1011330&#038;preview=true&#038;preview_id=1011330"},"modified":"2026-02-28T14:12:24","modified_gmt":"2026-02-28T20:12:24","slug":"in-praise-of-the-non-breaking-space","status":"publish","type":"post","link":"https:\/\/jahangiri.us\/2020\/in-praise-of-the-non-breaking-space\/","title":{"rendered":"In Praise of the Non-Breaking Space"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section\"><div class=\"et_pb_row_0 et_pb_row et_block_row preset--module--divi-row--default\"><div class=\"et_pb_column_0 et_pb_column et_pb_column_4_4 et-last-child et_block_column et_pb_css_mix_blend_mode_passthrough\"><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_block_module\"><div class=\"et_pb_text_inner\"><h2>Ode to the Non-Breaking Space<\/h2>\n<pre class=\"poem\">It should have been a simple thing to do: \n     Type ampersand, then N and B S P \u2014\n         A semicolon seals the deal: &amp;nbsp; \u2014 but no!\nThat entity is lost (it's \"disappeared\") when switching tabs\n     As if an unseen hand has swept it all away.<\/pre>\n<pre class=\"poem\">I picture it: \"Let's make it 'easy,'\" \n      thought the Devs. \"We know that poets can't write <em>code<\/em>,\n         So let's just duplicate a &lt;pre&gt; and call it 'Verse'\nWe'll coax them <em>(force them)<\/em> to the hated block, at last.\"\n      It's clear, from that, they knew there was a need.<\/pre>\n<pre class=\"poem\">But why not just retain the entity\n      From Classic tab-to-tab already there? \n          And so, I cracked the block\nAnd saw the &lt;pre&gt; not knowing whether I\n     Should groan...     <em>Or laugh.<\/em><\/pre>\n<pre class=\"poem\">So doing both, at last, I modified the CSS \n     (Like desktop publishers of old)\n           Triumphant, \"disappeared\" their relic Courier font\nIn favor of my own.\n    It really shouldn't be this hard, you know?\n\n<img decoding=\"async\" class=\"wp-image-1011727 alignnone size-medium lazyload\" data-src=\"https:\/\/jahangiri.us\/2020\/wp-content\/uploads\/2023\/04\/Kyliri_woman_writer_flipping_off_a_programmer_070f518d-02e3-49d9-9702-c0c384f30ab2-300x200.png\" alt=\"\" width=\"300\" height=\"200\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 300px; --smush-placeholder-aspect-ratio: 300\/200;\" \/>\n<\/pre>\n<h2>Today's Poets<\/h2>\n<p>Not all code is poetry, that's for sure. Today's poem was born out of yesterday's frustration. There is an 11+ year old bug in WordPress - oft complained of but never solved, wherein HTML code entered in the Classic Editor's Text tab is wiped away on switching to the Visual tab. Not all HTML code, else the Text tab would have no reason for being, at all. But simple little things like non-breaking spaces at the front of a line, as used by poets, sometimes. Or in code! Oh, yes, there is a \"code block\" or tag - there's the &lt;pre&gt; tag. But that, by default, formats text in Courier - not in the post's default font. \"Use the block editor and insert the Verse block!\" is a solution, apparently - but you know what that is? Verse is simply &lt;pre&gt; styled with a class=\"wp-verse-block\". And I suppose one could use the block editor, insert Verse block, and manually style the damned thing.<\/p>\n<p>Or do what I finally ended up doing, once I \"peeked under the hood\" and saw that Verse was just &lt;pre&gt; - add CSS to style &lt;pre class=\"poem\"&gt; or &lt;pre class=\"wp-verse-block\"&gt; (I did the former, since the latter takes longer to type) and have done with it - because unlike standard HTML entity codes for non-breaking spaces and such, a &lt;pre&gt; tag doesn't get stripped out when switching from Text tab to Visual tab.<\/p>\n<p>WordPress devs, why you gotta make this so hard? And why have you ignored the issue - brought up often enough in Support and in GitHub and elsewhere - for over 11 years? How hard can it possibly be to render standard HTML?<\/p>\n<p>No, not all code is poetry. But in honor of the cross-over genre of \"<a href=\"https:\/\/en.wikipedia.org\/wiki\/Code_poetry\">Code poetry - Wikipedia<\/a>,\" today's featured poets are not drawn from an alphabetically-ordered list. I wonder if there's any poetry to be found in a sort routine?<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Black_Perl\">Black Perl - Wikipedia<\/a><\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/School_for_Poetic_Computation\">School for Poetic Computation - Wikipedia<\/a><\/p>\n<hr \/>\n<p>April is <a href=\"https:\/\/en.wikipedia.org\/wiki\/National_Poetry_Month\" target=\"_blank\" rel=\"noopener\">National Poetry Month<\/a>. This year marks its 27th year. <a href=\"https:\/\/www.napowrimo.net\/\" target=\"_blank\" rel=\"noopener\">NaPoWriMo<\/a> - 30 days of writing poems - is poets' answer to National Novel Writing Month (NaNoWriMo).<\/p>\n<p>This coincides with the <a href=\"http:\/\/www.a-to-zchallenge.com\/\" target=\"_blank\" rel=\"noopener\">A to Z Blogging Challenge<\/a>, now celebrating its 13th anniversary. Some participants choose a theme; others wing it. Doesn't matter! The real challenge is to build a practice of writing daily. I think I stuck with it...once. There's still time to sign up - registration ends April 9. You can see the list of participants - I'm sure they'd love it if you'd visit and comment on their blogs.<\/p>\n<p>This month, my goal is to:<\/p>\n<ol>\n<li>Write a poem a day and share it - <a href=\"https:\/\/poetrytalk.substack.com\/p\/a-dark-drawer-full-of-virgin-writing\" target=\"_blank\" rel=\"noopener\">uncurated<\/a> - here; and<\/li>\n<li>Highlight some poets you may be unfamiliar with.<\/li>\n<\/ol>\n<p>I encourage you to click the links to read about them and their work. I plan to choose a diverse array of classical and contemporary poets - indigenous poets, Black poets, women poets, LGBTQ poets - that challenge us to see the world differently while also tapping into universal themes and emotions.<\/p>\n<p>Remember, too, that comments and conversation are always welcome here. (<em>Spammers<\/em>, on the other hand, will be tossed into the moat or mocked, so before you leave an irrelevant comment or drop a link, consider that it's fair game!)<\/p>\n\n<\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>To the reader who thinks poetry is code &#8211; not all poetry is code and not all code is poetry. <\/p>\n","protected":false},"author":1,"featured_media":1011725,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_has_post_settings":[],"wds_primary_category":0,"footnotes":""},"categories":[11],"tags":[],"hashtags":[],"class_list":["post-1011330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-poetry"],"publishpress_future_action":{"enabled":false,"date":"2026-04-25 23:49:51","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"category","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/posts\/1011330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/comments?post=1011330"}],"version-history":[{"count":16,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/posts\/1011330\/revisions"}],"predecessor-version":[{"id":137990830,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/posts\/1011330\/revisions\/137990830"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/media\/1011725"}],"wp:attachment":[{"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/media?parent=1011330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/categories?post=1011330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/tags?post=1011330"},{"taxonomy":"hashtags","embeddable":true,"href":"https:\/\/jahangiri.us\/2020\/wp-json\/wp\/v2\/hashtags?post=1011330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}