1

Document.tsx

import React from "react";
import Markdoc from "@markdoc/markdoc";

const config = {};

interface DocumentProps {
    source: string;
}

export function Document({ source }: DocumentProps) {
    const ast = Markdoc.parse(source);
    const content = Markdoc.transform(ast, config);

    return Markdoc.renderers.react(content, React);
}

export default Document;

Home.tsx

import { Document } from "@containers";

export function Home() {
    return (
        <div>
            <Document
                source={`
                    # Hello world.
                    > My first Markdoc page
                `}
            />
        </div>
    );
}

export default Home;

I wanna see markdown but it's being rendered as a normal text # Hello world. > My first Markdoc page.

There were some tutorials and guides for Next.js + Markdoc app, but they all didn't work for my app.

tedchow
  • 105
  • 1
  • 6

1 Answers1

0

Markdown is sensitive for indentation and your source has incorrect indentation. It's also recommended to separate headings, paragraph quotes etc. with a empty line.

import { Document } from "@containers";

export function Home() {
  return (
    <div>
      <Document
        source={`# Hello world.

> My first Markdoc page`}
      />
    </div>
  );
}

export default Home;
RubenSmn
  • 4,091
  • 2
  • 5
  • 24