Giter Club home page Giter Club logo

neos-hyphenation's Introduction

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 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.

neos-hyphenation's People

Contributors

p-weisk avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.