跳到正文
cccskills
免费在 GitHub 公开

html-to-markdown-extracting-metadata

Use when extracting metadata from HTML — title, description, language, Open Graph, JSON-LD / Microdata / RDFa, headers, links, and images. Covers the --json output shape and the --extract-metadata flag.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown星标 885(GitHub 885 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(8)

  • SKILL.md4.1 KB
  • index.md496 B
  • references/cli-reference.md18.5 KB
  • references/configuration.md18.8 KB
  • references/other-bindings.md12.3 KB
  • references/python-api.md8.0 KB
  • references/rust-api.md10.5 KB
  • references/typescript-api.md6.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

<!-- AI-RULEZ :: GENERATED FILE — DO NOT EDIT Content-Hash: blake3:008ee34eae3d73ceed0d8a9c7fdb8ae8562558ccef3be60bac93f03dbf362e29 Source-Hash: blake3:4237e14c4d547597faf915235dde5b5d71e8c9d84681d23919d03302b738a0b4 Schema-Version: v1 -->

Extracting metadata

Use this when the user wants structured metadata out of HTML rather than (or in addition to) the Markdown body — page title, description, language, Open Graph tags, structured data, the heading outline, links, or image references.

Metadata lives in result.metadata and is surfaced on the CLI through --json. On the CLI, metadata extraction is opt-in: pass --extract-metadata alongside --json, otherwise result.metadata comes back empty (document.title is null, headers/links/images/structured_data are []). The library convert() call extracts metadata by default (extract_metadata=True) — that default is a property of the API, not the CLI. There are no per-field extraction flags: --extract-metadata populates all sub-fields below at once.

Get all metadata

html-to-markdown --json --extract-metadata input.html | jq '.metadata'

# Extraction-only (skip the Markdown body)
html-to-markdown --json --extract-metadata --no-content input.html | jq '.metadata'

Metadata sub-fields

{
  "metadata": {
    "document": { "title": "...", "description": "...", "language": "en", "open_graph": {"title": "..."} },
    "headers": [ { "level": 1, "text": "Main Heading" } ],
    "links":   [ { "href": "https://example.com", "link_type": "external" } ],
    "images":  [ { "src": "photo.jpg", "alt": "A photo", "image_type": "external" } ],
    "structured_data": [ /* JSON-LD, Microdata, RDFa blocks */ ]
  }
}

Metadata flag

There is one metadata flag: --extract-metadata. With --json set it populates all sub-fields above (document, headers, links, images, structured_data) under result.metadata — select what you need with jq.

FlagEffect
--extract-metadataWith --json: populate result.metadata. In plain-text mode (no --json): prepend title + meta tags as a YAML frontmatter block (----delimited) at the top of the Markdown output
# Pull just the document-level metadata and the heading outline
html-to-markdown --json --extract-metadata --no-content input.html \
  | jq '{title: .metadata.document.title, lang: .metadata.document.language, outline: [.metadata.headers[].text]}'

Common queries

# Title + canonical language
html-to-markdown --json --extract-metadata input.html | jq '{title: .metadata.document.title, lang: .metadata.document.language}'

# External links only
html-to-markdown --json --extract-metadata input.html | jq '[.metadata.links[] | select(.link_type == "external") | .href]'

# Open Graph card
html-to-markdown --json --extract-metadata input.html | jq '.metadata.document.open_graph'

# JSON-LD blocks
html-to-markdown --json --extract-metadata input.html | jq '.metadata.structured_data'

Programmatic access

from html_to_markdown import convert

html = """
<html lang="en">
<head><title>My Article</title></head>
<body>
<h1>Main Heading</h1>
<a href="https://example.com">External link</a>
<img src="photo.jpg" alt="A photo">
</body>
</html>
"""
result = convert(html)
meta = result.metadata
print(meta.document.title)        # "My Article"
print(meta.document.language)     # "en"
print(meta.headers[0].text)       # "Main Heading"
print(meta.links[0].link_type)    # "external"
print(meta.images[0].alt)         # "A photo"

Metadata is available from the single convert() call in Python, Rust, Go, Ruby, and Elixir; in TypeScript read it off the returned result object. In Rust it requires the metadata feature (on by default).

See references/cli-reference.md (Metadata section) and references/configuration.md for field details.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

api

免费

Use html-to-markdown-rs api reference documentation.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

cli

免费

Use html-to-markdown-rs cli reference documentation.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

Convert HTML to Markdown, Djot, or plain text with structured extraction. Use when writing code that calls html-to-markdown APIs in Rust, Python, TypeScript, Go, Ruby, PHP, Java, C#, Elixir, R, C, or WASM. Covers installation, conversion, configuration, metadata extraction, tables, document structure, inline images, URL fetching, and CLI usage.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

Use when converting HTML to Markdown, Djot, or plain text. Covers output formats, heading and code-block styles, lists, escaping, wrapping, and HTML preprocessing.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

Use when extracting tabular data from HTML. Covers GFM Markdown tables, the structured tables array (grid cells plus pre-rendered markdown), and HTML line breaks in table cells.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

Use when fetching a live URL and converting it to Markdown. Covers --url, custom user agents, preprocessing for noisy pages, and the --json ConversionResult shape.

中文简介正在准备中。当前显示原文说明。

xberg-io/html-to-markdown8852026年10月26日 更新

查看 xberg-io 的全部技能

报告此技能的问题