UNPKG

sc-markdown-it-hashmention

Version:

Flowdock hashtag and mention parser for markdown-it

44 lines (36 loc) 1.45 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _parser = require('./parser'); var _parser2 = _interopRequireDefault(_parser); function flowdockMention(tokens, idx) { var tag = tokens[idx].content; var markup = tokens[idx].markup; var isUserMention = flowdockMention.options.users && flowdockMention.options.users.includes(tag); var isGroupMention = flowdockMention.options.groups && flowdockMention.options.groups.includes(tag); if (isUserMention) { var result = '<a data-user="' + tag + '" class="mention mention-user"'; if (flowdockMention.options && flowdockMention.options.href) { result += ' href="' + flowdockMention.options.href + encodeURIComponent(tag) + '"'; } result += '>' + markup + tag + '</a>'; return result; } else if (isGroupMention) { var result = '<span data-group="' + tag + '" class="mention mention-group"'; result += '>' + markup + tag + '</span>'; return result; } else { return markup + tag; } } exports['default'] = function (md, options) { var split = "@|@"; var mention = (0, _parser2['default'])(md, 'mention', new RegExp(split)); md.core.ruler.push('mention', mention); flowdockMention.options = options && options.mentions; md.renderer.rules.mention = flowdockMention; }; ; module.exports = exports['default'];