plugins/gatsby-remark-typography/index.js (18 lines of code) (raw):

'use strict'; const visit = require('unist-util-visit'); const Typograf = require('typograf'); module.exports = ({markdownAST}, pluginOptions = {}) => { visit(markdownAST, 'text', node => { const tp = new Typograf({locale: ['ru']}); const disabledRules = [ 'common/space/trimRight', 'common/space/trimLeft', 'common/symbols/cf', ]; disabledRules.forEach(rule => { tp.disableRule(rule); }); node.value = String(tp.execute(node.value)); }); return markdownAST; };