Vous pouvez configurer @nuxt/content
avec la propriété content
au sein du fichier nuxt.config.js
.
export default { content: { // Ma configuration personnalisée }}
Voir les options par défaut.
Propriétés
apiPrefix
- Type:
String
- Défaut:
'/_content'
La route qui sera utilisée pour les appels API côté client et les SSE.
content: { // l'api $content sera disponible à l'adresse localhost:3000/content-api apiPrefix: 'content-api'}
dir
- Type:
String
- Défaut:
'content'
Le répertoire utilisé pour l'écriture du contenu. Vous pouvez fournir un chemin absolu, mais dans le cas où le chemin est relatif, il sera déterminé avec la propriété srcDir de Nuxt.
content: { dir: 'mon-contenu' // lit le contenu depuis mon-contenu/}
fullTextSearchFields
- Type:
Array
- Défaut:
['title', 'description', 'slug', 'text']
Les champs qui ont besoin d'être indexés afin d'être recherchables, vous pouvez en apprendre plus sur les recherches ici.
text
est une propriété spéciale qui contient votre Markdown avant qu'il soit converti en AST.
content: { // Les recherches s'effectuent uniquement sur les champs titre et description fullTextSearchFields: ['title', 'description']}
nestedProperties
- Type
Array
- Défaut:
[]
- Version: v1.3.0
Vous pouvez enregistrer des propriétés imbriquées afin que la notation ponctuelle et le filtrage en profondeur soient pris en charge.
content: { nestedProperties: ['categories.slug']}
markdown
Ce module se sert de remark afin de compiler des fichiers Markdown vers du JSON AST qui sera stocké dans une variable body
.
Par défaut, ce module a recours à des plugins pour améliorer la conversion du Markdown. Vous pouvez ajouter vos propres plugins ou modifier ceux par défaut en utilisant la propriété basePlugins
. Chaque plugin est configuré en utilisant son nom en camelCase : remark-external-links
=> externalLinks
.
Vous pouvez retrouver des plugins pour remark ici.
markdown.basePlugins
- Type:
Array
- Défaut:
['remark-squeeze-paragraphs', 'remark-slug', 'remark-autolink-headings', 'remark-external-links', 'remark-footnotes']
markdown.plugins
- Type:
Array
- Défaut:
[]
markdown.externalLinks
- Type:
Object
- Défaut:
{}
Vous pouvez controler le comportement des liens avec cette option. Consultez la liste des options ici.
content: { markdown: { externalLinks: { target: '_self' // désactive target="_blank" rel: false // désactive rel="nofollow noopener" } }}
markdown.footnotes
- Type:
Object
- Défaut:
{ inlineNotes: true }
Vous pouvez controler le comportement des liens avec cette option. Consultez la liste des ici.
markdown.prism.theme
- Type:
String
- Défaut:
'prismjs/themes/prism.css'
Ce module gère la coloration syntaxique du contenu Markdown à l'aide de PrismJS.
Il insère automatiquement le thème PrismJS désiré au sein de votre configuration Nuxt.js, donc si souhaitez utiliser un thème différent de celui par défaut, consultez les prism-themes:
content: { markdown: { prism: { theme: 'prism-themes/themes/prism-material-oceanic.css' } }}
Pour désactiver l'inclusion du thème, définissez prism à false
:
content: { markdown: { prism: { theme: false } }}
yaml
- Type:
Object
- Défaut:
{}
Ce module utilise js-yaml
pour convertir les fichiers yaml, vous pouvez consulter les options ici.
Notez que nous forçons l'option json: true
.
csv
- Type:
Object
- Défaut:
{}
Ce module utilise node-csvtojson
pour convertir les fichiers csv, vous pouvez consulter les options ici.
Configuration par défaut
export default { content: { apiPrefix: '_content', dir: 'content', fullTextSearchFields: ['title', 'description', 'slug', 'text'], nestedProperties: [], markdown: { externalLinks: {}, footnotes: { inlineNotes: true }, basePlugins: ['remark-squeeze-paragraphs', 'remark-slug', 'remark-autolink-headings', 'remark-external-links', 'remark-footnotes'], plugins: [], prism: { theme: 'prismjs/themes/prism.css' } }, yaml: {}, csv: {} }}