@ckeditor/ckeditor5-markdown-gfm 46.0.0-alpha.2 → 46.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/markdown2html/markdown2html.ts","../src/html2markdown/html2markdown.ts","../src/gfmdataprocessor.ts","../src/markdown.ts","../src/pastefrommarkdownexperimental.ts"],"names":["MarkdownGfmMdToHtml","_processor","unified","use","remarkParse","remarkGfm","singleTilde","remarkBreaks","remarkRehype","allowDangerousHtml","rehypeDomRaw","deleteClassesFromToDoLists","rehypeStringify","parse","markdown","processSync","toString","replaceAll","tree","visit","node","tagName","children","filter","child","type","value","trim","properties","className","isNodeRootOrElement","some","template","document","createElement","innerHTML","toHtml","Array","from","content","childNodes","map","domNode","fromDom","MarkdownGfmHtmlToMd","_keepRawTags","_buildProcessor","keep","push","toLowerCase","html","_getRawTagsHandlers","reduce","handlers","state","tag","h","closeSelfClosing","endOfOpeningTagIndex","indexOf","openingTag","slice","closingTag","all","rehypeParse","removeLabelFromCheckboxes","rehypeRemark","remarkStringify","resourceLink","emphasis","rule","break","unsafe","character","index","parent","splice","MarkdownGfmDataProcessor","_htmlDP","_markdown2html","_html2markdown","HtmlDataProcessor","keepHtml","element","toView","data","toData","viewFragment","registerRawContentMatcher","pattern","useFillerType","Markdown","Plugin","editor","processor","viewDocument","pluginName","isOfficialPlugin","ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS","PasteFromMarkdownExperimental","_gfmDataProcessor","requires","ClipboardPipeline","init","view","editing","clipboardPipeline","plugins","get","shiftPressed","listenTo","evt","shiftKey","dataAsTextHtml","dataTransfer","getData","dataAsTextPlain","markdownFromHtml","_parseMarkdownFromHtml","htmlString","withoutOsSpecificTags","_removeOsSpecificTags","_containsOnlyAllowedFirstLevelTags","withoutWrapperTag","_removeFirstLevelWrapperTagsAndBrs","_containsAnyRemainingHtmlTags","_replaceHtmlReservedEntitiesWithCharacters","withoutMetaTag","replace","withoutHtmlTag","withoutBodyTag","parser","DOMParser","body","tempElement","parseFromString","tagNames","el","every","includes","brElements","querySelectorAll","br","replaceWith","outerElements","elementClone","cloneNode","str"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { HtmlDataProcessor } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { unified } from 'unified';\nimport remarkGfm from 'remark-gfm';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport remarkBreaks from 'remark-breaks';\nimport rehypeStringify from 'rehype-dom-stringify';\nimport { visit } from 'unist-util-visit';\nimport { toHtml } from 'hast-util-to-html';\nimport { fromDom } from 'hast-util-from-dom';\nimport rehypeParse from 'rehype-dom-parse';\nimport rehypeRemark from 'rehype-remark';\nimport remarkStringify from 'remark-stringify';\nimport { h } from 'hastscript';\nimport { ClipboardPipeline } from '@ckeditor/ckeditor5-clipboard/dist/index.js';\n\n/**\n * This is a helper class used by the {@link module:markdown-gfm/markdown Markdown feature} to convert Markdown to HTML.\n */ class MarkdownGfmMdToHtml {\n _processor;\n constructor(){\n this._processor = unified()// Parses Markdown to an abstract syntax tree (AST).\n .use(remarkParse)// Adds support for GitHub Flavored Markdown (GFM).\n .use(remarkGfm, {\n singleTilde: true\n })// Replaces line breaks with `<br>` tags.\n .use(remarkBreaks)// Turns markdown syntax tree to HTML syntax tree, ignoring embedded HTML.\n .use(remarkRehype, {\n allowDangerousHtml: true\n })// Handles HTML embedded in Markdown.\n .use(rehypeDomRaw)// Removes classes from list elements.\n .use(deleteClassesFromToDoLists)// Serializes HTML syntax tree to HTML string.\n .use(rehypeStringify);\n }\n parse(markdown) {\n return this._processor.processSync(markdown).toString().replaceAll('\\n</code>', '</code>');\n }\n}\n/**\n * Rehype plugin that improves handling of the To-do lists by removing:\n * * default classes added to `<ul>`, `<ol>`, and `<li>` elements.\n * * bogus space after <input type=\"checkbox\"> because it would be preserved by ViewDomConverter as it's next to an inline object.\n */ function deleteClassesFromToDoLists() {\n return (tree)=>{\n visit(tree, 'element', (node)=>{\n if (node.tagName === 'ul' || node.tagName === 'ol' || node.tagName === 'li') {\n node.children = node.children.filter((child)=>child.type !== 'text' || !!child.value.trim());\n delete node.properties.className;\n }\n });\n };\n}\n/**\n * Rehype plugin to parse raw HTML nodes inside Markdown. This plugin is used instead of `rehype-raw` or `rehype-stringify`,\n * because those plugins rely on `parse5` DOM parser which is heavy and redundant in the browser environment where we can\n * use the native DOM APIs.\n *\n * This plugins finds any node (root or element) whose children include `raw` nodes and reparses them like so:\n * 1. Serializes its children to an HTML string.\n * 2. Reparses the HTML string using a `<template>` element.\n * 3. Converts each parsed DOM node back into HAST nodes.\n * 4. Replaces the original children with the newly created HAST nodes.\n */ function rehypeDomRaw() {\n return (tree)=>{\n visit(tree, [\n 'root',\n 'element'\n ], (node)=>{\n /* istanbul ignore next -- @preserve */ if (!isNodeRootOrElement(node)) {\n return;\n }\n // Only act on nodes with at least one raw child.\n if (!node.children.some((child)=>child.type === 'raw')) {\n return;\n }\n const template = document.createElement('template');\n // Serialize all children to an HTML fragment.\n template.innerHTML = toHtml({\n type: 'root',\n children: node.children\n }, {\n allowDangerousHtml: true\n });\n // Convert each parsed DOM node back into HAST and replace the original children.\n node.children = Array.from(template.content.childNodes).map((domNode)=>fromDom(domNode));\n });\n };\n}\n/**\n * Only needed for the type guard.\n */ function isNodeRootOrElement(node) {\n return (node.type === 'root' || node.type === 'element') && node.children;\n}\n\nclass MarkdownGfmHtmlToMd {\n _processor;\n _keepRawTags = [];\n constructor(){\n this._buildProcessor();\n }\n keep(tagName) {\n this._keepRawTags.push(tagName.toLowerCase());\n this._buildProcessor();\n }\n parse(html) {\n return this._processor.processSync(html).toString().trim();\n }\n /**\n\t * Returns handlers for raw HTML tags that should be kept in the Markdown output.\n\t */ _getRawTagsHandlers() {\n return this._keepRawTags.reduce((handlers, tagName)=>{\n handlers[tagName] = (state, node)=>{\n const tag = toHtml(h(node.tagName, node.properties), {\n allowDangerousHtml: true,\n closeSelfClosing: true\n });\n const endOfOpeningTagIndex = tag.indexOf('>');\n const openingTag = tag.slice(0, endOfOpeningTagIndex + 1);\n const closingTag = tag.slice(endOfOpeningTagIndex + 1);\n return [\n {\n type: 'html',\n value: openingTag\n },\n ...state.all(node),\n {\n type: 'html',\n value: closingTag\n }\n ];\n };\n return handlers;\n }, {});\n }\n _buildProcessor() {\n this._processor = unified()// Parse HTML to an abstract syntax tree (AST).\n .use(rehypeParse)// Removes `<label>` element from TODO lists.\n .use(removeLabelFromCheckboxes)// Turns HTML syntax tree into Markdown syntax tree.\n .use(rehypeRemark, {\n // Keeps allowed HTML tags.\n handlers: this._getRawTagsHandlers()\n })// Adds support for GitHub Flavored Markdown (GFM).\n .use(remarkGfm, {\n singleTilde: true\n })// Replaces line breaks with `<br>` tags.\n .use(remarkBreaks)// Serializes Markdown syntax tree to Markdown string.\n .use(remarkStringify, {\n resourceLink: true,\n emphasis: '_',\n rule: '-',\n handlers: {\n break: ()=>'\\n'\n },\n unsafe: [\n {\n character: '<'\n }\n ]\n });\n }\n}\n/**\n * Removes `<label>` element from TODO lists, so that `<input>` and `text` are direct children of `<li>`.\n */ function removeLabelFromCheckboxes() {\n return function(tree) {\n visit(tree, 'element', (node, index, parent)=>{\n if (index !== null && node.tagName === 'label' && parent.type === 'element' && parent.tagName === 'li') {\n parent.children.splice(index, 1, ...node.children);\n }\n });\n };\n}\n\n/**\n * This data processor implementation uses GitHub Flavored Markdown as input/output data.\n *\n * See the {@glink features/markdown Markdown output} guide to learn more on how to enable it.\n */ class MarkdownGfmDataProcessor {\n /**\n\t * HTML data processor used to process HTML produced by the Markdown-to-HTML converter and the other way.\n\t */ _htmlDP;\n /**\n\t * Helper for converting Markdown to HTML.\n\t */ _markdown2html;\n /**\n\t * Helper for converting HTML to Markdown.\n\t */ _html2markdown;\n /**\n\t * Creates a new instance of the Markdown data processor class.\n\t */ constructor(document){\n this._htmlDP = new HtmlDataProcessor(document);\n this._markdown2html = new MarkdownGfmMdToHtml();\n this._html2markdown = new MarkdownGfmHtmlToMd();\n }\n /**\n\t * Keeps the specified element in the output as HTML. This is useful if the editor contains\n\t * features producing HTML that is not a part of the Markdown standard.\n\t *\n\t * By default, all HTML tags are removed.\n\t *\n\t * @param element The element name to be kept.\n\t */ keepHtml(element) {\n this._html2markdown.keep(element);\n }\n /**\n\t * Converts the provided Markdown string to a view tree.\n\t *\n\t * @param data A Markdown string.\n\t * @returns The converted view element.\n\t */ toView(data) {\n const html = this._markdown2html.parse(data);\n return this._htmlDP.toView(html);\n }\n /**\n\t * Converts the provided {@link module:engine/view/documentfragment~ViewDocumentFragment} to data format &ndash; in this\n\t * case to a Markdown string.\n\t *\n\t * @returns Markdown string.\n\t */ toData(viewFragment) {\n const html = this._htmlDP.toData(viewFragment);\n return this._html2markdown.parse(html);\n }\n /**\n\t * Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as raw data\n\t * and not processed during the conversion from Markdown to view elements.\n\t *\n\t * The raw data can be later accessed by a\n\t * {@link module:engine/view/element~ViewElement#getCustomProperty custom property of a view element} called `\"$rawContent\"`.\n\t *\n\t * @param pattern The pattern matching all view elements whose content should\n\t * be treated as raw data.\n\t */ registerRawContentMatcher(pattern) {\n this._htmlDP.registerRawContentMatcher(pattern);\n }\n /**\n\t * This method does not have any effect on the data processor result. It exists for compatibility with the\n\t * {@link module:engine/dataprocessor/dataprocessor~DataProcessor `DataProcessor` interface}.\n\t */ useFillerType() {}\n}\n\n/**\n * The GitHub Flavored Markdown (GFM) plugin.\n *\n * For a detailed overview, check the {@glink features/markdown Markdown feature} guide.\n */ class Markdown extends Plugin {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.data.processor = new MarkdownGfmDataProcessor(editor.data.viewDocument);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Markdown';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nconst ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS = [\n 'SPAN',\n 'BR',\n 'PRE',\n 'CODE'\n];\n/**\n * The GitHub Flavored Markdown (GFM) paste plugin.\n *\n * For a detailed overview, check the {@glink features/pasting/paste-markdown Paste Markdown feature} guide.\n */ class PasteFromMarkdownExperimental extends Plugin {\n /**\n\t * @internal\n\t */ _gfmDataProcessor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._gfmDataProcessor = new MarkdownGfmDataProcessor(editor.data.viewDocument);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'PasteFromMarkdownExperimental';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ClipboardPipeline\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n let shiftPressed = false;\n this.listenTo(viewDocument, 'keydown', (evt, data)=>{\n shiftPressed = data.shiftKey;\n });\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data)=>{\n if (shiftPressed) {\n return;\n }\n const dataAsTextHtml = data.dataTransfer.getData('text/html');\n if (!dataAsTextHtml) {\n const dataAsTextPlain = data.dataTransfer.getData('text/plain');\n data.content = this._gfmDataProcessor.toView(dataAsTextPlain);\n return;\n }\n const markdownFromHtml = this._parseMarkdownFromHtml(dataAsTextHtml);\n if (markdownFromHtml) {\n data.content = this._gfmDataProcessor.toView(markdownFromHtml);\n }\n });\n }\n /**\n\t * Determines if the code copied from a website in the `text/html` type can be parsed as Markdown.\n\t * It removes any OS-specific HTML tags, for example, <meta> on macOS and <!--StartFragment--> on Windows.\n\t * Then removes a single wrapper HTML tag or wrappers for sibling tags, and if there are no more tags left,\n\t * returns the remaining text. Returns null if there are any remaining HTML tags detected.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */ _parseMarkdownFromHtml(htmlString) {\n const withoutOsSpecificTags = this._removeOsSpecificTags(htmlString);\n if (!this._containsOnlyAllowedFirstLevelTags(withoutOsSpecificTags)) {\n return null;\n }\n const withoutWrapperTag = this._removeFirstLevelWrapperTagsAndBrs(withoutOsSpecificTags);\n if (this._containsAnyRemainingHtmlTags(withoutWrapperTag)) {\n return null;\n }\n return this._replaceHtmlReservedEntitiesWithCharacters(withoutWrapperTag);\n }\n /**\n\t * Removes OS-specific tags.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */ _removeOsSpecificTags(htmlString) {\n // Removing the <meta> tag present on Mac.\n const withoutMetaTag = htmlString.replace(/^<meta\\b[^>]*>/, '').trim();\n // Removing the <html> tag present on Windows.\n const withoutHtmlTag = withoutMetaTag.replace(/^<html>/, '').replace(/<\\/html>$/, '').trim();\n // Removing the <body> tag present on Windows.\n const withoutBodyTag = withoutHtmlTag.replace(/^<body>/, '').replace(/<\\/body>$/, '').trim();\n // Removing the <!--StartFragment--> tag present on Windows.\n return withoutBodyTag.replace(/^<!--StartFragment-->/, '').replace(/<!--EndFragment-->$/, '').trim();\n }\n /**\n\t * If the input HTML string contains any first-level formatting tags\n\t * like <b>, <strong>, or <i>, we should not treat it as Markdown.\n\t *\n\t * @param htmlString Clipboard content.\n\t */ _containsOnlyAllowedFirstLevelTags(htmlString) {\n const parser = new DOMParser();\n const { body: tempElement } = parser.parseFromString(htmlString, 'text/html');\n const tagNames = Array.from(tempElement.children).map((el)=>el.tagName);\n return tagNames.every((el)=>ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS.includes(el));\n }\n /**\n\t * Removes multiple HTML wrapper tags from a list of sibling HTML tags.\n\t *\n\t * @param htmlString Clipboard content without any OS-specific tags.\n\t */ _removeFirstLevelWrapperTagsAndBrs(htmlString) {\n const parser = new DOMParser();\n const { body: tempElement } = parser.parseFromString(htmlString, 'text/html');\n const brElements = tempElement.querySelectorAll('br');\n for (const br of brElements){\n br.replaceWith('\\n');\n }\n const outerElements = tempElement.querySelectorAll(':scope > *');\n for (const element of outerElements){\n const elementClone = element.cloneNode(true);\n element.replaceWith(...elementClone.childNodes);\n }\n return tempElement.innerHTML;\n }\n /**\n\t * Determines if a string contains any HTML tags.\n\t */ _containsAnyRemainingHtmlTags(str) {\n return str.includes('<');\n }\n /**\n\t * Replaces the reserved HTML entities with the actual characters.\n\t *\n\t * @param htmlString Clipboard content without any tags.\n\t */ _replaceHtmlReservedEntitiesWithCharacters(htmlString) {\n return htmlString.replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&nbsp;/g, ' ');\n }\n}\n\nexport { Markdown, MarkdownGfmDataProcessor, MarkdownGfmHtmlToMd, MarkdownGfmMdToHtml, PasteFromMarkdownExperimental };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/markdown2html/markdown2html\n */\n\nimport { unified, type Plugin } from 'unified';\nimport remarkGfm from 'remark-gfm';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport remarkBreaks from 'remark-breaks';\nimport rehypeStringify from 'rehype-dom-stringify';\nimport { visit } from 'unist-util-visit';\nimport { toHtml } from 'hast-util-to-html';\nimport { fromDom } from 'hast-util-from-dom';\nimport type { Element, Node, Root, RootContent } from 'hast';\n\n/**\n * This is a helper class used by the {@link module:markdown-gfm/markdown Markdown feature} to convert Markdown to HTML.\n */\nexport class MarkdownGfmMdToHtml {\n\tprivate _processor;\n\n\tconstructor() {\n\t\tthis._processor = unified()\n\t\t\t// Parses Markdown to an abstract syntax tree (AST).\n\t\t\t.use( remarkParse )\n\t\t\t// Adds support for GitHub Flavored Markdown (GFM).\n\t\t\t.use( remarkGfm, { singleTilde: true } )\n\t\t\t// Replaces line breaks with `<br>` tags.\n\t\t\t.use( remarkBreaks )\n\t\t\t// Turns markdown syntax tree to HTML syntax tree, ignoring embedded HTML.\n\t\t\t.use( remarkRehype, { allowDangerousHtml: true } )\n\t\t\t// Handles HTML embedded in Markdown.\n\t\t\t.use( rehypeDomRaw )\n\t\t\t// Removes classes from list elements.\n\t\t\t.use( deleteClassesFromToDoLists )\n\t\t\t// Serializes HTML syntax tree to HTML string.\n\t\t\t.use( rehypeStringify );\n\t}\n\n\tpublic parse( markdown: string ): string {\n\t\treturn this._processor\n\t\t\t.processSync( markdown )\n\t\t\t.toString()\n\t\t\t.replaceAll( '\\n</code>', '</code>' );\n\t}\n}\n\n/**\n * Rehype plugin that improves handling of the To-do lists by removing:\n * * default classes added to `<ul>`, `<ol>`, and `<li>` elements.\n * * bogus space after <input type=\"checkbox\"> because it would be preserved by ViewDomConverter as it's next to an inline object.\n */\nfunction deleteClassesFromToDoLists(): ReturnType<Plugin> {\n\treturn ( tree: Node ): void => {\n\t\tvisit( tree, 'element', ( node: Element ) => {\n\t\t\tif ( node.tagName === 'ul' || node.tagName === 'ol' || node.tagName === 'li' ) {\n\t\t\t\tnode.children = node.children.filter( child => child.type !== 'text' || !!child.value.trim() );\n\t\t\t\tdelete node.properties.className;\n\t\t\t}\n\t\t} );\n\t};\n}\n\n/**\n * Rehype plugin to parse raw HTML nodes inside Markdown. This plugin is used instead of `rehype-raw` or `rehype-stringify`,\n * because those plugins rely on `parse5` DOM parser which is heavy and redundant in the browser environment where we can\n * use the native DOM APIs.\n *\n * This plugins finds any node (root or element) whose children include `raw` nodes and reparses them like so:\n * 1. Serializes its children to an HTML string.\n * 2. Reparses the HTML string using a `<template>` element.\n * 3. Converts each parsed DOM node back into HAST nodes.\n * 4. Replaces the original children with the newly created HAST nodes.\n */\nfunction rehypeDomRaw(): ReturnType<Plugin> {\n\treturn ( tree: Node ): void => {\n\t\tvisit( tree, [ 'root', 'element' ], ( node: Node | Element ) => {\n\t\t\t/* istanbul ignore next -- @preserve */\n\t\t\tif ( !isNodeRootOrElement( node ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only act on nodes with at least one raw child.\n\t\t\tif ( !node.children.some( child => child.type === 'raw' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst template = document.createElement( 'template' );\n\n\t\t\t// Serialize all children to an HTML fragment.\n\t\t\ttemplate.innerHTML = toHtml(\n\t\t\t\t{ type: 'root', children: node.children },\n\t\t\t\t{ allowDangerousHtml: true }\n\t\t\t);\n\n\t\t\t// Convert each parsed DOM node back into HAST and replace the original children.\n\t\t\tnode.children = Array\n\t\t\t\t.from( template.content.childNodes )\n\t\t\t\t.map( domNode => fromDom( domNode ) as RootContent );\n\t\t} );\n\t};\n}\n\n/**\n * Only needed for the type guard.\n */\nfunction isNodeRootOrElement( node: any ): node is Root | Element {\n\treturn ( node.type === 'root' || node.type === 'element' ) && node.children;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/html2markdown/html2markdown\n */\n\nimport { unified, type Plugin } from 'unified';\nimport rehypeParse from 'rehype-dom-parse';\nimport rehypeRemark from 'rehype-remark';\nimport remarkBreaks from 'remark-breaks';\nimport remarkGfm from 'remark-gfm';\nimport remarkStringify from 'remark-stringify';\nimport { visit } from 'unist-util-visit';\nimport { h } from 'hastscript';\nimport { toHtml } from 'hast-util-to-html';\nimport type { Handle, State } from 'hast-util-to-mdast';\nimport type { Element, Node, Root } from 'hast';\n\nexport class MarkdownGfmHtmlToMd {\n\tprivate _processor: any;\n\tprivate _keepRawTags: Array<string> = [];\n\n\tconstructor() {\n\t\tthis._buildProcessor();\n\t}\n\n\tpublic keep( tagName: string ): void {\n\t\tthis._keepRawTags.push( tagName.toLowerCase() );\n\t\tthis._buildProcessor();\n\t}\n\n\tpublic parse( html: string ): string {\n\t\treturn this._processor!\n\t\t\t.processSync( html )\n\t\t\t.toString()\n\t\t\t.trim();\n\t}\n\n\t/**\n\t * Returns handlers for raw HTML tags that should be kept in the Markdown output.\n\t */\n\tprivate _getRawTagsHandlers(): Record<string, Handle> {\n\t\treturn this._keepRawTags.reduce( ( handlers: Record<string, Handle>, tagName: string ) => {\n\t\t\thandlers[ tagName ] = ( state: State, node: Element ): any => {\n\t\t\t\tconst tag = toHtml( h( node.tagName, node.properties ), {\n\t\t\t\t\tallowDangerousHtml: true,\n\t\t\t\t\tcloseSelfClosing: true\n\t\t\t\t} );\n\n\t\t\t\tconst endOfOpeningTagIndex = tag.indexOf( '>' );\n\t\t\t\tconst openingTag = tag.slice( 0, endOfOpeningTagIndex + 1 );\n\t\t\t\tconst closingTag = tag.slice( endOfOpeningTagIndex + 1 );\n\n\t\t\t\treturn [\n\t\t\t\t\t{ type: 'html', value: openingTag },\n\t\t\t\t\t...state.all( node ),\n\t\t\t\t\t{ type: 'html', value: closingTag }\n\t\t\t\t];\n\t\t\t};\n\t\t\treturn handlers;\n\t\t}, {} as Record<string, Handle> );\n\t}\n\n\tprivate _buildProcessor() {\n\t\tthis._processor = unified()\n\t\t\t// Parse HTML to an abstract syntax tree (AST).\n\t\t\t.use( rehypeParse )\n\t\t\t// Removes `<label>` element from TODO lists.\n\t\t\t.use( removeLabelFromCheckboxes )\n\t\t\t// Turns HTML syntax tree into Markdown syntax tree.\n\t\t\t.use( rehypeRemark, {\n\t\t\t\t// Keeps allowed HTML tags.\n\t\t\t\thandlers: this._getRawTagsHandlers()\n\t\t\t} )\n\t\t\t// Adds support for GitHub Flavored Markdown (GFM).\n\t\t\t.use( remarkGfm, {\n\t\t\t\tsingleTilde: true\n\t\t\t} )\n\t\t\t// Replaces line breaks with `<br>` tags.\n\t\t\t.use( remarkBreaks )\n\t\t\t// Serializes Markdown syntax tree to Markdown string.\n\t\t\t.use( remarkStringify, {\n\t\t\t\tresourceLink: true,\n\t\t\t\temphasis: '_',\n\t\t\t\trule: '-',\n\t\t\t\thandlers: {\n\t\t\t\t\tbreak: () => '\\n'\n\t\t\t\t},\n\t\t\t\tunsafe: [\n\t\t\t\t\t{ character: '<' }\n\t\t\t\t]\n\t\t\t} );\n\t}\n}\n\n/**\n * Removes `<label>` element from TODO lists, so that `<input>` and `text` are direct children of `<li>`.\n */\nfunction removeLabelFromCheckboxes(): ReturnType<Plugin> {\n\treturn function( tree: Node ): void {\n\t\tvisit( tree, 'element', ( node: Element, index: number | null, parent: Root | Element ) => {\n\t\t\tif ( index !== null && node.tagName === 'label' && parent.type === 'element' && parent.tagName === 'li' ) {\n\t\t\t\tparent.children.splice( index, 1, ...node.children );\n\t\t\t}\n\t\t} );\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/gfmdataprocessor\n */\n\nimport {\n\tHtmlDataProcessor,\n\ttype DataProcessor,\n\ttype ViewDocument,\n\ttype ViewDocumentFragment,\n\ttype MatcherPattern\n} from 'ckeditor5/src/engine.js';\n\nimport { MarkdownGfmMdToHtml } from './markdown2html/markdown2html.js';\nimport { MarkdownGfmHtmlToMd } from './html2markdown/html2markdown.js';\n\n/**\n * This data processor implementation uses GitHub Flavored Markdown as input/output data.\n *\n * See the {@glink features/markdown Markdown output} guide to learn more on how to enable it.\n */\nexport class MarkdownGfmDataProcessor implements DataProcessor {\n\t/**\n\t * HTML data processor used to process HTML produced by the Markdown-to-HTML converter and the other way.\n\t */\n\tprivate _htmlDP: HtmlDataProcessor;\n\n\t/**\n\t * Helper for converting Markdown to HTML.\n\t */\n\tprivate _markdown2html: MarkdownGfmMdToHtml;\n\n\t/**\n\t * Helper for converting HTML to Markdown.\n\t */\n\tprivate _html2markdown: MarkdownGfmHtmlToMd;\n\n\t/**\n\t * Creates a new instance of the Markdown data processor class.\n\t */\n\tconstructor( document: ViewDocument ) {\n\t\tthis._htmlDP = new HtmlDataProcessor( document );\n\t\tthis._markdown2html = new MarkdownGfmMdToHtml();\n\t\tthis._html2markdown = new MarkdownGfmHtmlToMd();\n\t}\n\n\t/**\n\t * Keeps the specified element in the output as HTML. This is useful if the editor contains\n\t * features producing HTML that is not a part of the Markdown standard.\n\t *\n\t * By default, all HTML tags are removed.\n\t *\n\t * @param element The element name to be kept.\n\t */\n\tpublic keepHtml( element: keyof HTMLElementTagNameMap ): void {\n\t\tthis._html2markdown.keep( element );\n\t}\n\n\t/**\n\t * Converts the provided Markdown string to a view tree.\n\t *\n\t * @param data A Markdown string.\n\t * @returns The converted view element.\n\t */\n\tpublic toView( data: string ): ViewDocumentFragment {\n\t\tconst html = this._markdown2html.parse( data );\n\t\treturn this._htmlDP.toView( html );\n\t}\n\n\t/**\n\t * Converts the provided {@link module:engine/view/documentfragment~ViewDocumentFragment} to data format &ndash; in this\n\t * case to a Markdown string.\n\t *\n\t * @returns Markdown string.\n\t */\n\tpublic toData( viewFragment: ViewDocumentFragment ): string {\n\t\tconst html = this._htmlDP.toData( viewFragment );\n\t\treturn this._html2markdown.parse( html );\n\t}\n\n\t/**\n\t * Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as raw data\n\t * and not processed during the conversion from Markdown to view elements.\n\t *\n\t * The raw data can be later accessed by a\n\t * {@link module:engine/view/element~ViewElement#getCustomProperty custom property of a view element} called `\"$rawContent\"`.\n\t *\n\t * @param pattern The pattern matching all view elements whose content should\n\t * be treated as raw data.\n\t */\n\tpublic registerRawContentMatcher( pattern: MatcherPattern ): void {\n\t\tthis._htmlDP.registerRawContentMatcher( pattern );\n\t}\n\n\t/**\n\t * This method does not have any effect on the data processor result. It exists for compatibility with the\n\t * {@link module:engine/dataprocessor/dataprocessor~DataProcessor `DataProcessor` interface}.\n\t */\n\tpublic useFillerType(): void {}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/markdown\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { MarkdownGfmDataProcessor } from './gfmdataprocessor.js';\n\n/**\n * The GitHub Flavored Markdown (GFM) plugin.\n *\n * For a detailed overview, check the {@glink features/markdown Markdown feature} guide.\n */\nexport class Markdown extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.data.processor = new MarkdownGfmDataProcessor( editor.data.viewDocument );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Markdown' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/pastefrommarkdownexperimental\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { ClipboardPipeline, type ClipboardInputTransformationEvent } from 'ckeditor5/src/clipboard.js';\nimport { MarkdownGfmDataProcessor } from './gfmdataprocessor.js';\nimport type { ViewDocumentKeyDownEvent } from 'ckeditor5/src/engine.js';\n\nconst ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS = [ 'SPAN', 'BR', 'PRE', 'CODE' ];\n\n/**\n * The GitHub Flavored Markdown (GFM) paste plugin.\n *\n * For a detailed overview, check the {@glink features/pasting/paste-markdown Paste Markdown feature} guide.\n */\nexport class PasteFromMarkdownExperimental extends Plugin {\n\t/**\n\t * @internal\n\t */\n\tprivate _gfmDataProcessor: MarkdownGfmDataProcessor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._gfmDataProcessor = new MarkdownGfmDataProcessor( editor.data.viewDocument );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PasteFromMarkdownExperimental' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ClipboardPipeline ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tlet shiftPressed = false;\n\n\t\tthis.listenTo<ViewDocumentKeyDownEvent>( viewDocument, 'keydown', ( evt, data ) => {\n\t\t\tshiftPressed = data.shiftKey;\n\t\t} );\n\n\t\tthis.listenTo<ClipboardInputTransformationEvent>( clipboardPipeline, 'inputTransformation', ( evt, data ) => {\n\t\t\tif ( shiftPressed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst dataAsTextHtml = data.dataTransfer.getData( 'text/html' );\n\n\t\t\tif ( !dataAsTextHtml ) {\n\t\t\t\tconst dataAsTextPlain = data.dataTransfer.getData( 'text/plain' );\n\n\t\t\t\tdata.content = this._gfmDataProcessor.toView( dataAsTextPlain );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst markdownFromHtml = this._parseMarkdownFromHtml( dataAsTextHtml );\n\n\t\t\tif ( markdownFromHtml ) {\n\t\t\t\tdata.content = this._gfmDataProcessor.toView( markdownFromHtml );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Determines if the code copied from a website in the `text/html` type can be parsed as Markdown.\n\t * It removes any OS-specific HTML tags, for example, <meta> on macOS and <!--StartFragment--> on Windows.\n\t * Then removes a single wrapper HTML tag or wrappers for sibling tags, and if there are no more tags left,\n\t * returns the remaining text. Returns null if there are any remaining HTML tags detected.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */\n\tprivate _parseMarkdownFromHtml( htmlString: string ): string | null {\n\t\tconst withoutOsSpecificTags = this._removeOsSpecificTags( htmlString );\n\n\t\tif ( !this._containsOnlyAllowedFirstLevelTags( withoutOsSpecificTags ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst withoutWrapperTag = this._removeFirstLevelWrapperTagsAndBrs( withoutOsSpecificTags );\n\n\t\tif ( this._containsAnyRemainingHtmlTags( withoutWrapperTag ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this._replaceHtmlReservedEntitiesWithCharacters( withoutWrapperTag );\n\t}\n\n\t/**\n\t * Removes OS-specific tags.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */\n\tprivate _removeOsSpecificTags( htmlString: string ): string {\n\t\t// Removing the <meta> tag present on Mac.\n\t\tconst withoutMetaTag = htmlString.replace( /^<meta\\b[^>]*>/, '' ).trim();\n\t\t// Removing the <html> tag present on Windows.\n\t\tconst withoutHtmlTag = withoutMetaTag.replace( /^<html>/, '' ).replace( /<\\/html>$/, '' ).trim();\n\t\t// Removing the <body> tag present on Windows.\n\t\tconst withoutBodyTag = withoutHtmlTag.replace( /^<body>/, '' ).replace( /<\\/body>$/, '' ).trim();\n\n\t\t// Removing the <!--StartFragment--> tag present on Windows.\n\t\treturn withoutBodyTag.replace( /^<!--StartFragment-->/, '' ).replace( /<!--EndFragment-->$/, '' ).trim();\n\t}\n\n\t/**\n\t * If the input HTML string contains any first-level formatting tags\n\t * like <b>, <strong>, or <i>, we should not treat it as Markdown.\n\t *\n\t * @param htmlString Clipboard content.\n\t */\n\tprivate _containsOnlyAllowedFirstLevelTags( htmlString: string ): boolean {\n\t\tconst parser = new DOMParser();\n\t\tconst { body: tempElement } = parser.parseFromString( htmlString, 'text/html' );\n\n\t\tconst tagNames = Array.from( tempElement.children ).map( el => el.tagName );\n\n\t\treturn tagNames.every( el => ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS.includes( el ) );\n\t}\n\n\t/**\n\t * Removes multiple HTML wrapper tags from a list of sibling HTML tags.\n\t *\n\t * @param htmlString Clipboard content without any OS-specific tags.\n\t */\n\tprivate _removeFirstLevelWrapperTagsAndBrs( htmlString: string ): string {\n\t\tconst parser = new DOMParser();\n\t\tconst { body: tempElement } = parser.parseFromString( htmlString, 'text/html' );\n\n\t\tconst brElements = tempElement.querySelectorAll( 'br' );\n\n\t\tfor ( const br of brElements ) {\n\t\t\tbr.replaceWith( '\\n' );\n\t\t}\n\n\t\tconst outerElements = tempElement.querySelectorAll( ':scope > *' );\n\n\t\tfor ( const element of outerElements ) {\n\t\t\tconst elementClone = element.cloneNode( true );\n\t\t\telement.replaceWith( ...elementClone.childNodes );\n\t\t}\n\n\t\treturn tempElement.innerHTML;\n\t}\n\n\t/**\n\t * Determines if a string contains any HTML tags.\n\t */\n\tprivate _containsAnyRemainingHtmlTags( str: string ): boolean {\n\t\treturn str.includes( '<' );\n\t}\n\n\t/**\n\t * Replaces the reserved HTML entities with the actual characters.\n\t *\n\t * @param htmlString Clipboard content without any tags.\n\t */\n\tprivate _replaceHtmlReservedEntitiesWithCharacters( htmlString: string ) {\n\t\treturn htmlString\n\t\t\t.replace( /&gt;/g, '>' )\n\t\t\t.replace( /&lt;/g, '<' )\n\t\t\t.replace( /&nbsp;/g, ' ' );\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/markdown2html/markdown2html.ts","../src/html2markdown/html2markdown.ts","../src/gfmdataprocessor.ts","../src/markdown.ts","../src/pastefrommarkdownexperimental.ts"],"names":["MarkdownGfmMdToHtml","_processor","unified","use","remarkParse","remarkGfm","singleTilde","remarkBreaks","remarkRehype","allowDangerousHtml","rehypeDomRaw","deleteClassesFromToDoLists","rehypeStringify","parse","markdown","processSync","toString","replaceAll","tree","visit","node","tagName","children","filter","child","type","value","trim","properties","className","isNodeRootOrElement","some","template","document","createElement","innerHTML","toHtml","Array","from","content","childNodes","map","domNode","fromDom","MarkdownGfmHtmlToMd","_keepRawTags","_buildProcessor","keep","push","toLowerCase","html","_getRawTagsHandlers","reduce","handlers","state","tag","h","closeSelfClosing","endOfOpeningTagIndex","indexOf","openingTag","slice","closingTag","all","rehypeParse","removeLabelFromCheckboxes","rehypeRemark","remarkStringify","resourceLink","emphasis","rule","break","unsafe","character","index","parent","splice","MarkdownGfmDataProcessor","_htmlDP","_markdown2html","_html2markdown","HtmlDataProcessor","keepHtml","element","toView","data","toData","viewFragment","registerRawContentMatcher","pattern","useFillerType","Markdown","Plugin","editor","processor","viewDocument","pluginName","isOfficialPlugin","ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS","PasteFromMarkdownExperimental","_gfmDataProcessor","requires","ClipboardPipeline","init","view","editing","clipboardPipeline","plugins","get","shiftPressed","listenTo","evt","shiftKey","dataAsTextHtml","dataTransfer","getData","dataAsTextPlain","markdownFromHtml","_parseMarkdownFromHtml","htmlString","withoutOsSpecificTags","_removeOsSpecificTags","_containsOnlyAllowedFirstLevelTags","withoutWrapperTag","_removeFirstLevelWrapperTagsAndBrs","_containsAnyRemainingHtmlTags","_replaceHtmlReservedEntitiesWithCharacters","withoutMetaTag","replace","withoutHtmlTag","withoutBodyTag","parser","DOMParser","body","tempElement","parseFromString","tagNames","el","every","includes","brElements","querySelectorAll","br","replaceWith","outerElements","elementClone","cloneNode","str"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { HtmlDataProcessor } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { unified } from 'unified';\nimport remarkGfm from 'remark-gfm';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport remarkBreaks from 'remark-breaks';\nimport rehypeStringify from 'rehype-dom-stringify';\nimport { visit } from 'unist-util-visit';\nimport { toHtml } from 'hast-util-to-html';\nimport { fromDom } from 'hast-util-from-dom';\nimport rehypeParse from 'rehype-dom-parse';\nimport rehypeRemark from 'rehype-remark';\nimport remarkStringify from 'remark-stringify';\nimport { h } from 'hastscript';\nimport { ClipboardPipeline } from '@ckeditor/ckeditor5-clipboard/dist/index.js';\n\n/**\n * This is a helper class used by the {@link module:markdown-gfm/markdown Markdown feature} to convert Markdown to HTML.\n */ class MarkdownGfmMdToHtml {\n _processor;\n constructor(){\n this._processor = unified()// Parses Markdown to an abstract syntax tree (AST).\n .use(remarkParse)// Adds support for GitHub Flavored Markdown (GFM).\n .use(remarkGfm, {\n singleTilde: true\n })// Replaces line breaks with `<br>` tags.\n .use(remarkBreaks)// Turns markdown syntax tree to HTML syntax tree, ignoring embedded HTML.\n .use(remarkRehype, {\n allowDangerousHtml: true\n })// Handles HTML embedded in Markdown.\n .use(rehypeDomRaw)// Removes classes from list elements.\n .use(deleteClassesFromToDoLists)// Serializes HTML syntax tree to HTML string.\n .use(rehypeStringify);\n }\n parse(markdown) {\n return this._processor.processSync(markdown).toString().replaceAll('\\n</code>', '</code>');\n }\n}\n/**\n * Rehype plugin that improves handling of the To-do lists by removing:\n * * default classes added to `<ul>`, `<ol>`, and `<li>` elements.\n * * bogus space after <input type=\"checkbox\"> because it would be preserved by ViewDomConverter as it's next to an inline object.\n */ function deleteClassesFromToDoLists() {\n return (tree)=>{\n visit(tree, 'element', (node)=>{\n if (node.tagName === 'ul' || node.tagName === 'ol' || node.tagName === 'li') {\n node.children = node.children.filter((child)=>child.type !== 'text' || !!child.value.trim());\n delete node.properties.className;\n }\n });\n };\n}\n/**\n * Rehype plugin to parse raw HTML nodes inside Markdown. This plugin is used instead of `rehype-raw` or `rehype-stringify`,\n * because those plugins rely on `parse5` DOM parser which is heavy and redundant in the browser environment where we can\n * use the native DOM APIs.\n *\n * This plugins finds any node (root or element) whose children include `raw` nodes and reparses them like so:\n * 1. Serializes its children to an HTML string.\n * 2. Reparses the HTML string using a `<template>` element.\n * 3. Converts each parsed DOM node back into HAST nodes.\n * 4. Replaces the original children with the newly created HAST nodes.\n */ function rehypeDomRaw() {\n return (tree)=>{\n visit(tree, [\n 'root',\n 'element'\n ], (node)=>{\n /* istanbul ignore next -- @preserve */ if (!isNodeRootOrElement(node)) {\n return;\n }\n // Only act on nodes with at least one raw child.\n if (!node.children.some((child)=>child.type === 'raw')) {\n return;\n }\n const template = document.createElement('template');\n // Serialize all children to an HTML fragment.\n template.innerHTML = toHtml({\n type: 'root',\n children: node.children\n }, {\n allowDangerousHtml: true\n });\n // Convert each parsed DOM node back into HAST and replace the original children.\n node.children = Array.from(template.content.childNodes).map((domNode)=>fromDom(domNode));\n });\n };\n}\n/**\n * Only needed for the type guard.\n */ function isNodeRootOrElement(node) {\n return (node.type === 'root' || node.type === 'element') && node.children;\n}\n\nclass MarkdownGfmHtmlToMd {\n _processor;\n _keepRawTags = [];\n constructor(){\n this._buildProcessor();\n }\n keep(tagName) {\n this._keepRawTags.push(tagName.toLowerCase());\n this._buildProcessor();\n }\n parse(html) {\n return this._processor.processSync(html).toString().trim();\n }\n /**\n\t * Returns handlers for raw HTML tags that should be kept in the Markdown output.\n\t */ _getRawTagsHandlers() {\n return this._keepRawTags.reduce((handlers, tagName)=>{\n handlers[tagName] = (state, node)=>{\n const tag = toHtml(h(node.tagName, node.properties), {\n allowDangerousHtml: true,\n closeSelfClosing: true\n });\n const endOfOpeningTagIndex = tag.indexOf('>');\n const openingTag = tag.slice(0, endOfOpeningTagIndex + 1);\n const closingTag = tag.slice(endOfOpeningTagIndex + 1);\n return [\n {\n type: 'html',\n value: openingTag\n },\n ...state.all(node),\n {\n type: 'html',\n value: closingTag\n }\n ];\n };\n return handlers;\n }, {});\n }\n _buildProcessor() {\n this._processor = unified()// Parse HTML to an abstract syntax tree (AST).\n .use(rehypeParse)// Removes `<label>` element from TODO lists.\n .use(removeLabelFromCheckboxes)// Turns HTML syntax tree into Markdown syntax tree.\n .use(rehypeRemark, {\n // Keeps allowed HTML tags.\n handlers: this._getRawTagsHandlers()\n })// Adds support for GitHub Flavored Markdown (GFM).\n .use(remarkGfm, {\n singleTilde: true\n })// Replaces line breaks with `<br>` tags.\n .use(remarkBreaks)// Serializes Markdown syntax tree to Markdown string.\n .use(remarkStringify, {\n resourceLink: true,\n emphasis: '_',\n rule: '-',\n handlers: {\n break: ()=>'\\n'\n },\n unsafe: [\n {\n character: '<'\n }\n ]\n });\n }\n}\n/**\n * Removes `<label>` element from TODO lists, so that `<input>` and `text` are direct children of `<li>`.\n */ function removeLabelFromCheckboxes() {\n return function(tree) {\n visit(tree, 'element', (node, index, parent)=>{\n if (index !== null && node.tagName === 'label' && parent.type === 'element' && parent.tagName === 'li') {\n parent.children.splice(index, 1, ...node.children);\n }\n });\n };\n}\n\n/**\n * This data processor implementation uses GitHub Flavored Markdown as input/output data.\n *\n * See the {@glink features/markdown Markdown output} guide to learn more on how to enable it.\n */ class MarkdownGfmDataProcessor {\n /**\n\t * HTML data processor used to process HTML produced by the Markdown-to-HTML converter and the other way.\n\t */ _htmlDP;\n /**\n\t * Helper for converting Markdown to HTML.\n\t */ _markdown2html;\n /**\n\t * Helper for converting HTML to Markdown.\n\t */ _html2markdown;\n /**\n\t * Creates a new instance of the Markdown data processor class.\n\t */ constructor(document){\n this._htmlDP = new HtmlDataProcessor(document);\n this._markdown2html = new MarkdownGfmMdToHtml();\n this._html2markdown = new MarkdownGfmHtmlToMd();\n }\n /**\n\t * Keeps the specified element in the output as HTML. This is useful if the editor contains\n\t * features producing HTML that is not a part of the Markdown standard.\n\t *\n\t * By default, all HTML tags are removed.\n\t *\n\t * @param element The element name to be kept.\n\t */ keepHtml(element) {\n this._html2markdown.keep(element);\n }\n /**\n\t * Converts the provided Markdown string to a view tree.\n\t *\n\t * @param data A Markdown string.\n\t * @returns The converted view element.\n\t */ toView(data) {\n const html = this._markdown2html.parse(data);\n return this._htmlDP.toView(html);\n }\n /**\n\t * Converts the provided {@link module:engine/view/documentfragment~ViewDocumentFragment} to data format &ndash; in this\n\t * case to a Markdown string.\n\t *\n\t * @returns Markdown string.\n\t */ toData(viewFragment) {\n const html = this._htmlDP.toData(viewFragment);\n return this._html2markdown.parse(html);\n }\n /**\n\t * Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as raw data\n\t * and not processed during the conversion from Markdown to view elements.\n\t *\n\t * The raw data can be later accessed by a\n\t * {@link module:engine/view/element~ViewElement#getCustomProperty custom property of a view element} called `\"$rawContent\"`.\n\t *\n\t * @param pattern The pattern matching all view elements whose content should\n\t * be treated as raw data.\n\t */ registerRawContentMatcher(pattern) {\n this._htmlDP.registerRawContentMatcher(pattern);\n }\n /**\n\t * This method does not have any effect on the data processor result. It exists for compatibility with the\n\t * {@link module:engine/dataprocessor/dataprocessor~DataProcessor `DataProcessor` interface}.\n\t */ useFillerType() {}\n}\n\n/**\n * The GitHub Flavored Markdown (GFM) plugin.\n *\n * For a detailed overview, check the {@glink features/markdown Markdown feature} guide.\n */ class Markdown extends Plugin {\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.data.processor = new MarkdownGfmDataProcessor(editor.data.viewDocument);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Markdown';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nconst ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS = [\n 'SPAN',\n 'BR',\n 'PRE',\n 'CODE'\n];\n/**\n * The GitHub Flavored Markdown (GFM) paste plugin.\n *\n * For a detailed overview, check the {@glink features/pasting/paste-markdown Paste Markdown feature} guide.\n */ class PasteFromMarkdownExperimental extends Plugin {\n /**\n\t * @internal\n\t */ _gfmDataProcessor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._gfmDataProcessor = new MarkdownGfmDataProcessor(editor.data.viewDocument);\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'PasteFromMarkdownExperimental';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n ClipboardPipeline\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const view = editor.editing.view;\n const viewDocument = view.document;\n const clipboardPipeline = editor.plugins.get('ClipboardPipeline');\n let shiftPressed = false;\n this.listenTo(viewDocument, 'keydown', (evt, data)=>{\n shiftPressed = data.shiftKey;\n });\n this.listenTo(clipboardPipeline, 'inputTransformation', (evt, data)=>{\n if (shiftPressed) {\n return;\n }\n const dataAsTextHtml = data.dataTransfer.getData('text/html');\n if (!dataAsTextHtml) {\n const dataAsTextPlain = data.dataTransfer.getData('text/plain');\n data.content = this._gfmDataProcessor.toView(dataAsTextPlain);\n return;\n }\n const markdownFromHtml = this._parseMarkdownFromHtml(dataAsTextHtml);\n if (markdownFromHtml) {\n data.content = this._gfmDataProcessor.toView(markdownFromHtml);\n }\n });\n }\n /**\n\t * Determines if the code copied from a website in the `text/html` type can be parsed as Markdown.\n\t * It removes any OS-specific HTML tags, for example, <meta> on macOS and <!--StartFragment--> on Windows.\n\t * Then removes a single wrapper HTML tag or wrappers for sibling tags, and if there are no more tags left,\n\t * returns the remaining text. Returns null if there are any remaining HTML tags detected.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */ _parseMarkdownFromHtml(htmlString) {\n const withoutOsSpecificTags = this._removeOsSpecificTags(htmlString);\n if (!this._containsOnlyAllowedFirstLevelTags(withoutOsSpecificTags)) {\n return null;\n }\n const withoutWrapperTag = this._removeFirstLevelWrapperTagsAndBrs(withoutOsSpecificTags);\n if (this._containsAnyRemainingHtmlTags(withoutWrapperTag)) {\n return null;\n }\n return this._replaceHtmlReservedEntitiesWithCharacters(withoutWrapperTag);\n }\n /**\n\t * Removes OS-specific tags.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */ _removeOsSpecificTags(htmlString) {\n // Removing the <meta> tag present on Mac.\n const withoutMetaTag = htmlString.replace(/^<meta\\b[^>]*>/, '').trim();\n // Removing the <html> tag present on Windows.\n const withoutHtmlTag = withoutMetaTag.replace(/^<html>/, '').replace(/<\\/html>$/, '').trim();\n // Removing the <body> tag present on Windows.\n const withoutBodyTag = withoutHtmlTag.replace(/^<body>/, '').replace(/<\\/body>$/, '').trim();\n // Removing the <!--StartFragment--> tag present on Windows.\n return withoutBodyTag.replace(/^<!--StartFragment-->/, '').replace(/<!--EndFragment-->$/, '').trim();\n }\n /**\n\t * If the input HTML string contains any first-level formatting tags\n\t * like <b>, <strong>, or <i>, we should not treat it as Markdown.\n\t *\n\t * @param htmlString Clipboard content.\n\t */ _containsOnlyAllowedFirstLevelTags(htmlString) {\n const parser = new DOMParser();\n const { body: tempElement } = parser.parseFromString(htmlString, 'text/html');\n const tagNames = Array.from(tempElement.children).map((el)=>el.tagName);\n return tagNames.every((el)=>ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS.includes(el));\n }\n /**\n\t * Removes multiple HTML wrapper tags from a list of sibling HTML tags.\n\t *\n\t * @param htmlString Clipboard content without any OS-specific tags.\n\t */ _removeFirstLevelWrapperTagsAndBrs(htmlString) {\n const parser = new DOMParser();\n const { body: tempElement } = parser.parseFromString(htmlString, 'text/html');\n const brElements = tempElement.querySelectorAll('br');\n for (const br of brElements){\n br.replaceWith('\\n');\n }\n const outerElements = tempElement.querySelectorAll(':scope > *');\n for (const element of outerElements){\n const elementClone = element.cloneNode(true);\n element.replaceWith(...elementClone.childNodes);\n }\n return tempElement.innerHTML;\n }\n /**\n\t * Determines if a string contains any HTML tags.\n\t */ _containsAnyRemainingHtmlTags(str) {\n return str.includes('<');\n }\n /**\n\t * Replaces the reserved HTML entities with the actual characters.\n\t *\n\t * @param htmlString Clipboard content without any tags.\n\t */ _replaceHtmlReservedEntitiesWithCharacters(htmlString) {\n return htmlString.replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&nbsp;/g, ' ');\n }\n}\n\nexport { Markdown, MarkdownGfmDataProcessor, MarkdownGfmHtmlToMd, MarkdownGfmMdToHtml, PasteFromMarkdownExperimental };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/markdown2html/markdown2html\n */\n\nimport { unified, type Plugin } from 'unified';\nimport remarkGfm from 'remark-gfm';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport remarkBreaks from 'remark-breaks';\nimport rehypeStringify from 'rehype-dom-stringify';\nimport { visit } from 'unist-util-visit';\nimport { toHtml } from 'hast-util-to-html';\nimport { fromDom } from 'hast-util-from-dom';\nimport type { Element, Node, Root, RootContent } from 'hast';\n\n/**\n * This is a helper class used by the {@link module:markdown-gfm/markdown Markdown feature} to convert Markdown to HTML.\n */\nexport class MarkdownGfmMdToHtml {\n\tprivate _processor;\n\n\tconstructor() {\n\t\tthis._processor = unified()\n\t\t\t// Parses Markdown to an abstract syntax tree (AST).\n\t\t\t.use( remarkParse )\n\t\t\t// Adds support for GitHub Flavored Markdown (GFM).\n\t\t\t.use( remarkGfm, { singleTilde: true } )\n\t\t\t// Replaces line breaks with `<br>` tags.\n\t\t\t.use( remarkBreaks )\n\t\t\t// Turns markdown syntax tree to HTML syntax tree, ignoring embedded HTML.\n\t\t\t.use( remarkRehype, { allowDangerousHtml: true } )\n\t\t\t// Handles HTML embedded in Markdown.\n\t\t\t.use( rehypeDomRaw )\n\t\t\t// Removes classes from list elements.\n\t\t\t.use( deleteClassesFromToDoLists )\n\t\t\t// Serializes HTML syntax tree to HTML string.\n\t\t\t.use( rehypeStringify );\n\t}\n\n\tpublic parse( markdown: string ): string {\n\t\treturn this._processor\n\t\t\t.processSync( markdown )\n\t\t\t.toString()\n\t\t\t.replaceAll( '\\n</code>', '</code>' );\n\t}\n}\n\n/**\n * Rehype plugin that improves handling of the To-do lists by removing:\n * * default classes added to `<ul>`, `<ol>`, and `<li>` elements.\n * * bogus space after <input type=\"checkbox\"> because it would be preserved by ViewDomConverter as it's next to an inline object.\n */\nfunction deleteClassesFromToDoLists(): ReturnType<Plugin> {\n\treturn ( tree: Node ): void => {\n\t\tvisit( tree, 'element', ( node: Element ) => {\n\t\t\tif ( node.tagName === 'ul' || node.tagName === 'ol' || node.tagName === 'li' ) {\n\t\t\t\tnode.children = node.children.filter( child => child.type !== 'text' || !!child.value.trim() );\n\t\t\t\tdelete node.properties.className;\n\t\t\t}\n\t\t} );\n\t};\n}\n\n/**\n * Rehype plugin to parse raw HTML nodes inside Markdown. This plugin is used instead of `rehype-raw` or `rehype-stringify`,\n * because those plugins rely on `parse5` DOM parser which is heavy and redundant in the browser environment where we can\n * use the native DOM APIs.\n *\n * This plugins finds any node (root or element) whose children include `raw` nodes and reparses them like so:\n * 1. Serializes its children to an HTML string.\n * 2. Reparses the HTML string using a `<template>` element.\n * 3. Converts each parsed DOM node back into HAST nodes.\n * 4. Replaces the original children with the newly created HAST nodes.\n */\nfunction rehypeDomRaw(): ReturnType<Plugin> {\n\treturn ( tree: Node ): void => {\n\t\tvisit( tree, [ 'root', 'element' ], ( node: Node | Element ) => {\n\t\t\t/* istanbul ignore next -- @preserve */\n\t\t\tif ( !isNodeRootOrElement( node ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only act on nodes with at least one raw child.\n\t\t\tif ( !node.children.some( child => child.type === 'raw' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst template = document.createElement( 'template' );\n\n\t\t\t// Serialize all children to an HTML fragment.\n\t\t\ttemplate.innerHTML = toHtml(\n\t\t\t\t{ type: 'root', children: node.children },\n\t\t\t\t{ allowDangerousHtml: true }\n\t\t\t);\n\n\t\t\t// Convert each parsed DOM node back into HAST and replace the original children.\n\t\t\tnode.children = Array\n\t\t\t\t.from( template.content.childNodes )\n\t\t\t\t.map( domNode => fromDom( domNode ) as RootContent );\n\t\t} );\n\t};\n}\n\n/**\n * Only needed for the type guard.\n */\nfunction isNodeRootOrElement( node: any ): node is Root | Element {\n\treturn ( node.type === 'root' || node.type === 'element' ) && node.children;\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/html2markdown/html2markdown\n */\n\nimport { unified, type Plugin } from 'unified';\nimport rehypeParse from 'rehype-dom-parse';\nimport rehypeRemark from 'rehype-remark';\nimport remarkBreaks from 'remark-breaks';\nimport remarkGfm from 'remark-gfm';\nimport remarkStringify from 'remark-stringify';\nimport { visit } from 'unist-util-visit';\nimport { h } from 'hastscript';\nimport { toHtml } from 'hast-util-to-html';\nimport type { Handle, State } from 'hast-util-to-mdast';\nimport type { Element, Node, Root } from 'hast';\n\nexport class MarkdownGfmHtmlToMd {\n\tprivate _processor: any;\n\tprivate _keepRawTags: Array<string> = [];\n\n\tconstructor() {\n\t\tthis._buildProcessor();\n\t}\n\n\tpublic keep( tagName: string ): void {\n\t\tthis._keepRawTags.push( tagName.toLowerCase() );\n\t\tthis._buildProcessor();\n\t}\n\n\tpublic parse( html: string ): string {\n\t\treturn this._processor!\n\t\t\t.processSync( html )\n\t\t\t.toString()\n\t\t\t.trim();\n\t}\n\n\t/**\n\t * Returns handlers for raw HTML tags that should be kept in the Markdown output.\n\t */\n\tprivate _getRawTagsHandlers(): Record<string, Handle> {\n\t\treturn this._keepRawTags.reduce( ( handlers: Record<string, Handle>, tagName: string ) => {\n\t\t\thandlers[ tagName ] = ( state: State, node: Element ): any => {\n\t\t\t\tconst tag = toHtml( h( node.tagName, node.properties ), {\n\t\t\t\t\tallowDangerousHtml: true,\n\t\t\t\t\tcloseSelfClosing: true\n\t\t\t\t} );\n\n\t\t\t\tconst endOfOpeningTagIndex = tag.indexOf( '>' );\n\t\t\t\tconst openingTag = tag.slice( 0, endOfOpeningTagIndex + 1 );\n\t\t\t\tconst closingTag = tag.slice( endOfOpeningTagIndex + 1 );\n\n\t\t\t\treturn [\n\t\t\t\t\t{ type: 'html', value: openingTag },\n\t\t\t\t\t...state.all( node ),\n\t\t\t\t\t{ type: 'html', value: closingTag }\n\t\t\t\t];\n\t\t\t};\n\t\t\treturn handlers;\n\t\t}, {} as Record<string, Handle> );\n\t}\n\n\tprivate _buildProcessor() {\n\t\tthis._processor = unified()\n\t\t\t// Parse HTML to an abstract syntax tree (AST).\n\t\t\t.use( rehypeParse )\n\t\t\t// Removes `<label>` element from TODO lists.\n\t\t\t.use( removeLabelFromCheckboxes )\n\t\t\t// Turns HTML syntax tree into Markdown syntax tree.\n\t\t\t.use( rehypeRemark, {\n\t\t\t\t// Keeps allowed HTML tags.\n\t\t\t\thandlers: this._getRawTagsHandlers()\n\t\t\t} )\n\t\t\t// Adds support for GitHub Flavored Markdown (GFM).\n\t\t\t.use( remarkGfm, {\n\t\t\t\tsingleTilde: true\n\t\t\t} )\n\t\t\t// Replaces line breaks with `<br>` tags.\n\t\t\t.use( remarkBreaks )\n\t\t\t// Serializes Markdown syntax tree to Markdown string.\n\t\t\t.use( remarkStringify, {\n\t\t\t\tresourceLink: true,\n\t\t\t\temphasis: '_',\n\t\t\t\trule: '-',\n\t\t\t\thandlers: {\n\t\t\t\t\tbreak: () => '\\n'\n\t\t\t\t},\n\t\t\t\tunsafe: [\n\t\t\t\t\t{ character: '<' }\n\t\t\t\t]\n\t\t\t} );\n\t}\n}\n\n/**\n * Removes `<label>` element from TODO lists, so that `<input>` and `text` are direct children of `<li>`.\n */\nfunction removeLabelFromCheckboxes(): ReturnType<Plugin> {\n\treturn function( tree: Node ): void {\n\t\tvisit( tree, 'element', ( node: Element, index: number | null, parent: Root | Element ) => {\n\t\t\tif ( index !== null && node.tagName === 'label' && parent.type === 'element' && parent.tagName === 'li' ) {\n\t\t\t\tparent.children.splice( index, 1, ...node.children );\n\t\t\t}\n\t\t} );\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/gfmdataprocessor\n */\n\nimport {\n\tHtmlDataProcessor,\n\ttype DataProcessor,\n\ttype ViewDocument,\n\ttype ViewDocumentFragment,\n\ttype MatcherPattern\n} from 'ckeditor5/src/engine.js';\n\nimport { MarkdownGfmMdToHtml } from './markdown2html/markdown2html.js';\nimport { MarkdownGfmHtmlToMd } from './html2markdown/html2markdown.js';\n\n/**\n * This data processor implementation uses GitHub Flavored Markdown as input/output data.\n *\n * See the {@glink features/markdown Markdown output} guide to learn more on how to enable it.\n */\nexport class MarkdownGfmDataProcessor implements DataProcessor {\n\t/**\n\t * HTML data processor used to process HTML produced by the Markdown-to-HTML converter and the other way.\n\t */\n\tprivate _htmlDP: HtmlDataProcessor;\n\n\t/**\n\t * Helper for converting Markdown to HTML.\n\t */\n\tprivate _markdown2html: MarkdownGfmMdToHtml;\n\n\t/**\n\t * Helper for converting HTML to Markdown.\n\t */\n\tprivate _html2markdown: MarkdownGfmHtmlToMd;\n\n\t/**\n\t * Creates a new instance of the Markdown data processor class.\n\t */\n\tconstructor( document: ViewDocument ) {\n\t\tthis._htmlDP = new HtmlDataProcessor( document );\n\t\tthis._markdown2html = new MarkdownGfmMdToHtml();\n\t\tthis._html2markdown = new MarkdownGfmHtmlToMd();\n\t}\n\n\t/**\n\t * Keeps the specified element in the output as HTML. This is useful if the editor contains\n\t * features producing HTML that is not a part of the Markdown standard.\n\t *\n\t * By default, all HTML tags are removed.\n\t *\n\t * @param element The element name to be kept.\n\t */\n\tpublic keepHtml( element: keyof HTMLElementTagNameMap ): void {\n\t\tthis._html2markdown.keep( element );\n\t}\n\n\t/**\n\t * Converts the provided Markdown string to a view tree.\n\t *\n\t * @param data A Markdown string.\n\t * @returns The converted view element.\n\t */\n\tpublic toView( data: string ): ViewDocumentFragment {\n\t\tconst html = this._markdown2html.parse( data );\n\t\treturn this._htmlDP.toView( html );\n\t}\n\n\t/**\n\t * Converts the provided {@link module:engine/view/documentfragment~ViewDocumentFragment} to data format &ndash; in this\n\t * case to a Markdown string.\n\t *\n\t * @returns Markdown string.\n\t */\n\tpublic toData( viewFragment: ViewDocumentFragment ): string {\n\t\tconst html = this._htmlDP.toData( viewFragment );\n\t\treturn this._html2markdown.parse( html );\n\t}\n\n\t/**\n\t * Registers a {@link module:engine/view/matcher~MatcherPattern} for view elements whose content should be treated as raw data\n\t * and not processed during the conversion from Markdown to view elements.\n\t *\n\t * The raw data can be later accessed by a\n\t * {@link module:engine/view/element~ViewElement#getCustomProperty custom property of a view element} called `\"$rawContent\"`.\n\t *\n\t * @param pattern The pattern matching all view elements whose content should\n\t * be treated as raw data.\n\t */\n\tpublic registerRawContentMatcher( pattern: MatcherPattern ): void {\n\t\tthis._htmlDP.registerRawContentMatcher( pattern );\n\t}\n\n\t/**\n\t * This method does not have any effect on the data processor result. It exists for compatibility with the\n\t * {@link module:engine/dataprocessor/dataprocessor~DataProcessor `DataProcessor` interface}.\n\t */\n\tpublic useFillerType(): void {}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/markdown\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { MarkdownGfmDataProcessor } from './gfmdataprocessor.js';\n\n/**\n * The GitHub Flavored Markdown (GFM) plugin.\n *\n * For a detailed overview, check the {@glink features/markdown Markdown feature} guide.\n */\nexport class Markdown extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.data.processor = new MarkdownGfmDataProcessor( editor.data.viewDocument );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Markdown' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module markdown-gfm/pastefrommarkdownexperimental\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { ClipboardPipeline, type ClipboardInputTransformationEvent } from 'ckeditor5/src/clipboard.js';\nimport { MarkdownGfmDataProcessor } from './gfmdataprocessor.js';\nimport type { ViewDocumentKeyDownEvent } from 'ckeditor5/src/engine.js';\n\nconst ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS = [ 'SPAN', 'BR', 'PRE', 'CODE' ];\n\n/**\n * The GitHub Flavored Markdown (GFM) paste plugin.\n *\n * For a detailed overview, check the {@glink features/pasting/paste-markdown Paste Markdown feature} guide.\n */\nexport class PasteFromMarkdownExperimental extends Plugin {\n\t/**\n\t * @internal\n\t */\n\tprivate _gfmDataProcessor: MarkdownGfmDataProcessor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._gfmDataProcessor = new MarkdownGfmDataProcessor( editor.data.viewDocument );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'PasteFromMarkdownExperimental' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ ClipboardPipeline ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst view = editor.editing.view;\n\t\tconst viewDocument = view.document;\n\n\t\tconst clipboardPipeline: ClipboardPipeline = editor.plugins.get( 'ClipboardPipeline' );\n\n\t\tlet shiftPressed = false;\n\n\t\tthis.listenTo<ViewDocumentKeyDownEvent>( viewDocument, 'keydown', ( evt, data ) => {\n\t\t\tshiftPressed = data.shiftKey;\n\t\t} );\n\n\t\tthis.listenTo<ClipboardInputTransformationEvent>( clipboardPipeline, 'inputTransformation', ( evt, data ) => {\n\t\t\tif ( shiftPressed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst dataAsTextHtml = data.dataTransfer.getData( 'text/html' );\n\n\t\t\tif ( !dataAsTextHtml ) {\n\t\t\t\tconst dataAsTextPlain = data.dataTransfer.getData( 'text/plain' );\n\n\t\t\t\tdata.content = this._gfmDataProcessor.toView( dataAsTextPlain );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst markdownFromHtml = this._parseMarkdownFromHtml( dataAsTextHtml );\n\n\t\t\tif ( markdownFromHtml ) {\n\t\t\t\tdata.content = this._gfmDataProcessor.toView( markdownFromHtml );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Determines if the code copied from a website in the `text/html` type can be parsed as Markdown.\n\t * It removes any OS-specific HTML tags, for example, <meta> on macOS and <!--StartFragment--> on Windows.\n\t * Then removes a single wrapper HTML tag or wrappers for sibling tags, and if there are no more tags left,\n\t * returns the remaining text. Returns null if there are any remaining HTML tags detected.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */\n\tprivate _parseMarkdownFromHtml( htmlString: string ): string | null {\n\t\tconst withoutOsSpecificTags = this._removeOsSpecificTags( htmlString );\n\n\t\tif ( !this._containsOnlyAllowedFirstLevelTags( withoutOsSpecificTags ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst withoutWrapperTag = this._removeFirstLevelWrapperTagsAndBrs( withoutOsSpecificTags );\n\n\t\tif ( this._containsAnyRemainingHtmlTags( withoutWrapperTag ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this._replaceHtmlReservedEntitiesWithCharacters( withoutWrapperTag );\n\t}\n\n\t/**\n\t * Removes OS-specific tags.\n\t *\n\t * @param htmlString Clipboard content in the `text/html` type format.\n\t */\n\tprivate _removeOsSpecificTags( htmlString: string ): string {\n\t\t// Removing the <meta> tag present on Mac.\n\t\tconst withoutMetaTag = htmlString.replace( /^<meta\\b[^>]*>/, '' ).trim();\n\t\t// Removing the <html> tag present on Windows.\n\t\tconst withoutHtmlTag = withoutMetaTag.replace( /^<html>/, '' ).replace( /<\\/html>$/, '' ).trim();\n\t\t// Removing the <body> tag present on Windows.\n\t\tconst withoutBodyTag = withoutHtmlTag.replace( /^<body>/, '' ).replace( /<\\/body>$/, '' ).trim();\n\n\t\t// Removing the <!--StartFragment--> tag present on Windows.\n\t\treturn withoutBodyTag.replace( /^<!--StartFragment-->/, '' ).replace( /<!--EndFragment-->$/, '' ).trim();\n\t}\n\n\t/**\n\t * If the input HTML string contains any first-level formatting tags\n\t * like <b>, <strong>, or <i>, we should not treat it as Markdown.\n\t *\n\t * @param htmlString Clipboard content.\n\t */\n\tprivate _containsOnlyAllowedFirstLevelTags( htmlString: string ): boolean {\n\t\tconst parser = new DOMParser();\n\t\tconst { body: tempElement } = parser.parseFromString( htmlString, 'text/html' );\n\n\t\tconst tagNames = Array.from( tempElement.children ).map( el => el.tagName );\n\n\t\treturn tagNames.every( el => ALLOWED_MARKDOWN_FIRST_LEVEL_TAGS.includes( el ) );\n\t}\n\n\t/**\n\t * Removes multiple HTML wrapper tags from a list of sibling HTML tags.\n\t *\n\t * @param htmlString Clipboard content without any OS-specific tags.\n\t */\n\tprivate _removeFirstLevelWrapperTagsAndBrs( htmlString: string ): string {\n\t\tconst parser = new DOMParser();\n\t\tconst { body: tempElement } = parser.parseFromString( htmlString, 'text/html' );\n\n\t\tconst brElements = tempElement.querySelectorAll( 'br' );\n\n\t\tfor ( const br of brElements ) {\n\t\t\tbr.replaceWith( '\\n' );\n\t\t}\n\n\t\tconst outerElements = tempElement.querySelectorAll( ':scope > *' );\n\n\t\tfor ( const element of outerElements ) {\n\t\t\tconst elementClone = element.cloneNode( true );\n\t\t\telement.replaceWith( ...elementClone.childNodes );\n\t\t}\n\n\t\treturn tempElement.innerHTML;\n\t}\n\n\t/**\n\t * Determines if a string contains any HTML tags.\n\t */\n\tprivate _containsAnyRemainingHtmlTags( str: string ): boolean {\n\t\treturn str.includes( '<' );\n\t}\n\n\t/**\n\t * Replaces the reserved HTML entities with the actual characters.\n\t *\n\t * @param htmlString Clipboard content without any tags.\n\t */\n\tprivate _replaceHtmlReservedEntitiesWithCharacters( htmlString: string ) {\n\t\treturn htmlString\n\t\t\t.replace( /&gt;/g, '>' )\n\t\t\t.replace( /&lt;/g, '<' )\n\t\t\t.replace( /&nbsp;/g, ' ' );\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-markdown-gfm",
3
- "version": "46.0.0-alpha.2",
3
+ "version": "46.0.0-alpha.4",
4
4
  "description": "GitHub Flavored Markdown data processor for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -18,11 +18,11 @@
18
18
  "type": "module",
19
19
  "main": "src/index.js",
20
20
  "dependencies": {
21
- "@ckeditor/ckeditor5-clipboard": "46.0.0-alpha.2",
22
- "@ckeditor/ckeditor5-core": "46.0.0-alpha.2",
23
- "@ckeditor/ckeditor5-engine": "46.0.0-alpha.2",
21
+ "@ckeditor/ckeditor5-clipboard": "46.0.0-alpha.4",
22
+ "@ckeditor/ckeditor5-core": "46.0.0-alpha.4",
23
+ "@ckeditor/ckeditor5-engine": "46.0.0-alpha.4",
24
24
  "@types/hast": "3.0.4",
25
- "ckeditor5": "46.0.0-alpha.2",
25
+ "ckeditor5": "46.0.0-alpha.4",
26
26
  "hast-util-from-dom": "5.0.1",
27
27
  "hast-util-to-html": "9.0.5",
28
28
  "hast-util-to-mdast": "10.1.2",