# JohannesKaufmann/html-to-markdown

⚙️ Convert HTML to Markdown. Even works with entire websites and can be extended through rules.

Repository: https://github.com/JohannesKaufmann/html-to-markdown
Canonical: https://ross.abutalabs.com/products/html-to-markdown
Homepage: https://html-to-markdown.com
Language: Go
License: MIT
License Family: permissive
Topics: go, golang, html, html-to-markdown, markdown, converter, cli
Last push: 2026-08-03T10:11:00+00:00

## Health v2 (maintenance only)
Score: 89/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 95, release rhythm 75, longevity 100
- inputs: {"age_days": 3032, "days_push": 30, "days_rel": 87, "gap_med": 32.5, "n_releases_24m": 13}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3795, forks 219 (observed 2026-08-28T04:08:18.934029+00:00)

## What it is
A robust Go library and CLI that converts HTML (including entire websites) into clean, readable Markdown, with smart escaping and support for complex formatting like nested lists, tables, and code blocks. It is fully extendable through plugins and custom rules, and is also offered as an online demo and hosted REST API.

## Use cases
- convert html to markdown
- migrate a website to markdown files
- convert scraped html pages into markdown for llm ingestion
- turn html tables into markdown tables
- batch convert html documents to markdown from the command line
- clean up messy html into readable markdown

## When to choose
- you need accurate conversion of complex or nested HTML edge cases
- you want a Go library you can extend with custom conversion rules or plugins
- you need to convert entire websites, not just snippets
- you want smart escaping that only escapes when necessary

## When to avoid
- you need to convert Markdown back to HTML
- you work in a language other than Go and only need a simple one-off conversion
- you need a hosted service without self-integration (though a REST API exists, it is external to the library)

## Facets
- artifact type: library
- maturity: active
- function: parser, cli, plugin-system
- domain: developer-tools, web-development, documentation
- platform: go, cli, cross-platform
- tags: html-to-markdown, markdown-converter, converter, commonmark, web-scraping-adjacent

## Member repositories
- JohannesKaufmann/html-to-markdown (main) score 89

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:18.934029+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:26:56.890539+00:00, confidence not recorded.
  - readme: https://github.com/JohannesKaufmann/html-to-markdown (fetched 2026-08-28T04:08:18.934029+00:00, sha 69da26578ded)
  - homepage: https://html-to-markdown.com (fetched 2026-08-29T09:21:56.974842+00:00, sha c83d308f5971)
  - site_page: https://html-to-markdown.com/docs (fetched 2026-08-29T09:21:56.977740+00:00, sha 463897ac810a)
  - site_page: https://html-to-markdown.com/docs/backtick-in-code (fetched 2026-08-29T09:21:56.980986+00:00, sha 4d7609486ee3)
  - site_page: https://html-to-markdown.com/docs/heading-in-link (fetched 2026-08-29T09:21:56.982491+00:00, sha 13fde908b09c)
  - site_page: https://html-to-markdown.com/docs/multiline-link (fetched 2026-08-29T09:21:56.984068+00:00, sha dc270cdce81a)
  - site_page: https://html-to-markdown.com/docs/ordered-list-start (fetched 2026-08-29T09:21:56.985608+00:00, sha a7d6342c5d0e)
  - site_page: https://html-to-markdown.com/api (fetched 2026-08-29T09:21:56.979449+00:00, sha efdf4fd5e675)
- Data as of 2026-08-30T08:39:29.467469+00:00.
