12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import mdx from '@astrojs/mdx';
- import { describe, it } from 'node:test';
- import * as assert from 'node:assert/strict';
- import { parseHTML } from 'linkedom';
- import { loadFixture } from '../../../astro/test/test-utils.js';
- import remarkMath from 'remark-math';
- import rehypeMathjaxSvg from 'rehype-mathjax';
- import rehypeMathjaxChtml from 'rehype-mathjax/chtml';
- const FIXTURE_ROOT = new URL('./fixtures/mdx-math/', import.meta.url);
- describe('MDX math', () => {
- describe('mathjax', () => {
- it('works with svg', async () => {
- const fixture = await loadFixture({
- root: FIXTURE_ROOT,
- markdown: {
- remarkPlugins: [remarkMath],
- rehypePlugins: [rehypeMathjaxSvg],
- },
- integrations: [mdx()],
- });
- await fixture.build();
- const html = await fixture.readFile('/mathjax/index.html');
- const { document } = parseHTML(html);
- const mjxContainer = document.querySelector('mjx-container[jax="SVG"]');
- assert.notEqual(mjxContainer, null);
- const mjxStyle = document.querySelector('style').innerHTML;
- assert.equal(
- mjxStyle.includes('mjx-container[jax="SVG"]'),
- true,
- 'style should not be html-escaped'
- );
- });
- it('works with chtml', async () => {
- const fixture = await loadFixture({
- root: FIXTURE_ROOT,
- markdown: {
- remarkPlugins: [remarkMath],
- rehypePlugins: [
- [
- rehypeMathjaxChtml,
- {
- chtml: {
- fontURL: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/output/chtml/fonts/woff-v2',
- },
- },
- ],
- ],
- },
- integrations: [mdx()],
- });
- await fixture.build();
- const html = await fixture.readFile('/mathjax/index.html');
- const { document } = parseHTML(html);
- const mjxContainer = document.querySelector('mjx-container[jax="CHTML"]');
- assert.notEqual(mjxContainer, null);
- const mjxStyle = document.querySelector('style').innerHTML;
- assert.equal(
- mjxStyle.includes('mjx-container[jax="CHTML"]'),
- true,
- 'style should not be html-escaped'
- );
- });
- });
- });
|