| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { Marp } from '@marp-team/marp-core';
- import { Element } from '@marp-team/marpit';
- import Head from 'next/head';
- import './Slides.global.scss';
- const MARP_CONTAINER_CLASS_NAME = 'marpit';
- const marpit = new Marp({
- container: [
- new Element('div', { class: MARP_CONTAINER_CLASS_NAME }),
- new Element('div', { class: 'slides' }),
- ],
- slideContainer: [
- new Element('div', { class: 'shadow rounded m-2' }),
- ],
- inlineSVG: true,
- emoji: undefined,
- html: false,
- math: false,
- });
- type Props = {
- children?: string,
- }
- export const MarpSlides = (props: Props): JSX.Element => {
- const { children } = props;
- const { html, css } = marpit.render(children ?? '');
- return (
- <>
- <Head>
- <style>{css}</style>
- </Head>
- <div
- // eslint-disable-next-line react/no-danger
- dangerouslySetInnerHTML={{
- // DOMpurify.sanitize delete elements in <svg> so sanitize is not used here.
- __html: html,
- }}
- />
- </>
- );
- };
|