From ba51dde1c2c41616bf9b4f365efbb4ad237bb082 Mon Sep 17 00:00:00 2001 From: Nell Date: Sun, 2 Aug 2026 09:17:39 +0200 Subject: [PATCH] init --- frontend/package.json | 1 + .../category/CreateCategoryDialog.vue | 90 +++++++++++++++++++ frontend/src/composables/useMarkdown.ts | 30 +++++++ frontend/src/pages/server/channel/index.vue | 17 ++-- frontend/src/pages/server/index.vue | 69 ++++++++++---- frontend/src/stores/category.ts | 30 ++++++- frontend/yarn.lock | 5 ++ src/services/category.rs | 53 ++++++++--- 8 files changed, 253 insertions(+), 42 deletions(-) create mode 100644 frontend/src/components/category/CreateCategoryDialog.vue create mode 100644 frontend/src/composables/useMarkdown.ts diff --git a/frontend/package.json b/frontend/package.json index a1ce7f9..1857eeb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,6 +17,7 @@ "dependencies": { "@fontsource/roboto": "^5.2.10", "@mdi/font": "7.4.47", + "highlight.js": "^11.11.1", "markdown-it": "^14.3.0", "pinia": "^3.0.4", "vue": "^3.5.30", diff --git a/frontend/src/components/category/CreateCategoryDialog.vue b/frontend/src/components/category/CreateCategoryDialog.vue new file mode 100644 index 0000000..1617834 --- /dev/null +++ b/frontend/src/components/category/CreateCategoryDialog.vue @@ -0,0 +1,90 @@ + + + diff --git a/frontend/src/composables/useMarkdown.ts b/frontend/src/composables/useMarkdown.ts new file mode 100644 index 0000000..d464e68 --- /dev/null +++ b/frontend/src/composables/useMarkdown.ts @@ -0,0 +1,30 @@ +import MarkdownIt from 'markdown-it' +import hljs from 'highlight.js' + +// Déclaré hors de la fonction = instancié une seule fois pour toute l'application +const md = new MarkdownIt({ + html: false, + linkify: true, + typographer: true, + breaks: true, +}) + +md.set({ + highlight: (str: string, lang: string): string => { + if (lang && hljs.getLanguage(lang)) { + try { + return `
${hljs.highlight(str, {
+          language: lang,
+          ignoreIllegals: true
+        }).value}
` + } catch (__) { + } + } + return `
${md.utils.escapeHtml(str)}
` + } +}) + +export function useMarkdown() { + const renderMarkdown = (content: string) => md.render(content) + return {renderMarkdown} +} \ No newline at end of file diff --git a/frontend/src/pages/server/channel/index.vue b/frontend/src/pages/server/channel/index.vue index 046f9f5..05c5d77 100644 --- a/frontend/src/pages/server/channel/index.vue +++ b/frontend/src/pages/server/channel/index.vue @@ -1,10 +1,11 @@