# @stackline/remark-parse > remark plugin to add support for parsing markdown input. [](https://www.npmjs.com/package/@stackline/remark-parse) [](https://github.com/alexandroit/stackline-remark-parse) [](https://github.com/alexandroit/stackline-remark-parse) [](https://alexandro.net/docs/vanilla/remark-parse/) [](https://www.reddit.com/r/Stackline/) **[Documentation](https://alexandro.net/docs/vanilla/remark-parse/)** | **[npm](https://www.npmjs.com/package/@stackline/remark-parse)** | **[Issues](https://github.com/alexandroit/stackline-remark-parse/issues)** | **[Repository](https://github.com/alexandroit/stackline-remark-parse)** **Current package version:** `1.0.2` --- ## Why this package? `@stackline/remark-parse` is the Stackline-maintained distribution of `remark-parse@10.0.2`. It is an independent continuation of [remark-parse](https://github.com/remarkjs/remark); original authors and licenses remain credited below. ## Compatibility | Item | Value | | :--- | :--- | | Package | `@stackline/remark-parse@1.0.2` | | API target | `remark-parse@10.0.2` | | Supported Node.js | `See supported framework requirements` | | License | `MIT` | | Module type | `module` | | Main entry | `index.js` | | Types | `index.d.ts` | | Runtime dependencies | `unified, @types/mdast, mdast-util-from-markdown` | ## Installation ```bash npm install @stackline/remark-parse ``` Preserve existing imports and plugin resolution with an npm alias: ```bash npm install remark-parse@npm:@stackline/remark-parse ``` ## Usage and API reference ### remark-parse **[remark][]** plugin to add support for parsing markdown input. ## Contents * [What is this?](#what-is-this) * [When should I use this?](#when-should-i-use-this) * [Install](#install) * [Use](#use) * [API](#api) * [`unified().use(remarkParse)`](#unifieduseremarkparse) * [Examples](#examples) * [Example: support GFM and frontmatter](#example-support-gfm-and-frontmatter) * [Example: turning markdown into a man page](#example-turning-markdown-into-a-man-page) * [Syntax](#syntax) * [Syntax tree](#syntax-tree) * [Types](#types) * [Compatibility](#compatibility) * [Security](#security) * [Contribute](#contribute) * [Sponsor](#sponsor) * [License](#license) ## What is this? This package is a [unified][] ([remark][]) plugin that defines how to take markdown as input and turn it into a syntax tree. This plugin is built on [`mdast-util-from-markdown`][mdast-util-from-markdown], which in turn uses [`micromark`][micromark] for parsing markdown into tokens and turns those into [mdast][] syntax trees. remark focusses on making it easier to transform content by abstracting such internals away. **unified** is a project that transforms content with abstract syntax trees (ASTs). **remark** adds support for markdown to unified. **mdast** is the markdown AST that remark uses. **micromark** is the markdown parser we use. This is a remark plugin that defines how input markdown is turned into mdast. ## When should I use this? This plugin adds support to unified for parsing markdown. You can alternatively use [`remark`][remark-core] instead, which combines unified, this plugin, and [`remark-stringify`][remark-stringify]. You can combine this plugin with other plugins to add syntax extensions. Notable examples that deeply integrate with it are [`remark-gfm`][remark-gfm], [`remark-mdx`][remark-mdx], [`remark-frontmatter`][remark-frontmatter], [`remark-math`][remark-math], and [`remark-directive`][remark-directive]. You can also use any other [remark plugin][plugin] after `remark-parse`. If you *just* want to turn markdown into HTML (with maybe a few extensions), we recommend [`micromark`][micromark] instead. If you want to handle syntax trees manually, you can use [`mdast-util-from-markdown`][mdast-util-from-markdown]. ## Install This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). In Node.js (version 12.20+, 14.14+, or 16.0+), install with [npm][]: ```sh npm install @stackline/remark-parse ``` In Deno with [`esm.sh`][esmsh]: ```js import remarkParse from 'https://esm.sh/remark-parse@10' ``` In browsers with [`esm.sh`][esmsh]: ```html ``` ## Use Say we have the following module `example.js`: ```js import {unified} from 'unified' import remarkParse from '@stackline/remark-parse' import remarkGfm from 'remark-gfm' import remarkRehype from 'remark-rehype' import rehypeStringify from 'rehype-stringify' main() async function main() { const file = await unified() .use(remarkParse) .use(remarkGfm) .use(remarkRehype) .use(rehypeStringify) .process('# Hi\n\n*Hello*, world!') console.log(String(file)) } ``` Running that with `node example.js` yields: ```html
Hello, world!
``` ## API This package exports no identifiers. The default export is `remarkParse`. ### `unified().use(remarkParse)` Add support for parsing markdown input. There are no options. ## Examples ### Example: support GFM and frontmatter We support CommonMark by default. Non-standard markdown extensions can be enabled with plugins. The following example adds support for GFM features (autolink literals, footnotes, strikethrough, tables, tasklists) and frontmatter (YAML): ```js import {unified} from 'unified' import remarkParse from '@stackline/remark-parse' import remarkFrontmatter from 'remark-frontmatter' import remarkGfm from 'remark-gfm' import remarkRehype from 'remark-rehype' import rehypeStringify from 'rehype-stringify' main() async function main() { const file = await unified() .use(remarkParse) .use(remarkFrontmatter) .use(remarkGfm) .use(remarkRehype) .use(rehypeStringify) .process('---\nlayout: home\n---\n\n# Hi ~~Mars~~Venus!') console.log(String(file)) } ``` Yields: ```html|
Vercel |
Motif |
HashiCorp |
GitBook |
Gatsby |
|||||
Netlify
|
Coinbase |
ThemeIsle |
Expo |
Boost Note
|
Holloway |
||||
|
You? |
|||||||||