Skip to main content

Turn HTML into equivalent Markdown-structured text.

Project description

Build Status Coverage Status Downloads Version Wheel? Format License

html2text is a Python script that converts a page of HTML into clean, easy-to-read plain ASCII text. Better yet, that ASCII also happens to be valid Markdown (a text-to-HTML format).

Usage: html2text [(filename|url) [encoding]]

Option Description
--version Show program’s version number and exit
-h, --help Show this help message and exit
--ignore-links Don’t include any formatting for links
--escape-all Escape all special characters. Output is less readable, but avoids corner case formatting issues.
--reference-links Use reference links instead of links to create markdown
--mark-code Mark preformatted and code blocks with [code]…[/code]

For a complete list of options see the docs

Or you can use it from within Python:

>>> import html2text
>>>
>>> print(html2text.html2text("<p><strong>Zed's</strong> dead baby, <em>Zed's</em> dead.</p>"))
**Zed's** dead baby, _Zed's_ dead.

Or with some configuration options:

>>> import html2text
>>>
>>> h = html2text.HTML2Text()
>>> # Ignore converting links from HTML
>>> h.ignore_links = True
>>> print h.handle("<p>Hello, <a href='http://earth.google.com/'>world</a>!")
Hello, world!

>>> print(h.handle("<p>Hello, <a href='http://earth.google.com/'>world</a>!"))

Hello, world!

>>> # Don't Ignore links anymore, I like links
>>> h.ignore_links = False
>>> print(h.handle("<p>Hello, <a href='http://earth.google.com/'>world</a>!"))
Hello, [world](http://earth.google.com/)!

Originally written by Aaron Swartz. This code is distributed under the GPLv3.

How to install

html2text is available on pypi https://pypi.python.org/pypi/html2text

$ pip install html2text

How to run unit tests

PYTHONPATH=$PYTHONPATH:. coverage run --source=html2text setup.py test -v

To see the coverage results:

coverage combine
coverage html

then open the ./htmlcov/index.html file in your browser.

Documentation

Documentation lives here

Project details


Release history Release notifications

This version
History Node

2018.1.9

History Node

2017.10.4

History Node

2016.9.19

History Node

2016.5.29

History Node

2016.4.2

History Node

2016.1.8

History Node

2015.11.4

History Node

2015.6.21

History Node

2015.6.12

History Node

2015.6.6

History Node

2015.6.5

History Node

2015.4.14

History Node

2015.4.13

History Node

2015.2.18

History Node

2014.12.29

History Node

2014.12.24

History Node

2014.12.5

History Node

2014.9.25

History Node

2014.9.8

History Node

2014.9.7

History Node

2014.7.3

History Node

2014.4.5

History Node

3.200.3

History Node

3.200.2

History Node

3.200.1

History Node

3.200.0

History Node

3.101

History Node

3.02

History Node

3.01

History Node

3.1

History Node

2.40

History Node

2.39

History Node

2.38

History Node

2.37

History Node

2.35

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
html2text-2018.1.9-py3-none-any.whl (21.1 kB) Copy SHA256 hash SHA256 Wheel py3 Jan 10, 2018
html2text-2018.1.9.tar.gz (52.2 kB) Copy SHA256 hash SHA256 Source None Jan 10, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page