1- import gfmAutolinkLiteralFromMarkdown from 'mdast-util-gfm-autolink-literal/from-markdown.js'
2- import gfmAutolinkLiteralToMarkdown from 'mdast-util-gfm-autolink-literal/to-markdown.js'
3- import gfmStrikethroughFromMarkdown from 'mdast-util-gfm-strikethrough/from-markdown.js'
4- import gfmStrikethroughToMarkdown from 'mdast-util-gfm-strikethrough/to-markdown.js'
5- import gfmTableFromMarkdown from 'mdast-util-gfm-table/from-markdown.js'
6- import gfmTableToMarkdown from 'mdast-util-gfm-table/to-markdown.js'
7- import gfmTaskListItemFromMarkdown from 'mdast-util-gfm-task-list-item/from-markdown.js'
8- import gfmTaskListItemToMarkdown from 'mdast-util-gfm-task-list-item/to-markdown.js'
9-
10- const own = { } . hasOwnProperty
11-
12- export const gfmFromMarkdown = configure ( [
1+ /**
2+ * @typedef {import('mdast-util-from-markdown').Extension } FromMarkdownExtension
3+ * @typedef {import('mdast-util-to-markdown').Options } ToMarkdownExtension
4+ *
5+ * @typedef {import('mdast-util-gfm-table').Options } Options
6+ */
7+
8+ import {
9+ gfmAutolinkLiteralFromMarkdown ,
10+ gfmAutolinkLiteralToMarkdown
11+ } from 'mdast-util-gfm-autolink-literal'
12+ import {
13+ gfmStrikethroughFromMarkdown ,
14+ gfmStrikethroughToMarkdown
15+ } from 'mdast-util-gfm-strikethrough'
16+ import { gfmTableFromMarkdown , gfmTableToMarkdown } from 'mdast-util-gfm-table'
17+ import {
18+ gfmTaskListItemFromMarkdown ,
19+ gfmTaskListItemToMarkdown
20+ } from 'mdast-util-gfm-task-list-item'
21+
22+ /**
23+ * @type {Array.<FromMarkdownExtension> }
24+ */
25+ export const gfmFromMarkdown = [
1326 gfmAutolinkLiteralFromMarkdown ,
1427 gfmStrikethroughFromMarkdown ,
1528 gfmTableFromMarkdown ,
1629 gfmTaskListItemFromMarkdown
17- ] )
30+ ]
1831
32+ /**
33+ * @param {Options } [options]
34+ * @returns {ToMarkdownExtension }
35+ */
1936export function gfmToMarkdown ( options ) {
2037 return {
2138 extensions : [
@@ -26,34 +43,3 @@ export function gfmToMarkdown(options) {
2643 ]
2744 }
2845}
29-
30- function configure ( extensions ) {
31- const config = { transforms : [ ] , canContainEols : [ ] }
32- const length = extensions . length
33- let index = - 1
34-
35- while ( ++ index < length ) {
36- extension ( config , extensions [ index ] )
37- }
38-
39- return config
40- }
41-
42- function extension ( config , extension ) {
43- let key
44- let left
45- let right
46-
47- for ( key in extension ) {
48- if ( own . call ( extension , key ) ) {
49- left = own . call ( config , key ) ? config [ key ] : ( config [ key ] = { } )
50- right = extension [ key ]
51-
52- if ( key === 'canContainEols' || key === 'transforms' ) {
53- config [ key ] = [ ] . concat ( left , right )
54- } else {
55- Object . assign ( left , right )
56- }
57- }
58- }
59- }
0 commit comments