UNPKG

@lexical/markdown

Version:

This package contains Markdown helpers and functionality for Lexical.

36 lines (35 loc) 3.39 kB
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ import { type BaseSelection, type ElementNode, type LexicalNode } from 'lexical'; import { registerMarkdownShortcuts } from './MarkdownShortcuts'; import { BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, CODE, ELEMENT_TRANSFORMERS, type ElementTransformer, HEADING, HIGHLIGHT, INLINE_CODE, isTableRowDivider, ITALIC_STAR, ITALIC_UNDERSCORE, LINK, MULTILINE_ELEMENT_TRANSFORMERS, type MultilineElementTransformer, ORDERED_LIST, QUOTE, STRIKETHROUGH, TEXT_FORMAT_TRANSFORMERS, TEXT_MATCH_TRANSFORMERS, type TextFormatTransformer, type TextMatchTransformer, type Transformer, TRANSFORMERS, UNORDERED_LIST } from './MarkdownTransformers'; /** * Renders markdown from a string. The selection is moved to the start after the operation. * * @param {boolean} [shouldPreserveNewLines] By setting this to true, new lines will be preserved between conversions * @param {boolean} [shouldMergeAdjacentLines] By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true. */ declare function $convertFromMarkdownString(markdown: string, transformers?: Transformer[], node?: ElementNode, shouldPreserveNewLines?: boolean, shouldMergeAdjacentLines?: boolean): void; /** * Parses a markdown string and returns the resulting nodes as an array, * without modifying the document tree or selection. The returned nodes can be * inserted at an arbitrary position via `selection.insertNodes()`. * * @param {boolean} [shouldPreserveNewLines] By setting this to true, new lines will be preserved between conversions * @param {boolean} [shouldMergeAdjacentLines] By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true. */ declare function $generateNodesFromMarkdownString(markdown: string, transformers?: Transformer[], shouldPreserveNewLines?: boolean, shouldMergeAdjacentLines?: boolean): LexicalNode[]; /** * Renders string from markdown. The selection is moved to the start after the operation. */ declare function $convertToMarkdownString(transformers?: Transformer[], node?: ElementNode, shouldPreserveNewLines?: boolean): string; /** * Converts the selected content to a markdown string. */ declare function $convertSelectionToMarkdownString(transformers: Transformer[] | undefined, selection: BaseSelection | null, shouldPreserveNewLines?: boolean): string; export { $convertFromMarkdownString, $convertSelectionToMarkdownString, $convertToMarkdownString, $generateNodesFromMarkdownString, BOLD_ITALIC_STAR, BOLD_ITALIC_UNDERSCORE, BOLD_STAR, BOLD_UNDERSCORE, CHECK_LIST, CODE, ELEMENT_TRANSFORMERS, type ElementTransformer, HEADING, HIGHLIGHT, INLINE_CODE, isTableRowDivider, ITALIC_STAR, ITALIC_UNDERSCORE, LINK, MULTILINE_ELEMENT_TRANSFORMERS, type MultilineElementTransformer, ORDERED_LIST, QUOTE, registerMarkdownShortcuts, STRIKETHROUGH, TEXT_FORMAT_TRANSFORMERS, TEXT_MATCH_TRANSFORMERS, type TextFormatTransformer, type TextMatchTransformer, type Transformer, TRANSFORMERS, UNORDERED_LIST, };