Skip to content

Commit

Permalink
chore: Update entities dependency (#901)
Browse files Browse the repository at this point in the history
* Update entities package + usage

* Apply custom digital entity logic before entities decode
  • Loading branch information
MattIPv4 committed Nov 18, 2023
1 parent 91c115d commit 8470eb6
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 18 deletions.
6 changes: 0 additions & 6 deletions lib/common/entities.js

This file was deleted.

15 changes: 9 additions & 6 deletions lib/common/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,10 @@ var UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source,

var DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;

var entities = require('./entities');
var decodeHTML = require('entities').decodeHTML;

function replaceEntityPattern(match, name) {
var code;

if (has(entities, name)) {
return entities[name];
}
var decoded, code;

if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {
code = name[1].toLowerCase() === 'x' ?
Expand All @@ -93,6 +89,13 @@ function replaceEntityPattern(match, name) {
if (isValidEntityCode(code)) {
return fromCodePoint(code);
}

return match;
}

decoded = decodeHTML(match);
if (decoded !== match) {
return decoded;
}

return match;
Expand Down
10 changes: 5 additions & 5 deletions lib/rules_inline/entity.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

'use strict';

var entities = require('../common/entities');
var has = require('../common/utils').has;
var decodeHTML = require('entities').decodeHTML;
var isValidEntityCode = require('../common/utils').isValidEntityCode;
var fromCodePoint = require('../common/utils').fromCodePoint;

Expand All @@ -13,7 +12,7 @@ var NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;


module.exports = function entity(state, silent) {
var ch, code, match, token, pos = state.pos, max = state.posMax;
var ch, code, match, decoded, token, pos = state.pos, max = state.posMax;

if (state.src.charCodeAt(pos) !== 0x26/* & */) return false;

Expand All @@ -38,10 +37,11 @@ module.exports = function entity(state, silent) {
} else {
match = state.src.slice(pos).match(NAMED_RE);
if (match) {
if (has(entities, match[1])) {
decoded = decodeHTML(match[0]);
if (decoded !== match[0]) {
if (!silent) {
token = state.push('text_special', '', 0);
token.content = entities[match[1]];
token.content = decoded;
token.markup = match[0];
token.info = 'entity';
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
],
"dependencies": {
"argparse": "^2.0.1",
"entities": "~3.0.1",
"entities": "^4.4.0",
"linkify-it": "^4.0.1",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
Expand Down

0 comments on commit 8470eb6

Please sign in to comment.