Add quote and mention support for username formatters

This commit is contained in:
Robin Ward
2017-11-20 16:28:03 -05:00
parent c53ed61bd3
commit f8164956dd
8 changed files with 36 additions and 9 deletions

View File

@@ -1,7 +1,6 @@
function addMention(buffer, matches, state) {
let username = matches[1] || matches[2];
let mentionLookup = state.md.options.discourse.mentionLookup;
let getURL = state.md.options.discourse.getURL;
let { getURL, mentionLookup, formatUsername } = state.md.options.discourse;
let type = mentionLookup && mentionLookup(username);
@@ -25,6 +24,9 @@ function addMention(buffer, matches, state) {
}
buffer.push(token);
if (formatUsername) {
username = formatUsername(username);
}
token = new state.Token('text', '', 0);
token.content = '@'+username;

View File

@@ -3,13 +3,13 @@ import { performEmojiUnescape } from 'pretty-text/emoji';
const rule = {
tag: 'quote',
before: function(state, tagInfo) {
before(state, tagInfo) {
const attrs = tagInfo.attrs;
let options = state.md.options.discourse;
let quoteInfo = attrs['_default'];
let username, postNumber, topicId, avatarImg, primaryGroupName, full;
let username, postNumber, topicId, avatarImg, primaryGroupName, full, displayName;
if (quoteInfo) {
let split = quoteInfo.split(/\,\s*/);
@@ -50,6 +50,12 @@ const rule = {
primaryGroupName = options.lookupPrimaryUserGroup(username);
}
if (options.formatUsername) {
displayName = options.formatUsername(username);
} else {
displayName = username;
}
let token = state.push('bbcode_open', 'aside', 1);
token.attrs = [];
@@ -118,7 +124,7 @@ const rule = {
}
} else {
token = state.push('text', '', 0);
token.content = ` ${username}:`;
token.content = ` ${displayName}:`;
}
token = state.push('quote_header_close', 'div', -1);

View File

@@ -21,6 +21,7 @@ export function buildOptions(state) {
currentUser,
lookupAvatarByPostNumber,
lookupPrimaryUserGroupByPostNumber,
formatUsername,
emojiUnicodeReplacer,
lookupInlineOnebox,
lookupImageUrls,
@@ -61,6 +62,7 @@ export function buildOptions(state) {
currentUser,
lookupAvatarByPostNumber,
lookupPrimaryUserGroupByPostNumber,
formatUsername,
mentionLookup,
emojiUnicodeReplacer,
lookupInlineOnebox,