Alir3z4 / Alir3z4/html2text

WRAP_LIST_ITEMS setting is not respected

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

Description

- Version 2020.1.16
- Python version 3.8.7

```python
body = """
1. Error exercitationem debitis magni tenetur dolorum inventore ex. Voluptatibus possimus voluptas quibusdam vel facere eaque sit. Et et hic totam aliquam et ut numquam. Omnis qui consectetur reiciendis. Deserunt qui aut mollitia qui. Dolores omnis aut facere sint et rerum.
2. Modi excepturi velit ab fuga dignissimos qui. Et dolorem ut quam consequatur. Quia repellat deleniti et aut quae in. Cum quidem maiores sint suscipit nobis ipsam.
3. Et tenetur sapiente velit. Neque culpa perspiciatis et molestias voluptatem officia rem. Dolorem reprehenderit recusandae nostrum voluptatem nihil et modi neque. Libero et tempore odit. Saepe quo dolorum voluptas. Aliquam illo nam eos qui eum.
"""
h = html2text.HTML2Text()
h.body_width = 80
h.wrap_list_items = True
print(h.handle(body))
```

Should normally render

```text
1. Error exercitationem debitis magni tenetur dolorum inventore ex.
Voluptatibus possimus voluptas quibusdam vel facere eaque sit. Et et hic totam
aliquam et ut numquam. Omnis qui consectetur reiciendis. Deserunt qui aut
mollitia qui. Dolores omnis aut facere sint et rerum.

2. Modi excepturi velit ab fuga dignissimos qui. Et dolorem ut quam
consequatur. Quia repellat deleniti et aut quae in. Cum quidem maiores sint
suscipit nobis ipsam.

3. Et tenetur sapiente velit. Neque culpa perspiciatis et molestias voluptatem
officia rem. Dolorem reprehenderit recusandae nostrum voluptatem nihil et modi
neque. Libero et tempore odit. Saepe quo dolorum voluptas. Aliquam illo nam eos
qui eum.
```

But instead it return unwrapped text

I suggest changing `skipwrap()` end of function to:

```python
# If the text begins with a single -, *, or +, followed by a space,
# or an integer, followed by a ., followed by a space (in either
# case optionally proceeded by whitespace), it's a list; don't wrap,
# unless explicitly specified.
return bool(
config.RE_ORDERED_LIST_MATCHER.match(stripped)
or config.RE_UNORDERED_LIST_MATCHER.match(stripped)
) and not wrap_list_items
```

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.