From html-to-markdown
Extracts tabular data from HTML into GFM Markdown tables and structured grid cells, with <br> handling and programmatic access via Python/TypeScript.
How this skill is triggered — by the user, by Claude, or both
Slash command
/html-to-markdown:extracting-tablesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this when the user wants tabular data out of HTML — pricing tables, data
Use this when the user wants tabular data out of HTML — pricing tables, data
grids, spec sheets. html-to-markdown parses <table> elements into two
surfaces at once: inline GFM Markdown tables in the content stream, and a
structured tables array in the JSON output.
# Inline GFM tables appear in the Markdown body
html-to-markdown input.html
# Structured table data appears under result.tables (JSON)
html-to-markdown --json input.html | jq '.tables'
content — | col | col | blocks, good for LLM
ingestion and human reading.tables array — each entry has a markdown field
(pre-rendered) and a grid of structured cells (rows × cols). Use this when
downstream code needs exact cell access.Both are populated from the same parse; you do not need a flag to enable table parsing.
When you only care about tables (not the Markdown body):
html-to-markdown --json --no-content input.html | jq '.tables'
# How many tables, and the row count of each
html-to-markdown --json input.html \
| jq '.tables | to_entries | map({index: .key, rows: (.value.grid | length)})'
# Just the rendered markdown of the first table
html-to-markdown --json input.html | jq -r '.tables[0].markdown'
By default <br> inside a cell is converted to a space. Keep hard breaks:
html-to-markdown input.html --br-in-tables
from html_to_markdown import convert
result = convert(html)
for table in result.tables:
print(table.markdown) # rendered GFM markdown
print(table.grid[0][0]) # first cell
import { convert } from "@kreuzberg/html-to-markdown";
// Node's convert() returns a JSON string — JSON.parse() it first.
const result = JSON.parse(convert(html));
for (const table of result.tables) {
console.log(table.markdown);
}
result.warnings
(or --show-warnings) for non-fatal issues.See ../html-to-markdown/references/cli-reference.md (Tables section) for the
full flag set.
npx claudepluginhub xberg-io/plugins --plugin html-to-markdownMines projects and conversations into a searchable memory palace. Activates on queries about MemPalace, memory palace, mining, searching, palace setup, wings, rooms, drawers, or recalling past work.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.