hyphenation-0.5: Configurable Knuth-Liang hyphenation

Copyright(C) 2012-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Text.Hyphenation.Hyphenator

Contents

Description

Hyphenation based on the Knuth-Liang algorithm as used by TeX.

Synopsis

Documentation

data Hyphenator Source

A Hyphenator is combination of an alphabet normalization scheme, a set of Patterns, a set of Exceptions to those patterns and a number of characters at each end to skip hyphenating.

Constructors

Hyphenator 

Fields

hyphenatorChars :: Char -> Char

a normalization function applied to input characters before applying patterns or exceptions

hyphenatorPatterns :: Patterns

hyphenation patterns stored in a trie

hyphenatorExceptions :: Exceptions

exceptions to the general hyphenation rules, hyphenated manually

hyphenatorLeftMin :: !Int

the number of characters as the start of a word to skip hyphenating, by default: 2

hyphenatorRightMin :: !Int

the number of characters at the end of the word to skip hyphenating, by default: 3

Hyphenate with a given set of patterns

hyphenate :: Hyphenator -> String -> [String] Source

hyphenate a single word using the specified Hyphenator. Returns a set of candidate breakpoints by decomposing the input into substrings.

>>> import Text.Hyphenation
>>> hyphenate english_US "supercalifragilisticexpialadocious"
["su","per","cal","ifrag","ilis","tic","ex","pi","al","ado","cious"]
>>> hyphenate english_US "hyphenation"
["hy","phen","ation"]

defaultLeftMin :: Int Source

By default, do not insert hyphens in the first two characters

>>> defaultLeftMin
2

defaultRightMin :: Int Source

By default, do not insert hyphens in the last three characters.

>>> defaultRightMin
3