Registry / serialization / micromark-util-combine-extensions

micromark-util-combine-extensions

JSON →
library2.0.1jsnpmunverified

micromark-util-combine-extensions is a dedicated utility package within the unified collective, designed to efficiently merge multiple micromark syntax extensions or HTML extensions into a single, cohesive extension object. This functionality is crucial for creating and managing markdown processing presets, such as `micromark-extension-gfm`, which bundle several individual extensions into a convenient package. The package is currently at version 2.0.1, which is compatible with Node.js 16+ and works specifically with `micromark@3`. As a component of the `micromark` monorepo, its release cadence generally aligns with the broader `micromark` project, which sees regular updates for performance and bug fixes across its various components. Its primary differentiator is its singular focus on extension combination, providing a streamlined API (`combineExtensions`, `combineHtmlExtensions`) that simplifies complex extension management for developers building custom markdown processing pipelines.

npm install micromark-util-combine-extensions
INSTALL
IMPORT
SIG · MICROMARK-UTIL-COM
M
micromark-util-combine-extensions
serializationjavascriptv2.0.1
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

combineExtensions
import { combineExtensions } from 'micromark-util-combine-extensions'
const { combineExtensions } = require('micromark-util-combine-extensions')
This package is ESM-only, meaning CommonJS `require` syntax is not supported. Use ES modules `import`.
combineHtmlExtensions
import { combineHtmlExtensions } from 'micromark-util-combine-extensions'
import combineHtmlExtensions from 'micromark-util-combine-extensions'
There is no default export; `combineHtmlExtensions` must be imported by name as a named export.

Demonstrates how to combine multiple individual micromark syntax extensions into a single extension object using `combineExtensions` for easier management and use with the `micromark` parser.

import {gfmAutolinkLiteral} from 'micromark-extension-gfm-autolink-literal' import {gfmStrikethrough} from 'micromark-extension-gfm-strikethrough' import {gfmTable} from 'micromark-extension-gfm-table' import {gfmTaskListItem} from 'micromark-extension-gfm-task-list-item' import {combineExtensions} from 'micromark-util-combine-extensions' // This example combines several GFM syntax extensions into a single extension object // suitable for use with micromark. Note that some extensions are functions that need // to be called (e.g., gfmStrikethrough()), while others are direct objects. const combinedGfmSyntaxExtension = combineExtensions([ gfmAutolinkLiteral, gfmStrikethrough(), // Some extensions are functions that return the actual extension object gfmTable, gfmTaskListItem ]) console.log('Successfully combined GFM syntax extensions for micromark:', combinedGfmSyntaxExtension) // You would typically pass this combined extension to the micromark parser: // import { micromark } from 'micromark'; // const html = micromark('~Hello~', { extensions: [combinedGfmSyntaxExtension] }); // console.log(html); // Outputs HTML for strikethrough content, e.g., <p><del>Hello</del></p>
Debug
Known issues
breakingThis package is ESM-only and does not support CommonJS `require()`. Attempting to import it with `require` will result in an error.
fix
Migrate your project to use ES modules (`import`) or use a build tool like Rollup or Webpack to handle ESM imports in a CommonJS context.
affects: >=1.0.0
gotchaThis utility is designed to work with `micromark@3`. Using it with incompatible major versions of `micromark` (e.g., `micromark@2` or `micromark@4`) may lead to unexpected behavior or type mismatches due to changes in the extension object structure.
fix
Ensure your project explicitly lists `micromark@3` as a dependency or peer dependency and that your installed version matches this requirement.
affects: >=2.0.0
gotchaSome micromark extensions are exported as functions that need to be called (e.g., `gfmStrikethrough()`), while others are direct objects (e.g., `gfmAutolinkLiteral`). Not calling the function for extensions that expect it will result in an invalid extension being passed to `combineExtensions`.
fix
Always refer to the documentation for each individual micromark extension to confirm whether it needs to be called as a function or passed directly as an object.
affects: >=2.0.0
Errors
Common errors & fixes
ERR_REQUIRE_ESM
Attempting to import `micromark-util-combine-extensions` using CommonJS `require()` syntax in a Node.js environment.
fix
Change your import statement to `import { combineExtensions } from 'micromark-util-combine-extensions'`.
TypeError: (0 , micromark_util_combine_extensions__WEBPACK_IMPORTED_MODULE_0__.combineExtensions) is not a function
This error often occurs when bundling (e.g., with Webpack) and attempting to use a CommonJS-style import on an ESM module, or when a named import is incorrectly treated as a default import.
fix
Ensure your build configuration correctly handles ESM modules. Verify that you are using a named import `import { combineExtensions }` and not a default import `import combineExtensions`.
TypeError: micromark_extension_gfm_strikethrough_1.gfmStrikethrough is not a function
An extension function (like `gfmStrikethrough`) was expected to be called to produce an extension object, but it was passed directly without invocation.
fix
Call the extension as a function: `gfmStrikethrough()` instead of `gfmStrikethrough` when adding it to the array for `combineExtensions`.
Upgrade
Version history
2.0.1latest on npm
Audit
Dependencies
micromarkrequiredThis utility operates on `micromark`'s `Extension` and `HtmlExtension` types and is intended for use within the `micromark` ecosystem. It is explicitly compatible with `micromark@3`.
Agent activity
4 hits · last 30 days
node
4
Resources
micromark-util-combine-extensions — npm install micromark-util-combine-extensions · libregistry