All Projects → ytiurin → Hyphen

ytiurin / Hyphen

Licence: isc
Text hyphenation in Javascript.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Hyphen

Sing App
💥Free and open-source admin dashboard template built with Bootstrap 4.5 💥
Stars: ✭ 1,187 (+792.48%)
Mutual labels:  typography
React Typesetting
React typesetting components.
Stars: ✭ 80 (-39.85%)
Mutual labels:  typography
Pagebot
Scripted page layout framework for Python.
Stars: ✭ 103 (-22.56%)
Mutual labels:  typography
Doric
Protocol oriented, type safe, scalable design system foundation swift framework for iOS.
Stars: ✭ 75 (-43.61%)
Mutual labels:  typography
Gatsby Starter Prismic I18n
Based on gatsby-starter-prismic with Internationalization (i18n) support
Stars: ✭ 77 (-42.11%)
Mutual labels:  typography
Vertical Rhythm
Put some typographical vertical rhythm in your CSS. LESS, Stylus and SCSS/SASS versions included.
Stars: ✭ 83 (-37.59%)
Mutual labels:  typography
Linearicons
Linearicons is the highest quality set of line icons, matching with minimalist UI designs in iOS.
Stars: ✭ 64 (-51.88%)
Mutual labels:  typography
Ui Ux
📝 Curated list for UI/UX Designers
Stars: ✭ 125 (-6.02%)
Mutual labels:  typography
Interior
Design system for the modern web.
Stars: ✭ 77 (-42.11%)
Mutual labels:  typography
Universal Resume
Minimal and formal résumé (CV) website template for print, mobile, and desktop. https://bit.ly/ur_demo
Stars: ✭ 1,349 (+914.29%)
Mutual labels:  typography
3270font
A 3270 font in a modern format
Stars: ✭ 1,197 (+800%)
Mutual labels:  typography
Piazzolla
Piazzolla type family
Stars: ✭ 77 (-42.11%)
Mutual labels:  typography
Fontanello
Because you have a weak spot for fonts
Stars: ✭ 85 (-36.09%)
Mutual labels:  typography
Personal Goals
List of books I've read, projects I've done, videos I've seen, articles I've read or podcasts I've listened to.
Stars: ✭ 75 (-43.61%)
Mutual labels:  typography
Light Blue Dashboard
🔥 Free and open-source admin dashboard template built with Bootstrap
Stars: ✭ 110 (-17.29%)
Mutual labels:  typography
Chinese Hershey Font
Convert Chinese Characters to Single-Line Fonts using Computer Vision
Stars: ✭ 70 (-47.37%)
Mutual labels:  typography
Kirby Typography
Typographic enhancements for your Kirby-driven website.
Stars: ✭ 80 (-39.85%)
Mutual labels:  typography
Fluid System
Fluid System is a style props function transformer for generating fluid styles. 💦
Stars: ✭ 130 (-2.26%)
Mutual labels:  typography
Styled Typography
Typograpy components for react and styled-components
Stars: ✭ 113 (-15.04%)
Mutual labels:  typography
Typograph
Класс для автоматического применения правил русской типографики для веб
Stars: ✭ 97 (-27.07%)
Mutual labels:  typography

Franklin M. Liang's hyphenation algorithm

hyphen

Demo page

This is a text hyphenation library, based on Franklin M. Liang's hyphenation algorithm. In core of the algorithm lies a set of hyphenation patterns. They are extracted from hand-hyphenated dictionaries. Patterns for this library were taken from ctan.org and ported to Javascript.

import { hyphenate } from "hyphen/en";

hyphenate("A certain king had a beautiful garden").then(result => {
  // A cer[-]tain king had a beau[-]ti[-]ful garden
  // [-] is soft hyphen
});

Install

npm install hyphen

or

yarn add hyphen

Usage

import {
  hyphenate,
  hyphenateHTML,
  hyphenateHTMLSync,
  hyphenateSync
} from "hyphen/en";

hyphenate("Plain text - hyphenate everything").then(result => {
  // Plain text - hy[-]phen[-]ate every[-]thing
});

hyphenateHTML("<blockquote>HTML tags are NOT hyphenated</blockquote>").then(
  result => {
    // <blockquote>HTML tags are NOT hy[-]phen[-]at[-]ed</blockquote>
  }
);

hyphenateHTMLSync("<blockquote>Sync version of `hyphenateHTML`</blockquote>");
// <blockquote>Sync ver[-]sion of `hy[-]phen[-]ate[-]HTML`</blockquote>

hyphenateSync("Sync version of `hyphenate`");
// Sync ver[-]sion of `hy[-]phen[-]ate`

Options

hyphenate("Options", { debug: true, hyphenChar: "%", minWordLength: 5 });
// Op%tions
  • debug

    A Boolean indicating, if script should output debug info to console. Default is false.

  • hyphenChar

    A String sets a value of the soft hyphen character. Default value is \u00AD.

  • minWordLength

    A Number sets the minimum length of the word, intended for hyphenation. This value can't be less than 5 (for the performance consideration). Default value is 5.

Import available languages

  • hyphen/af Afrikaans
  • hyphen/as Assamese
  • hyphen/be Belarusian
  • hyphen/bg Bulgarian
  • hyphen/bn Bengali
  • hyphen/ca Catalan
  • hyphen/cop Coptic
  • hyphen/cs Czech
  • hyphen/cu Church Slavonic
  • hyphen/cy Welsh
  • hyphen/da Danish
  • hyphen/de-1901 German, traditional spelling
  • hyphen/de-1996 German, reformed spelling
  • hyphen/de-CH-1901 German, traditional Swiss spelling
  • hyphen/de aliases hyphen/de-1996
  • hyphen/el-monoton Modern Greek, monotonic spelling
  • hyphen/el-polyton Modern Greek, polytonic spelling
  • hyphen/el aliases hyphen/el-monoton
  • hyphen/en-gb English, British spelling
  • hyphen/en-us English, American spelling
  • hyphen/en aliases hyphen/en-us
  • hyphen/es Spanish
  • hyphen/et Estonian
  • hyphen/ethi aliases hyphen/mul-ethi
  • hyphen/eu Basque
  • hyphen/fi Finnish
  • hyphen/fr French
  • hyphen/fur Friulan
  • hyphen/ga Irish
  • hyphen/gl Galician
  • hyphen/grc Ancient Greek
  • hyphen/gu Gujarati
  • hyphen/hi Hindi
  • hyphen/hr Croatian
  • hyphen/hsb Upper Sorbian
  • hyphen/hu Hungarian
  • hyphen/hy Armenian
  • hyphen/ia Interlingua
  • hyphen/id Bahasa Indonesia, Indonesian
  • hyphen/is Icelandic
  • hyphen/it Italian
  • hyphen/ka Georgian
  • hyphen/kmr Kurmanji, Northern Kurdish
  • hyphen/kn Kannada
  • hyphen/la-x-classic Classical Latin
  • hyphen/la-x-liturgic Liturgical Latin
  • hyphen/la Latin
  • hyphen/lt Lithuanian
  • hyphen/lv Latvian
  • hyphen/ml Malayalam
  • hyphen/mn-cyrl-x-lmc Mongolian, Cyrillic script, alternative patterns
  • hyphen/mn-cyrl Mongolian, Cyrillic script
  • hyphen/mn aliases hyphen/mn-cyrl
  • hyphen/mr Marathi
  • hyphen/mul-ethi Multiple languages using the Ethiopic scripts
  • hyphen/nb Norwegian Bokmål, bokmål, norsk bokmål
  • hyphen/nl Dutch
  • hyphen/nn Norwegian Nynorsk, nynorsk
  • hyphen/no Norwegian, norsk
  • hyphen/oc Occitan
  • hyphen/or Odia, Oriya
  • hyphen/pa Panjabi, Punjabi
  • hyphen/pi Pāli
  • hyphen/pl Polish
  • hyphen/pms Piedmontese
  • hyphen/pt Portuguese
  • hyphen/rm Romansh
  • hyphen/ro Romanian
  • hyphen/ru Russian
  • hyphen/sa Sanskrit
  • hyphen/sh-cyrl Serbocroatian, Cyrillic script
  • hyphen/sh-latn Serbocroatian, Latin script
  • hyphen/sh aliases hyphen/sh-cyrl
  • hyphen/sk Slovak
  • hyphen/sl Slovenian
  • hyphen/sr-cyrl Serbian, Cyrillic script
  • hyphen/sr aliases hyphen/sr-cyrl
  • hyphen/sv Swedish
  • hyphen/ta Tamil
  • hyphen/te Telugu
  • hyphen/th Thai
  • hyphen/tk Turkmen
  • hyphen/tr Turkish
  • hyphen/uk Ukrainian
  • hyphen/zh-latn-pinyin Mandarin Chinese, pinyin transliteration
  • hyphen/zh aliases hyphen/zh-latn-pinyin

Factory function

import createHyphenator from "hyphen";
import patterns from "hyphen/patterns/en-us";

const hyphenate = createHyphenator(patterns, { async: true });
const hyphenateHTML = createHyphenator(patterns, { async: true, html: true });
const hyphenateHTMLSync = createHyphenator(patterns, { html: true });
const hyphenateSync = createHyphenator(patterns);

Note: This original factory function surves mostly for the backwards compatibility reasons.

Text hyphenation in CSS

The CSS hyphens property is intended to add hyphenation support to modern browsers without Javascript:

p {
  hyphens: auto;
}

It is part of the CSS Text Level 3 specification. The browser compatibility list can be found on the related MDN page.

Alternatives

Check other great hyphenation libraries:

  • Hyphenator.js does client-side hyphenation of HTML-Documents.
  • Hypher A fast and small hyphenation engine.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].