324 lines
5.5 KiB
TypeScript
324 lines
5.5 KiB
TypeScript
import type {Info, State} from './lib/types.js'
|
||
|
||
/**
|
||
* Interface of registered constructs.
|
||
*
|
||
* When working on extensions that use new constructs, extend the corresponding
|
||
* interface to register its name:
|
||
*
|
||
* ```ts
|
||
* declare module 'mdast-util-to-markdown' {
|
||
* interface ConstructNameMap {
|
||
* // Register a new construct name (value is used, key should match it).
|
||
* gfmStrikethrough: 'gfmStrikethrough'
|
||
* }
|
||
* }
|
||
* ```
|
||
*/
|
||
export interface ConstructNameMap {
|
||
/**
|
||
* Whole autolink.
|
||
*
|
||
* ```markdown
|
||
* > | <https://example.com> and <admin@example.com>
|
||
* ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
|
||
* ```
|
||
*/
|
||
autolink: 'autolink'
|
||
/**
|
||
* Whole block quote.
|
||
*
|
||
* ```markdown
|
||
* > | > a
|
||
* ^^^
|
||
* > | b
|
||
* ^
|
||
* ```
|
||
*/
|
||
blockquote: 'blockquote'
|
||
/**
|
||
* Whole code (indented).
|
||
*
|
||
* ```markdown
|
||
* ␠␠␠␠console.log(1)
|
||
* ^^^^^^^^^^^^^^^^^^
|
||
* ```
|
||
*/
|
||
codeIndented: 'codeIndented'
|
||
/**
|
||
* Whole code (fenced).
|
||
*
|
||
* ````markdown
|
||
* > | ```js
|
||
* ^^^^^
|
||
* > | console.log(1)
|
||
* ^^^^^^^^^^^^^^
|
||
* > | ```
|
||
* ^^^
|
||
* ````
|
||
*/
|
||
codeFenced: 'codeFenced'
|
||
/**
|
||
* Code (fenced) language, when fenced with grave accents.
|
||
*
|
||
* ````markdown
|
||
* > | ```js
|
||
* ^^
|
||
* | console.log(1)
|
||
* | ```
|
||
* ````
|
||
*/
|
||
codeFencedLangGraveAccent: 'codeFencedLangGraveAccent'
|
||
/**
|
||
* Code (fenced) language, when fenced with tildes.
|
||
*
|
||
* ````markdown
|
||
* > | ~~~js
|
||
* ^^
|
||
* | console.log(1)
|
||
* | ~~~
|
||
* ````
|
||
*/
|
||
codeFencedLangTilde: 'codeFencedLangTilde'
|
||
/**
|
||
* Code (fenced) meta string, when fenced with grave accents.
|
||
*
|
||
* ````markdown
|
||
* > | ```js eval
|
||
* ^^^^
|
||
* | console.log(1)
|
||
* | ```
|
||
* ````
|
||
*/
|
||
codeFencedMetaGraveAccent: 'codeFencedMetaGraveAccent'
|
||
/**
|
||
* Code (fenced) meta string, when fenced with tildes.
|
||
*
|
||
* ````markdown
|
||
* > | ~~~js eval
|
||
* ^^^^
|
||
* | console.log(1)
|
||
* | ~~~
|
||
* ````
|
||
*/
|
||
codeFencedMetaTilde: 'codeFencedMetaTilde'
|
||
/**
|
||
* Whole definition.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^^^^^^^^^^
|
||
* ```
|
||
*/
|
||
definition: 'definition'
|
||
/**
|
||
* Destination (literal) (occurs in definition, image, link).
|
||
*
|
||
* ```markdown
|
||
* > | [a]: <b> "c"
|
||
* ^^^
|
||
* > | a ![b](<c> "d") e
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
destinationLiteral: 'destinationLiteral'
|
||
/**
|
||
* Destination (raw) (occurs in definition, image, link).
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* > | a ![b](c "d") e
|
||
* ^
|
||
* ```
|
||
*/
|
||
destinationRaw: 'destinationRaw'
|
||
/**
|
||
* Emphasis.
|
||
*
|
||
* ```markdown
|
||
* > | *a*
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
emphasis: 'emphasis'
|
||
/**
|
||
* Whole heading (atx).
|
||
*
|
||
* ```markdown
|
||
* > | # alpha
|
||
* ^^^^^^^
|
||
* ```
|
||
*/
|
||
headingAtx: 'headingAtx'
|
||
/**
|
||
* Whole heading (setext).
|
||
*
|
||
* ```markdown
|
||
* > | alpha
|
||
* ^^^^^
|
||
* > | =====
|
||
* ^^^^^
|
||
* ```
|
||
*/
|
||
headingSetext: 'headingSetext'
|
||
/**
|
||
* Whole image.
|
||
*
|
||
* ```markdown
|
||
* > | ![a](b)
|
||
* ^^^^^^^
|
||
* > | ![c]
|
||
* ^^^^
|
||
* ```
|
||
*/
|
||
image: 'image'
|
||
/**
|
||
* Whole image reference.
|
||
*
|
||
* ```markdown
|
||
* > | ![a]
|
||
* ^^^^
|
||
* ```
|
||
*/
|
||
imageReference: 'imageReference'
|
||
/**
|
||
* Label (occurs in definitions, image reference, image, link reference,
|
||
* link).
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^^^
|
||
* > | a [b] c
|
||
* ^^^
|
||
* > | a ![b][c] d
|
||
* ^^^^
|
||
* > | a [b](c) d
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
label: 'label'
|
||
/**
|
||
* Whole link.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b)
|
||
* ^^^^^^
|
||
* > | [c]
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
link: 'link'
|
||
/**
|
||
* Whole link reference.
|
||
*
|
||
* ```markdown
|
||
* > | [a]
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
linkReference: 'linkReference'
|
||
/**
|
||
* List.
|
||
*
|
||
* ```markdown
|
||
* > | * a
|
||
* ^^^
|
||
* > | 1. b
|
||
* ^^^^
|
||
* ```
|
||
*/
|
||
list: 'list'
|
||
/**
|
||
* List item.
|
||
*
|
||
* ```markdown
|
||
* > | * a
|
||
* ^^^
|
||
* > | 1. b
|
||
* ^^^^
|
||
* ```
|
||
*/
|
||
listItem: 'listItem'
|
||
/**
|
||
* Paragraph.
|
||
*
|
||
* ```markdown
|
||
* > | a b
|
||
* ^^^
|
||
* > | c.
|
||
* ^^
|
||
* ```
|
||
*/
|
||
paragraph: 'paragraph'
|
||
/**
|
||
* Phrasing (occurs in headings, paragraphs, etc).
|
||
*
|
||
* ```markdown
|
||
* > | a
|
||
* ^
|
||
* ```
|
||
*/
|
||
phrasing: 'phrasing'
|
||
/**
|
||
* Reference (occurs in image, link).
|
||
*
|
||
* ```markdown
|
||
* > | [a][]
|
||
* ^^
|
||
* ```
|
||
*/
|
||
reference: 'reference'
|
||
/**
|
||
* Strong.
|
||
*
|
||
* ```markdown
|
||
* > | **a**
|
||
* ^^^^^
|
||
* ```
|
||
*/
|
||
strong: 'strong'
|
||
/**
|
||
* Title using single quotes (occurs in definition, image, link).
|
||
*
|
||
* ```markdown
|
||
* > | [a](b 'c')
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
titleApostrophe: 'titleApostrophe'
|
||
/**
|
||
* Title using double quotes (occurs in definition, image, link).
|
||
*
|
||
* ```markdown
|
||
* > | [a](b "c")
|
||
* ^^^
|
||
* ```
|
||
*/
|
||
titleQuote: 'titleQuote'
|
||
}
|
||
|
||
/**
|
||
* Construct names for things generated by `mdast-util-to-markdown`.
|
||
*
|
||
* This is an enum of strings, each being a semantic label, useful to know when
|
||
* serializing whether we’re for example in a double (`"`) or single (`'`)
|
||
* quoted title.
|
||
*/
|
||
export type ConstructName = ConstructNameMap[keyof ConstructNameMap]
|
||
|
||
export {toMarkdown} from './lib/index.js'
|
||
export {handle as defaultHandlers} from './lib/handle/index.js'
|
||
export type {
|
||
Handle,
|
||
Handlers,
|
||
Info,
|
||
Join,
|
||
Map,
|
||
Options,
|
||
SafeConfig,
|
||
State,
|
||
Tracker,
|
||
Unsafe
|
||
} from './lib/types.js'
|