From 4fca3c6cf9ae13e12ffbae28784925e72e174e20 Mon Sep 17 00:00:00 2001 From: Ming Di Leom <2809763-curben@users.noreply.gitlab.com> Date: Wed, 2 Mar 2022 08:16:50 +0000 Subject: [PATCH] fix(smartypants): utilise escapeHTML() - breaking change of marked v4 * https://github.com/markedjs/marked/releases/tag/v4.0.0 --- scripts/smartypants.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/scripts/smartypants.js b/scripts/smartypants.js index 6545346..87f7dbf 100644 --- a/scripts/smartypants.js +++ b/scripts/smartypants.js @@ -1,4 +1,4 @@ -const { escape } = require('marked/src/helpers'); +const { escapeHTML: escape } = require('hexo-util') // https://github.com/markedjs/marked/blob/b6773fca412c339e0cedd56b63f9fa1583cfd372/src/Lexer.js#L8-L24 // Replace dashes only @@ -19,22 +19,22 @@ const smartypants = (str) => { // ellipses .replace(/\.{3}/g, '\u2026') // right arrow - .replace(/->/g, '\u2192'); -}; + .replace(/->/g, '\u2192') +} -hexo.extend.filter.register('marked:tokenizer', function(tokenizer) { - const { smartypants: isSmarty } = this.config.marked; - tokenizer.inlineText = function(src) { - const { rules } = this; +hexo.extend.filter.register('marked:tokenizer', function (tokenizer) { + const { smartypants: isSmarty } = this.config.marked + tokenizer.inlineText = function (src) { + const { rules } = this // https://github.com/markedjs/marked/blob/b6773fca412c339e0cedd56b63f9fa1583cfd372/src/Tokenizer.js#L643-L658 - const cap = rules.inline.text.exec(src); + const cap = rules.inline.text.exec(src) if (cap) { - let text; + let text if (this.lexer.state.inRawBlock) { - text = cap[0]; + text = cap[0] } else { - text = escape(isSmarty ? smartypants(cap[0]) : cap[0]); + text = escape(isSmarty ? smartypants(cap[0]) : cap[0]) } return { // `type` value is a corresponding renderer method @@ -42,7 +42,7 @@ hexo.extend.filter.register('marked:tokenizer', function(tokenizer) { type: 'text', raw: cap[0], text - }; + } } } -}); +})