mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2025-12-31 02:12:43 +00:00
Extract common function to merge HTML tags
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
/* eslint-disable max-lines */
|
/* eslint-disable max-lines */
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { Parser as MathParser } from 'expr-eval';
|
import { Parser as MathParser } from 'expr-eval';
|
||||||
import { marked as Marked } from 'marked';
|
import { marked as Marked } from 'marked';
|
||||||
import MarkedExtendedTables from 'marked-extended-tables';
|
import MarkedExtendedTables from 'marked-extended-tables';
|
||||||
import { markedSmartypantsLite as MarkedSmartypantsLite } from 'marked-smartypants-lite';
|
import { markedSmartypantsLite as MarkedSmartypantsLite } from 'marked-smartypants-lite';
|
||||||
import { gfmHeadingId as MarkedGFMHeadingId, resetHeadings as MarkedGFMResetHeadingIDs } from 'marked-gfm-heading-id';
|
import { gfmHeadingId as MarkedGFMHeadingId, resetHeadings as MarkedGFMResetHeadingIDs } from 'marked-gfm-heading-id';
|
||||||
@@ -266,12 +266,7 @@ const mustacheInjectInline = {
|
|||||||
const text = this.parser.parseInline([token]);
|
const text = this.parser.parseInline([token]);
|
||||||
const originalTags = extractHTMLStyleTags(text);
|
const originalTags = extractHTMLStyleTags(text);
|
||||||
const injectedTags = token.injectedTags;
|
const injectedTags = token.injectedTags;
|
||||||
const tags = {
|
const tags = mergeHTMLTags(originalTags, injectedTags);
|
||||||
id : injectedTags.id || originalTags.id || null,
|
|
||||||
classes : [originalTags.classes, injectedTags.classes].join(' ').trim() || null,
|
|
||||||
styles : [originalTags.styles, injectedTags.styles].join(' ').trim() || null,
|
|
||||||
attributes : Object.assign(originalTags.attributes ?? {}, injectedTags.attributes ?? {})
|
|
||||||
};
|
|
||||||
const openingTag = /(<[^\s<>]+)[^\n<>]*(>.*)/s.exec(text);
|
const openingTag = /(<[^\s<>]+)[^\n<>]*(>.*)/s.exec(text);
|
||||||
if(openingTag) {
|
if(openingTag) {
|
||||||
return `${openingTag[1]}` +
|
return `${openingTag[1]}` +
|
||||||
@@ -315,12 +310,7 @@ const mustacheInjectBlock = {
|
|||||||
const text = this.parser.parse([token]);
|
const text = this.parser.parse([token]);
|
||||||
const originalTags = extractHTMLStyleTags(text);
|
const originalTags = extractHTMLStyleTags(text);
|
||||||
const injectedTags = token.injectedTags;
|
const injectedTags = token.injectedTags;
|
||||||
const tags = {
|
const tags = mergeHTMLTags(originalTags, injectedTags);
|
||||||
id : injectedTags.id || originalTags.id || null,
|
|
||||||
classes : [originalTags.classes, injectedTags.classes].join(' ').trim() || null,
|
|
||||||
styles : [originalTags.styles, injectedTags.styles].join(' ').trim() || null,
|
|
||||||
attributes : Object.assign(originalTags.attributes ?? {}, injectedTags.attributes ?? {})
|
|
||||||
};
|
|
||||||
const openingTag = /(<[^\s<>]+)[^\n<>]*(>.*)/s.exec(text);
|
const openingTag = /(<[^\s<>]+)[^\n<>]*(>.*)/s.exec(text);
|
||||||
if(openingTag) {
|
if(openingTag) {
|
||||||
return `${openingTag[1]}` +
|
return `${openingTag[1]}` +
|
||||||
@@ -908,6 +898,15 @@ const extractHTMLStyleTags = (htmlString)=>{
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const mergeHTMLTags = (originalTags, newTags) => {
|
||||||
|
return {
|
||||||
|
id : newTags.id || originalTags.id || null,
|
||||||
|
classes : [originalTags.classes, newTags.classes].join(' ').trim() || null,
|
||||||
|
styles : [originalTags.styles, newTags.styles].join(' ').trim() || null,
|
||||||
|
attributes : Object.assign(originalTags.attributes ?? {}, newTags.attributes ?? {})
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
const globalVarsList = {};
|
const globalVarsList = {};
|
||||||
let varsQueue = [];
|
let varsQueue = [];
|
||||||
let globalPageNumber = 0;
|
let globalPageNumber = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user