PHPackages                             soderlind/ps-hyphenate - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. soderlind/ps-hyphenate

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

soderlind/ps-hyphenate
======================

WordPress plugin that improves wrapping of long compound words with native hyphenation and optional render-time soft hyphen exceptions.

1.0.4(1mo ago)282↓50%GPL-2.0-or-laterPHPPHP &gt;=8.3CI passing

Since May 5Pushed 1mo agoCompare

[ Source](https://github.com/soderlind/ps-hyphenate)[ Packagist](https://packagist.org/packages/soderlind/ps-hyphenate)[ RSS](/packages/soderlind-ps-hyphenate/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

PS Hyphenate
============

[](#ps-hyphenate)

WordPress plugin that improves text wrapping for long compound words in languages like German, Norwegian, Swedish, and Dutch.

[![Screenshot 2026-05-06 at 01 14 03](https://private-user-images.githubusercontent.com/1649452/587970629-98f1728d-2e67-4390-9a40-30792ec259bf.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODAxMjk3NzAsIm5iZiI6MTc4MDEyOTQ3MCwicGF0aCI6Ii8xNjQ5NDUyLzU4Nzk3MDYyOS05OGYxNzI4ZC0yZTY3LTQzOTAtOWE0MC0zMDc5MmVjMjU5YmYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDUzMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA1MzBUMDgyNDMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZiYzE5MzYwN2QxNmM1YWY1ODExM2ZhMzliYzU5YzdjNDRhNjRmMzAxMDkwMWNmNWYwMzlmYTgwMDk4MGE3MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.N2c9DJ6LhwLc-XXm6EWQyZwlzPu56KsvLoT7FYZRC28)](https://private-user-images.githubusercontent.com/1649452/587970629-98f1728d-2e67-4390-9a40-30792ec259bf.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODAxMjk3NzAsIm5iZiI6MTc4MDEyOTQ3MCwicGF0aCI6Ii8xNjQ5NDUyLzU4Nzk3MDYyOS05OGYxNzI4ZC0yZTY3LTQzOTAtOWE0MC0zMDc5MmVjMjU5YmYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDUzMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA1MzBUMDgyNDMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ODZiYzE5MzYwN2QxNmM1YWY1ODExM2ZhMzliYzU5YzdjNDRhNjRmMzAxMDkwMWNmNWYwMzlmYTgwMDk4MGE3MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.N2c9DJ6LhwLc-XXm6EWQyZwlzPu56KsvLoT7FYZRC28)Features
--------

[](#features)

- **CSS hyphenation** — Enables native browser hyphenation on frontend content.
- **Soft hyphen exceptions** — Insert explicit break points via an exception dictionary at render time.
- **TeX pattern fallback** — Automatic hyphenation using `org_heigl/hyphenator` dictionaries for 30+ locales (German, Norwegian (Bokmål/Nynorsk), Danish, Dutch, Swedish, Icelandic, English, Spanish, French, Italian, Portuguese, Polish, Czech, Slovak, Slovenian, Hungarian, and many more).
- **Locale-aware** — Prefix exceptions with a locale (e.g. `nb_NO:digitaliserings-organisasjon`).
- **Case-preserving** — Matches exceptions case-insensitively but renders with original casing.
- **Non-destructive** — Processes at render time; saved post content is never modified.
- **Block-aware** — Filters Gutenberg blocks and classic `the_content` output.

Requirements
------------

[](#requirements)

- PHP 8.3+
- WordPress 6.8+

Installation
------------

[](#installation)

1. Download [`ps-hyphenate.zip`](https://github.com/soderlind/ps-hyphenate/releases/latest/download/ps-hyphenate.zip)
2. Upload via `Plugins → Add New → Upload Plugin`
3. Activate via `WordPress Admin → Plugins`
4. Configure exceptions via `Settings → PS Hyphenate`

Plugin [updates are handled automatically](https://github.com/soderlind/wordpress-plugin-github-updater#readme) via GitHub. No need to manually download and install updates.

**Composer:**

```
composer require soderlind/ps-hyphenate
```

Exception Dictionary
--------------------

[](#exception-dictionary)

Add entries in **Settings → PS Hyphenate → Exception dictionary**.

FormatExampleExplicit`Donaudampfschifffahrtsgesellschaft=Donau-dampf-schiff-fahrts-gesellschaft`Visible compound hyphen`nb_NO:personvernforordningen=per-son-vern--for-ord-nin-gen`Shorthand`digitaliserings-organisasjon`Locale-prefixed`nb_NO:menneske-rettighets-organisasjon`Single hyphens in the replacement mark soft hyphen positions. Double hyphens mark a soft break before a visible compound hyphen.

Automatic Updates
-----------------

[](#automatic-updates)

This plugin supports automatic updates from GitHub releases via [soderlind/wordpress-github-updater](https://github.com/soderlind/wordpress-plugin-github-updater).

When a new release is published on GitHub, WordPress will detect and offer the update through the standard plugin update mechanism.

Development
-----------

[](#development)

```
composer install
composer test
```

Tests use [Pest](https://pestphp.com/) with [Brain Monkey](https://brain-wp.github.io/BrainMonkey/) for WordPress function mocks.

License
-------

[](#license)

GPL-2.0-or-later

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance93

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

34d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1649452?v=4)[Per Søderlind](/maintainers/soderlind)[@soderlind](https://github.com/soderlind)

---

Top Contributors

[![soderlind](https://avatars.githubusercontent.com/u/1649452?v=4)](https://github.com/soderlind "soderlind (9 commits)")

---

Tags

text-wrappingwordpress-plugin

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/soderlind-ps-hyphenate/health.svg)

```
[![Health](https://phpackages.com/badges/soderlind-ps-hyphenate/health.svg)](https://phpackages.com/packages/soderlind-ps-hyphenate)
```

###  Alternatives

[jolicode/jolitypo

Microtypography fixer for the web.

3491.1M5](/packages/jolicode-jolitypo)[org_heigl/textstatistics

Get statistics from a given text

122.3k](/packages/org-heigl-textstatistics)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
