https://github.com/punktde/neos-hyphenation
Neos Eel Helper package for hyphenating Text
https://github.com/punktde/neos-hyphenation
eel hyphenation neoscms
Last synced: 4 months ago
JSON representation
Neos Eel Helper package for hyphenating Text
- Host: GitHub
- URL: https://github.com/punktde/neos-hyphenation
- Owner: punktDe
- License: mit
- Created: 2018-08-23T09:39:59.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-04-22T10:19:40.000Z (over 5 years ago)
- Last Synced: 2024-09-21T18:27:11.501Z (about 1 year ago)
- Topics: eel, hyphenation, neoscms
- Language: PHP
- Size: 9.77 KB
- Stars: 5
- Watchers: 6
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Neos Package for hyphenating text output
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](https://github.com/bramstein/hypher) node module and [hyphenation pattern files](https://github.com/bramstein/hyphenation-patterns) 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.yaml`file.
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 )`, 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 ` in the `Resources/Private/Library` directory. Furthermore, it needs to be specified in the `index.js` app in line 4:
```
var language = require('');
//replace 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.