Sha256: 0d44e366b866e3de414c95774772ae96efd34a5ab2500513fb9b831a9737e24d
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
module.exports = association var decode = require('parse-entities/decode-entity') var characterEscape = /\\([!-/:-@[-`{-~])/g var characterReference = /&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi // The `label` of an association is the string value: character escapes and // references work, and casing is intact. // The `identifier` is used to match one association to another: controversially, // character escapes and references don’t work in this matching: `©` does // not match `©`, and `\+` does not match `+`. // But casing is ignored (and whitespace) is trimmed and collapsed: ` A\nb` // matches `a b`. // So, we do prefer the label when figuring out how we’re going to serialize: // it has whitespace, casing, and we can ignore most useless character escapes // and all character references. function association(node) { if (node.label || !node.identifier) { return node.label || '' } return node.identifier .replace(characterEscape, '$1') .replace(characterReference, decodeIfPossible) } function decodeIfPossible($0, $1) { return decode($1) || $0 }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trusty-cms-6.3.1 | node_modules/mdast-util-to-markdown/lib/util/association.js |