diff --git a/lib/get-macro-options/index.js b/lib/get-macro-options/index.js index d5ac85507d..5814eacb92 100644 --- a/lib/get-macro-options/index.js +++ b/lib/get-macro-options/index.js @@ -1,14 +1,18 @@ const { dirname, join } = require('path') -const { marked } = require('marked') +const { Marked, Renderer } = require('marked') +const { markedSmartypants } = require('marked-smartypants') const { kebabCase, slugify } = require('../nunjucks/filters') // Get reference to marked.js -const renderer = new marked.Renderer() +const renderer = new Renderer() // Override marking up paragraphs renderer.paragraph = (text) => text +// Custom Marked instance with "smart" typographic punctuation +const marked = new Marked().setOptions({ renderer }).use(markedSmartypants()) + function getMacroOptionsJson(componentName) { const optionsFilePath = join( dirname(require.resolve('govuk-frontend')), @@ -45,7 +49,7 @@ function renderNameWithBreaks(option) { function renderDescriptionsAsMarkdown(option) { if (option.description) { - option.description = marked(option.description, { renderer }) + option.description = marked.parse(option.description) } if (option.params) { option.params = option.params.map(renderDescriptionsAsMarkdown)