punktde/neos-hyphenation

Neos Eel Helper package for hyphenating Text

Installs: 854

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 6

Forks: 1

Open Issues: 1

Type:neos-package

1.2.0 2020-04-22 10:19 UTC

This package is auto-updated.

Last update: 2024-10-22 20:32:38 UTC


README

This package is licensed under the MIT license, please view the LICENSE file.

Since automatic hyphenation support by browsers can be described as inconsistent at best and might lead to techincally correct but ugly results, this package provides an Eel helper, which can hyphenate text with soft-hyphens (&:shy;) in a consistent and configurable manner. The Eel helper calls a node.js CLI app, which uses the Hypher node module and hyphenation pattern files to do the initial hyphenation. Once a word is hyphenated, the result is cached and the word will be served from the cache instead of calling the node.js app every time it occurs.

Installation

Install the package:

composer require punktde/neos-hyphenation

Install the node.js app and its dependencies:

Please make sure you have node.js (this app is tested on node.js 8.0.0 and newer) and npm installed. Navigate to the Resources/Private/Library directory of this package, where the JavaScript app lives, and install it. Please make sure the index.js file has its executability flag set:

cd Resources/Private/Library
npm install

#if necessary
chmod +x index.js

Configure caching in your project:

You might specify a different cache backend and cache lifetime in the Caches.yamlfile. The first page hit will be very slow, but once most of the long words are in the cache, it will be quite performant.

Usage

This package provides the Eel Helper Hyphenation.hyphenateText(string <text>), which takes a string as an argument and returns a hyphenated version of this string.

Configuration options

Minimum word length and padding:

Users can configure a minimum padding at PunktDe:Neos:Hyphenation:minimumPadding:in the Settings.yaml file. This is an offset which is applied from both ends of the word wherein no hyphenation can occur. Adjust this to ensure a nice and consistent look of the text, e.g. avoiding linebreaks after just one syllable which might look a bit silly in long words. To save resources, the Eel Helper will only call hyphenation on words which are at least twice as long as the minimum padding, since only those are eligible for hyphenation in the first place. The default value is 4.

Language/pattern file used for hyphenation:

The pattern file can be specified in the Resources/Private/Library/package.json file or by running npm install --save <pattern file package> in the Resources/Private/Library directory. Furthermore, it needs to be specified in the index.js app in line 4:

 var language = require('<language package name>');
 //replace <language package name> with the "name" from the language package's package.json file

Please run npm install in the Library directory afterwards. The default language package is german.