Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mdast extension to parse and serialize GFM autolink literals

License

NotificationsYou must be signed in to change notification settings

syntax-tree/mdast-util-gfm-autolink-literal

BuildCoverageDownloadsSizeSponsorsBackersChat

mdast extensions to parse and serializeGFM autolink literals.

Contents

What is this?

This package contains two extensions that add support for GFM autolink literalssyntax in markdown tomdast.These extensions plug intomdast-util-from-markdown (to support parsingGFM autolinks in markdown into a syntax tree) andmdast-util-to-markdown (to support serializingGFM autolinks in syntax trees to markdown).

GitHub employs different algorithms to autolink: one at parse time and one attransform time (similar to how@mentions are done at transform time).This difference can be observed because character references and escapes arehandled differently.But also because issues/PRs/comments omit (perhaps by accident?) the secondalgorithm forwww.,http://, andhttps:// links (but not for email links).

As the corresponding micromark extensionmicromark-extension-gfm-autolink-literal is a syntax extension,it can only perform the first algorithm.The tree extensiongfmAutolinkLiteralFromMarkdown from this package canperform the second algorithm, and as they are combined, both are done.

When to use this

You can use these extensions when you are working withmdast-util-from-markdown andmdast-util-to-markdown already.

When working withmdast-util-from-markdown, you must combine this packagewithmicromark-extension-gfm-autolink-literal.

When you don’t need a syntax tree, you can usemicromarkdirectly withmicromark-extension-gfm-autolink-literal.

When you are working with syntax trees and want all of GFM, usemdast-util-gfm instead.

All these packages are usedremark-gfm, whichfocusses on making it easier to transform content by abstracting theseinternals away.

This utility does not handle how markdown is turned to HTML.That’s done bymdast-util-to-hast.

Install

This package isESM only.In Node.js (version 16+), install withnpm:

npm install mdast-util-gfm-autolink-literal

In Deno withesm.sh:

import{gfmAutolinkLiteralFromMarkdown,gfmAutolinkLiteralToMarkdown}from'https://esm.sh/mdast-util-gfm-autolink-literal@2'

In browsers withesm.sh:

<scripttype="module">import{gfmAutolinkLiteralFromMarkdown,gfmAutolinkLiteralToMarkdown}from'https://esm.sh/mdast-util-gfm-autolink-literal@2?bundle'</script>

Use

Say our documentexample.md contains:

www.example.com,https://example.com, andcontact@example.com.

…and our moduleexample.js looks as follows:

importfsfrom'node:fs/promises'import{gfmAutolinkLiteral}from'micromark-extension-gfm-autolink-literal'import{fromMarkdown}from'mdast-util-from-markdown'import{gfmAutolinkLiteralFromMarkdown,gfmAutolinkLiteralToMarkdown}from'mdast-util-gfm-autolink-literal'import{toMarkdown}from'mdast-util-to-markdown'constdocument=awaitfs.readFile('example.md','utf8')consttree=fromMarkdown(document,{extensions:[gfmAutolinkLiteral()],mdastExtensions:[gfmAutolinkLiteralFromMarkdown()]})console.log(tree)constout=toMarkdown(tree,{extensions:[gfmAutolinkLiteralToMarkdown()]})console.log(out)

…now runningnode example.js yields (positional info removed for brevity):

{type:'root',children:[{type:'paragraph',children:[{type:'link',title:null,url:'http://www.example.com',children:[{type:'text',value:'www.example.com'}]},{type:'text',value:', '},{type:'link',title:null,url:'https://example.com',children:[{type:'text',value:'https://example.com'}]},{type:'text',value:', and '},{type:'link',title:null,url:'mailto:contact@example.com',children:[{type:'text',value:'contact@example.com'}]},{type:'text',value:'.'}]}]}
[www.example.com](http://www.example.com),<https://example.com>, and<contact@example.com>.

API

This package exports the identifiersgfmAutolinkLiteralFromMarkdown andgfmAutolinkLiteralToMarkdown.There is no default export.

gfmAutolinkLiteralFromMarkdown()

Create an extension formdast-util-from-markdownto enable GFM autolink literals in markdown.

Returns

Extension formdast-util-to-markdown to enable GFM autolink literals(FromMarkdownExtension).

gfmAutolinkLiteralToMarkdown()

Create an extension formdast-util-to-markdown toenable GFM autolink literals in markdown.

Returns

Extension formdast-util-to-markdown to enable GFM autolink literals(ToMarkdownExtension).

HTML

This utility does not handle how markdown is turned to HTML.That’s done bymdast-util-to-hast.

Syntax

SeeSyntax inmicromark-extension-gfm-autolink-literal.

Syntax tree

There are no interfaces added tomdast by this utility, as it reusesthe existingLink interface.

Types

This package is fully typed withTypeScript.It does not export additional types.

TheLink type of the mdast nodes is exposed from@types/mdast.

Compatibility

Projects maintained by the unified collective are compatible with maintainedversions of Node.js.

When we cut a new major release, we drop support for unmaintained versions ofNode.This means we try to keep the current release line,mdast-util-gfm-autolink-literal@^2, compatible with Node.js 16.

This utility works withmdast-util-from-markdown version 2+ andmdast-util-to-markdown version 2+.

Related

Contribute

Seecontributing.md insyntax-tree/.github forways to get started.Seesupport.md for ways to get help.

This project has acode of conduct.By interacting with this repository, organization, or community you agree toabide by its terms.

License

MIT ©Titus Wormer


[8]ページ先頭

©2009-2025 Movatter.jp