{"version":3,"file":"index.modern.mjs","sources":["../src/markdown-schema.ts","../src/markdown-parser.ts","../src/index.ts"],"sourcesContent":["import { Schema } from '@tiptap/pm/model'\n\nexport const schema = new Schema({\n\tnodes: {\n\t\tdoc: {\n\t\t\tcontent: 'block+',\n\t\t},\n\n\t\tparagraph: {\n\t\t\tcontent: 'inline*',\n\t\t\tgroup: 'block',\n\t\t\tparseDOM: [{ tag: 'p' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['p', 0]\n\t\t\t},\n\t\t},\n\n\t\tblockquote: {\n\t\t\tcontent: 'block+',\n\t\t\tgroup: 'block',\n\t\t\tparseDOM: [{ tag: 'blockquote' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['blockquote', 0]\n\t\t\t},\n\t\t},\n\n\t\thorizontal_rule: {\n\t\t\tgroup: 'block',\n\t\t\tparseDOM: [{ tag: 'hr' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['div', ['hr']]\n\t\t\t},\n\t\t},\n\n\t\theading: {\n\t\t\tattrs: { level: { default: 1 } },\n\t\t\tcontent: 'inline*',\n\t\t\tgroup: 'block',\n\t\t\tdefining: true,\n\t\t\tparseDOM: [\n\t\t\t\t{ tag: 'h1', attrs: { level: 1 } },\n\t\t\t\t{ tag: 'h2', attrs: { level: 2 } },\n\t\t\t\t{ tag: 'h3', attrs: { level: 3 } },\n\t\t\t\t{ tag: 'h4', attrs: { level: 4 } },\n\t\t\t\t{ tag: 'h5', attrs: { level: 5 } },\n\t\t\t\t{ tag: 'h6', attrs: { level: 6 } },\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn ['h' + node.attrs.level, 0]\n\t\t\t},\n\t\t},\n\n\t\tcode_block: {\n\t\t\tcontent: 'text*',\n\t\t\tgroup: 'block',\n\t\t\tcode: true,\n\t\t\tdefining: true,\n\t\t\tattrs: { params: { default: '' } },\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'pre',\n\t\t\t\t\tpreserveWhitespace: true,\n\t\t\t\t\tgetAttrs: (node) => ({\n\t\t\t\t\t\tparams:\n\t\t\t\t\t\t\ttypeof node !== 'string' ? node.getAttribute('data-params') : '',\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn [\n\t\t\t\t\t'pre',\n\t\t\t\t\tnode.attrs.params ? { 'data-params': node.attrs.params } : {},\n\t\t\t\t\t['code', 0],\n\t\t\t\t]\n\t\t\t},\n\t\t},\n\n\t\tordered_list: {\n\t\t\tcontent: 'list_item+',\n\t\t\tgroup: 'block',\n\t\t\tattrs: { order: { default: 1 }, tight: { default: false } },\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'ol',\n\t\t\t\t\tgetAttrs(dom) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\torder:\n\t\t\t\t\t\t\t\ttypeof dom !== 'string' && dom.hasAttribute('start')\n\t\t\t\t\t\t\t\t\t? Number(dom.getAttribute('start'))\n\t\t\t\t\t\t\t\t\t: 1,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn [\n\t\t\t\t\t'ol',\n\t\t\t\t\t{\n\t\t\t\t\t\tstart: node.attrs.order === 1 ? null : node.attrs.order,\n\t\t\t\t\t},\n\t\t\t\t\t0,\n\t\t\t\t]\n\t\t\t},\n\t\t},\n\n\t\tbullet_list: {\n\t\t\tcontent: 'list_item+',\n\t\t\tgroup: 'block',\n\t\t\tattrs: { tight: { default: false } },\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'ul',\n\t\t\t\t\tgetAttrs: (dom) => ({\n\t\t\t\t\t\ttight:\n\t\t\t\t\t\t\ttypeof dom !== 'string' ? dom.hasAttribute('data-tight') : '',\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn ['ul', { 'data-tight': node.attrs.tight ? 'true' : null }, 0]\n\t\t\t},\n\t\t},\n\n\t\tlist_item: {\n\t\t\tcontent: 'paragraph block*',\n\t\t\tdefining: true,\n\t\t\tparseDOM: [{ tag: 'li' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['li', 0]\n\t\t\t},\n\t\t},\n\n\t\ttext: {\n\t\t\tgroup: 'inline',\n\t\t\ttoDOM(node) {\n\t\t\t\treturn node.text ? document.createTextNode(node.text) : ''\n\t\t\t},\n\t\t},\n\n\t\timage: {\n\t\t\tinline: true,\n\t\t\tattrs: {\n\t\t\t\tsrc: {},\n\t\t\t\talt: { default: null },\n\t\t\t\ttitle: { default: null },\n\t\t\t\tsource: { default: null },\n\t\t\t\tcopyright: { default: null },\n\t\t\t\tmeta_data: { default: {} },\n\t\t\t},\n\t\t\tgroup: 'inline',\n\t\t\tdraggable: true,\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'img[src]',\n\t\t\t\t\tgetAttrs(dom) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tsrc: typeof dom !== 'string' ? dom.getAttribute('src') : '',\n\t\t\t\t\t\t\ttitle: typeof dom !== 'string' ? dom.getAttribute('title') : '',\n\t\t\t\t\t\t\talt: typeof dom !== 'string' ? dom.getAttribute('alt') : '',\n\t\t\t\t\t\t\tsource: typeof dom !== 'string' ? dom.getAttribute('source') : '',\n\t\t\t\t\t\t\tcopyright: typeof dom !== 'string' ? dom.getAttribute('copyright') : '',\n\t\t\t\t\t\t\tmeta_data: typeof dom !== 'string' ? dom.getAttribute('meta_data') : '',\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn ['img', node.attrs]\n\t\t\t},\n\t\t},\n\n\t\thard_break: {\n\t\t\tinline: true,\n\t\t\tgroup: 'inline',\n\t\t\tselectable: false,\n\t\t\tparseDOM: [{ tag: 'br' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['br']\n\t\t\t},\n\t\t},\n\t},\n\n\tmarks: {\n\t\titalic: {\n\t\t\tparseDOM: [\n\t\t\t\t{ tag: 'i' },\n\t\t\t\t{ tag: 'em' },\n\t\t\t\t{\n\t\t\t\t\tstyle: 'font-style',\n\t\t\t\t\tgetAttrs: (value) => value === 'italic' && null,\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['em']\n\t\t\t},\n\t\t},\n\n\t\tbold: {\n\t\t\tparseDOM: [\n\t\t\t\t{ tag: 'b' },\n\t\t\t\t{ tag: 'strong' },\n\t\t\t\t{\n\t\t\t\t\tstyle: 'font-weight',\n\t\t\t\t\tgetAttrs: (value) => {\n\t\t\t\t\t\treturn typeof value === 'string'\n\t\t\t\t\t\t\t? /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['bold']\n\t\t\t},\n\t\t},\n\n\t\tlink: {\n\t\t\tattrs: {\n\t\t\t\thref: {},\n\t\t\t\ttitle: { default: null },\n\t\t\t},\n\t\t\tinclusive: false,\n\t\t\tparseDOM: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'a[href]',\n\t\t\t\t\tgetAttrs(dom) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\thref: typeof dom !== 'string' ? dom.getAttribute('href') : '',\n\t\t\t\t\t\t\ttitle: typeof dom !== 'string' ? dom.getAttribute('title') : '',\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn ['a', node.attrs]\n\t\t\t},\n\t\t},\n\n\t\tcode: {\n\t\t\tparseDOM: [{ tag: 'code' }],\n\t\t\ttoDOM() {\n\t\t\t\treturn ['code']\n\t\t\t},\n\t\t},\n\t},\n})\n","import { MarkdownParser } from '@tiptap/pm/markdown'\nimport markdownit from 'markdown-it'\nimport { schema } from './markdown-schema'\n\nconst tokens = {\n\tblockquote: { block: 'blockquote' },\n\tparagraph: { block: 'paragraph' },\n\tlist_item: { block: 'list_item' },\n\tbullet_list: { block: 'bullet_list' },\n\tordered_list: {\n\t\tblock: 'ordered_list',\n\t\tgetAttrs: (tok) => ({ order: +tok.attrGet('order') || 1 }),\n\t},\n\theading: {\n\t\tblock: 'heading',\n\t\tgetAttrs: (tok) => ({ level: +tok.tag.slice(1) }),\n\t},\n\tcode_block: { block: 'code_block' },\n\tfence: {\n\t\tblock: 'code_block',\n\t\tgetAttrs: (tok) => ({ params: tok.info || '' }),\n\t},\n\thr: { node: 'horizontal_rule' },\n\timage: {\n\t\tnode: 'image',\n\t\tgetAttrs: (tok) => ({\n\t\t\tsrc: tok.attrGet('src'),\n\t\t\ttitle: tok.attrGet('title') || null,\n\t\t\talt: (tok.children[0] && tok.children[0].content) || null,\n\t\t}),\n\t},\n\thardbreak: { node: 'hard_break' },\n\tem: { mark: 'italic' },\n\tstrong: { mark: 'bold' },\n\tlink: {\n\t\tmark: 'link',\n\t\tgetAttrs: (tok) => ({\n\t\t\thref: tok.attrGet('href'),\n\t\t\ttitle: tok.attrGet('title') || null,\n\t\t}),\n\t},\n\tcode_inline: { mark: 'code' },\n}\n\nconst markdownParser = new MarkdownParser(\n\tschema,\n\tmarkdownit('commonmark', { html: false }),\n\ttokens\n)\n\nexport default markdownParser\n","import markdownToRichtextParser from './markdown-parser'\n\nconst markdownToRichtext = (content: any) => {\n\tif (!content) return {}\n\treturn markdownToRichtextParser.parse(content).toJSON()\n}\n\nexport { markdownToRichtext }\n"],"names":["markdownParser","MarkdownParser","Schema","nodes","doc","content","paragraph","group","parseDOM","tag","toDOM","blockquote","horizontal_rule","heading","attrs","level","default","defining","node","code_block","code","params","preserveWhitespace","getAttrs","getAttribute","ordered_list","order","tight","dom","hasAttribute","Number","start","bullet_list","list_item","text","document","createTextNode","image","inline","src","alt","title","source","copyright","meta_data","draggable","hard_break","selectable","marks","italic","style","value","bold","test","link","href","inclusive","markdownit","html","block","tok","attrGet","slice","fence","info","hr","children","hardbreak","em","mark","strong","code_inline","markdownToRichtext","markdownToRichtextParser","parse","toJSON"],"mappings":"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"}