diff options
author | 2022-08-15 10:43:12 -0400 | |
---|---|---|
committer | 2022-08-15 10:43:12 -0400 | |
commit | f1a52c18afe66e6d310743ae6884be76f69be265 (patch) | |
tree | 3cfe80e6650e9fe171d1f560e386c4d559c9eb22 /packages/integrations/mdx/test/mdx-syntax-highlighting.test.js | |
parent | 3889a7fa753d878d9143e1280d3b8a686f2a2433 (diff) | |
download | astro-f1a52c18afe66e6d310743ae6884be76f69be265.tar.gz astro-f1a52c18afe66e6d310743ae6884be76f69be265.tar.zst astro-f1a52c18afe66e6d310743ae6884be76f69be265.zip |
[MDX] Switch from Shiki Twoslash -> Astro Markdown highlighter (#4292)
* freat: twoslash -> Astro shiki parser
* test: update shiki style check
* feat: always apply rehypeRaw
* deps: move remark-shiki-twoslash to dev
* test: add shiki-twoslash test
* docs: update readme with twoslash example
* chore: changeset
* nit: remove "describe('disabled')"
Diffstat (limited to 'packages/integrations/mdx/test/mdx-syntax-highlighting.test.js')
-rw-r--r-- | packages/integrations/mdx/test/mdx-syntax-highlighting.test.js | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/packages/integrations/mdx/test/mdx-syntax-highlighting.test.js b/packages/integrations/mdx/test/mdx-syntax-highlighting.test.js index 5544aef56..fc81a7fe3 100644 --- a/packages/integrations/mdx/test/mdx-syntax-highlighting.test.js +++ b/packages/integrations/mdx/test/mdx-syntax-highlighting.test.js @@ -3,6 +3,7 @@ import mdx from '@astrojs/mdx'; import { expect } from 'chai'; import { parseHTML } from 'linkedom'; import { loadFixture } from '../../../astro/test/test-utils.js'; +import shikiTwoslash from 'remark-shiki-twoslash'; const FIXTURE_ROOT = new URL('./fixtures/mdx-syntax-hightlighting/', import.meta.url); @@ -21,8 +22,9 @@ describe('MDX syntax highlighting', () => { const html = await fixture.readFile('/index.html'); const { document } = parseHTML(html); - const shikiCodeBlock = document.querySelector('pre.shiki'); + const shikiCodeBlock = document.querySelector('pre.astro-code'); expect(shikiCodeBlock).to.not.be.null; + expect(shikiCodeBlock.getAttribute('style')).to.contain('background-color:#0d1117'); }); it('respects markdown.shikiConfig.theme', async () => { @@ -41,8 +43,9 @@ describe('MDX syntax highlighting', () => { const html = await fixture.readFile('/index.html'); const { document } = parseHTML(html); - const shikiCodeBlock = document.querySelector('pre.shiki.dracula'); + const shikiCodeBlock = document.querySelector('pre.astro-code'); expect(shikiCodeBlock).to.not.be.null; + expect(shikiCodeBlock.getAttribute('style')).to.contain('background-color:#282A36'); }); }); @@ -64,4 +67,23 @@ describe('MDX syntax highlighting', () => { expect(prismCodeBlock).to.not.be.null; }); }); + + it('supports custom highlighter - shiki-twoslash', async () => { + const fixture = await loadFixture({ + root: FIXTURE_ROOT, + markdown: { + syntaxHighlight: false, + }, + integrations: [mdx({ + remarkPlugins: [shikiTwoslash.default ?? shikiTwoslash], + })], + }); + await fixture.build(); + + const html = await fixture.readFile('/index.html'); + const { document } = parseHTML(html); + + const twoslashCodeBlock = document.querySelector('pre.shiki'); + expect(twoslashCodeBlock).to.not.be.null; + }); }); |