Run turbohtml from a shell

Drive turbohtml from a shell. The turbohtml console script exposes the parse, query, and convert surface over stdin and stdout, for one-off jobs and pipelines.

The turbohtml command

python -m turbohtml (installed as the turbohtml console script) is a thin front end over the public API, for the same one-off jobs html2text, markdownify, htmlmin, inscriptis, minify-html, charset-normalizer, and courlan expose on the command line. Each subcommand reads one input (a file argument, or stdin when the argument is omitted or -) and writes to stdout, or to the -o FILE given:

Subcommand

Calls

minify

turbohtml.clean.minify(); --minify-css also minifies <style> bodies and style attributes.

minify-css

turbohtml.clean.minify_css()

minify-js

turbohtml.clean.minify_js()

detect

turbohtml.detect.detect(), printing the encoding name of the input bytes.

to-markdown

turbohtml.Node.to_markdown() on the parsed input.

to-text

turbohtml.Node.to_text() on the parsed input.

sanitize

turbohtml.clean.sanitize() against the default policy.

$ echo '<h1>Title</h1><p>Body</p>' | python -m turbohtml to-markdown
# Title

Body

$ python -m turbohtml minify --minify-css page.html -o page.min.html

$ curl -s https://example.com | python -m turbohtml detect
UTF-8

A subcommand exits 0 on success and 1 with a message on stderr when the library rejects the input (an unparsable script, an empty byte stream to detect) or the input file cannot be read; argument errors exit 2. For policies, renderer options, or streaming, call the API from Python.

The Command line lists every subcommand and flag, generated from the parser so it cannot drift from the command.