carbon / hyphen
Make hyphens easier in Neos CMS
Fund package maintenance!
jonnitto
www.paypal.me/Jonnitto/20eur
Installs: 19 071
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 4
Open Issues: 1
Type:neos-carbon
Requires
- neos/flow: *
- neos/fusion: ^4.3 || ^5.0 || ^7.0 || ^8.0
- vanderlee/syllable: ^1.7
README
Carbon.Hyphen Package for Neos CMS
Make hyphens easier
Optional word-breaks are hard to enter in Neos CMS. This package provides a Fusion wrapper for phpSyllable
Installation
composer require carbon/hyphen
Usage
Text
Just use the Carbon.Hyphen:Text
Fusion object as a processor or wrapper on the Fusion value that should be hyphenated.
superlongValue = 'supercalifragilisticexpialidocious' superlongValue.@process.hyphenate = Carbon.Hyphen:Text { locale = 'en-gb' }
HTML
Similar to text elements you can use Carbon.Hyphen:Html
for HTML elements.
someFusionHtml.@process.hyphenate = Carbon.Hyphen:Html
Neos CMS integration example
You can easily activate hyphenation for all Neos CMS text- and headline nodetypes with following Fusion code:
prototype(Foo.Bar:Content.Text) { renderer.@process.hyphenate = Carbon.Hyphen:Html } prototype(Foo.Bar:Content.Headline) { title.@process.hyphenate = Carbon.Hyphen:Text }
or directly on a specific parameter:
prototype(Foo.Bar:Component) { headline = Neos.Neos:Editable { property = 'headline' block = false } renderer = afx` <h2> <Carbon.Hyphen:Text>{props.headline}</Carbon.Hyphen:Text> </h2> ` }
Parameters
locale (string) : Reference to the language in which the given string will be hyphenated
(Have a look at syllable languages for a reference of available languages)
threshold (integer, default = 0
) : Minimum amount characters a word needs to have, before it is being hyphenated.
Custom language mappings
Probably you've got a language defined that is not available in syllable. For example, en
is not available, but en-gb
is. Because of that, you can map your language preset to another syllable language: Per default following settings are set in Settings.Carbon.yaml:
Carbon: Hyphen: # Throw exception if no hyphen definition is found throwException: true mapping: en: en-gb de-de: de de-at: de
Credits
This implementation was heavily inspired by packagefactory/hyphenate.