67 lines
1.0 KiB
TypeScript
67 lines
1.0 KiB
TypeScript
|
import MarkdownIt from "markdown-it";
|
||
|
import { describe, expect, it } from "vitest";
|
||
|
|
||
|
import { revealJs } from "../../src/node/markdown-it/revealjs.js";
|
||
|
|
||
|
const demo = `
|
||
|
## Slide 1
|
||
|
|
||
|
A paragraph with some text and a [link](https://mister-hope.com)
|
||
|
|
||
|
---
|
||
|
|
||
|
## Slide 2
|
||
|
|
||
|
- Item 1
|
||
|
- Item 2
|
||
|
|
||
|
---
|
||
|
|
||
|
## Slide 3.1
|
||
|
|
||
|
\`\`\`js
|
||
|
const a = 1;
|
||
|
\`\`\`
|
||
|
|
||
|
--
|
||
|
|
||
|
## Slide 3.2
|
||
|
|
||
|
$$
|
||
|
J(\\theta_0,\\theta_1) = \\sum_{i=0}
|
||
|
$$
|
||
|
`;
|
||
|
|
||
|
describe("revealJs", () => {
|
||
|
const markdownIt = MarkdownIt({ linkify: true }).use(revealJs);
|
||
|
|
||
|
it("Should render", () => {
|
||
|
const renderResult = markdownIt.render(`
|
||
|
@slidestart
|
||
|
${demo}
|
||
|
@slideend
|
||
|
`);
|
||
|
|
||
|
expect(renderResult).toMatch(
|
||
|
/<RevealJs id="revealjs-.*?" code=".*?" theme=".*?"><\/RevealJs>/,
|
||
|
);
|
||
|
expect(renderResult).toMatchSnapshot();
|
||
|
});
|
||
|
|
||
|
it("Should not render", () => {
|
||
|
expect(
|
||
|
markdownIt.render(`
|
||
|
${demo}
|
||
|
`),
|
||
|
).toMatchSnapshot();
|
||
|
|
||
|
expect(
|
||
|
markdownIt.render(`
|
||
|
@slidestar
|
||
|
${demo}
|
||
|
@slideend
|
||
|
`),
|
||
|
).toMatchSnapshot();
|
||
|
});
|
||
|
});
|