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

Commit 77b2ee6

Browse files
committed
multiline message & syntax highlighted code!
1 parent 1736734 commit 77b2ee6

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

lib/rich-message.js

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
module.exports = makeRichMessage
22
module.exports.mergeMessages = mergeMessages
33

4+
var emoji = require('markdown-it-emoji')
45
var ghlink = require('ghlink')
6+
var higlight = require('highlight.js')
57
var htmlToVDom = require('html-to-vdom')
8+
var MarkdownIt = require('markdown-it')
9+
var util = require('./util.js')
610
var VNode = require('virtual-dom/vnode/vnode')
711
var VText = require('virtual-dom/vnode/vtext')
8-
var util = require('./util.js')
9-
10-
var MarkdownIt = require('markdown-it')
11-
var emoji = require('markdown-it-emoji')
1212

1313
var md = new MarkdownIt({
14-
linkify: true
14+
linkify: true,
15+
highlight: function (str, lang) {
16+
if (lang && higlight.getLanguage(lang)) {
17+
try {
18+
return higlight.highlight(lang, str).value
19+
} catch (err) {}
20+
}
21+
22+
try {
23+
return higlight.highlightAuto(str).value
24+
} catch (err) {}
25+
26+
return '' // use external default escaping
27+
}
1528
}).use(emoji)
1629

1730
var convertHTML = htmlToVDom({
@@ -31,6 +44,7 @@ function makeRichMessage (message, username) {
3144
message.timeago = util.timeago(message.timestamp)
3245

3346
message.html = md.render(message.text)
47+
message.html = message.html.replace(/\n/g, '<p></p>')
3448
message.html = ghlink(message.html, { format: 'html' })
3549
message.html = message.html.replace(/(^| )(#[a-zA-Z0-9]+)( |$)$/g, '$1<a href="$2">$2</a>$3')
3650

0 commit comments

Comments
 (0)