Skip to content

Commit

Permalink
🎨 Improve HTML code element clipping siyuan-note/siyuan#11401
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed May 16, 2024
1 parent 64b3876 commit d8fc401
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 3 deletions.
20 changes: 19 additions & 1 deletion h2m.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ func (lute *Lute) genASTByDOM(n *html.Node, tree *parse.Tree) {
if nil == n.PrevSibling || nil == n.NextSibling {
break
}

tree.Context.Tip.AppendChild(&ast.Node{Type: ast.NodeBr})
break
} else {
Expand Down Expand Up @@ -174,7 +175,24 @@ func (lute *Lute) genASTByDOM(n *html.Node, tree *parse.Tree) {
}
tree.Context.Tip.AppendChild(node)
case atom.P, atom.Div, atom.Section:
if lute.parentIs(n, atom.Table) || ast.NodeLink == tree.Context.Tip.Type {
if ast.NodeLink == tree.Context.Tip.Type {
break
}

if lute.parentIs(n, atom.Table) {
if nil == n.PrevSibling || nil == n.NextSibling {
break
}

if nil != n.PrevSibling && strings.Contains(n.PrevSibling.Data, "\n") {
break
}

if nil != n.NextSibling && strings.Contains(n.NextSibling.Data, "\n") {
break
}

tree.Context.Tip.AppendChild(&ast.Node{Type: ast.NodeBr})
break
}

Expand Down
2 changes: 1 addition & 1 deletion javascript/lute.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion javascript/lute.min.js.map

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions test/h2m_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (

var html2MdTests = []parseTest{

//{"105", "<table class=\"docutils align-default\"><thead><tr class=\"row-odd\"><th class=\"head\"><p>优势</p></th></tr></thead><tbody><tr class=\"row-even\"><td><div class=\"line-block\"><div class=\"line\">- Python的内置标准库</div><div class=\"line\">- 执行速度较快</div><div class=\"line\">- 容错能力强</div></div></td></tr></tbody></table>", "| 优势 |\n| ------------------------------------------------- |\n| - Python 的内置标准库<br />- 执行速度较快- 容错能力强 |\n"},
{"104", "<table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\">\n\n<th class=\"head\"><p>优势</p></th>\n\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\">\n\n<td><div class=\"line-block\">\n<div class=\"line\">- Python的内置标准库</div>\n<div class=\"line\">- 执行速度较快</div>\n<div class=\"line\">- 容错能力强</div>\n</div>\n</td>\n\n</tr>\n\n\n\n</tbody>\n</table>", "| 优势 |\n| ------------------------------------------------- |\n| - Python 的内置标准库<br />- 执行速度较快<br />- 容错能力强 |\n"},
{"103", "<code class=\"docutils literal notranslate\"><span class=\"pre\">BeautifulSoup(markup,</span> <span class=\"pre\">\"lxml\")</span></code>", "`BeautifulSoup(markup, \"lxml\")`\n"},
{"102", "<code><code class=\"idl\"><a data-link-type=\"idl\" href=\"#node\" id=\"ref-for-node③⑧\" aria-expanded=\"false\">Node</a></code> . <code class=\"idl\"><a data-link-type=\"idl\" href=\"#dom-node-element_node\" id=\"ref-for-dom-node-element_node①\">ELEMENT_NODE</a></code></code>", "[`Node`](#node) . [`ELEMENT_NODE`](#dom-node-element_node)\n"},
Expand Down

0 comments on commit d8fc401

Please sign in to comment.