micromark Numeric Character Reference Decoder

2.0.2 · active · verified Sun Apr 19

micromark-util-decode-numeric-character-reference is a focused utility within the micromark ecosystem designed to safely decode numeric character references found in markdown (e.g., `A` for 'A'). The current stable major version is `2.x.x`, with `2.0.2` being the latest patch. As part of the unified collective, it follows a regular release cadence, often aligned with broader micromark updates. A key differentiator is its robust handling of non-characters and control characters, ensuring safe output by replacing them with the Unicode replacement character. This package is ESM-only and ships with full TypeScript type definitions, making it suitable for modern JavaScript and TypeScript environments, and is compatible with Node.js 16+.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to decode various numeric character references, including ASCII, control characters, and out-of-range Unicode points, showcasing the utility's safe decoding behavior.

import { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';

// Example 1: Basic ASCII character decoding from hexadecimal
const charA_hex = decodeNumericCharacterReference('41', 16);
console.log(`Hex '41' (16-base) decodes to: '${charA_hex}'`); // Expected: 'A'

// Example 2: Basic ASCII character decoding from decimal
const charA_dec = decodeNumericCharacterReference('65', 10);
console.log(`Dec '65' (10-base) decodes to: '${charA_dec}'`); // Expected: 'A'

// Example 3: Decoding a newline character (common in references)
const newline_hex = decodeNumericCharacterReference('A', 16);
console.log(`Hex 'A' (16-base) decodes to: '${JSON.stringify(newline_hex)}' (newline)`); // Expected: '\n'

// Example 4: Handling control characters (these are replaced with a replacement character)
const controlChar_hex = decodeNumericCharacterReference('7F', 16); // DEL character
console.log(`Hex '7F' (16-base) decodes to: '${controlChar_hex}'`); // Expected: '�' (replacement character)

// Example 5: Handling out-of-range Unicode code points
const outOfRange_hex = decodeNumericCharacterReference('110000', 16); // Beyond U+10FFFF
console.log(`Hex '110000' (16-base) decodes to: '${outOfRange_hex}'`); // Expected: '�' (replacement character)

console.log("\nThis utility ensures safe decoding, replacing invalid or control characters with the Unicode replacement character.");

view raw JSON →