mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-08 00:00:42 +02:00
AI Document content
This commit is contained in:
131
src/components/GenerateDocument/AIDocumentContent.css
Normal file
131
src/components/GenerateDocument/AIDocumentContent.css
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
.prose ul li > code,
|
||||||
|
.prose ol li > code,
|
||||||
|
p code,
|
||||||
|
a > code,
|
||||||
|
strong > code,
|
||||||
|
em > code,
|
||||||
|
h1 > code,
|
||||||
|
h2 > code,
|
||||||
|
h3 > code {
|
||||||
|
background: #ebebeb !important;
|
||||||
|
color: currentColor !important;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-ai-content.course-content.prose ul li > code,
|
||||||
|
.course-ai-content.course-content.prose ol li > code,
|
||||||
|
.course-ai-content.course-content.prose p code,
|
||||||
|
.course-ai-content.course-content.prose a > code,
|
||||||
|
.course-ai-content.course-content.prose strong > code,
|
||||||
|
.course-ai-content.course-content.prose em > code,
|
||||||
|
.course-ai-content.course-content.prose h1 > code,
|
||||||
|
.course-ai-content.course-content.prose h2 > code,
|
||||||
|
.course-ai-content.course-content.prose h3 > code,
|
||||||
|
.course-notes-content.prose ul li > code,
|
||||||
|
.course-notes-content.prose ol li > code,
|
||||||
|
.course-notes-content.prose p code,
|
||||||
|
.course-notes-content.prose a > code,
|
||||||
|
.course-notes-content.prose strong > code,
|
||||||
|
.course-notes-content.prose em > code,
|
||||||
|
.course-notes-content.prose h1 > code,
|
||||||
|
.course-notes-content.prose h2 > code,
|
||||||
|
.course-notes-content.prose h3 > code {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-ai-content pre {
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
scrollbar-width: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-ai-content pre::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-ai-content pre,
|
||||||
|
.course-notes-content pre {
|
||||||
|
overflow: scroll;
|
||||||
|
font-size: 15px;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prose ul li > code:before,
|
||||||
|
p > code:before,
|
||||||
|
.prose ul li > code:after,
|
||||||
|
.prose ol li > code:before,
|
||||||
|
p > code:before,
|
||||||
|
.prose ol li > code:after,
|
||||||
|
.course-content h1 > code:after,
|
||||||
|
.course-content h1 > code:before,
|
||||||
|
.course-content h2 > code:after,
|
||||||
|
.course-content h2 > code:before,
|
||||||
|
.course-content h3 > code:after,
|
||||||
|
.course-content h3 > code:before,
|
||||||
|
.course-content h4 > code:after,
|
||||||
|
.course-content h4 > code:before,
|
||||||
|
p > code:after,
|
||||||
|
a > code:after,
|
||||||
|
a > code:before {
|
||||||
|
content: '' !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content.prose ul li > code,
|
||||||
|
.course-content.prose ol li > code,
|
||||||
|
.course-content p code,
|
||||||
|
.course-content a > code,
|
||||||
|
.course-content strong > code,
|
||||||
|
.course-content em > code,
|
||||||
|
.course-content h1 > code,
|
||||||
|
.course-content h2 > code,
|
||||||
|
.course-content h3 > code,
|
||||||
|
.course-content table code {
|
||||||
|
background: #f4f4f5 !important;
|
||||||
|
border: 1px solid #282a36 !important;
|
||||||
|
color: #282a36 !important;
|
||||||
|
padding: 2px 4px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 16px !important;
|
||||||
|
white-space: pre;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content blockquote {
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content.prose blockquote h1,
|
||||||
|
.course-content.prose blockquote h2,
|
||||||
|
.course-content.prose blockquote h3,
|
||||||
|
.course-content.prose blockquote h4 {
|
||||||
|
font-style: normal;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content.prose ul li > code:before,
|
||||||
|
.course-content p > code:before,
|
||||||
|
.course-content.prose ul li > code:after,
|
||||||
|
.course-content p > code:after,
|
||||||
|
.course-content h2 > code:after,
|
||||||
|
.course-content h2 > code:before,
|
||||||
|
.course-content table code:before,
|
||||||
|
.course-content table code:after,
|
||||||
|
.course-content a > code:after,
|
||||||
|
.course-content a > code:before,
|
||||||
|
.course-content h2 code:after,
|
||||||
|
.course-content h2 code:before,
|
||||||
|
.course-content h2 code:after,
|
||||||
|
.course-content h2 code:before {
|
||||||
|
content: '' !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.course-content table td,
|
||||||
|
.course-content table th {
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
@@ -1,4 +1,9 @@
|
|||||||
import { markdownToHtml } from '../../lib/markdown';
|
import { useEffect, useState } from 'react';
|
||||||
|
import {
|
||||||
|
markdownToHtml,
|
||||||
|
markdownToHtmlWithHighlighting,
|
||||||
|
} from '../../lib/markdown';
|
||||||
|
import './AIDocumentContent.css';
|
||||||
|
|
||||||
type AIDocumentContentProps = {
|
type AIDocumentContentProps = {
|
||||||
document: string;
|
document: string;
|
||||||
@@ -7,12 +12,23 @@ type AIDocumentContentProps = {
|
|||||||
export function AIDocumentContent(props: AIDocumentContentProps) {
|
export function AIDocumentContent(props: AIDocumentContentProps) {
|
||||||
const { document } = props;
|
const { document } = props;
|
||||||
|
|
||||||
const html = markdownToHtml(document, false);
|
const [html, setHtml] = useState('');
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const html = markdownToHtmlWithHighlighting(document)
|
||||||
|
.then((html) => {
|
||||||
|
setHtml(html);
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.error(e);
|
||||||
|
return markdownToHtml(document, false);
|
||||||
|
});
|
||||||
|
}, [document]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mx-auto w-full max-w-4xl">
|
<div className="mx-auto w-full max-w-4xl">
|
||||||
<div
|
<div
|
||||||
className="course-content prose prose-lg prose-headings:mb-3 prose-headings:mt-8 prose-blockquote:font-normal prose-pre:rounded-2xl prose-pre:text-lg prose-li:my-1 prose-thead:border-zinc-800 prose-tr:border-zinc-800 max-lg:prose-h2:mt-3 max-lg:prose-h2:text-lg max-lg:prose-h3:text-base max-lg:prose-pre:px-3 max-lg:prose-pre:text-sm mt-8 max-w-full text-black max-lg:mt-4 max-lg:text-base"
|
className="course-content [&>h1]:text-balance prose prose-lg prose-headings:mb-3 prose-headings:mt-8 prose-blockquote:font-normal prose-pre:rounded-2xl prose-pre:text-lg prose-li:my-1 prose-thead:border-zinc-800 prose-tr:border-zinc-800 max-lg:prose-h2:mt-3 max-lg:prose-h2:text-lg max-lg:prose-h3:text-base max-lg:prose-pre:px-3 max-lg:prose-pre:text-sm mt-8 max-w-full text-black max-lg:mt-4 max-lg:text-base"
|
||||||
dangerouslySetInnerHTML={{ __html: html }}
|
dangerouslySetInnerHTML={{ __html: html }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user