From 3d46ba982bf9dfb1d44523f7967f0ec5da79bbd5 Mon Sep 17 00:00:00 2001 From: xiaotianna <127941140+xiaotianna@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:57:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(mini-markdown-ast-parser):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dast=E8=A7=A3=E6=9E=90=E7=9A=84data-line=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E6=B2=A1=E6=8E=A8=E9=80=81=E7=9A=84bug,=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=9E=84=E5=BB=BA=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/core/transform/render/blockquote.ts | 12 ++++---- .../src/core/transform/render/code.ts | 30 +++++++++---------- .../src/core/transform/render/heading.ts | 12 ++++---- .../src/core/transform/render/list.ts | 10 +++---- .../src/core/transform/render/paragraph.ts | 8 ++--- .../src/core/transform/render/table.ts | 10 +++---- .../core/transform/render/thematicBreak.ts | 8 ++--- packages/mini-markdown-editor/package.json | 3 +- 8 files changed, 47 insertions(+), 46 deletions(-) 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 7ac36ea..361f258 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 bee52a0..44f5daf 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 c1e8638..168ec91 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 cff6e3a..5d51dac 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 169a349..0e1e069 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 04b89e9..1d17ae9 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 da16bf3..b6f320a 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 9d64d59..67ecdb2 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" -- Gitee