Render name-mapped mentions

This commit is contained in:
cel
2017-06-01 22:52:17 -10:00
parent a6f218a937
commit eb408e8545
+12 -4
View File
@@ -29,6 +29,7 @@ MdRenderer.prototype.urltransform = function(href) {
case "%": case "%":
return this.opts.msg_base + encodeURIComponent(href); return this.opts.msg_base + encodeURIComponent(href);
case "@": case "@":
href = this.opts.mentions[href.substr(1)] || href;
return this.opts.feed_base + encodeURIComponent(href); return this.opts.feed_base + encodeURIComponent(href);
case "&": case "&":
return this.opts.blob_base + encodeURIComponent(href); return this.opts.blob_base + encodeURIComponent(href);
@@ -53,11 +54,14 @@ MdRenderer.prototype.image = function(href, title, text) {
function renderEmoji(emoji) { function renderEmoji(emoji) {
var opts = this.renderer.opts; var opts = this.renderer.opts;
return emoji in emojis var mentions = opts.mentions;
var url = mentions[emoji]
? opts.blob_base + encodeURIComponent(mentions[emoji])
: emoji in emojis && opts.emoji_base + escape(emoji) + '.png';
return url
? '<img src="' + ? '<img src="' +
opts.emoji_base + url +
escape(emoji) + '"' +
'.png"' +
' alt=":' + ' alt=":' +
escape(emoji) + escape(emoji) +
':"' + ':"' +
@@ -455,6 +459,10 @@ function render(opts, c) {
} }
function renderPost(opts, c) { function renderPost(opts, c) {
opts.mentions = {};
if (Array.isArray(c.mentions)) c.mentions.forEach(function (link) {
if (link && link.name && link.link) opts.mentions[link.name] = link.link;
});
return '<section>' + marked(String(c.text), opts.marked) + "</section>"; return '<section>' + marked(String(c.text), opts.marked) + "</section>";
} }