Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaywcjlove/html-to-markdown-cli
Command line tool that converts HTML to markdown.
https://github.com/jaywcjlove/html-to-markdown-cli
htmltomarkdown markdown
Last synced: 2 days ago
JSON representation
Command line tool that converts HTML to markdown.
- Host: GitHub
- URL: https://github.com/jaywcjlove/html-to-markdown-cli
- Owner: jaywcjlove
- License: mit
- Created: 2022-04-25T04:17:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-26T22:43:45.000Z (7 months ago)
- Last Synced: 2024-10-29T11:10:43.749Z (3 months ago)
- Topics: htmltomarkdown, markdown
- Language: JavaScript
- Homepage: https://jaywcjlove.github.io/html-to-markdown-cli
- Size: 236 KB
- Stars: 74
- Watchers: 4
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
`@wcj/html-to-markdown`
===[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)
[![CI](https://github.com/jaywcjlove/html-to-markdown-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/jaywcjlove/html-to-markdown-cli/actions/workflows/ci.yml)
[![NPM @wcj/html-to-markdown version](https://img.shields.io/npm/v/@wcj/html-to-markdown.svg?style=flat)](https://npmjs.org/package/@wcj/html-to-markdown)
[![NPM @wcj/html-to-markdown-cli version](https://img.shields.io/npm/v/@wcj/html-to-markdown-cli.svg?style=flat&label=@wcj/html-to-markdown-cli)](https://npmjs.org/package/@wcj/html-to-markdown-cli)HTML conversion tool to markdown. Command line tool => [`@wcj/html-to-markdown-cli`](https://npmjs.com/@wcj/html-to-markdown-cli).
## Installation
This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c): Node 14+ is needed to use it and it must be import instead of require.
```bash
npm i @wcj/html-to-markdown
```Command line tool
```shell
$ npx @wcj/html-to-markdown-cli ./html/index.html
# 🌐 Request: /Users/xxx/index.html
# 🎉 Compliled successfully!
# ╰┈ Output: /Users/xxx/dist/index.md$ npx @wcj/html-to-markdown-cli https://jaywcjlove.github.io/idoc/
# 🌐 Request: https://jaywcjlove.github.io/idoc/
# 🎉 Compliled successfully!
# ╰┈ Output: /Users/xxx/dist/idoc.md# Or
$ sudo npm i @wcj/html-to-markdown-cli -g
$ html-to-markdown ./html/index.html
# 🌐 Request: /Users/xxx/html/index.html
# 🎉 Compliled successfully!
# ╰┈ Output: /Users/xxx/html/dist/index.md$ html-to-markdown https://jaywcjlove.github.io/idoc/
# 🌐 Request: https://jaywcjlove.github.io/idoc/
# 🎉 Compliled successfully!
# ╰┈ Output: /Users/xxx/dist/idoc.md
```Command Help
```bash
Usage: html-to-markdown [options] [--help|h] [--version|v]Passing "-" as the first arg will take input from STDIN
Options:
-v, --version, Show version number
-h, --help, Displays help information.
-o, --output , Output directory. defalut(dist)
-s, --stdout, Output to stdoutExample:
html-to-markdown ./html/index.html
html-to-markdown https://jaywcjlove.github.io/idoc/
html-to-markdown --output="dist"
echo "hello world
"| html-to-markdown - --stdout
```Support Config
In the project's root directory, add a `.htm2mdrc.js` file with the following configuration to enable the [rehype](https://github.com/rehypejs/rehype/blob/main/doc/plugins.md#list-of-plugins) and [remark](https://github.com/remarkjs/remark/blob/main/doc/plugins.md#list-of-plugins) plugins.
```js
/**
* @typedef {import("@wcj/html-to-markdown").Options} Options
* @type {Options}
**/
export default {
rehypeParseOption: {},
rehypePlugins: [],
remarkPlugins: [],
};
```## Usage
```js
import htmlToMarkdown from '@wcj/html-to-markdown';htmlToMarkdown({ html: '
Markdown String
' });
// => # Markdown String
```## API
```ts
import { PluggableList } from 'unified';
import { Options as RehypeParseOptions } from 'rehype-parse';
declare type Options = {
html?: string;
url?: string;
rehypeParseOption?: RehypeParseOptions;
/**
* List of [remark plugins](https://github.com/remarkjs/remark/blob/main/doc/plugins.md#list-of-plugins) to use.
* See the next section for examples on how to pass options
*/
remarkPlugins?: PluggableList;
/**
* List of [rehype plugins](https://github.com/rehypejs/rehype/blob/main/doc/plugins.md#list-of-plugins) to use.
* See the next section for examples on how to pass options
*/
rehypePlugins?: PluggableList;
};
export default function htmlToMarkdown(options?: Options): Promise;
```## Development
```bash
$ npm i
$ npm install --workspaces
$ npm run build
$ npm run build:cli
```## Related
- [markdown-to-html-cli](https://github.com/jaywcjlove/markdown-to-html-cli) Command line tool that converts markdown to HTML.
## Contributors
As always, thanks to our amazing contributors!
Made with [contributors](https://github.com/jaywcjlove/github-action-contributors).
## License
Licensed under the [MIT License](https://opensource.org/licenses/MIT).