Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heimrichhannot/contao-hyphenator-bundle
Word-Hyphenation for the contao content-management-system.
https://github.com/heimrichhannot/contao-hyphenator-bundle
Last synced: about 1 month ago
JSON representation
Word-Hyphenation for the contao content-management-system.
- Host: GitHub
- URL: https://github.com/heimrichhannot/contao-hyphenator-bundle
- Owner: heimrichhannot
- Created: 2018-06-12T12:32:06.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-02T08:47:03.000Z (9 months ago)
- Last Synced: 2024-10-20T18:12:35.532Z (2 months ago)
- Language: PHP
- Size: 137 KB
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Contao Hyphenator Bundle
![](https://img.shields.io/packagist/v/heimrichhannot/contao-hyphenator-bundle.svg)
![](https://img.shields.io/packagist/dt/heimrichhannot/contao-hyphenator-bundle.svg)
[![](https://img.shields.io/travis/heimrichhannot/contao-hyphenator-bundle/master.svg)](https://travis-ci.org/heimrichhannot/contao-hyphenator-bundle/)
[![](https://img.shields.io/coveralls/heimrichhannot/contao-hyphenator-bundle/master.svg)](https://coveralls.io/github/heimrichhannot/contao-hyphenator-bundle)A contao bundle that grants server-side hyphenation (thanks to [vanderlee/phpSyllable](https://github.com/vanderlee/phpSyllable)).
It does support headlines and paragraphs by default.This module also handles line break exceptions, in order to keep words like company names together and prevent line break (see `tl_page` backend entity).
## Options
To extend the functionality, all options can be adjusted within your localconfig.
Option | Type | Default | Description
------ | ---- | ------- | -----------
hyphenator_tags | string | 'h1:not(:empty):not(.hyphen-none), h2:not(:empty):not(.hyphen-none), h3:not(:empty):not(.hyphen-none), h4:not(:empty):not(.hyphen-none), h5:not(:empty):not(.hyphen-none), h6:not(:empty):not(.hyphen-none), p:not(:empty):not(.hyphen-none), a:not(:empty):not(.hyphen-none), dt:not(:empty):not(.hyphen-none), dd:not(:empty):not(.hyphen-none)' | What type of selectors the hyphenator should look at.
hyphenator_wordMin | int | 10 | Words under the given length will not be hyphenated altogether.
hyphenator_hyphenedLeftMin | int | 6 | After hyphenation the resulting left part must have at least this many characters.
hyphenator_hyphenedRightMin | int | 6 | After hyphenation the resulting right part must have at least this many characters.
hyphenator_hyphen | string | | This character shall be used as Hyphen-Character.
hyphenator_skipPages | array | empty | Array of Contao Page Ids, the Hyphenator should skip from hyphenation.
hyphenator_enableCache | bool | true | Enable simple caching and do not hyphenate equal elements twice.
hyphenator_locale_language_mapping | array | ['en' => 'en-us', 'cz' => 'cs'] | Map locale to hyphenator tex separation pattern dictionary## Skip hyphenation
If you want to skip several tags from hyphenation simply add `hyphen-none` as css-class to the appropriate element or use the `tl_page.hyphenation` field.
You also can add tags to be skipped to your project configuration. See configuration reference below
## Configuration reference
```yaml
# Default configuration for extension with alias: "huh_hyphenator"
huh_hyphenator:
# Add tags you want to be skipped from hyphenating, to array (string without <>)
skip_tags: []```
## Line break exceptions
Hyphenator comes with line break exception handling.
Simply add `lineBreakExceptions` on `tl_page` and prevent line break for connected word groups like:- Company Names (search: `Heimrich & Hannot(?:\sGmbH)|Heimrich & Hannot(?:s)?`, will be replaced to: `Heimrich & Hannot GmbH`)
- Prices and other units (search: `(\d|€)(\s)(\w)`, replace: `$1[nbsp]$3`, Example: `160.000 m²` -> `160.000 m²`, `167 Mio. €` -> `167 Mio. €`)As you can see, if you provide an replace pattern, than an regular expression will handle the replacement, otherwise if only an search pattern is provided, spaces will be protected with ` `.
## Requirements
* [vanderlee/phpSyllable](https://github.com/vanderlee/phpSyllable)
* [wa72/htmlpagedom](https://github.com/wasinger/htmlpagedom)