jira-adf/html-to-adf
Composer 安装命令:
composer require jira-adf/html-to-adf
包简介
Convert HTML, Markdown, and Plain Text to Atlassian Document Format (ADF)
README 文档
README
A PHP library to convert HTML, Markdown, and Plain Text into Atlassian Document Format (ADF) — compatible with Jira & Confluence.
Features
- Recursive HTML parsing via DOM
- Headings, Paragraphs, Emphasis, Strong, Links, Lists, Code Blocks, Tables, Images
- Markdown-to-ADF using
league/commonmark - Plain text support
- Pluggable converter architecture
- Composer-based install
- Testable, extensible & PSR-compliant
Installation
composer require your-vendor/html-to-adf
Usage
Initialize ConverterManager and register converters
use HtmlToAdf\ConverterManager; use HtmlToAdf\Converters\HtmlConverter; use HtmlToAdf\Converters\MarkdownConverter; use HtmlToAdf\Converters\PlainTextConverter; $manager = new ConverterManager(); $manager->registerConverter(new HtmlConverter()); $manager->registerConverter(new MarkdownConverter()); $manager->registerConverter(new PlainTextConverter());
Convert HTML
$html = '<h2>Hello</h2><p>This is a <strong>test</strong>.</p>'; $adf = $manager->convert('html', $html); print_r($adf);
Convert Markdown
$markdown = "## Hello\nThis is a **test**."; $adf = $manager->convert('markdown', $markdown); print_r($adf);
Convert Plain Text
$text = "Just a simple paragraph."; $adf = $manager->convert('text', $text); print_r($adf);
ADF Output Example
Input:
<p>Hello <strong>world</strong>!</p>
Output:
{
"version": 1,
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{ "type": "text", "text": "Hello " },
{
"type": "text",
"text": "world",
"marks": [{ "type": "strong" }]
},
{ "type": "text", "text": "!" }
]
}
]
}
Architecture
| Component | Description |
|---|---|
ConverterManager |
Manages format dispatching to converters |
ConverterInterface |
Interface for pluggable format converters |
HtmlConverter |
Parses DOM and builds ADF recursively |
MarkdownConverter |
Uses CommonMark, then delegates to HTML |
PlainTextConverter |
Wraps text in paragraph ADF structure |
AdfNodeBuilder |
(Optional) Helps build consistent ADF output |
Author
Cem Açar
cemacar03@gmail.com
License
Licensed under the MIT License.
统计信息
- 总下载量: 562
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-27