Commit eb408e8545d033be2ffe5456e27eb7972717e2d4
Render name-mapped mentions
cel committed on 6/2/2017, 8:52:17 AMParent: a6f218a9377c5f74cbf2e54ab1d6c114a2a36434
Files changed
render.js | changed |
render.js | ||
---|---|---|
@@ -28,8 +28,9 @@ | ||
28 | 28 | return this.opts.base + "channel/" + href.slice(1); |
29 | 29 | case "%": |
30 | 30 | return this.opts.msg_base + encodeURIComponent(href); |
31 | 31 | case "@": |
32 | + href = this.opts.mentions[href.substr(1)] || href; | |
32 | 33 | return this.opts.feed_base + encodeURIComponent(href); |
33 | 34 | case "&": |
34 | 35 | return this.opts.blob_base + encodeURIComponent(href); |
35 | 36 | } |
@@ -52,13 +53,16 @@ | ||
52 | 53 | }; |
53 | 54 | |
54 | 55 | function renderEmoji(emoji) { |
55 | 56 | var opts = this.renderer.opts; |
56 | - return emoji in emojis | |
57 | + var mentions = opts.mentions; | |
58 | + var url = mentions[emoji] | |
59 | + ? opts.blob_base + encodeURIComponent(mentions[emoji]) | |
60 | + : emoji in emojis && opts.emoji_base + escape(emoji) + '.png'; | |
61 | + return url | |
57 | 62 | ? '<img src="' + |
58 | - opts.emoji_base + | |
59 | - escape(emoji) + | |
60 | - '.png"' + | |
63 | + url + | |
64 | + '"' + | |
61 | 65 | ' alt=":' + |
62 | 66 | escape(emoji) + |
63 | 67 | ':"' + |
64 | 68 | ' title=":' + |
@@ -454,8 +458,12 @@ | ||
454 | 458 | else return renderDefault(c); |
455 | 459 | } |
456 | 460 | |
457 | 461 | function renderPost(opts, c) { |
462 | + opts.mentions = {}; | |
463 | + if (Array.isArray(c.mentions)) c.mentions.forEach(function (link) { | |
464 | + if (link && link.name && link.link) opts.mentions[link.name] = link.link; | |
465 | + }); | |
458 | 466 | return '<section>' + marked(String(c.text), opts.marked) + "</section>"; |
459 | 467 | } |
460 | 468 | |
461 | 469 | function renderDefault(c) { |
Built with git-ssb-web