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 , 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 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. 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. 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. 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. Spacing built of glue. The workaround of record — chains of — 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. 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. 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 contrivances into structure, then reports what it did. Solved. 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 (MIT) — renders the poem-image export in your browser; nothing is sent to any server. @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.
Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)
Easily improve site security with WordPress Hardening, Two-Factor Authentication (2FA), Login Protection, Vulnerability Detection and SSL certificate. Really simple, Effective and Performant WordPress Security Really Simple Security is the most lightweight and easy-to-use security plugin for WordPress. It secures your WordPress website with SSL certificate generation, including proper 301 https redirection and SSL enforcement, scanning for possible vulnerabilities, Login Protection and implementing essential WordPress hardening features. We believe that security should have the absolute minimum effect on website performance, user experience and maintainability. Therefore, Really Simple Security is: Lightweight: Every security feature is developed with a modular approach and with performance in mind. Disabled features won’t load any redundant code. Easy-to-use: 1-minute configuration with short onboarding setup. Security Features Easy SSL Migration Migrates your website to HTTPS and enforces SSL in just one click. 301 redirect via PHP or .htaccess Secure cookies Let’s Encrypt: Install an SSL Certificate if your hosting provider supports manual installation. Server Health Check: Your server configuration is every bit as important for your website security. WordPress Hardening Tweak your configuration and keep WordPress fortified and safe by tackling potential weaknesses. Prevent code execution in the uploads folder Prevent login feedback and disable user enumeration Disable XML-RPC Disable directory browsing Username restrictions (block ‘admin’ and public names) and much more.. Vulnerability Detection Get notified when plugins, themes or WP core contain vulnerabilities and need appropriate action. Login Protection Allow or enforce Two-Factor Authentication (2FA) for specific user roles. Users receive a two-factor code via Email. Improve Security with Really Simple Security Pro Protect your site with all essential security features by upgrading to Really Simple Security Pro. Advanced SSL enforcement Mixed Content Scan & Fixer. Detect files that are requested over HTTP and fix them to HTTPS, both Front- and Back-end. Enable HTTP Strict Transport Security and configure your site for the HSTS Preload list. Firewall Really Simple Security Pro includes a performant and efficient WordPress firewall, to stop bots, crawlers and bad actors with IP and username blocks. 404 blocking – Blocks crawlers as they trigger unusual numbers of 404 errors. Region blocking – Only allow/block access to your site from specific regions. Automated and customisable Firewall rules. IP blocklist and allowlist. Security Headers Security headers protect your site visitors against the risk of clickjacking, cross-site-forgery attacks, stealing login credentials and malware. Independent of your Server Configuration, works on Apache, LiteSpeed, NGINX, etc. Protect your website visitors with X-XSS Protection, X-Content-Type-Options, X-Frame-Options, a Referrer Policy and CORS headers. Automatically generate your WordPress-tailored Content Security Policy. Vulnerability Measures When a vulnerability is detected in a plugin, theme or WordPress core you will get notified accordingly. With Vulnerability Measures, you can configure simple but effective measures to make sure that a critical vulnerability won’t remain unattended. Force update: An update process will be tried multiple times until it can be assumed development of a theme or plugin is abandoned. You will be notified during these steps. Quarantine: When a plugin or theme can’t be updated to solve a vulnerability, Really Simple Security can quarantine the plugin. Advanced Site Hardening Choose a custom login URL Automated File Permissions check and fixer Rename and randomize your database prefix Change the debug.log file location to a non-public folder Disable application passwords Control admin creation Disable HTTP methods, reducing HTTP requests Login Protection Secure your website’s login process and user accounts with powerful security measures. Two-Step verification (Email login) 2FA (two factor authentication) with TOTP Passwordless login with passkey login Enforce strong passwords and frequent password change Limit Login Attempts With Limit Login Attempts you can configure a threshold to temporarily or permanently block IP addresses or (non-existing) usernames. You can also throw a CAPTCHA after a failed login (hCaptcha or Google reCaptcha) Access Control Restrict access to your site for specific regions. Add specific IP addresses or IP ranges to the Blocklist or Allowlist. Useful Links Documentation Security Definitions Translate Really Simple Security Issues & pull requests Feature requests Love Really Simple Security? If you want to support the continuing development of this plugin, please consider buying Really Simple Security Pro, which includes some excellent security features and premium support. About Really Simple Plugins Our mission is to make complex WordPress requirements really easy. Really Simple Security is developed by Really Simple Plugins. For generating SSL certificates, Really Simple Security uses the le acme2 PHP Let’s Encrypt client library, thanks to ‘fbett’ for providing it. Vulnerability Detection uses WP Vulnerability, an open-source initiative by Javier Casares. Want to join as a collaborator? We’re on GitHub as well!