awoo-markdown
v1.1.2
Published
🔻 Markdown parsing plugin for the awoo static site generator
Downloads
3
Maintainers
Readme
Features
- Parse Markdown content in text files within the awoo
files
array - Custom filter functions to include or exclude files from transforms
Installation
npm install --save awoo-markdown
Usage example
const awoo = require('awoo')
const markdown = require('awoo-markdown')
// enter our main function:
// the main function should be an async function so that
// it automatically returns a promise
awoo(async site => {
// we register our plugin...
site.use(markdown)
// ...and initiate the build process
return site
})
Filter example
You can pass a custom filter as an option to markdown
to include or exclude files.
A filter is a function that takes the arguments file
, options
, and files
. file
is the current file, options
is the options object passed to markdown
, and files
is the entire array of files created by awoo
.
If the filter function returns true
, markdown
applies its transforms to the contents of the current file
object. Otherwise the file
object remains unchanged.
The default filter in markdown
returns true only for files ending with .md
:
function myCustomFilter (file, options, files) {
return file.path.endsWith('.md')
}
This is how you could use a filter to apply markdown
to every file:
const awoo = require('awoo')
const markdown = require('awoo-markdown')
// custom filter function
// always returns true
function myCustomFilter (file, options, files) {
return true
}
awoo(async site => {
// we register the markdown plugin with our custom filter function...
site.use(markdown, {filter: myCustomFilter})
// ...and initiate the build process
return site
})
Markdown-it plugin example
You can pass plugins as an option to markdown
to use markdown-it plugin.
plugins is an array that contains every plugin
.
plugin
is also an array that takes one or more arguments,
the first argument is the markdown-it plugin, and the following arguments
is the custom options that the markdown-it plugin takes itself.
const awoo = require('awoo')
const markdown = require('awoo-markdown')
const markdownItContainer = require('markdown-it-container')
awoo(async site => {
// we register the markdown plugin with its own plugins...
site.use(markdown, {plugins: [
[markdownItContainer, 'spoiler']
]})
// ...and initiate the build process
return site
})
All processed files are renamed to <filename>.html
after being converted.
Maintainers
- Frederic Marx <[email protected]>
License
MIT (see LICENSE document)