# Directus To Markdown This library export [Directus](https://directus.io) 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: ```js const config = { url: 'https://your.directus.url', token: 'your-token', ... } ``` ### Collection Name The key of collections object should be the name of Directus Collection: ```js const config = { collections: { news: { ... }, pages: { ... } } } ``` ### Content key _default: content_ You can modify the field of the content: ```js const config = { contentKey: 'body', ... } ``` ### deleteFields Delete keys on markdown front matter: ```js 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 ```js 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(); ```