feat: add block param to html renderer (#2768)

pull/2795/head
Tony Brix 2023-05-01 23:31:40 -05:00 committed by GitHub
parent 5d59ae0f5d
commit fa21b9f60a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 7 deletions

View File

@ -106,7 +106,7 @@ console.log(marked.parse('# heading+'));
- <code>**code**(*string* code, *string* infostring, *boolean* escaped)</code>
- <code>**blockquote**(*string* quote)</code>
- <code>**html**(*string* html)</code>
- <code>**html**(*string* html, *boolean* block)</code>
- <code>**heading**(*string* text, *number* level, *string* raw, *Slugger* slugger)</code>
- <code>**hr**()</code>
- <code>**list**(*string* body, *boolean* ordered, *number* start)</code>

View File

@ -173,8 +173,7 @@ export class Parser {
continue;
}
case 'html': {
// TODO parse inline content if parameter markdown=1
out += this.renderer.html(token.text);
out += this.renderer.html(token.text, token.block);
continue;
}
case 'paragraph': {

View File

@ -45,7 +45,7 @@ export class Renderer {
return `<blockquote>\n${quote}</blockquote>\n`;
}
html(html) {
html(html, block) {
return html;
}

View File

@ -362,6 +362,7 @@ export class Tokenizer {
if (cap) {
const token = {
type: 'html',
block: true,
raw: cap[0],
pre: !this.options.sanitizer
&& (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),
@ -519,6 +520,7 @@ export class Tokenizer {
raw: cap[0],
inLink: this.lexer.state.inLink,
inRawBlock: this.lexer.state.inRawBlock,
block: false,
text: this.options.sanitize
? (this.options.sanitizer
? this.options.sanitizer(cap[0])

View File

@ -773,6 +773,7 @@ paragraph
type: 'html',
raw: '<div>html</div>',
pre: false,
block: true,
text: '<div>html</div>'
}
]
@ -787,6 +788,7 @@ paragraph
type: 'html',
raw: '<pre>html</pre>',
pre: true,
block: true,
text: '<pre>html</pre>'
}
]
@ -802,6 +804,7 @@ paragraph
type: 'paragraph',
raw: '<div>html</div>',
pre: false,
block: true,
text: '&lt;div&gt;html&lt;/div&gt;',
tokens: [{
type: 'text',
@ -884,9 +887,9 @@ paragraph
expectInlineTokens({
md: '<div>html</div>',
tokens: [
{ type: 'html', raw: '<div>', inLink: false, inRawBlock: false, text: '<div>' },
{ type: 'html', raw: '<div>', inLink: false, inRawBlock: false, block: false, text: '<div>' },
{ type: 'text', raw: 'html', text: 'html' },
{ type: 'html', raw: '</div>', inLink: false, inRawBlock: false, text: '</div>' }
{ type: 'html', raw: '</div>', inLink: false, inRawBlock: false, block: false, text: '</div>' }
]
});
});
@ -896,7 +899,14 @@ paragraph
md: '<div>html</div>',
options: { sanitize: true },
tokens: [
{ type: 'text', raw: '<div>html</div>', inLink: false, inRawBlock: false, text: '&lt;div&gt;html&lt;/div&gt;' }
{
type: 'text',
raw: '<div>html</div>',
inLink: false,
inRawBlock: false,
block: false,
text: '&lt;div&gt;html&lt;/div&gt;'
}
]
});
});