diff --git a/bun.lockb b/bun.lockb index a7352aa..eacc22d 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/components/Markdown.vue b/components/Markdown.vue index be731fb..b20b47c 100644 --- a/components/Markdown.vue +++ b/components/Markdown.vue @@ -2,11 +2,17 @@ const props = defineProps<{ content: string }>(); -const { data: ast, status } = await useAsyncData(`markdown`, () => parseMarkdown(props.content, {})); +const parser = useMarkdown(); +const { data: ast, status, error } = await useAsyncData(`markdown`, () => parser(props.content)); + - Impossible de traiter le contenu. + + Impossible de traiter le contenu. + {{ error }} + + \ No newline at end of file diff --git a/composables/useMarkdown.ts b/composables/useMarkdown.ts new file mode 100644 index 0000000..889ac78 --- /dev/null +++ b/composables/useMarkdown.ts @@ -0,0 +1,25 @@ +import { createMarkdownParser } from "@nuxtjs/mdc/runtime/parser/index"; +import RemarkBreaks from "remark-breaks"; +import RemarkOfm from "remark-ofm"; + +export default function useMarkdown(): Awaited> +{ + let parser: Awaited> + + const parse = async (markdown: string) => { + if (!parser) + { + parser = await createMarkdownParser({ + remark: { + plugins: { + 'remark-breaks': { instance: RemarkBreaks }, + 'remark-ofm': { instance: RemarkOfm } + } + }, + }); + } + return parser(markdown); + } + + return parse; +} \ No newline at end of file diff --git a/nuxt.config.ts b/nuxt.config.ts index 59625d9..3aa9f0f 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -13,14 +13,5 @@ export default defineNuxtConfig({ pathPrefix: false, }, ], - mdc: { - remarkPlugins: { - 'remark-breaks': {}, - 'remark-ofm': {} - }, - components: { - prose: true, - } - }, compatibilityDate: '2024-07-25' }) \ No newline at end of file diff --git a/package.json b/package.json index 247a518..b2a0498 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,14 @@ "@nuxtjs/mdc": "^0.8.3", "@types/bun": "^1.1.6", "nuxt": "^3.12.4", - "vue": "^3.4.34", - "vue-router": "^4.4.0", + "vue": "^3.4.35", + "vue-router": "^4.4.2", "hast-util-to-html": "^9.0.1", "remark-breaks": "^4.0.0", "remark-ofm": "link:remark-ofm", "zod": "^3.23.8" }, - "patchedDependencies": { - "unstorage@1.10.2": "patches/unstorage@1.10.2.patch", - "@nuxt/content@2.13.2": "patches/@nuxt%2Fcontent@2.13.2.patch" + "dependencies": { + "lodash.capitalize": "^4.2.1" } } \ No newline at end of file diff --git a/pages/explorer/[projectId]/[...slug].vue b/pages/explorer/[projectId]/[...slug].vue index 9349c93..f780787 100644 --- a/pages/explorer/[projectId]/[...slug].vue +++ b/pages/explorer/[projectId]/[...slug].vue @@ -2,7 +2,6 @@ const route = useRoute(); const path = unifySlug(route.params.slug); -//const dummy = await useFetch(`/api/project`); const { data: content } = await useFetch(`/api/project/${route.params.projectId}/file`, { query: { path: path diff --git a/patches/@nuxt%2Fcontent@2.13.2.patch b/patches/@nuxt%2Fcontent@2.13.2.patch deleted file mode 100644 index b9c7e80..0000000 --- a/patches/@nuxt%2Fcontent@2.13.2.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/dist/runtime/server/storage.js b/dist/runtime/server/storage.js -index b9bb602074f15488fe7ee700bbed281b42b463d9..96382bc576ab0145c854d06d67649b31138e76f4 100644 ---- a/dist/runtime/server/storage.js -+++ b/dist/runtime/server/storage.js -@@ -40,10 +40,10 @@ const contentIgnorePredicate = (key) => { - if (key.startsWith("preview:") || isIgnored(key)) { - return false; - } -- if (invalidKeyCharacters.some((ik) => key.includes(ik))) { -+ /*if (invalidKeyCharacters.some((ik) => key.includes(ik))) { - console.warn(`Ignoring [${key}]. File name should not contain any of the following characters: ${invalidKeyCharacters.join(", ")}`); - return false; -- } -+ }*/ - return true; - }; - export const getContentsIds = async (event, prefix) => { diff --git a/patches/unstorage@1.10.2.patch b/patches/unstorage@1.10.2.patch deleted file mode 100644 index 199a280..0000000 --- a/patches/unstorage@1.10.2.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/drivers/github.cjs b/drivers/github.cjs -index 606d742980420c0a60f991803bc1cc4604112f54..322c61f73c85aa7ccaf684d2cf64af5b20a9c579 100644 ---- a/drivers/github.cjs -+++ b/drivers/github.cjs -@@ -21,7 +21,7 @@ module.exports = (0, _utils.defineDriver)(_opts => { - ...defaultOptions, - ..._opts - }; -- const rawUrl = (0, _ufo.joinURL)(opts.cdnURL, opts.repo, opts.branch, opts.dir); -+ const rawUrl = (0, _ufo.joinURL)(opts.cdnURL, opts.repo, 'raw', 'branch', opts.branch, opts.dir); - let files = {}; - let lastCheck = 0; - let syncPromise; -diff --git a/drivers/github.mjs b/drivers/github.mjs -index ae9833dfe933d3d68050ed55d7ca202c4a995d0d..2c6dfd006e5495ed2a4c2a057c7a1a8b50b5659b 100644 ---- a/drivers/github.mjs -+++ b/drivers/github.mjs -@@ -12,7 +12,7 @@ const defaultOptions = { - const DRIVER_NAME = "github"; - export default defineDriver((_opts) => { - const opts = { ...defaultOptions, ..._opts }; -- const rawUrl = joinURL(opts.cdnURL, opts.repo, opts.branch, opts.dir); -+ const rawUrl = joinURL(opts.cdnURL, opts.repo, 'raw', 'branch', opts.branch, opts.dir); - let files = {}; - let lastCheck = 0; - let syncPromise;
{{ error }}