RockHeadlineIDs

Demo Textformatter

Textformatter that applies id attributes to all headlines (h1-h6) in the markup field.

// input
<h1>This is my headline</h1>
// output
<h1 id='this-is-my-headline'>This is my headline</h1>

What if an id already exists?


If an id already exists in the input it will leave this id as is:

// input
<h1 id='foo'>foo</h1>
<h2>bar</h2>
// output
<h1 id='foo'>foo</h1>
<h2 id='bar'>bar</h2>

What if an id is used twice?


It will automatically apply dashes until the id is unique:

// input
<h1>foo</h1>
<h2>foo</h2>
<h3>foo</h3>
// output
<h1 id='foo'>foo</h1>
<h2 id='foo-'>foo</h2>
<h3 id='foo--'>foo</h3>

What about special characters?


Special characters will be sanitized according to your transliterate settings:

// input
<h1>Sehr schön</h1>
// output
<h1 id='sehr-schoen'>Sehr schön</h1>

Customize


You can customize the generated ID via hooking into getID:

$wire->addHookAfter("TextformatterRockHeadlineIDs::getID", function($event) {
  $event->return .= "-hooked";
});
// input
<h1>foo</h1>
// output
<h1 id='foo-hooked'>foo</h1>

Debugging


You can use tracy to debug this formatter:

img

More modules by bernhard

  • RockFinder

    Highly Efficient and Flexible SQL Finder Module
  • RockMigrations

    The Ultimate Automation and Deployment-Tool for ProcessWire
  • RockFrontend

    Module for easy frontend development
  • RockFinder3

    Combine the power of ProcessWire selectors and SQL.
  • RockLESS

    Module to parse LESS files via PHP.
  • Template Preview Images

    Show Preview Images for selectable Templates
  • RockMigrations1

    Module to handle Migrations inside your Modules easily.
  • RockHeadlineIDs

    Demo Textformatter
  • RockLite

    MailerLite Integration

All modules by bernhard

Install and use modules at your own risk. Always have a site and database backup before installing new modules.