@lowlighter/remark-ruby
Version: 
Custom syntax for remarkjs, adding ruby (furigana) to markdown.
27 lines (23 loc) • 703 B
JavaScript
const fromMarkdown = require('./from-markdown');
const toMarkdown = require('./to-markdown');
const rubyEnd = require('./tokenize/ruby-end');
const rubyStart = require('./tokenize/ruby-start');
module.exports = function ruby(opts) {
  const data = this.data();
  const parenthesis = opts && opts.parenthesis ? opts.parenthesis : '()';
  function add(field, value) {
    if (data[field]) data[field].push(value);
    else data[field] = [value];
  }
  add('micromarkExtensions', {
    text: {
      123: rubyStart,
      125: rubyEnd,
    },
    insideSpan: {
      null: rubyStart,
    },
  });
  add('fromMarkdownExtensions', fromMarkdown(parenthesis));
  add('toMarkdownExtensions', toMarkdown);
};