diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/blockquote.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/blockquote.ts index 7ac36ea9d78f2aa78d51803f2b1f8f0fb0ef1174..361f258a51221867bee2098592ab2faa66e741ea 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/blockquote.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/blockquote.ts @@ -1,9 +1,9 @@ -import { Tokens } from '@/types/tokens' -import { astToHtml } from '..' -import { prefix } from '@/common/constant' +import { Tokens } from "@/types/tokens"; +import { astToHtml } from ".."; +import { prefix } from "@/common/constant"; export const renderBlockquote = (node: Tokens) => { - return `
${node.children + return `
${node.children ?.map(astToHtml) - .join('')}
` -} + .join("")}
`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/code.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/code.ts index bee52a08b0d1d3faf46077beabccb3c7cf00cc02..44f5dafd04fe8d38d0e2e1e5c23297371778089f 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/code.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/code.ts @@ -1,28 +1,28 @@ -import { prefix } from '@/common/constant' -import { Tokens } from '@/types/tokens' -import hljs from 'highlight.js' +import { prefix } from "@/common/constant"; +import { Tokens } from "@/types/tokens"; +import hljs from "highlight.js"; export const renderCode = (node: Tokens) => { - let language = 'plaintext' + let language = "plaintext"; try { // 检查语言是否有效 - const lang = node.lang || 'plaintext' - if (lang !== 'plaintext' && !hljs.getLanguage(lang)) { - node.lang = 'plaintext' + const lang = node.lang || "plaintext"; + if (lang !== "plaintext" && !hljs.getLanguage(lang)) { + node.lang = "plaintext"; } if (node.lang) { - hljs.highlight('', { language: node.lang }) - language = node.lang + hljs.highlight("", { language: node.lang }); + language = node.lang; } } catch (e) { // 如果语言无效,使用plaintext - language = 'plaintext' + language = "plaintext"; } const highlightedCode = hljs.highlight(node.value!, { - language - }).value - return `
+ language, + }).value; + return `
@@ -32,5 +32,5 @@ export const renderCode = (node: Tokens) => {
${language}
${highlightedCode}
-
` -} +
`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/heading.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/heading.ts index c1e8638214eba985d1cb9b517c8ff73fd214afb4..168ec91d0d4fca68083a585eb24ba3198873205c 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/heading.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/heading.ts @@ -1,9 +1,9 @@ -import { Tokens } from '@/types/tokens' -import { astToHtml } from '..' -import { prefix } from '@/common/constant' +import { Tokens } from "@/types/tokens"; +import { astToHtml } from ".."; +import { prefix } from "@/common/constant"; export const renderHeading = (node: Tokens) => { - return `${node.children?.map(astToHtml).join('')}${node.children?.map(astToHtml).join("")}` -} + }>`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/list.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/list.ts index cff6e3a2a8763b3f369583e0c5c00a467a1bcf79..5d51dacf23cdc1ecb91ce572490b9c0292a2a155 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/list.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/list.ts @@ -1,7 +1,7 @@ -import { Tokens } from '@/types/tokens' -import { astToHtml } from '..' +import { Tokens } from "@/types/tokens"; +import { astToHtml } from ".."; export const renderList = (node: Tokens) => { - const listType = node.ordered ? 'ol' : 'ul' - return `<${listType}>${node.children?.map(astToHtml).join('')}` -} + const listType = node.ordered ? "ol" : "ul"; + return `<${listType} data-line="${node.position.start.line}">${node.children?.map(astToHtml).join("")}`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/paragraph.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/paragraph.ts index 169a3496a622a129ad4d8fe1452107a543243275..0e1e069e5263da9d0f1129165de34a91a16332b4 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/paragraph.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/paragraph.ts @@ -1,6 +1,6 @@ -import { Tokens } from '@/types/tokens' -import { astToHtml } from '..' +import { Tokens } from "@/types/tokens"; +import { astToHtml } from ".."; export const renderParagraph = (node: Tokens) => { - return `

${node.children?.map(astToHtml).join('')}

` -} + return `

${node.children?.map(astToHtml).join("")}

`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/table.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/table.ts index 04b89e9ef692221108d8e46e0105ce8ab6fc16f5..1d17ae9f1d14a77e7d227138d92d45757f2e258b 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/table.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/table.ts @@ -1,7 +1,7 @@ -import { Tokens } from '@/types/tokens' -import { astToHtml } from '..' -import { prefix } from '@/common/constant' +import { Tokens } from "@/types/tokens"; +import { astToHtml } from ".."; +import { prefix } from "@/common/constant"; export const renderTable = (node: Tokens) => { - return `${node.children?.map(astToHtml).join('')}
` -} + return `${node.children?.map(astToHtml).join("")}
`; +}; diff --git a/packages/mini-markdown-ast-parser/src/core/transform/render/thematicBreak.ts b/packages/mini-markdown-ast-parser/src/core/transform/render/thematicBreak.ts index da16bf3a7b6130a6a18aad4b2a96bc90db48dfbc..b6f320a28c479d10f801746562035f4fb041862b 100644 --- a/packages/mini-markdown-ast-parser/src/core/transform/render/thematicBreak.ts +++ b/packages/mini-markdown-ast-parser/src/core/transform/render/thematicBreak.ts @@ -1,6 +1,6 @@ -import { prefix } from '@/common/constant' -import { Tokens } from '@/types/tokens' +import { prefix } from "@/common/constant"; +import { Tokens } from "@/types/tokens"; export const renderThematicBreak = (node: Tokens) => { - return `
` -} + return `
`; +}; diff --git a/packages/mini-markdown-editor/package.json b/packages/mini-markdown-editor/package.json index 9d64d59cd09c92f4fec2be335718605eb0671e67..67ecdb218f6ce4ca0cda9eccbb1bc27aeaba5388 100644 --- a/packages/mini-markdown-editor/package.json +++ b/packages/mini-markdown-editor/package.json @@ -4,7 +4,8 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", + "build:ast": "pnpm -F @mini-markdown/ast-parser build", + "dev": "pnpm build:ast && vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview"