From 4c414221bb49d3e1b1f373c0e4305e5cd8a0bcfb Mon Sep 17 00:00:00 2001 From: Timeless0911 <1604889533@qq.com> Date: Tue, 3 Sep 2024 16:22:51 +0800 Subject: [PATCH] fix: highlight alias to itself --- e2e/fixtures/prism-sytax-highlighter/doc/index.md | 10 ++++++++++ .../prism-sytax-highlighter/rspress.config.ts | 1 + e2e/tests/prism-sytax-highlighter.test.ts | 7 +++++-- .../runtimeModule/siteData/highlightLanguages.ts | 3 ++- .../tests/__snapshots__/prismLanguages.test.ts.snap | 7 ++++++- packages/core/tests/prismLanguages.test.ts | 1 + packages/core/tests/prismLanguages/index.mdx | 12 +++++++++++- 7 files changed, 36 insertions(+), 5 deletions(-) diff --git a/e2e/fixtures/prism-sytax-highlighter/doc/index.md b/e2e/fixtures/prism-sytax-highlighter/doc/index.md index 7f576ae28..5456a7d40 100644 --- a/e2e/fixtures/prism-sytax-highlighter/doc/index.md +++ b/e2e/fixtures/prism-sytax-highlighter/doc/index.md @@ -19,3 +19,13 @@ int main(int argc, const char * argv[]) { return 0; } ``` + +```go +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") +} +``` diff --git a/e2e/fixtures/prism-sytax-highlighter/rspress.config.ts b/e2e/fixtures/prism-sytax-highlighter/rspress.config.ts index 5a2bec71e..51c3ce13d 100644 --- a/e2e/fixtures/prism-sytax-highlighter/rspress.config.ts +++ b/e2e/fixtures/prism-sytax-highlighter/rspress.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ ['js', 'javascript'], ['oc', 'objectivec'], ['mdx', 'tsx'], + ['go', 'go'], ], }, }); diff --git a/e2e/tests/prism-sytax-highlighter.test.ts b/e2e/tests/prism-sytax-highlighter.test.ts index b9ea37d39..470f565b4 100644 --- a/e2e/tests/prism-sytax-highlighter.test.ts +++ b/e2e/tests/prism-sytax-highlighter.test.ts @@ -21,11 +21,14 @@ test.describe('markdown highlight test', async () => { test('does highlight work', async ({ page }) => { await page.goto(`http://localhost:${appPort}`); - const text = await page + const textOc = await page .locator('.language-objectivec .token.macro.directive-hash') .evaluate(node => node.textContent); - expect(text).toBe('#'); + const tokenGo = await page.locator('.language-go .token').count(); + + expect(textOc).toBe('#'); + expect(tokenGo).toBe(14); }); test('alias content match', async ({ page }) => { diff --git a/packages/core/src/node/runtimeModule/siteData/highlightLanguages.ts b/packages/core/src/node/runtimeModule/siteData/highlightLanguages.ts index 2995ed4a1..4a2ee00d8 100644 --- a/packages/core/src/node/runtimeModule/siteData/highlightLanguages.ts +++ b/packages/core/src/node/runtimeModule/siteData/highlightLanguages.ts @@ -42,8 +42,9 @@ export function handleHighlightLanguages( temp.push(lang); } - highlightLanguages.add(name); + // delete first, user may config alias to itself like ['go', 'go'] highlightLanguages.delete(lang); + highlightLanguages.add(name); return; } diff --git a/packages/core/tests/__snapshots__/prismLanguages.test.ts.snap b/packages/core/tests/__snapshots__/prismLanguages.test.ts.snap index db68e34b2..b2d1f3c93 100644 --- a/packages/core/tests/__snapshots__/prismLanguages.test.ts.snap +++ b/packages/core/tests/__snapshots__/prismLanguages.test.ts.snap @@ -2,6 +2,9 @@ exports[`automatic import of prism languages > prism languages aliases should be configurable to users 1`] = ` "export const aliases = { + "go": [ + "go" + ], "javascript": [ "js" ], @@ -13,7 +16,9 @@ exports[`automatic import of prism languages > prism languages aliases should be ] }; export const languages = { - "javascript": require( + "go": require( + "react-syntax-highlighter/dist/cjs/languages/prism/go" + ).default,"javascript": require( "react-syntax-highlighter/dist/cjs/languages/prism/javascript" ).default,"objectivec": require( "react-syntax-highlighter/dist/cjs/languages/prism/objectivec" diff --git a/packages/core/tests/prismLanguages.test.ts b/packages/core/tests/prismLanguages.test.ts index b08e98577..5b1d2260f 100644 --- a/packages/core/tests/prismLanguages.test.ts +++ b/packages/core/tests/prismLanguages.test.ts @@ -13,6 +13,7 @@ describe('automatic import of prism languages', () => { highlightLanguages: [ ['js', 'javascript'], ['oc', 'objectivec'], + ['go', 'go'], ], }, }, diff --git a/packages/core/tests/prismLanguages/index.mdx b/packages/core/tests/prismLanguages/index.mdx index 273e3e69c..471ef970c 100644 --- a/packages/core/tests/prismLanguages/index.mdx +++ b/packages/core/tests/prismLanguages/index.mdx @@ -23,8 +23,18 @@ int main(int argc, const char * argv[]) { } ``` +```go +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") +} +``` + # 内置组件 -import InternalComponents from './extend' +import InternalComponents from './extend';