Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tim-gromeyer/html2md
Transform your HTML into clean, easy-to-read markdown with html2md.
https://github.com/tim-gromeyer/html2md
cpp-library cpp17 html html-to-markdown html2markdown html2md html5 markdown python3
Last synced: 2 months ago
JSON representation
Transform your HTML into clean, easy-to-read markdown with html2md.
- Host: GitHub
- URL: https://github.com/tim-gromeyer/html2md
- Owner: tim-gromeyer
- License: mit
- Created: 2022-10-02T18:35:52.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-23T18:49:44.000Z (3 months ago)
- Last Synced: 2024-09-30T00:04:29.869Z (2 months ago)
- Topics: cpp-library, cpp17, html, html-to-markdown, html2markdown, html2md, html5, markdown, python3
- Language: C++
- Homepage: https://tim-gromeyer.github.io/html2md/
- Size: 1.08 MB
- Stars: 21
- Watchers: 1
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: COPYING
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- project-awesome - tim-gromeyer/html2md - Transform your HTML into clean, easy-to-read markdown with html2md. (C++)
README
# html2md
Transform your HTML into clean, easy-to-read markdown with html2md
## Table of Contents
- [What does it do](#what-does-it-do)
- [How to use this library](#how-to-use-this-library)
- [Supported Tags](#supported-tags)
- [Bindings](#bindings)
- [Requirements](#requirements)
- [License](#license)## What does it do
html2md is a fast and reliable C++ library for converting HTML content into markdown. It offers support for a wide range of HTML tags, including those for formatting text, creating lists, and inserting images and links. In addition, html2md is the only HTML to markdown converter that offers support for **table formatting**, making it a valuable tool for users who need to convert HTML tables into markdown.
## How to use this library
### CMake
Install html2md. Use eighter the prebild packages from [GitHub releases](https://github.com/tim-gromeyer/html2md/releases) or build and install it yourself.
Afterwards:
```cmake
find_package(html2md)
target_link_library(your_target PRIVATE html2md)
```### Manually
To use html2md, follow these steps:
1. Clone the library: `git clone https://github.com/tim-gromeyer/html2md`
2. Add the files `include/html2md.h` and `src/html2md.cpp` to your project
3. Include the `html2md.h` header in your code
4. Use the `html2md::Convert` function to convert your HTML content into markdownHere is an example of how to use the `html2md::Convert` function:
```cpp
#include//...
std::cout << html2md::Convert("
foo
"); // # foo
```## Supported Tags
html2md supports the following HTML tags:
| Tag | Description | Comment |
|--------------|--------------------|-----------------------------------------------------|
| `a` | Anchor or link | Supports the `href`, `name` and `title` attributes. |
| `b` | Bold | |
| `blockquote` | Indented paragraph | |
| `br` | Line break | |
| `cite` | Inline citation | Same as `i`. |
| `code` | Code | |
| `dd` | Definition data | |
| `del` | Strikethrough | |
| `dfn` | Definition | Same as `i`. |
| `div` | Document division | |
| `em` | Emphasized | Same as `i`. |
| `h1` | Level 1 heading | |
| `h2` | Level 2 heading | |
| `h3` | Level 3 heading | |
| `h4` | Level 4 heading | |
| `h5` | Level 5 heading | |
| `h6` | Level 6 heading | |
| `head` | Document header | Ignored. |
| `hr` | Horizontal line | |
| `i` | Italic | |
| `img` | Image | Supports `src`, `alt`, `title` attributes. |
| `li` | List item | |
| `meta` | Meta-information | Ignored. |
| `ol` | Ordered list | |
| `p` | Paragraph | |
| `pre` | Preformatted text | Works only with `code`. |
| `s` | Strikethrough | Same as `del`. |
| `span` | Grouped elements | Does nothing. |
| `strong` | Strong | Same as `b`. |
| `table` | Table | Tables are formatted! |
| `tbody` | Table body | Does nothing. |
| `td` | Table data cell | Uses `align` from `th`. |
| `tfoot` | Table footer | Does nothing. |
| `th` | Table header cell | Supports the `align` attribute. |
| `thead` | Table header | Does nothing. |
| `title` | Document title | Same as `h1`. |
| `tr` | Table row | |
| `u` | Underlined | Uses HTML. |
| `ul` | Unordered list | |## Bindings
- [Python](python/README.md)
## Requirements
1. A compiler with **c++11** support like *g++>=9*
That's all!
## License
html2md is licensed under [The MIT License (MIT)](https://opensource.org/licenses/MIT)