-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheleventy.config.markdown.js
32 lines (29 loc) · 1.03 KB
/
eleventy.config.markdown.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import container from 'markdown-it-container'
// Custom Callout Blocks Plugin For Markdown-it
// equk.co.uk
export default (md) => {
md.use(...createContainer('tip', 'Tip', md))
.use(...createContainer('info', 'Info', md))
.use(...createContainer('warning', 'Warning', md))
.use(...createContainer('danger', 'Danger', md))
.use(...createContainer('note', 'Note', md))
.use(...createContainer('important', 'Important', md))
.use(...createContainer('caution', 'Caution', md))
}
function createContainer(conClass, defaultTitle, md) {
return [
container,
conClass,
{
render(tokens, idx) {
const token = tokens[idx]
const info = token.info.trim().slice(conClass.length).trim()
const attrs = md.renderer.renderAttrs(token)
if (token.nesting === 1) {
const title = md.renderInline(info || defaultTitle)
return `<div class="${conClass} callout-block"${attrs}><p class="callout-block-title">${title}</p>\n`
} else return `</div>\n`
},
},
]
}