Simon ab796326f1 | ||
---|---|---|
.gitignore | ||
README.md | ||
index.js | ||
package-lock.json | ||
package.json |
README.md
Directus To Markdown
This library export Directus items collections to markdown files with assets.
I used it to export article from Directus to Hugo website.
Configuration
Directus
This library export data from an Directus so you should specify an url and token.
With environment variables:
export DIRECTUS_URL=https://your.directus.url
export DIRECTUS_TOKEN=your-token
or on configuration parameters:
const config = {
url: 'https://your.directus.url',
token: 'your-token',
...
}
Collection Name
The key of collections object should be the name of Directus Collection:
const config = {
collections: {
news: { ... },
pages: { ... }
}
}
Content key
default: content
You can modify the field of the content:
const config = {
contentKey: 'body',
...
}
deleteFields
Delete keys on markdown front matter:
const config = {
deleteFields: ['id', 'jobs'],
...
}
readByQueryOption
readByQueryOption
match https://docs.directus.io/reference/sdk/#read-by-query
Export to specific path
For each collection you should an pathBuilder
.
Example
import DirectusToMarkdown from '@resilien/directus-to-markdown'
import urlslug from 'url-slug'
const config = {
url: 'https://your.directus.url',
token: 'your-token',
contentKey: 'body',
collections: {
news: {
readByQueryOption: {
fields: ['title', 'slug', 'date', 'image', 'image_credit', 'draft', 'body'],
filter: { draft: { _eq: 'false' } },
limit: -1
},
pathBuilder: (article) => {
if (article.slug) {
return `./content/news/${article.slug}`
}
return `./content/news/${article.date}-${urlslug(article.title, { remove: /\./g })}`;
}
}
}
}
new DirectusToMarkdown(config).export();