Explore the packages in the ecosystem by keyword.
micromark-factory-space
micromark factory to parse markdown space (found in lots of places)- 79%
- 200m
estree-util-is-identifier-name
Check if something can be an ecmascript (javascript) identifier name- 74%
- 149m
react-markdown
React component to render markdown- 84%
- 122m
- 31.5 B
@mdx-js/rollup
Rollup plugin for MDX- 77%
- 2.5m
unist-util-remove
unist utility to remove nodes from a tree- 80%
- 12m
Explore the 476 packages in the ecosystem
Projects
Explore the projects in the ecosystem by topic.
rehypejs/rehype-minify
plugins to minify HTML- 74%
- 53m
- 101
syntax-tree/hastscript
utility to create hast trees- 82%
- 112m
- 200
remarkjs/remark-frontmatter
remark plugin to support frontmatter (YAML, TOML, and more)- 75%
- 17m
- 322
syntax-tree/unist-util-visit-parents
utility to recursively walk over unist nodes, with ancestral information- 83%
- 232m
- 82
syntax-tree/hast-util-whitespace
utility to check if a node is inter-element whitespace- 77%
- 175m
- 4
Explore the 310 projects in the ecosystem
Recent releases
remcohaszing/remark-mdx-frontmatter@6.0.0ยท
What's Changed
530b5ceRename RemarkMdxFrontmatterOptions to remarkMdxFrontmatter.Options2c8b09cUse npm staged publishing5deaec4Remove support for Node.js < 2260e3727Replace thetomldependency withsmol-tomlby @egrimstad in #206c0ed63Use OIDC for publishing
New Contributors
- @egrimstad made their first contribution in #20
Full Changelog: https://github.com/remcohaszing/remark-mdx-frontmatter/compare/v5.2.0...v6.0.0
josemarluedke/remark-hbs@0.5.0ยท
The first release since 2021.
remark-hbsmoves to ESM and unified 11, and the whole toolchain is modernized.The plugin's rendered output is unchanged. This release is a platform and packaging update, not a behaviour change โ see What did not change for how that was verified.
๐ฅ Breaking changes
ESM-only
The package is now
"type": "module"with a default export and anexportsmap. There is no CommonJS build.// Before const hbs = require('remark-hbs'); // After import hbs from 'remark-hbs';CommonJS consumers are not shut out โ
require()of an ES module works on the Node versions this package supports, and returns a namespace with__esModuleset, so a compiled-TypeScriptrequire('remark-hbs').defaultkeeps working. If you are on an older Node, useawait import('remark-hbs').Because an
exportsmap is now declared, deep imports into the package (remark-hbs/something) are no longer resolvable. Only the package root is public.Node 20.19+ required
enginesmoves from>= 10.*to^20.19.0 || >=22.12.0. Those specific floors are the Node versions that supportrequire()of an ES module, which is what keeps CommonJS consumers working.unified11 is now a peer dependency"peerDependencies": { "unified": "^11.0.0" }Install
unifiedyourself. unified 9 and 10 are no longer supported โ the plugin now usesunist-util-visit5 and the unified 11 type surface.Types rewritten
index.d.tsusedexport =with a namespace, which cannot describe an ESM default export. It is now a default export withRemarkHbsOptionsas a named export:// Before import remarkHbs from 'remark-hbs'; // via esModuleInterop // (RemarkHbsOptions lived on a namespace) // After import remarkHbs, { type RemarkHbsOptions } from 'remark-hbs';The option names are unchanged โ
escapeCurliesCodeandescapeCurliesInlineCode, both defaulting totrue.unist-builderdroppedIt was only used to build
htmlandtextnodes, which are now plain object literals. The dependency is gone;unist-util-visit(^5.1.0) is the only runtime dependency.๐ Fixes
- Incompatible with Unified v10 (#27) โ the old types imported
Settingsfromunified, which unified 10 had removed, breaking type-checking withTS2305. unified 11 exportsSettingsagain and the types now resolve cleanly. - Removed a latent
ReferenceError:parseHBScontained a barerecursion = 0assignment to an undeclared global, which throws under ESM's implicit strict mode.
What did not change
The point of this release was to modernize the platform without moving a single byte of rendered output, and that was verified rather than assumed:
- A harness was pinned to the old stack (unified 9 / remark-html 13.0.1 /
unist-util-visit2 /unist-builder2) and first confirmed to reproduce the previously committed snapshots exactly, establishing it as a trustworthy baseline. - Old and new were then diffed across every test input and both fixtures, under default options and with
escapeCurliesCode: false/escapeCurliesInlineCode: false: byte-identical throughout. - Snapshots were migrated to vitest by decoding and comparing them key-by-key against that baseline, not by re-recording them.
- Verified against a real consumer (Docfy): clean compile, unchanged test results, successful classic-Ember and Vite builds, and all 40 generated
.gjstemplate files byte-identical by checksum.
โ ๏ธ Note for
remark-htmlusersUnrelated to this release, but easy to trip over while upgrading:
remark-htmlbegan sanitizing by default in 13.0.2, which strips the raw component invocations this plugin emits. If your components vanish from the output, passsanitize: false:unified().use(markdown).use(hbs).use(html, { sanitize: false });Known limitations
Unchanged from previous releases, and confirmed to behave identically:
- An inline component invocation followed by more text drops the trailing text โ
Text with <MyComponent /> and {{foo}}losesand {{foo}}(see josemarluedke/docfy#150). - Closing an element tag on its own line is parsed as a blockquote by CommonMark (#17).
๐ ๏ธ Internal
- jest โ vitest, which runs ESM natively rather than needing
NODE_OPTIONS='--experimental-vm-modules' - yarn โ pnpm, with a
packageManagerfield - CI rebuilt:
actions/checkout@v5/actions/setup-node@v5and a Node 20 / 22 / 24 matrix, replacing a global yarn install on Node 10 - Added eslint (flat config) and a
tsc --noEmittype check, both behind a singlepnpm run lint; prettier 2 โ 3 - Dev tooling to current majors: eslint 10, TypeScript 7, vitest 4, globals 17
- Added
filesandexports; removed the stale.npmignore
๐ค Credits
The ESM conversion began in #28 by @NullVoxPopuli back in December 2021 โ that PR's ESM work, its
.prettierrc.cjsrename, and its fix for the undeclared-global bug all carried into #35.๐ฅ Breaking Change
- Modernize: ESM, unified 11, vitest, pnpm (#35) @josemarluedke
๐ฆ Dependencies
- chore(deps): update dev tooling to latest majors (#36) @josemarluedke
- Bump ws from 7.4.2 to 7.5.3 (#24) @dependabot
- Bump path-parse from 1.0.6 to 1.0.7 (#23) @dependabot
- Bump glob-parent from 5.1.1 to 5.1.2 (#22) @dependabot
Contributors
@NullVoxPopuli, @dependabot, @dependabot[bot] and @josemarluedke
For full changes, see the comparison between v0.4.1 and v0.5.0
- Incompatible with Unified v10 (#27) โ the old types imported
jaywcjlove/rehype-video@2.3.2ยท
Documentation v2.3.2: https://raw.githack.com/jaywcjlove/rehype-video/06f7b0d/index.html
Comparing Changes: https://github.com/jaywcjlove/rehype-video/compare/v2.3.2...v2.3.2Explore recent releases