README

Text::Wrap

This module exports a single function, word-wrap, which wraps text to a specified line length based on a simple greedy algorithm, and is intended to be used to format simple text for terminal output (e.g., error messages or human-readable output for CLI programs.) In particular, is designed to provide an alternative to Rakudo's Str.naive-word-wrapper, a method that is marked as an implementation-detail and thus generally should not be relied on in production code.

word-wrap is designed to do what you (probably) mean if given nothing but the text you want wrapped, which it will by default wrap to a width of 80 characters. For more customization, you can pass additional options and can tell word-wrap to operate in one of four modes.

options TODO.

Additionally, word-wrap can operate in the following four modes, each of which can be activated by passing the corresponding named argument.

In :reflow-all mode, word-wrap removes all line breaks in the text and reflows it as a single block (this is the most direct equivalent to .naive-word-wrapper). In :keep-paragraphs, word-wrap keeps preserves the breaks between paragraphs, but fully reflows each paragraph. In :keep-newlines, word-wrap does not remove any of the line breaks in the text; all it does is wrap lines that are longer than the maximum line length.

Finally, in :smart mode (the default) word-wrap attempts to do the right thing based on contextual heuristics. In general, this means that it behaves like :keep-paragraphs unless it detects evidence that a hard line break has semantic meaning (e.g., it appears to be part of a bulleted list).

_ v0.0.1

A meta package for zero-dependency micro packages of under 70 lines of code

Authors

  • Daniel Sockwell

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Pattern::Match
  • Print::Dbg
  • Self::Recursion
  • Test::Doctest::Markdown
  • Test::Fluent
  • Text::Paragraphs
  • Text::Wrap
  • _

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.