const markdownIt = require('markdown-it') const mdla = require('markdown-it-link-attributes') module.exports = (config) => { // markdown setup const mdOptions = { html: true, linkify: true, } const markdownLib = markdownIt(mdOptions) .use(mdla, { matcher(href, _config) { return href.match(/\/@\w+/) }, attrs: { rel: 'me', target: '_blank' } }) .disable("code") config.setLibrary("md", markdownLib) // add collection for pages config.addCollection('pages', (collection) => { let sorted = [] let unsorted = [] const pages = collection.getFilteredByGlob('**/*.md') for (let page of pages) { if (page.data.sort) { if (sorted[page.data.sort]) { sorted.splice(page.data.sort, 0, page) } else { sorted[page.data.sort] = page } } else { unsorted.push(page) } } return sorted.concat(unsorted) }) // custom filters config.addFilter("makeLowercase", (value) => { if (typeof value === 'string' || value instanceof String) { return value.toLowerCase() } }) // added passthrough for global assets config.addPassthroughCopy("assets") // added passthrough for images in their respective folders config.addPassthroughCopy("_content/**/images/**") // reutrn updated config return { dir: { input: "_content", // content includes: "../_includes", // templates output: "_site", // rendered site data: "../_data" // global data files } } }