HTML转MD(html2md)
简介
七牛云智能多媒体服务支持将 HTML 类型的资源转为 Markdown 文件并返回。该接口可对七牛云存储上的 HTML 资源进行在线转换,也可通过管道与其他数据处理接口搭配使用。
接口规格
注意: 接口规格不含任何空格与换行符。
html2md
该接口无额外参数,直接对输入的 HTML 内容进行转换。
请求
请求报文格式
GET <DownloadURI>?html2md HTTP/1.1
响应
响应报文格式
HTTP/1.1 200 OK
Content-Type: text/markdown
<Markdown 内容>
响应头部信息
| 头部名称 | 说明 |
|---|---|
| Content-Type | 转换成功时为 text/markdown;降级处理时为原始 MIME 类型 |
响应状态码
| 状态码 | 说明 |
|---|---|
| 200 | 转换成功,或触发降级处理时原样返回输入内容 |
| 570 | 读取输入源失败 |
附注
支持的输入类型
输入 MIME 类型须为 text/html(含 charset 参数,如 text/html; charset=utf-8)。若输入非 text/html 类型,将原样返回输入内容。
支持的 HTML 元素
| HTML 元素 | 转换结果 |
|---|---|
<h1> - <h6> |
# - ######(ATX 风格标题) |
<p> |
段落 |
<strong> / <b> |
**加粗** |
<em> / <i> |
*斜体* |
<a href="url"> |
[文字](url) |
<img src="url" alt="描述"> |
 |
<ul> / <ol> |
无序列表 (-) / 有序列表 (1.) |
<code> / <var> / <samp> / <kbd> / <tt> |
`行内代码` |
<pre><code> |
围栏代码块(支持 language-xxx 语言标识) |
<blockquote> |
> 引用 |
<table> |
Markdown 表格 |
<hr> |
* * *(分隔线) |
<br> |
两个空格 + 换行 |
以下 HTML 元素会被完全移除(连同其内容):
<head>、<script>、<style>、<link>、<meta>、<iframe>、<noscript>、<input>、<textarea>、HTML 注释。
降级处理
该服务对异常情况采用降级策略,不会返回错误,而是原样返回输入内容:
| 场景 | 行为 |
|---|---|
输入 MIME 类型非 text/html |
原样返回输入 |
| 输入大小超过限制(默认 2MB) | 原样返回输入 |
| 转换超时(默认 30 秒) | 原样返回输入 |
| 转换过程中出错 | 原样返回输入 |
仅在无法读取输入源时返回错误码 570。
计量说明
该接口采用按次计量方式,仅对实际执行转换处理的请求进行计量。降级场景不计量。
注: beta测试阶段暂不收费。
示例
示例 1:基本转换
输入 HTML:
<h1>标题</h1>
<p>这是一段<strong>加粗</strong>和<em>斜体</em>文字。</p>
<a href="https://example.com">链接</a>
返回 Markdown:
# 标题
这是一段**加粗**和*斜体*文字。
[链接](https://example.com)
示例 2:列表与代码
输入 HTML:
<ul>
<li>项目 1</li>
<li>项目 2</li>
</ul>
<pre><code class="language-python">
def hello():
print("world")
</code></pre>
返回 Markdown:
- 项目 1
- 项目 2
```python
def hello():
print("world")
```
示例 3:表格
输入 HTML:
<table>
<thead>
<tr><th>姓名</th><th>年龄</th></tr>
</thead>
<tbody>
<tr><td>Alice</td><td>30</td></tr>
<tr><td>Bob</td><td>25</td></tr>
</tbody>
</table>
返回 Markdown:
| 姓名 | 年龄 |
| --- | --- |
| Alice | 30 |
| Bob | 25 |
操作方式
html2md 支持以下两种调用方式:
| 操作方式 | 说明 |
|---|---|
| 持久化处理 | 上传时触发(persistentOps)或对已有资源手动触发 pfop |
| 同步处理 | 对资源 URL 直接拼接接口规格进行即时转换 |
管道调用
html2md 可作为管道中的下游处理节点,与其他数据处理接口组合使用:
?cmds=<上游接口规格>|html2md&url=<资源URL>
例如,先由上游接口输出 HTML 内容,再通过 html2md 转为 Markdown。
文档反馈
(如有产品使用问题,请 提交工单)