CLI to process HTML with rehype
npm install rehype-cli[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Sponsors][sponsors-badge]][collective]
[![Backers][backers-badge]][collective]
[![Chat][chat-badge]][chat]
Command line interface to inspect and change HTML files with [rehype][].
* What is this?
* When should I use this?
* Install
* Use
* CLI
* Compatibility
* Security
* Contribute
* Sponsor
* License
This package is a command line interface (CLI) that you can use in your terminal
or in npm scripts and the like to inspect and change HTML files.
This CLI is built around rehype, which is an ecosystem of plugins that work with
HTML as structured data, specifically ASTs (abstract syntax trees).
You can choose from the existing plugins or make your own.
See [the monorepo readme][rehype] for info on what the rehype ecosystem is.
You can use this package when you want to work with the HTML files in your
project from the command line.rehype-cli has many options and you can combine it with many plugins, so it
should be possible to do what you want.
If not, you can always use [rehype][rehype-core] itself manually in a script.
This package is [ESM only][esm].
In Node.js (version 16+), install with [npm][]:
``sh`
npm install rehype-cli
Format index.html with [rehype-format][rehype-format]:
`sh`
rehype index.html --use rehype-format --output
The interface of rehype-cli is explained as follows on its help pagerehype --help
():
`txt
Usage: rehype [options] [path | glob ...]
CLI to process HTML with rehype
Options:
--[no-]color specify color in report (on by default)
--[no-]config search for configuration files (on by default)
-e --ext
--file-path
-f --frail exit with 1 on warnings
-h --help output usage information
--[no-]ignore search for ignore files (on by default)
-i --ignore-path
--ignore-path-resolve-from cwd|dir resolve patterns in ignore-path from its directory or cwd
--ignore-pattern
--inspect output formatted syntax tree
-o --output [path] specify output location
-q --quiet output only warnings and errors
-r --rc-path
--report
-s --setting
-S --silent output only errors
--silently-ignore do not fail when given ignored files
--[no-]stdout specify writing to stdout (on by default)
-t --tree specify input and output as syntax tree
--tree-in specify input as syntax tree
--tree-out output syntax tree
-u --use
--verbose report extra info for messages
-v --version output version number
-w --watch watch for changes and reprocess
Examples:
# Process input.html
$ rehype input.html -o output.html
# Pipe
$ rehype < input.html > output.html
# Rewrite all applicable files
$ rehype . -o
`
More info on all these options is available at [unified-args][unified-args],rehype-cli
which does the work. is unified-args preconfigured to:
* load rehype- plugins.html
* search for HTML extensions (, .htm, .xht, .xhtml).rehypeignore
* ignore paths found in [ files][ignore-file].rehyperc
* load configuration from
[, .rehyperc.js, etc files][config-file]rehype
* use configuration from
[ fields in package.json files][config-file]
Projects maintained by the unified collective are compatible with maintained
versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of
Node.
This means we try to keep the current release line, rehype-cli@^12,
compatible with Node.js 16.
As rehype works on HTML, and improper use of HTML can open you up to a
[cross-site scripting (XSS)][xss] attack, use of rehype can also be unsafe.
Use [rehype-sanitize][rehype-sanitize] to make the tree safe.
Use of rehype plugins could also open you up to other attacks.
Carefully assess each plugin and the risks involved in using them.
For info on how to submit a report, see our [security policy][security].
See [contributing.md][contributing] in [rehypejs/.github][health] for wayssupport.md`][support] for ways to get help.
to get started.
See [
This project has a [code of conduct][coc].
By interacting with this repository, organization, or community you agree to
abide by its terms.
Support this effort and give back by sponsoring on [OpenCollective][collective]!
Vercel | Motif | HashiCorp | GitBook | Gatsby | |||||
Netlify ![]() | Coinbase | ThemeIsle | Expo | Boost Note ![]() | Markdown Space ![]() | Holloway | |||
You? | |||||||||
[MIT][license] © [Titus Wormer][author]
[build-badge]: https://github.com/rehypejs/rehype/workflows/main/badge.svg
[build]: https://github.com/rehypejs/rehype/actions
[coverage-badge]: https://img.shields.io/codecov/c/github/rehypejs/rehype.svg
[coverage]: https://codecov.io/github/rehypejs/rehype
[downloads-badge]: https://img.shields.io/npm/dm/rehype-cli.svg
[downloads]: https://www.npmjs.com/package/rehype-cli
[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg
[backers-badge]: https://opencollective.com/unified/backers/badge.svg
[collective]: https://opencollective.com/unified
[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg
[chat]: https://github.com/rehypejs/rehype/discussions
[health]: https://github.com/rehypejs/.github
[security]: https://github.com/rehypejs/.github/blob/main/security.md
[contributing]: https://github.com/rehypejs/.github/blob/main/contributing.md
[support]: https://github.com/rehypejs/.github/blob/main/support.md
[coc]: https://github.com/rehypejs/.github/blob/main/code-of-conduct.md
[license]: https://github.com/rehypejs/rehype/blob/main/license
[author]: https://wooorm.com
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
[npm]: https://docs.npmjs.com/cli/install
[rehype]: https://github.com/rehypejs/rehype
[xss]: https://en.wikipedia.org/wiki/Cross-site_scripting
[rehype-core]: ../rehype/
[rehype-format]: https://github.com/rehypejs/rehype-format
[rehype-sanitize]: https://github.com/rehypejs/rehype-sanitize
[config-file]: https://github.com/unifiedjs/unified-engine/blob/main/readme.md#config-files
[ignore-file]: https://github.com/unifiedjs/unified-engine/blob/main/readme.md#ignore-files
[unified-args]: https://github.com/unifiedjs/unified-args#cli