0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-11 13:22:39 +00:00

Merge pull request #3410 from naturalcrit/Only-check-DefinitionLists-at-start-of-line

Only check definition lists at start of line
This commit is contained in:
Trevor Buckner
2024-04-17 01:08:03 -04:00
committed by GitHub

View File

@@ -294,10 +294,10 @@ const superSubScripts = {
} }
}; };
const definitionListsInline = { const definitionListsSingleLine = {
name : 'definitionListsInline', name : 'definitionListsSingleLine',
level : 'block', level : 'block',
start(src) { return src.match(/^[^\n]*?::[^\n]*/m)?.index; }, // Hint to Marked.js to stop and check for a match start(src) { return src.match(/\n[^\n]*?::[^\n]*/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) { tokenizer(src, tokens) {
const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym; const regex = /^([^\n]*?)::([^\n]*)(?:\n|$)/ym;
let match; let match;
@@ -312,7 +312,7 @@ const definitionListsInline = {
} }
if(definitions.length) { if(definitions.length) {
return { return {
type : 'definitionListsInline', type : 'definitionListsSingleLine',
raw : src.slice(0, endIndex), raw : src.slice(0, endIndex),
definitions definitions
}; };
@@ -326,10 +326,10 @@ const definitionListsInline = {
} }
}; };
const definitionListsMultiline = { const definitionListsMultiLine = {
name : 'definitionListsMultiline', name : 'definitionListsMultiLine',
level : 'block', level : 'block',
start(src) { return src.match(/^[^\n]*\n::/m)?.index; }, // Hint to Marked.js to stop and check for a match start(src) { return src.match(/\n[^\n]*\n::/m)?.index; }, // Hint to Marked.js to stop and check for a match
tokenizer(src, tokens) { tokenizer(src, tokens) {
const regex = /(\n?\n?(?!::)[^\n]+?(?=\n::))|\n::(.(?:.|\n)*?(?=(?:\n::)|(?:\n\n)|$))/y; const regex = /(\n?\n?(?!::)[^\n]+?(?=\n::))|\n::(.(?:.|\n)*?(?=(?:\n::)|(?:\n\n)|$))/y;
let match; let match;
@@ -353,7 +353,7 @@ const definitionListsMultiline = {
} }
if(definitions.length) { if(definitions.length) {
return { return {
type : 'definitionListsMultiline', type : 'definitionListsMultiLine',
raw : src.slice(0, endIndex), raw : src.slice(0, endIndex),
definitions definitions
}; };
@@ -617,7 +617,7 @@ function MarkedVariables() {
//^=====--------------------< Variable Handling >-------------------=====^// //^=====--------------------< Variable Handling >-------------------=====^//
Marked.use(MarkedVariables()); Marked.use(MarkedVariables());
Marked.use({ extensions: [definitionListsMultiline, definitionListsInline, superSubScripts, mustacheSpans, mustacheDivs, mustacheInjectInline] }); Marked.use({ extensions: [definitionListsMultiLine, definitionListsSingleLine, superSubScripts, mustacheSpans, mustacheDivs, mustacheInjectInline] });
Marked.use(mustacheInjectBlock); Marked.use(mustacheInjectBlock);
Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false }); Marked.use({ renderer: renderer, tokenizer: tokenizer, mangle: false });
Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite()); Marked.use(MarkedExtendedTables(), MarkedGFMHeadingId(), MarkedSmartypantsLite());