diff --git a/composables/useFetchArticle.ts b/composables/useFetchArticle.ts index af26e93ae01fd7b06d1e07d111fbd6263c74a054..63439bd4e5e1af4ec70de0c0c062955ab7a101b0 100644 --- a/composables/useFetchArticle.ts +++ b/composables/useFetchArticle.ts @@ -89,7 +89,6 @@ export function useFetchArticle(doi: string) { if (store.articles.size === 0) { const localArticles = await queryContent('/_partials/_articles').where({ _partial: true }).findOne() - console.log(localArticles) if (localArticles?.articles && store.articles.size <= 0) { for (const article of localArticles.articles) { store.add(article) diff --git a/content/3.defense-systems/abi2.md b/content/3.defense-systems/abi2.md index 3b1227560d1b87673a628e4d7df6695036ec1613..808a7367c8c6f20bb252a410e57a5cec2b8d6a54 100644 --- a/content/3.defense-systems/abi2.md +++ b/content/3.defense-systems/abi2.md @@ -12,7 +12,6 @@ tableColumns: --- # Abi2 -:contributors The Abi2 system is composed of one protein: Abi_2. diff --git a/content/3.defense-systems/detocs.md b/content/3.defense-systems/detocs.md index ff9c7cfcc0de71290247d32f348350b987fe399d..b715ca6408329a016b39d8cb29c7cd92d0152a84 100644 --- a/content/3.defense-systems/detocs.md +++ b/content/3.defense-systems/detocs.md @@ -12,7 +12,6 @@ contributors: # Detocs -:contributors ## Description Detocs (**De**fensive **T**w**o**-**C**omponent **S**ystem) is a family of 3-gene defense systems that mediate anti-phage activity by abortive infection. diff --git a/package-lock.json b/package-lock.json index 700902b1a0a8d4cfded5b93cb54b5cda8552764e..f93450b6c931f60bc9ee1ae57f0c1ba76115bd2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,8 @@ "dependencies": { "@observablehq/plot": "^0.6.11", "@pinia/nuxt": "^0.4.11", - "pinia": "^2.1.6" + "pinia": "^2.1.6", + "yaml": "^2.3.3" }, "devDependencies": { "@nuxt/content": "^2.8.5", @@ -49,14 +50,14 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", + "version": "7.23.2", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.0", + "version": "7.23.2", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -64,10 +65,10 @@ "@babel/generator": "^7.23.0", "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", + "@babel/helpers": "^7.23.2", "@babel/parser": "^7.23.0", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", + "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -319,11 +320,11 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.1", + "version": "7.23.2", "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", + "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0" }, "engines": { @@ -398,7 +399,7 @@ } }, "node_modules/@babel/standalone": { - "version": "7.23.1", + "version": "7.23.2", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -417,7 +418,7 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.0", + "version": "7.23.2", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", @@ -581,11 +582,11 @@ } }, "node_modules/@netlify/functions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "license": "MIT", "dependencies": { - "@netlify/serverless-functions-api": "1.8.0", + "@netlify/serverless-functions-api": "1.9.0", "is-promise": "^4.0.0" }, "engines": { @@ -601,7 +602,7 @@ } }, "node_modules/@netlify/serverless-functions-api": { - "version": "1.8.0", + "version": "1.9.0", "dev": true, "license": "MIT", "dependencies": { @@ -679,8 +680,7 @@ }, "node_modules/@nuxt/kit": { "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.7.4.tgz", - "integrity": "sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==", + "license": "MIT", "dependencies": { "@nuxt/schema": "3.7.4", "c12": "^1.4.2", @@ -827,11 +827,11 @@ } }, "node_modules/@nuxtjs/mdc": { - "version": "0.2.1", + "version": "0.2.2", "dev": true, "license": "MIT", "dependencies": { - "@nuxt/kit": "latest", + "@nuxt/kit": "^3.7.4", "@types/hast": "^3.0.1", "@types/mdast": "^4.0.1", "@vue/compiler-core": "^3.3.4", @@ -856,7 +856,7 @@ "remark-parse": "^10.0.2", "remark-rehype": "^10.1.0", "scule": "^1.0.0", - "shikiji": "^0.6.8", + "shikiji": "^0.6.9", "ufo": "^1.3.1", "unified": "^11.0.3", "unist-builder": "^4.0.0", @@ -1002,7 +1002,7 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.5", + "version": "25.0.7", "dev": true, "license": "MIT", "dependencies": { @@ -1011,7 +1011,7 @@ "estree-walker": "^2.0.2", "glob": "^8.0.3", "is-reference": "1.2.1", - "magic-string": "^0.27.0" + "magic-string": "^0.30.3" }, "engines": { "node": ">=14.0.0" @@ -1025,25 +1025,14 @@ } } }, - "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": { - "version": "0.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@rollup/plugin-inject": { - "version": "5.0.4", + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "estree-walker": "^2.0.2", - "magic-string": "^0.27.0" + "magic-string": "^0.30.3" }, "engines": { "node": ">=14.0.0" @@ -1057,17 +1046,6 @@ } } }, - "node_modules/@rollup/plugin-inject/node_modules/magic-string": { - "version": "0.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@rollup/plugin-json": { "version": "6.0.1", "dev": true, @@ -1088,7 +1066,7 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.2", + "version": "15.2.3", "dev": true, "license": "MIT", "dependencies": { @@ -1112,12 +1090,12 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "5.0.3", + "version": "5.0.4", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", - "magic-string": "^0.27.0" + "magic-string": "^0.30.3" }, "engines": { "node": ">=14.0.0" @@ -1131,17 +1109,6 @@ } } }, - "node_modules/@rollup/plugin-replace/node_modules/magic-string": { - "version": "0.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@rollup/plugin-terser": { "version": "0.4.4", "dev": true, @@ -1268,7 +1235,7 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.18.3", + "version": "18.18.5", "dev": true, "license": "MIT" }, @@ -1288,7 +1255,7 @@ "license": "MIT" }, "node_modules/@types/web-bluetooth": { - "version": "0.0.17", + "version": "0.0.18", "dev": true, "license": "MIT" }, @@ -1537,6 +1504,17 @@ } } }, + "node_modules/@vue-macros/common/node_modules/local-pkg": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@vue/babel-helper-vue-transform-on": { "version": "1.1.5", "dev": true, @@ -1604,7 +1582,7 @@ } }, "node_modules/@vue/devtools-api": { - "version": "6.5.0", + "version": "6.5.1", "license": "MIT" }, "node_modules/@vue/reactivity": { @@ -1671,14 +1649,14 @@ } }, "node_modules/@vueuse/core": { - "version": "10.4.1", + "version": "10.5.0", "dev": true, "license": "MIT", "dependencies": { - "@types/web-bluetooth": "^0.0.17", - "@vueuse/metadata": "10.4.1", - "@vueuse/shared": "10.4.1", - "vue-demi": ">=0.14.5" + "@types/web-bluetooth": "^0.0.18", + "@vueuse/metadata": "10.5.0", + "@vueuse/shared": "10.5.0", + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1699,7 +1677,7 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.4.1", + "version": "10.5.0", "dev": true, "license": "MIT", "funding": { @@ -1707,16 +1685,16 @@ } }, "node_modules/@vueuse/nuxt": { - "version": "10.4.1", + "version": "10.5.0", "dev": true, "license": "MIT", "dependencies": { - "@nuxt/kit": "^3.6.5", - "@vueuse/core": "10.4.1", - "@vueuse/metadata": "10.4.1", - "local-pkg": "^0.4.3", - "nuxt": "^3.6.5", - "vue-demi": ">=0.14.5" + "@nuxt/kit": "^3.7.4", + "@vueuse/core": "10.5.0", + "@vueuse/metadata": "10.5.0", + "local-pkg": "^0.5.0", + "nuxt": "^3.7.4", + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1726,11 +1704,11 @@ } }, "node_modules/@vueuse/shared": { - "version": "10.4.1", + "version": "10.5.0", "dev": true, "license": "MIT", "dependencies": { - "vue-demi": ">=0.14.5" + "vue-demi": ">=0.14.6" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -2144,7 +2122,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001546", + "version": "1.0.30001549", "funding": [ { "type": "opencollective", @@ -3212,7 +3190,7 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.543", + "version": "1.4.554", "license": "ISC" }, "node_modules/emoji-regex": { @@ -3500,7 +3478,7 @@ } }, "node_modules/fraction.js": { - "version": "4.3.6", + "version": "4.3.7", "dev": true, "license": "MIT", "engines": { @@ -4725,8 +4703,13 @@ } }, "node_modules/local-pkg": { - "version": "0.4.3", + "version": "0.5.0", + "dev": true, "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, "engines": { "node": ">=14" }, @@ -4797,7 +4780,7 @@ } }, "node_modules/magic-string": { - "version": "0.30.4", + "version": "0.30.5", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -8060,7 +8043,7 @@ } }, "node_modules/pinia": { - "version": "2.1.6", + "version": "2.1.7", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.5.0", @@ -9302,7 +9285,7 @@ } }, "node_modules/resolve": { - "version": "1.22.6", + "version": "1.22.8", "dev": true, "license": "MIT", "dependencies": { @@ -9637,7 +9620,7 @@ "license": "MIT" }, "node_modules/shikiji": { - "version": "0.6.8", + "version": "0.6.10", "dev": true, "license": "MIT", "dependencies": { @@ -9940,7 +9923,7 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.21.0", + "version": "5.22.0", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -10071,7 +10054,7 @@ } }, "node_modules/undici": { - "version": "5.25.4", + "version": "5.26.3", "dev": true, "license": "MIT", "dependencies": { @@ -10189,6 +10172,16 @@ "unplugin": "^1.5.0" } }, + "node_modules/unimport/node_modules/local-pkg": { + "version": "0.4.3", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/unist-builder": { "version": "4.0.0", "dev": true, @@ -10319,6 +10312,17 @@ } } }, + "node_modules/unplugin-vue-router/node_modules/local-pkg": { + "version": "0.4.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/unstorage": { "version": "1.9.0", "dev": true, @@ -10990,7 +10994,7 @@ } }, "node_modules/vuetify": { - "version": "3.3.20", + "version": "3.3.21", "dev": true, "license": "MIT", "engines": { @@ -11023,7 +11027,7 @@ } }, "node_modules/vuetify-nuxt-module": { - "version": "0.5.13", + "version": "0.5.15", "dev": true, "license": "MIT", "dependencies": { @@ -11190,8 +11194,7 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.3.2", - "dev": true, + "version": "2.3.3", "license": "ISC", "engines": { "node": ">= 14" diff --git a/package.json b/package.json index 12756372ec3cd8d4e3e3d1ebd92eec882fafbf35..2e3afdb8308e34f5a71e049f87c1cb38d01dc91d 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "dependencies": { "@observablehq/plot": "^0.6.11", "@pinia/nuxt": "^0.4.11", - "pinia": "^2.1.6" + "pinia": "^2.1.6", + "yaml": "^2.3.3" } } diff --git a/server/plugins/content.ts b/server/plugins/content.ts new file mode 100644 index 0000000000000000000000000000000000000000..0f843c65913eb850e528d7653738a8deb4ca9e55 --- /dev/null +++ b/server/plugins/content.ts @@ -0,0 +1,37 @@ +import YAML from 'yaml' + +export default defineNitroPlugin((nitroApp) => { + nitroApp.hooks.hook('content:file:beforeParse', + (file) => { + if (file?._id?.startsWith('content:3.defense-systems:') && file?._id?.endsWith('.md')) { + const regexp = /(?<=---\n).*?(?=\n---)/sg; + const match = file.body.match(regexp); + const frontMatter = match[0] + const parsedFrontMatter = YAML.parse(frontMatter) + if (parsedFrontMatter?.contributors?.length > 0) { + file.body = file.body.replace(/(^#[\s+]\w*[\s\S])/gm, "$1:contributors\n\n") + + } + } + }) + + + // nitroApp.hooks.hook( + // 'content:file:afterParse', + // (file) => { + // if (file._id.endsWith('.md')) { + + // file.body.children.push({ + // type: "element", + // tag: 'article-doi-list', + // props: { + // items: [ + // { doi: '10.1016/j.mib.2005.06.006' }, + // { doi: '10.1016/j.mib.2005.06.006' }] + // }, + // children: [] + // }) + + // } + // }) +}) \ No newline at end of file