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