nbsp_title
No security coverage
The Non-Breaking Space Title module automatically applies language-specific typography rules to your content using client-side JavaScript. It ensures proper spacing around punctuation marks, quotes, and units without modifying your database content, keeping your data clean and portable across different contexts (APIs, exports, search).
Features
- Multi-language support: Configure different typography rules for each active language on your site
- Client-side processing: Rules are applied via JavaScript, keeping your database content clean and portable
- Configurable selectors: Choose which CSS selectors to target (titles, headings, content areas, etc.)
- Per-language rules: Define regex patterns and replacements tailored to each language's typography conventions
- Pre-configured rules: Includes default rules for English (em dashes) and French (non-breaking spaces before punctuation, French quotes, units)
- Dynamic content support: Uses MutationObserver to automatically process content loaded after page load
- Permission-based access: Dedicated permission for managing typography rules
Use cases:
- Multi-language sites requiring different typography rules per language
- Publications that need to maintain clean, portable content in the database
- Sites that want to enforce typography standards without manual editing
Post-Installation
- Enable the module: Install and enable via Drush (
drush en nbsp_title) or the Extend page - Clear cache: Run
drush crto register the new permission - Set permissions: Go to
/admin/people/permissionsand assign the "Administer Non breaking space title" permission to appropriate roles - Configure rules: Navigate to Configuration → User interface → Non breaking space title (
/admin/config/regional/nbsp-title) - Configure selectors: Add CSS selectors (one per line) for elements where rules should apply. Default selectors include
.node__title,.page-title,h1,h2,h3h4 - Add language rules: For each active language, add typography rules with:
- Description: Explanation of what the rule does
- Pattern: JavaScript regular expression (e.g.,
\s+([:\;!\?])) - Replacement: Replacement string (e.g.,
 $1- will be converted to Unicode non-breaking space)
The module automatically applies rules based on the current language context
Additional Requirements
- Drupal: Core 10, or 11
- No additional libraries required: Uses vanilla JavaScript and Drupal core APIs
Recommended modules/libraries
This module works standalone but complements:
- Language modules: Works seamlessly with Drupal's core language and translation systems
- Content translation: Automatically applies appropriate rules based on content language
Supporting this Module
This module is maintained as part of ongoing Drupal development work. Contributions, bug reports, and feature requests are welcome on the project issue queue.
Community Documentation
- Issue queue: Report bugs and request features on Drupal.org
- Examples: See the module's configuration page for pre-configured typography rules for French and English