-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
spans.js
83 lines (72 loc) · 2.3 KB
/
spans.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
'use strict'
var classes = {
String : 's'
, Number : 'f'
, Keyword : 'k'
, 'Keyword.Constant' : 'kc'
, 'Keyword.Declaration' : 'kd'
, 'Keyword.Namespace' : 'kn'
, 'Keyword.Pseudo' : 'kp'
, 'Keyword.Reserved' : 'kr'
, 'Keyword.Type' : 'kt'
, Name : 'n'
, 'Name.Attribute' : 'na'
, 'Name.Builtin' : 'nb'
, 'Name.Builtin.Pseudo' : 'bp'
, 'Name.Class' : 'nc'
, 'Name.Constant' : 'no'
, 'Name.Decorator' : 'nd'
, 'Name.Entity' : 'ni'
, 'Name.Exception' : 'ne'
, 'Name.Function' : 'nf'
, 'Name.Property' : 'py'
, 'Name.Label' : 'nl'
, 'Name.Namespace' : 'nn'
, 'Name.Other' : 'nx'
, 'Name.Tag' : 'nt'
, 'Name.Variable' : 'nv'
, 'Name.Variable.Class' : 'vc'
, 'Name.Variable.Global' : 'vg'
, 'Name.Variable.Instance' : 'vi'
, Literal : 'l'
, 'Literal.Date' : 'ld'
, Operator : 'o'
, Punctuation : 'p'
, Comment : 'c'
, 'Comment.Multiline' : 'cm'
, 'Comment.Preproc' : 'cp'
, 'Comment.Single' : 'c1'
, 'Comment.Special' : 'cs'
, Generic : 'g'
, 'Generic.Deleted' : 'gd'
, 'Generic.Emph' : 'ge'
, 'Generic.Error' : 'gr'
, 'Generic.Heading' : 'gh'
, 'Generic.Inserted' : 'gi'
, 'Generic.Output' : 'go'
, 'Generic.Prompt' : 'gp'
, 'Generic.Strong' : 'gs'
, 'Generic.Subheading' : 'gu'
, 'Generic.Traceback' : 'gt'
}
var spans = {}
function escapeHtml(s) {
return s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')
}
function wrap(clazz) {
return function escapeAndWrap(s) {
return [
'<span class="'
, clazz
, '">'
, escapeHtml(s)
, '</span>'
].join('')
}
}
Object.keys(classes)
.forEach(function(k) {
spans[k] = wrap(classes[k])
})
module.exports = spans
module.exports.classes = classes