imnya.ng/app/components
--global 61568025fe a
2025-01-30 23:51:23 +09:00
..
AnimatedTabs.tsx 임시 커밋 ㅌㅌㅌ 2024-12-30 13:51:55 +09:00
README.tsx asdf 2025-01-20 18:19:41 +09:00
TimelineComponents.tsx asdf 2025-01-20 18:19:41 +09:00
Top.tsx a 2025-01-30 23:51:23 +09:00

import React from 'react';
import { remark } from 'remark';
import html from 'remark-html';
import rehypeStringify from 'rehype-stringify'
import remarkFrontmatter from 'remark-frontmatter'
import remarkGfm from 'remark-gfm'
import remarkParse from 'remark-parse'
import remarkRehype from 'remark-rehype'

const readmeUrl = 'https://raw.githubusercontent.com/imnyang/imnyang/refs/heads/main/README.md';

const markdownToHtml = async (markdown: string) => {
    const result = await remark()
        .use(remarkParse)
        .use(remarkFrontmatter)
        .use(remarkGfm)
        .use(remarkRehype)
        .use(rehypeStringify)
        .use(html)
        .process(markdown);
    return result.toString();
};

const README = () => {
    const [content, setContent] = React.useState<string>('');

    React.useEffect(() => {
        const fetchAndConvertMarkdown = async () => {
            const response = await fetch(readmeUrl);
            const markdown = await response.text();
            const htmlContent = await markdownToHtml(markdown);
            setContent(htmlContent);
        };
        fetchAndConvertMarkdown();
    }, []);

    return (
        <div dangerouslySetInnerHTML={{ __html: content }} />
    );
};

export default README;