mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Add quote and mention support for username formatters
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user