sc-markdown-it-hashmention
Version:
Flowdock hashtag and mention parser for markdown-it
44 lines (36 loc) • 1.45 kB
JavaScript
;
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'];