diff options
Diffstat (limited to 'lib/render.js')
-rw-r--r-- | lib/render.js | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/lib/render.js b/lib/render.js index 102035b..c1c7edf 100644 --- a/lib/render.js +++ b/lib/render.js @@ -88,13 +88,27 @@ function Render(app, opts) { Render.prototype.emoji = function (emoji) { var name = ':' + emoji + ':' - return emoji in emojis ? - h('img.ssb-emoji', { + var link = this._mentions && this._mentions[name] + if (link && link.link) { + this.app.reverseEmojiNameCache.set(emoji, link.link) + return h('img.ssb-emoji', { + src: this.opts.img_base + link.link, + alt: name + + (link.size != null ? ' (' + this.formatSize(link.size) + ')' : ''), + height: 17, + title: name, + }) + } + if (emoji in emojis) { + return h('img.ssb-emoji', { src: this.opts.emoji_base + emoji + '.png', alt: name, height: 17, + align: 'absmiddle', title: name, - }) : name + }) + } + return name } /* disabled until it can be done safely without breaking html @@ -113,6 +127,8 @@ Render.prototype.markdown = function (text, mentions) { var mentionsByLink = this._mentionsByLink = {} if (Array.isArray(mentions)) mentions.forEach(function (link) { if (!link) return + else if (link.emoji) + mentionsObj[':' + link.name + ':'] = link else if (link.name) mentionsObj['@' + link.name] = link.link else if (link.host === 'http://localhost:7777') @@ -290,6 +306,14 @@ Render.prototype.renderFeeds = function (opts) { }, 4) } +Render.prototype.gitCommitBody = function (body) { + if (!body) return '' + var isMarkdown = !/^# Conflicts:$/m.test(body) + return isMarkdown + ? h('div', {innerHTML: this.markdown('\n' + body)}) + : h('pre', this.linkify('\n' + body)) +} + Render.prototype.getName = function (id, cb) { // TODO: consolidate the get name/link functions var self = this |