reactjs - Hur man importerar en markdown-fil i NextJS
Så, jag försöker visa ren markdown på min NextJS Typescript-sida, jag försökte det:
import React, { useState, useEffect } from "react";
import markdown from "./assets/1.md";
const Post1 = () => {
return <>{markdown}</>;
};
export default Post1;
Men jag förstod det:
./pages/blog/assets/1.md
Module parse failed: Unexpected character ' ' (1:1)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> # Apresentations
|
| Hi, my name is Vitor Koch
Jag har redan skapat filen markdown.d.ts
Obs.: Jag vill inte konvertera md till jsx, vill bara visa det, jag har redan gjort det i detta gist
Svar #1
Åh, nu förstår jag. Du kan prova detta då:
return <>{JSON.stringify(markdown, 2, null)}</>;
Svar #2
Mitt tillvägagångssätt:
Installera bibliotek för markdown-parsing (
react-markdowneller annat, jag kommer att användamarked)Placera din
markdown_file.md-fil i/public-mappenLäs filen på servern
/pages/your_page.tsx:
import React from 'react';
import { marked } from 'marked';
export default function YourPage(props: { html: string }) {
const { html } = props;
return (
<div>
<span dangerouslySetInnerHTML={{ __html: html }} />
</div>
);
}
const filePath = join(process.cwd(), 'public', 'markdown_file.md');
export async function getStaticProps() {
const fileContent = fs.readFileSync(filePath, 'utf8');
return {
props: {
html: marked.parse(fileContent),
},
};
}
