@@ -55,7 +55,8 @@ var meaningfulWhenBlankElements = [
5555] ;
5656
5757function isMeaningfulWhenBlank ( node ) {
58- return is ( node , meaningfulWhenBlankElements )
58+ // Certain standard HTML tags, plus any custom tag, are meaningful when blank.
59+ return is ( node , meaningfulWhenBlankElements ) || node . nodeName . includes ( '-' )
5960}
6061
6162function hasMeaningfulWhenBlank ( node ) {
@@ -77,7 +78,7 @@ function has (node, tagNames) {
7778
7879function Node ( node , options ) {
7980 node . isBlock = isBlock ( node ) ;
80- node . isCode = node . nodeName === 'CODE' || node . nodeName === 'WC-MERMAID' || node . parentNode . isCode ;
81+ node . isCode = node . nodeName === 'CODE' || node . nodeName === 'WC-MERMAID' || node . nodeName === 'GRAPHVIZ-GRAPH' || node . parentNode . isCode ;
8182 node . isBlank = isBlank ( node ) ;
8283 node . flankingWhitespace = flankingWhitespace ( node , options ) ;
8384 // When true, this node will be rendered as pure Markdown; false indicates it
@@ -132,7 +133,8 @@ function isBlank (node) {
132133 ! isMeaningfulWhenBlank ( node ) &&
133134 / ^ \s * $ / i. test ( node . textContent ) &&
134135 ! hasVoid ( node ) &&
135- ! hasMeaningfulWhenBlank ( node )
136+ ! hasMeaningfulWhenBlank ( node ) &&
137+ ( node . childNodes === undefined || node . childNodes . length === 0 )
136138 )
137139}
138140
@@ -773,7 +775,7 @@ function collapseWhitespace (options) {
773775 var isBlock = options . isBlock ;
774776 var isVoid = options . isVoid ;
775777 var isPre = options . isPre || function ( node ) {
776- return node . nodeName === 'PRE' || node . nodeName === 'WC-MERMAID'
778+ return node . nodeName === 'PRE' || node . nodeName === 'WC-MERMAID' || node . nodeName === 'GRAPHVIZ-GRAPH'
777779 } ;
778780 var renderAsPure = options . renderAsPure ;
779781
@@ -1222,7 +1224,7 @@ TurndownService.prototype = {
12221224
12231225// These HTML elements are considered block nodes, as opposed to inline nodes. It's based on the Commonmark spec's selection of [HTML blocks](https://spec.commonmark.org/0.31.2/#html-blocks).
12241226const blockNodeNames = new Set ( [
1225- 'PRE' , 'SCRIPT' , 'STYLE' , 'TEXTAREA' , 'ADDRESS' , 'ARTICLE' , 'ASIDE' , 'BASE' , 'BASEFONT' , 'BLOCKQUOTE' , 'BODY' , 'CAPTION' , 'CENTER' , 'COL' , 'COLGROUP' , 'DD' , 'DETAILS' , 'DIALOG' , 'DIR' , 'DIV' , 'DL' , 'DT' , 'FIELDSET' , 'FIGCAPTION' , 'FIGURE' , 'FOOTER' , 'FORM' , 'FRAME' , 'FRAMESET' , 'H1' , 'H2' , 'H3' , 'H4' , 'H5' , 'H6' , 'HEAD' , 'HEADER' , 'HR' , 'HTML' , 'IFRAME' , 'LEGEND' , 'LI' , 'LINK' , 'MAIN' , 'MENU' , 'MENUITEM' , 'NAV' , 'NOFRAMES' , 'OL' , 'OPTGROUP' , 'OPTION' , 'P' , 'PARAM' , 'SEARCH' , 'SECTION' , 'SUMMARY' , 'TABLE' , 'TBODY' , 'TD' , 'TFOOT' , 'TH' , 'THEAD' , 'TITLE' , 'TR' , 'TRACK' , 'UL' , 'WC-MERMAID'
1227+ 'PRE' , 'SCRIPT' , 'STYLE' , 'TEXTAREA' , 'ADDRESS' , 'ARTICLE' , 'ASIDE' , 'BASE' , 'BASEFONT' , 'BLOCKQUOTE' , 'BODY' , 'CAPTION' , 'CENTER' , 'COL' , 'COLGROUP' , 'DD' , 'DETAILS' , 'DIALOG' , 'DIR' , 'DIV' , 'DL' , 'DT' , 'FIELDSET' , 'FIGCAPTION' , 'FIGURE' , 'FOOTER' , 'FORM' , 'FRAME' , 'FRAMESET' , 'H1' , 'H2' , 'H3' , 'H4' , 'H5' , 'H6' , 'HEAD' , 'HEADER' , 'HR' , 'HTML' , 'IFRAME' , 'LEGEND' , 'LI' , 'LINK' , 'MAIN' , 'MENU' , 'MENUITEM' , 'NAV' , 'NOFRAMES' , 'OL' , 'OPTGROUP' , 'OPTION' , 'P' , 'PARAM' , 'SEARCH' , 'SECTION' , 'SUMMARY' , 'TABLE' , 'TBODY' , 'TD' , 'TFOOT' , 'TH' , 'THEAD' , 'TITLE' , 'TR' , 'TRACK' , 'UL' , 'WC-MERMAID' , 'GRAPHVIZ-GRAPH'
12261228] ) ;
12271229
12281230/**
0 commit comments