24 lines
606 B
JavaScript
24 lines
606 B
JavaScript
const prettierMarkdown = require('prettier/parser-markdown')
|
|
|
|
module.exports = {
|
|
parsers: {
|
|
markdown: {
|
|
...prettierMarkdown.parsers.markdown,
|
|
preprocess(text, options) {
|
|
let result = prettierMarkdown.parsers.markdown.preprocess(text, options)
|
|
result = convertToCodeFences(result)
|
|
return result
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function convertToCodeFences(input) {
|
|
let source = input
|
|
source = source.replace(/\n((\n+ [^\n]+)+)/g, (match) => {
|
|
const dedented = match.replace(/\n /g, '\n').trim()
|
|
return '\n\n```\n' + dedented + '\n```'
|
|
})
|
|
return source
|
|
}
|