1
1
module . exports = makeRichMessage
2
2
module . exports . mergeMessages = mergeMessages
3
3
4
+ var emoji = require ( 'markdown-it-emoji' )
4
5
var ghlink = require ( 'ghlink' )
6
+ var higlight = require ( 'highlight.js' )
5
7
var htmlToVDom = require ( 'html-to-vdom' )
8
+ var MarkdownIt = require ( 'markdown-it' )
9
+ var util = require ( './util.js' )
6
10
var VNode = require ( 'virtual-dom/vnode/vnode' )
7
11
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' )
12
12
13
13
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
+ }
15
28
} ) . use ( emoji )
16
29
17
30
var convertHTML = htmlToVDom ( {
@@ -31,6 +44,7 @@ function makeRichMessage (message, username) {
31
44
message . timeago = util . timeago ( message . timestamp )
32
45
33
46
message . html = md . render ( message . text )
47
+ message . html = message . html . replace ( / \n / g, '<p></p>' )
34
48
message . html = ghlink ( message . html , { format : 'html' } )
35
49
message . html = message . html . replace ( / ( ^ | ) ( # [ a - z A - Z 0 - 9 ] + ) ( | $ ) $ / g, '$1<a href="$2">$2</a>$3' )
36
50
0 commit comments