cremeaux/scripts/directus-to-markdown/index.js

62 lines
1.7 KiB
JavaScript

import DirectusToMarkdown from '@resilien/directus-to-markdown'
import urlslug from 'url-slug'
const filter = process.env.DRAFT && process.env.DRAFT == 'true' ? '' : { draft: { _eq: 'false' } }
const config = {
collections: {
actualites: {
readByQueryOption: {
fields: ['title', 'date', 'image', 'image_credit', 'description', 'auteur', 'draft', 'content'],
filter
},
pathBuilder: (article) => {
const [year, month, day] = article.date.split("-")
return `./content/actualites/${year}/${month}/${day}-${urlslug(article.title, { remove: /\./g })}`;
}
},
Association: {
readByQueryOption: {
fields: [
'denomination',
'title',
'description',
'mail',
'telephone',
'site',
'facebook',
'bureau.sort',
'bureau.Contact_id.*',
'content',
]
},
pathBuilder: (association) => {
if (!association.title) {
association.title = association.denomination
}
const bureau = []
for (const contact of association.bureau) {
const detail = contact.Contact_id
let c = {
denomination: detail.denomination,
prenom: detail.prenom,
nom: detail.nom,
}
if (detail.mail && detail.display_mail) {
c.mail = detail.mail
}
if (detail.telephone && detail.display_telephone) {
c.telephone = detail.telephone
}
bureau.push(c)
}
association.bureau = bureau
return `./content/associations/${urlslug(association.denomination)}`;
},
},
}
}
new DirectusToMarkdown(config).export();