Justify and hyphenate text in files and/or standard input. The program can be invoked as either text-justifier or justify .
``pip3 install -U text-justifier``
-w
,--width *INTEGER*
- Width of text, not counting indent
-i
,--indent *INTEGER*
- Number of spaces to add before text
-r
,--right-margin *INTEGER*
- Determine the width of text to suit a specific column, i.e. right margin is indent plus width.
-c
,--centre
,--no-centre
,--center
,--no-center
- Automatically determine line width based on terminal width, with indent
mirrored on the right. Will probably not work with indent of 0 (the
default). Uses
$COLUMNS
if the terminal size cannot be queried. -s
,--simple-hyphen
- Use simple hyphenation method.
-h
,--hyphen
- Use pyphen library to hyphenate, which uses OpenOffice hyphenation dictionaries.
-H
,--no-hyphenate
- Turn hyphenation off.
- Free software: GNU General Public License v3
- Documentation: https://text-justifier.readthedocs.io. (TBA)
- Can centre text according to the screen/terminal width
- Indent text
Em dashes (— or --) should be used padded before random padding is done
Don't hyphenate URLs
Extract URLs, replace with placeholders and dump after paragraph; Use Markdown style or something similar i.e.
[text](url)
->[text][URL_PLACEHOLDER]
and[URL_PLACEHOLDER]: url
[url] -> [0]
and[0]: url
Option (-f n) to add a first-line indent to each paragraph
Option (-n) to split paragraphs on newline instead of blank lines
Treat lines that begin with a list character as their own paragraph
- Grab a line's worth of text plus the word that would push it over the limit
- Count the number of characters in the "safe" line
- The delta equals the difference between the line length and (limit subtract the number of full stops except one at the end of a line)
- Determine the hyphenation threshold n = limit / 20, i.e. one extra space per 20 characters
- If the overflow word is at least n*2 characters long, attempt to hyphenate it
- Find the largest usable fragment of the overflow word no longer than delta - 1
- Add the fragment if hyphenating and change delta to (delta subtract (fragment length + 1))
- Add a space after at most (limit subtract line length) full stops (determined randomly)
- Add a space before and after at most delta/2 em dashes and recalculate delta
- Add a space after delta random spaces
- If hyphenating and the next line's delta would be greater than this one's without hyphenation, don't hyphenate
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.