Skip to content
This repository was archived by the owner on Jul 11, 2019. It is now read-only.

Commit 7772688

Browse files
committed
better readability: merge consecutive messages
For #12
1 parent bd8329e commit 7772688

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

lib/rich-message.js

+23-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module.exports = makeRichMessage
2+
module.exports.mergeMessages = mergeMessages
23

34
var autolinker = require('autolinker')
45
var emojiNamedCharacters = require('emoji-named-characters')
@@ -16,26 +17,33 @@ var convertHTML = htmlToVDom({
1617
VText: VText
1718
})
1819

20+
function makeVDom (html) {
21+
return convertHTML('<div>' + html + '</div>')
22+
}
23+
1924
function makeRichMessage (message) {
2025
message.anon = /Anonymous/i.test(message.username)
2126
message.avatar = message.anon
2227
? 'static/Icon.png'
2328
: 'https://github.com/' + message.username + '.png'
2429
message.timeago = util.timeago(message.timestamp)
25-
message.rawText = message.text
26-
message.text = escapeHTML(message.text)
2730

28-
message.text = message.text.replace(EMOJI_REGEX, function (full, $1, $2, $3) {
29-
return ($1 || '') + renderEmoji($2) + ($3 || '')
30-
})
31+
message.html = escapeHTML(message.text)
32+
message.html = emojify(message.html)
33+
message.html = autolinker.link(message.html)
34+
message.html = ghlink(message.html, { format: 'html' })
3135

32-
var messageHtml = autolinker.link(message.text)
33-
messageHtml = ghlink(messageHtml, {format: 'html'})
34-
message.text = convertHTML('<span>' + messageHtml + '</span>')
36+
message.vdom = makeVDom(message.html)
3537

3638
return message
3739
}
3840

41+
function emojify (str) {
42+
return str.replace(EMOJI_REGEX, function (full, $1, $2, $3) {
43+
return ($1 || '') + renderEmoji($2) + ($3 || '')
44+
})
45+
}
46+
3947
function renderEmoji (emoji) {
4048
return emoji in emojiNamedCharacters ?
4149
'<img src="node_modules/emoji-named-characters/pngs/' + encodeURI(emoji) + '.png"'
@@ -44,3 +52,10 @@ function renderEmoji (emoji) {
4452
+ ' class="emoji" align="absmiddle" height="20" width="20">'
4553
: ':' + emoji + ':'
4654
}
55+
56+
function mergeMessages (message1, message2) {
57+
message1.text += '\n' + message2.text
58+
message1.html += '<p></p>' + message2.html
59+
message1.vdom = makeVDom(message1.html)
60+
return message1
61+
}

0 commit comments

Comments
 (0)