Commit e88968184cc1392c4b3b1ebb85d0a3b0e0523b13
Render custom emoji
cel committed on 6/2/2017, 10:19:17 PMParent: 654a3bef4ca321c95c33b7ec9447d1df0bcf3753
Files changed
message/html/markdown.js | changed |
message/html/markdown.js | |||
---|---|---|---|
@@ -14,31 +14,39 @@ | |||
14 | 14 … | return nest('message.html.markdown', markdown) | |
15 | 15 … | ||
16 | 16 … | function markdown (content) { | |
17 | 17 … | if (typeof content === 'string') { content = {text: content} } | |
18 | - // handle patchwork style mentions. | ||
18 … | + // handle patchwork style mentions and custom emoji. | ||
19 | 19 … | var mentions = {} | |
20 … | + var emojiMentions = {} | ||
20 | 21 … | if (Array.isArray(content.mentions)) { | |
21 | 22 … | content.mentions.forEach(function (link) { | |
22 | - if (link.name) mentions['@' + link.name] = link.link | ||
23 … | + if (link && link.name && link.link) { | ||
24 … | + if (link.emoji) emojiMentions[link.name] = link.link | ||
25 … | + else mentions['@' + link.name] = link.link | ||
26 … | + } | ||
23 | 27 … | }) | |
24 | 28 … | } | |
25 | 29 … | ||
26 | 30 … | var md = h('div', {className: 'Markdown'}) | |
27 | 31 … | md.innerHTML = renderer.block(content.text, { | |
28 | - emoji: renderEmoji, | ||
32 … | + emoji: (emoji) => { | ||
33 … | + var url = emojiMentions[emoji] | ||
34 … | + ? api.blob.sync.url(emojiMentions[emoji]) | ||
35 … | + : api.emoji.sync.url(emoji) | ||
36 … | + return renderEmoji(emoji, url) | ||
37 … | + }, | ||
29 | 38 … | toUrl: (id) => { | |
30 | 39 … | if (ref.isBlob(id)) return api.blob.sync.url(id) | |
31 | - return (mentions[id] ? mentions[id] : id) | ||
40 … | + return mentions[id] || id | ||
32 | 41 … | }, | |
33 | 42 … | imageLink: (id) => id | |
34 | 43 … | }) | |
35 | 44 … | ||
36 | 45 … | return md | |
37 | 46 … | } | |
38 | 47 … | ||
39 | - function renderEmoji (emoji) { | ||
40 | - var url = api.emoji.sync.url(emoji) | ||
48 … | + function renderEmoji (emoji, url) { | ||
41 | 49 … | if (!url) return ':' + emoji + ':' | |
42 | 50 … | return ` | |
43 | 51 … | <img | |
44 | 52 … | src="${encodeURI(url)}" |
Built with git-ssb-web