mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 19:01:35 +01:00
Use marked markdown parser
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { Marked } from "marked";
|
import { Marked } from "marked";
|
||||||
import hljs from "highlight.js";
|
|
||||||
import { markedHighlight } from "marked-highlight";
|
import { markedHighlight } from "marked-highlight";
|
||||||
|
import hljs from "highlight.js";
|
||||||
|
|
||||||
export const sortOptions = [
|
export const sortOptions = [
|
||||||
{ value: "creation-time", text: "Creation time" },
|
{ value: "creation-time", text: "Creation time" },
|
||||||
@@ -12,15 +12,7 @@ export const sortOptions = [
|
|||||||
export const ALLOWED_MIME_TYPES = ["image/jpeg", "image/png", "image/svg+xml", "image/webp"];
|
export const ALLOWED_MIME_TYPES = ["image/jpeg", "image/png", "image/svg+xml", "image/webp"];
|
||||||
|
|
||||||
const createMarkdownParser = () => {
|
const createMarkdownParser = () => {
|
||||||
const marked = new Marked(
|
const marked = new Marked();
|
||||||
markedHighlight({
|
|
||||||
langPrefix: "hljs language-",
|
|
||||||
highlight(code, lang) {
|
|
||||||
const language = hljs.getLanguage(lang) ? lang : "plaintext";
|
|
||||||
return hljs.highlight(code, { language }).value;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
marked.use({
|
marked.use({
|
||||||
async: true,
|
async: true,
|
||||||
@@ -28,6 +20,17 @@ const createMarkdownParser = () => {
|
|||||||
gfm: true
|
gfm: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
marked.use(
|
||||||
|
markedHighlight({
|
||||||
|
async: true,
|
||||||
|
langPrefix: "language-",
|
||||||
|
highlight(code, lang) {
|
||||||
|
const language = hljs.getLanguage(lang) ? lang : "plaintext";
|
||||||
|
return hljs.highlight(code, { language }).value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
return marked;
|
return marked;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,6 +42,8 @@ export const md = async (markdownContent: string) => {
|
|||||||
return html;
|
return html;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// test
|
||||||
|
|
||||||
export const handleImagePaste = async (event: ClipboardEvent, API_BASE_PREFIX: string) => {
|
export const handleImagePaste = async (event: ClipboardEvent, API_BASE_PREFIX: string) => {
|
||||||
const clipboardItems = Array.from(event.clipboardData?.items || []);
|
const clipboardItems = Array.from(event.clipboardData?.items || []);
|
||||||
const file = clipboardItems.find((item) => item.type.startsWith("image/"));
|
const file = clipboardItems.find((item) => item.type.startsWith("image/"));
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ pre {
|
|||||||
border: var(--border-primary);
|
border: var(--border-primary);
|
||||||
padding: var(--space-s);
|
padding: var(--space-s);
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
|
|||||||
Reference in New Issue
Block a user