Skip to content

Commit

Permalink
🎨 Improve HTML clipping siyuan-note/siyuan#13998
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed Feb 3, 2025
1 parent 8c6c2fe commit c7fe0a0
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 2 deletions.
21 changes: 21 additions & 0 deletions h2m.go
Original file line number Diff line number Diff line change
Expand Up @@ -1052,6 +1052,27 @@ func (lute *Lute) genASTByDOM(n *html.Node, tree *parse.Tree) {
return
}

if "tip" == class {
// 转换为行级备注 https://github.com/siyuan-note/siyuan/issues/13998
if nil != tree.Context.Tip.LastChild && ast.NodeText == tree.Context.Tip.LastChild.Type {
tree.Context.Tip.LastChild.Type = ast.NodeTextMark
tree.Context.Tip.LastChild.TextMarkType = "inline-memo"
tree.Context.Tip.LastChild.TextMarkTextContent = tree.Context.Tip.LastChild.TokensStr()
tree.Context.Tip.LastChild.TextMarkInlineMemoContent = util.DomText(n)
return
}
}

if title := strings.TrimSpace(util.DomAttrValue(n, "title")); "" != title {
// 转换为行级备注 https://github.com/siyuan-note/siyuan/issues/13998
node.Type = ast.NodeTextMark
node.TextMarkType = "inline-memo"
node.TextMarkTextContent = util.DomText(n)
node.TextMarkInlineMemoContent = title
tree.Context.Tip.AppendChild(node)
return
}

// Improve inline elements pasting https://github.com/siyuan-note/siyuan/issues/11740
dataType := util.DomAttrValue(n, "data-type")
dataType = strings.Split(dataType, " ")[0] // 简化为只处理第一个类型
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{

{"214", "<p>foo<span class=\"zhushi\">content1<span class=\"tip\">content1 memo</span></span><span class=\"zhushi\" title=\"content2 memo\">content2</span>bar</p>", "foo<span data-type=\"inline-memo\" data-inline-memo-content=\"content1 memo\">content1</span><span data-type=\"inline-memo\" data-inline-memo-content=\"content2 memo\">content2</span>bar\n"},
{"213", "<div id=\"readability-page-1\" class=\"page\">\n <div class=\"Post-RichTextContainer\">\n <div class=\"css-1od93p9\">\n <div class=\"css-376mun\">\n <div class=\"RichText ztext Post-RichText css-ob6uua\" options=\"[object Object]\"><p data-pid=\"rfr-9chG\">\n foo</p>\n <p data-pid=\"JHk7pnaF\"><span class=\"ztext-math\" data-eeimg=\"1\"\n data-tex=\"\\mathbf{C}_{i,j,k}=\\mathbf{R}^{n}\\cdot\\mathbf{I}^{-1}\\cdot\\mathbf{\\hat{P}}_{i, j,k}+\\mathbf{T}^{n}, \\tag{1}\"><span></span><span><span\n class=\"MathJax_Preview\"></span><span class=\"MathJax_SVG_Display\"><span class=\"MathJax_SVG\"\n id=\"MathJax-Element-12-Frame\"\n tabindex=\"0\"\n data-mathml=\"<math xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot; display=&quot;block&quot;><mtable displaystyle=&quot;true&quot;><mlabeledtr><mtd><mtext>(1)</mtext></mtd><mtd><msub><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;bold&quot;>C</mi></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><msup><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;bold&quot;>R</mi></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>n</mi></mrow></msup><mo>&amp;#x22C5;</mo><msup><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;bold&quot;>I</mi></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mo>&amp;#x2212;</mo><mn>1</mn></mrow></msup><mo>&amp;#x22C5;</mo><msub><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mover><mi mathvariant=&quot;bold&quot;>P</mi><mo mathvariant=&quot;bold&quot; stretchy=&quot;false&quot;>&amp;#x005E;</mo></mover></mrow></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>+</mo><msup><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi mathvariant=&quot;bold&quot;>T</mi></mrow><mrow class=&quot;MJX-TeXAtom-ORD&quot;><mi>n</mi></mrow></msup><mo>,</mo></mtd></mlabeledtr></mtable></math>\"\n role=\"presentation\"><span\n class=\"MJX_Assistive_MathML MJX_Assistive_MathML_Block\" role=\"presentation\"><math\n xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><mtable displaystyle=\"true\"><mlabeledtr><mtd><mtext>(1)</mtext></mtd><mtd><msub><mrow\n class=\"MJX-TeXAtom-ORD\"><mi mathvariant=\"bold\">C</mi></mrow><mrow class=\"MJX-TeXAtom-ORD\"><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><msup><mrow\n class=\"MJX-TeXAtom-ORD\"><mi mathvariant=\"bold\">R</mi></mrow><mrow class=\"MJX-TeXAtom-ORD\"><mi>n</mi></mrow></msup><mo>⋅</mo><msup><mrow\n class=\"MJX-TeXAtom-ORD\"><mi mathvariant=\"bold\">I</mi></mrow><mrow class=\"MJX-TeXAtom-ORD\"><mo>−</mo><mn>1</mn></mrow></msup><mo>⋅</mo><msub><mrow\n class=\"MJX-TeXAtom-ORD\"><mrow class=\"MJX-TeXAtom-ORD\"><mover><mi mathvariant=\"bold\">P</mi><mo\n mathvariant=\"bold\" stretchy=\"false\">^</mo></mover></mrow></mrow><mrow\n class=\"MJX-TeXAtom-ORD\"><mi>i</mi><mo>,</mo><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>+</mo><msup><mrow\n class=\"MJX-TeXAtom-ORD\"><mi mathvariant=\"bold\">T</mi></mrow><mrow class=\"MJX-TeXAtom-ORD\"><mi>n</mi></mrow></msup><mo>,</mo></mtd></mlabeledtr></mtable></math></span></span></span><script\n type=\"math/tex;mode=display\" id=\"MathJax-Element-12\">\\mathbf{C}_{i,j,k}=\\mathbf{R}^{n}\\cdot\\mathbf{I}^{-1}\\cdot\\mathbf{\\hat{P}}_{i, j,k}+\\mathbf{T}^{n}, \\tag{1}</script><span\n class=\"tex2jax_ignore math-holder\">\\mathbf{C}_{i,j,k}=\\mathbf{R}^{n}\\cdot\\mathbf{I}^{-1}\\cdot\\mathbf{\\hat{P}}_{i, j,k}+\\mathbf{T}^{n}, \\tag{1}</span></span></span>\n </p>\n <p data-pid=\"4lABtjNu\">bar</p></div>\n </div>\n </div>\n </div>\n <div role=\"button\" tabindex=\"0\" class=\"ContentItem-time\"><p>编辑于 2024-01-10 10:41</p><!-- --><p>・IP 属地上海</p>\n </div>\n <div class=\"PostIndex-Contributions\"><h3 class=\"BlockTitle\">内容所属专栏</h3>\n <ul class=\"css-zein01\">\n <div>\n <div class=\"ContentItem Column-ColumnItem\">\n <div class=\"ContentItem-main\">\n <div class=\"ContentItem-image\"><a class=\"ColumnLink\"\n href=\"https://www.zhihu.com/column/c_1722981294831661056\"><p>\n <img class=\"Avatar css-1u7r5c9\"\n src=\"https://pic1.zhimg.com/v2-f111d7ee1c41944859e975a712c0883b_l.jpg?source=172ae18b\"\n srcset=\"https://pic1.zhimg.com/v2-f111d7ee1c41944859e975a712c0883b_l.jpg?source=172ae18b 2x\"\n alt=\"自动驾驶与多模态大模型\"></p></a></div>\n <div class=\"ContentItem-head\">\n <h2 class=\"ContentItem-title\"><span><a class=\"ColumnLink ColumnItem-Title\"\n href=\"https://www.zhihu.com/column/c_1722981294831661056\"><p>自动驾驶与多模态大模型</p></a></span>\n </h2>\n <p>介绍自动驾驶与多模态大模型结合的文章</p></div>\n </div>\n </div>\n </div>\n </ul>\n </div>\n <div class=\"Post-topicsAndReviewer\">\n <div class=\"TopicList Post-Topics\">\n <div class=\"Tag Topic css-ch8ocw\" data-za-detail-view-path-module=\"TopicItem\"\n data-za-extra-module=\"{&quot;card&quot;:{&quot;content&quot;:{&quot;type&quot;:&quot;Topic&quot;,&quot;token&quot;:&quot;25824334&quot;}}}\">\n <p><span class=\"Tag-content\"><a class=\"TopicLink\" href=\"https://www.zhihu.com/topic/25824334\"\n target=\"_blank\"></a></span></p>\n <p><a class=\"TopicLink\" href=\"https://www.zhihu.com/topic/25824334\" target=\"_blank\">自动驾驶技术</a></p>\n <p></p></div>\n <div class=\"Tag Topic css-ch8ocw\" data-za-detail-view-path-module=\"TopicItem\"\n data-za-extra-module=\"{&quot;card&quot;:{&quot;content&quot;:{&quot;type&quot;:&quot;Topic&quot;,&quot;token&quot;:&quot;26637029&quot;}}}\">\n <p><span class=\"Tag-content\"><a class=\"TopicLink\" href=\"https://www.zhihu.com/topic/26637029\"\n target=\"_blank\"></a></span></p>\n <p><a class=\"TopicLink\" href=\"https://www.zhihu.com/topic/26637029\" target=\"_blank\">BEV感知</a></p>\n <p></p></div>\n </div>\n </div>\n</div>", "foo\n\n$$\n\\mathbf{C}_{i,j,k}=\\mathbf{R}^{n}\\cdot\\mathbf{I}^{-1}\\cdot\\mathbf{\\hat{P}}_{i, j,k}+\\mathbf{T}^{n}, \\tag{1}\n$$\n\n\nbar\n\n\n\n\n\n编辑于 2024-01-10 10:41\n\n・IP 属地上海\n\n\n### 内容所属专栏\n\n[![自动驾驶与多模态大模型](https://pic1.zhimg.com/v2-f111d7ee1c41944859e975a712c0883b_l.jpg?source=172ae18b)](https://www.zhihu.com/column/c_1722981294831661056)\n\n## [自动驾驶与多模态大模型](https://www.zhihu.com/column/c_1722981294831661056)\n\n介绍自动驾驶与多模态大模型结合的文章\n\n\n[自动驾驶技术](https://www.zhihu.com/topic/25824334)\n\n\n[BEV 感知](https://www.zhihu.com/topic/26637029)\n"},
{"212", "<p>foo <img draggable=\"false\" class=\"emoji\" alt=\"❓\" src=\"https://twemoji.maxcdn.com/v/14.0.2/72x72/2753.png\"> bar</p>", "foo ❓ bar\n"},
{"211", "<pre><textarea></textarea><span class=\"copyTooltip\" style=\"display: inline;\"><img src=\"https://learnblockchain.cn/css/default/copy.svg\"></span><code class=\"language-go hljs\"><span class=\"hljs-keyword\">type</span> PurchaseOrder <span class=\"hljs-keyword\">struct</span> { \n Id <span class=\"hljs-type\">uint</span> <span class=\"hljs-string\">`json:\"id\" gorm:\"primaryKey\"`</span> \n UserId <span class=\"hljs-type\">string</span> <span class=\"hljs-string\">`json:\"userId\"`</span> \n Product []Product <span class=\"hljs-string\">`json:\"product\" gorm:\"foreignKey:Id\"`</span> \n Date time.Time <span class=\"hljs-string\">`json:\"date\"`</span> \n}\n</code></pre>", "```go\ntype PurchaseOrder struct { \n Id uint `json:\"id\" gorm:\"primaryKey\"` \n UserId string `json:\"userId\"` \n Product []Product `json:\"product\" gorm:\"foreignKey:Id\"` \n Date time.Time `json:\"date\"` \n}\n```\n"},
Expand Down

0 comments on commit c7fe0a0

Please sign in to comment.