Alir3z4 / Alir3z4/html2text

text wrapped at 78 characters ignoring body_width setting and partially ignoring -b option

Open
#315 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2.2k
Forks
296
PR merge metrics
No merged PRs in 30d

Description

I am using html2text version 2020.1.16 with Python 3.8.1. html2text wraps the text at 78 characters regardless of the setting of BODY_WIDTH in config.py or body_width in the parser. I set BODY_WIDTH = 0 in config.py, then:

>>> html = 'This line is longer than seventy-eight characters. It seems to be getting wrapped with backslash n line breaks at seventy-eight characters regardless of the body_width setting in config.py or in the parser.'
>>> len(html)
228

>>> plainmd = html2text.html2text(html)
>>> plainmd
'This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.\n\n'
>>> len('This line is longer than **seventy-eight** characters. It seems to be getting')
77

>>> parser = html2text.HTML2Text()
>>> parser.body_width = 0
>>> parser.body_width
0
>>> plainmd = html2text.html2text(html)
>>> plainmd
'This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.\n\n'

>>> parser.body_width = 22
>>> parser.body_width
22
>>> plainmd = html2text.html2text(html)
>>> plainmd
'This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.\n\n'

>>> parser.body_width = 99
>>> parser.body_width
99
>>> plainmd
'This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.\n\n'

However, at the command line, it wraps on the screen at the value specified with -b, but still puts a newline character in after 78 characters:
$ cat /tmp/test.html
This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.
$
$ wc -l /tmp/test.html; wc -c /tmp/test.html
1 /tmp/test.html
217 /tmp/test.html
$
$ python3.8 -m html2text -b 0 /tmp/test.html
This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in config.py or in the parser.
$
$ echo 'This line is longer than **seventy-eight** characters. It seems to be getting' | wc -c
78
$
$ python3.8 -m html2text -b 22 /tmp/test.html
This line is longer
than **seventy-eight**
characters. It seems
to be getting\nwrapped
with backslash n line
breaks at _seventy-
eight_ characters
regardless\nof the
_body_width_ setting
in config.py or in the
parser.

$ python3.8 -m html2text -b 99 /tmp/test.html
This line is longer than **seventy-eight** characters. It seems to be getting\nwrapped with
backslash n line breaks at _seventy-eight_ characters regardless\nof the _body_width_ setting in
config.py or in the parser.

$

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.