Skip to content

Commit 4cc6092

Browse files
committed
feat: #63 confluence html table
1 parent 8fdb11d commit 4cc6092

File tree

5 files changed

+88
-11
lines changed

5 files changed

+88
-11
lines changed

app/Confluence.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use DOMDocument;
66
use DOMXPath;
7+
use League\HTMLToMarkdown\Converter\TableConverter;
78
use League\HTMLToMarkdown\HtmlConverter;
89

910
class Confluence
@@ -17,6 +18,7 @@ public function __construct(DOMDocument $document = null, HtmlConverter $htmlCon
1718
$this->document = $document ?? new DOMDocument();
1819
$this->htmlConverter = $htmlConverter ?? new HtmlConverter();
1920
$this->htmlConverter->getConfig()->setOption('strip_tags', true);
21+
$this->htmlConverter->getEnvironment()->addConverter(new TableConverter());
2022
}
2123

2224
public function parsePageHtml(string $filename, string $spaceName): array
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Tests\Unit;
4+
5+
use App\Confluence;
6+
use Tests\TestCase;
7+
8+
class ConfluenceIgnoreHtmlTest extends TestCase
9+
{
10+
public function testIgnoreRecentSpaceActivity()
11+
{
12+
$confluence = new Confluence();
13+
$markdown = file_get_contents($this->dataDir . 'confluence/recent-space-activity-demo.md');
14+
$newMarkdown = $confluence->htmlFile2Markdown($this->dataDir . 'confluence/recent-space-activity-demo.html');
15+
$this->assertEquals(trim($markdown), $newMarkdown);
16+
}
17+
18+
public function testIgnoreSpaceContributors()
19+
{
20+
$confluence = new Confluence();
21+
$markdown = file_get_contents($this->dataDir . 'confluence/space-contributors-demo.md');
22+
$newMarkdown = $confluence->htmlFile2Markdown($this->dataDir . 'confluence/space-contributors-demo.html');
23+
$this->assertEquals(trim($markdown), $newMarkdown);
24+
}
25+
}

tests/Unit/ConfluenceTest.php

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,19 +116,11 @@ public function testParseAttachmentsOfIndex()
116116
$this->assertEquals([], $attachments);
117117
}
118118

119-
public function testIgnoreRecentSpaceActivity()
119+
public function testTable()
120120
{
121121
$confluence = new Confluence();
122-
$markdown = file_get_contents($this->dataDir . 'confluence/recent-space-activity-demo.md');
123-
$newMarkdown = $confluence->htmlFile2Markdown($this->dataDir . 'confluence/recent-space-activity-demo.html');
124-
$this->assertEquals(trim($markdown), $newMarkdown);
125-
}
126-
127-
public function testIgnoreSpaceContributors()
128-
{
129-
$confluence = new Confluence();
130-
$markdown = file_get_contents($this->dataDir . 'confluence/space-contributors-demo.md');
131-
$newMarkdown = $confluence->htmlFile2Markdown($this->dataDir . 'confluence/space-contributors-demo.html');
122+
$markdown = file_get_contents($this->dataDir . 'confluence/table-demo.md');
123+
$newMarkdown = $confluence->htmlFile2Markdown($this->dataDir . 'confluence/table-demo.html');
132124
$this->assertEquals(trim($markdown), $newMarkdown);
133125
}
134126
}

tests/data/confluence/table-demo.html

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>table demo</title>
5+
<link rel="stylesheet" href="styles/site.css" type="text/css" />
6+
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
7+
</head>
8+
9+
<body class="theme-default aui-theme-default">
10+
<div id="page">
11+
<div id="main" class="aui-page-panel">
12+
<div id="main-header">
13+
<h1 id="title-heading" class="pagetitle">
14+
<span id="title-text">
15+
表格 demo
16+
</span>
17+
</h1>
18+
</div>
19+
20+
<div id="content" class="view">
21+
<div class="page-metadata">
22+
23+
Created and last modified by <span class='author'> Jim</span> on 十二月 18, 2019
24+
</div>
25+
<div id="main-content" class="wiki-content group">
26+
<p>hello</p>
27+
<p><strong>请求参数:</strong></p>
28+
<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th class="confluenceTh">参数名称</th><th class="confluenceTh">是否必传</th><th class="confluenceTh">说明</th></tr><tr><td class="confluenceTd">order_id</td><td class="confluenceTd"></td><td class="confluenceTd">申请单ID</td></tr></tbody></table></div><p> </p>
29+
30+
<p>返回参数说明:</p><div class="table-wrap">
31+
<table class="confluenceTable"><tbody><tr><th class="confluenceTh">参数名称</th><th class="confluenceTh">类型</th><th class="confluenceTh">说明</th></tr><tr><td class="confluenceTd">code</td><td class="confluenceTd"><span>string</span></td><td class="confluenceTd">申请单号 </td></tr><tr><td class="confluenceTd">created_at</td><td class="confluenceTd">datetime</td><td class="confluenceTd">申请时间 </td></tr><tr><td class="confluenceTd">images</td><td class="confluenceTd">list </td><td class="confluenceTd"> 图片</td></tr></tbody></table></div><p> </p>
32+
</div>
33+
34+
35+
36+
</div> </div>
37+
<div id="footer">
38+
<section class="footer-body">
39+
<p>Document generated by Confluence on 八月 07, 2021 16:56</p>
40+
</section>
41+
</div>
42+
</div> </body>
43+
</html>

tests/data/confluence/table-demo.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
hello
2+
3+
**请求参数:**
4+
5+
| 参数名称 | 是否必传 | 说明 |
6+
|---|---|---|
7+
| order\_id || 申请单ID |
8+
9+
返回参数说明:
10+
11+
| 参数名称 | 类型 | 说明 |
12+
|---|---|---|
13+
| code | string | 申请单号 |
14+
| created\_at | datetime | 申请时间 |
15+
| images | list | 图片 |

0 commit comments

Comments
 (0)