hyphen 0.2.0 copy "hyphen: ^0.2.0" to clipboard
hyphen: ^0.2.0 copied to clipboard

A cross-platform Flutter plugin that provides high-quality word hyphenation.

Hyphen #

pub package License: MIT + MPL 2.0

Hyphen is a cross-platform Flutter plugin that provides high-quality word hyphenation.
It uses the hunspell/hyphen C library under the hood (via FFI) on native platforms, and a WebAssembly/JS runtime on the Web.

With Hyphen, you can split words into their hyphenation parts according to language-specific rules. The API returns a List


❗️ Breaking change in v0.2.0 #


✨ Features #

  • Works on all Flutter platforms: Android, iOS, macOS, Windows, Linux, Web
  • Uses battle-tested hyphen dictionaries
  • Combines hunspell/hyphen's two hyphenation APIs hnj_hyphen_hyphenate2and hnj_hyphen_hyphenate3 into a single hyphenate function
  • Unified API for all platforms – always use the same Hyphen class, no matter the platform

📦 Installing #

Add to your pubspec.yaml:

dependencies:
  hyphen: ^0.2.0

Then run:

flutter pub get

📚 Dictionaries #

Hyphen requires a .dic file for the language you want to hyphenate.
These are not bundled due to licensing reasons.

👉 You need to generate or obtain these .dic files yourself.

Where to get dictionary files #

Hyphenation dictionaries are created from TeX hyphenation pattern files (commonly available on CTAN and other TeX distribution sources).


🔨 Step-by-step Example: English (US) #

  1. Download the pattern file hyph-en-us.tex

  2. Run the substrings.pl script (from hunspell/hyphen):

    perl substrings.pl hyph-en-us.tex hyph_en_US.dic UTF-8
    

    This generates a file called hyph_en_US.dic.

  3. Add the file to your Flutter project:

    assets/hyph_en_US.dic
    
  4. Declare it in pubspec.yaml:

    flutter:
      assets:
        - assets/hyph_en_US.dic
    

🚀 Usage #

import 'package:hyphen/hyphen.dart';

Future<void> main() async {
  // Load a dictionary from assets
  final hyphen = await Hyphen.fromDictionaryPath('assets/hyph_en_US.dic');

  // Hyphenate a word
  final result = hyphen.hyphenate('hyphenation');
  print(result); // ["hy", "phen", "ation"]

  // Using the additional parameters to define a minimum distance from the start/end of the word
  // to the first break
  final result2 = hyphen.hyphenate(
    'hyphenation',
    lhmin: 3,
    rhmin: 3,
  );
  print(result2); // ["hyphen", "ation"]
}

🖥 Platform Notes #

  • Android/iOS/macOS/Linux/Windows: Uses the native hyphen lib via FFI.
  • Web: Uses a WASM build of the hyphen lib via hyphen.js.
  • On all platforms, you must provide your own .dic file.

⚠️ License #

This package is dual-licensed:

Hyphenation dictionaries come with their own licenses – check the
hunspell/hyphen repo before redistributing.


🤝 Contributing #

Issues and pull requests are welcome!

2
likes
150
points
597
downloads

Publisher

unverified uploader

Weekly Downloads

A cross-platform Flutter plugin that provides high-quality word hyphenation.

Repository (GitHub)
View/report issues

Topics

#hyphenation #hyphen #ffi #wasm

Documentation

API reference

License

unknown (license)

Dependencies

characters, ffi, flutter, http, path, plugin_platform_interface, web

More

Packages that depend on hyphen

Packages that implement hyphen