romanvbabenko-rhighlightjs 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/.document +5 -0
  2. data/.gitignore +7 -0
  3. data/LICENSE +20 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.rdoc +51 -0
  6. data/Rakefile +58 -0
  7. data/VERSION +1 -0
  8. data/assets/images/brown_papersq.png +0 -0
  9. data/assets/images/paperbg.gif +0 -0
  10. data/assets/images/school_book.png +0 -0
  11. data/assets/javascripts/highlight.js +570 -0
  12. data/assets/javascripts/highlight.pack.js +1 -0
  13. data/assets/javascripts/languages/1c.js +95 -0
  14. data/assets/javascripts/languages/apache.js +442 -0
  15. data/assets/javascripts/languages/avrasm.js +89 -0
  16. data/assets/javascripts/languages/axapta.js +52 -0
  17. data/assets/javascripts/languages/bash.js +81 -0
  18. data/assets/javascripts/languages/cpp.js +42 -0
  19. data/assets/javascripts/languages/cs.js +47 -0
  20. data/assets/javascripts/languages/css.js +81 -0
  21. data/assets/javascripts/languages/delphi.js +82 -0
  22. data/assets/javascripts/languages/diff.js +65 -0
  23. data/assets/javascripts/languages/django.js +61 -0
  24. data/assets/javascripts/languages/dos.js +33 -0
  25. data/assets/javascripts/languages/dynamic.js +460 -0
  26. data/assets/javascripts/languages/html-xml.js +140 -0
  27. data/assets/javascripts/languages/ini.js +40 -0
  28. data/assets/javascripts/languages/java.js +58 -0
  29. data/assets/javascripts/languages/javascript.js +50 -0
  30. data/assets/javascripts/languages/lisp.js +89 -0
  31. data/assets/javascripts/languages/mel.js +51 -0
  32. data/assets/javascripts/languages/parser3.js +54 -0
  33. data/assets/javascripts/languages/perl.js +152 -0
  34. data/assets/javascripts/languages/php.js +54 -0
  35. data/assets/javascripts/languages/profile.js +51 -0
  36. data/assets/javascripts/languages/python.js +75 -0
  37. data/assets/javascripts/languages/renderman.js +239 -0
  38. data/assets/javascripts/languages/ruby.js +176 -0
  39. data/assets/javascripts/languages/smalltalk.js +52 -0
  40. data/assets/javascripts/languages/sql.js +52 -0
  41. data/assets/javascripts/languages/static.js +223 -0
  42. data/assets/javascripts/languages/vbscript.js +27 -0
  43. data/assets/javascripts/languages/www.js +257 -0
  44. data/assets/javascripts/styleswitch.js +57 -0
  45. data/assets/stylesheets/ascetic.css +42 -0
  46. data/assets/stylesheets/brown_paper.css +104 -0
  47. data/assets/stylesheets/brown_papersq.png +0 -0
  48. data/assets/stylesheets/dark.css +101 -0
  49. data/assets/stylesheets/default.css +103 -0
  50. data/assets/stylesheets/far.css +113 -0
  51. data/assets/stylesheets/github.css +90 -0
  52. data/assets/stylesheets/idea.css +74 -0
  53. data/assets/stylesheets/ir_black.css +67 -0
  54. data/assets/stylesheets/magula.css +105 -0
  55. data/assets/stylesheets/notebook.css +106 -0
  56. data/assets/stylesheets/school_book.css +106 -0
  57. data/assets/stylesheets/school_book.png +0 -0
  58. data/assets/stylesheets/sunburst.css +112 -0
  59. data/assets/stylesheets/vs.css +68 -0
  60. data/assets/stylesheets/zenburn.css +113 -0
  61. data/assets/stylesheets/zenburn.css.txt +108 -0
  62. data/bin/rhighlightjs +6 -0
  63. data/init.rb +2 -0
  64. data/install.rb +3 -0
  65. data/lib/rhighlightjs.rb +28 -0
  66. data/rhighlightjs.gemspec +170 -0
  67. data/tasks/rhighlightjs_tasks.rake +18 -0
  68. data/test/rhighlightjs_test.rb +7 -0
  69. data/test/test_helper.rb +10 -0
  70. data/uninstall.rb +1 -0
  71. metadata +134 -0
@@ -0,0 +1,65 @@
1
+ /*
2
+ Language: diff
3
+ Description: Unified and context diff
4
+ Author: Vasily Polovnyov <vast@whiteants.net>
5
+ */
6
+
7
+ hljs.LANGUAGES.diff = {
8
+ case_insensitive: true,
9
+ defaultMode: {
10
+ contains: ['chunk', 'header', 'addition', 'deletion', 'change']
11
+ },
12
+ modes: [
13
+ {
14
+ className: 'chunk',
15
+ begin: '^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$', end:'^',
16
+ relevance: 10
17
+ },
18
+ {
19
+ className: 'chunk',
20
+ begin: '^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$', end: '^',
21
+ relevance: 10
22
+ },
23
+ {
24
+ className: 'chunk',
25
+ begin: '^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$', end: '^',
26
+ relevance: 10
27
+ },
28
+ {
29
+ className: 'header',
30
+ begin: 'Index: ', end: '$'
31
+ },
32
+ {
33
+ className: 'header',
34
+ begin: '=====', end: '=====$'
35
+ },
36
+ {
37
+ className: 'header',
38
+ begin: '^\\-\\-\\-', end: '$'
39
+ },
40
+ {
41
+ className: 'header',
42
+ begin: '^\\*{3} ', end: '$'
43
+ },
44
+ {
45
+ className: 'header',
46
+ begin: '^\\+\\+\\+', end: '$'
47
+ },
48
+ {
49
+ className: 'header',
50
+ begin: '\\*{5}', end: '\\*{5}$'
51
+ },
52
+ {
53
+ className: 'addition',
54
+ begin: '^\\+', end: '$'
55
+ },
56
+ {
57
+ className: 'deletion',
58
+ begin: '^\\-', end: '$'
59
+ },
60
+ {
61
+ className: 'change',
62
+ begin: '^\\!', end: '$'
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,61 @@
1
+ /*
2
+ Language: Django
3
+ Requires: html-xml.js
4
+ */
5
+
6
+ hljs.LANGUAGES.django = {
7
+ defaultMode: {
8
+ contains: ['tag', 'comment', 'doctype', 'template_comment', 'template_tag', 'variable']
9
+ },
10
+ case_insensitive: true,
11
+ modes: [
12
+ hljs.XML_COMMENT,
13
+ hljs.HTML_DOCTYPE,
14
+ {
15
+ className: 'tag',
16
+ lexems: [hljs.IDENT_RE],
17
+ keywords: hljs.HTML_TAGS,
18
+ begin: '<[A-Za-z/]', end: '>',
19
+ contains: ['attribute', 'template_comment', 'template_tag', 'variable']
20
+ },
21
+ hljs.HTML_ATTR,
22
+ hljs.HTML_SHORT_ATTR,
23
+ {
24
+ className: 'value',
25
+ begin: '"', end: '"',
26
+ contains: ['template_comment', 'template_tag', 'variable']
27
+ },
28
+ hljs.HTML_VALUE,
29
+ {
30
+ className: 'template_comment',
31
+ begin: '\\{\\%\\s*comment\\s*\\%\\}', end: '\\{\\%\\s*endcomment\\s*\\%\\}'
32
+ },
33
+ {
34
+ className: 'template_comment',
35
+ begin: '\\{#', end: '#\\}'
36
+ },
37
+ {
38
+ className: 'template_tag',
39
+ begin: '\\{\\%', end: '\\%\\}',
40
+ lexems: [hljs.IDENT_RE],
41
+ keywords: {'comment': 1, 'endcomment': 1, 'load': 1, 'templatetag': 1, 'ifchanged': 1, 'endifchanged': 1, 'if': 1, 'endif': 1, 'firstof': 1, 'for': 1, 'endfor': 1, 'in': 1, 'ifnotequal': 1, 'endifnotequal': 1, 'widthratio': 1, 'extends': 1, 'include': 1, 'spaceless': 1, 'endspaceless': 1, 'regroup': 1, 'by': 1, 'as': 1, 'ifequal': 1, 'endifequal': 1, 'ssi': 1, 'now': 1, 'with': 1, 'cycle': 1, 'url': 1, 'filter': 1, 'endfilter': 1, 'debug': 1, 'block': 1, 'endblock': 1, 'else': 1},
42
+ contains: ['filter']
43
+ },
44
+ {
45
+ className: 'variable',
46
+ begin: '\\{\\{', end: '\\}\\}',
47
+ contains: ['filter']
48
+ },
49
+ {
50
+ className: 'filter',
51
+ begin: '\\|[A-Za-z]+\\:?', end: '^', excludeEnd: true,
52
+ lexems: [hljs.IDENT_RE],
53
+ keywords: {'truncatewords': 1, 'removetags': 1, 'linebreaksbr': 1, 'yesno': 1, 'get_digit': 1, 'timesince': 1, 'random': 1, 'striptags': 1, 'filesizeformat': 1, 'escape': 1, 'linebreaks': 1, 'length_is': 1, 'ljust': 1, 'rjust': 1, 'cut': 1, 'urlize': 1, 'fix_ampersands': 1, 'title': 1, 'floatformat': 1, 'capfirst': 1, 'pprint': 1, 'divisibleby': 1, 'add': 1, 'make_list': 1, 'unordered_list': 1, 'urlencode': 1, 'timeuntil': 1, 'urlizetrunc': 1, 'wordcount': 1, 'stringformat': 1, 'linenumbers': 1, 'slice': 1, 'date': 1, 'dictsort': 1, 'dictsortreversed': 1, 'default_if_none': 1, 'pluralize': 1, 'lower': 1, 'join': 1, 'center': 1, 'default': 1, 'truncatewords_html': 1, 'upper': 1, 'length': 1, 'phone2numeric': 1, 'wordwrap': 1, 'time': 1, 'addslashes': 1, 'slugify': 1, 'first': 1},
54
+ contains: ['argument']
55
+ },
56
+ {
57
+ className: 'argument',
58
+ begin: '"', end: '"'
59
+ }
60
+ ]
61
+ };
@@ -0,0 +1,33 @@
1
+ /*
2
+ Language: DOS .bat
3
+ Author: Alexander Makarov (http://rmcreative.ru/)
4
+ */
5
+
6
+ hljs.LANGUAGES.dos = {
7
+ case_insensitive: true,
8
+ defaultMode: {
9
+ lexems: [hljs.IDENT_RE],
10
+ contains: ['envvar', 'number', 'comment'],
11
+ keywords: {
12
+ 'flow': {'if':1, 'else':1, 'goto':1, 'for':1, 'in':1, 'do':1, 'call':1, 'exit':1, 'not':1, 'exist':1, 'errorlevel':1, 'defined':1, 'equ':1, 'neq':1, 'lss':1, 'leq':1, 'gtr':1, 'geq':1},
13
+ 'keyword':{'shift':1, 'cd':1, 'dir':1, 'echo':1, 'setlocal':1, 'endlocal':1, 'set':1, 'pause':1, 'copy':1},
14
+ 'stream':{'prn':1, 'nul':1, 'lpt3':1, 'lpt2':1, 'lpt1':1, 'con':1, 'com4':1, 'com3':1, 'com2':1, 'com1':1, 'aux':1},
15
+ 'winutils':{'ping':1, 'net':1, 'ipconfig':1, 'taskkill':1, 'xcopy':1, 'ren':1, 'del':1}
16
+ }
17
+ },
18
+ modes: [
19
+ {
20
+ className: 'number',
21
+ begin: '\\b\\d+', end: '^',
22
+ relevance: 0
23
+ },
24
+ {
25
+ className: 'comment',
26
+ begin: '@?rem', end: '$'
27
+ },
28
+ {
29
+ className: 'envvar',
30
+ begin: '%[^ ]+?%', end: '^'
31
+ }
32
+ ]
33
+ };
@@ -0,0 +1,460 @@
1
+ hljs.LANGUAGES.python = {
2
+ defaultMode: {
3
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
4
+ illegal: '(</|->)',
5
+ contains: ['comment', 'string', 'function', 'class', 'number', 'decorator'],
6
+ keywords: {
7
+ 'keyword': {'and': 1, 'elif': 1, 'is': 1, 'global': 1, 'as': 1, 'in': 1, 'if': 1, 'from': 1, 'raise': 1, 'for': 1, 'except': 1, 'finally': 1, 'print': 1, 'import': 1, 'pass': 1, 'return': 1, 'exec': 1, 'else': 1, 'break': 1, 'not': 1, 'with': 1, 'class': 1, 'assert': 1, 'yield': 1, 'try': 1, 'while': 1, 'continue': 1, 'del': 1, 'or': 1, 'def': 1, 'lambda': 1},
8
+ 'built_in': {'None': 1, 'True': 1, 'False': 1, 'Ellipsis': 1, 'NotImplemented': 1}
9
+ }
10
+ },
11
+ modes: [
12
+ {
13
+ className: 'function',
14
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
15
+ begin: '\\bdef ', end: ':',
16
+ illegal: '$',
17
+ keywords: {'def': 1},
18
+ contains: ['title', 'params'],
19
+ relevance: 10
20
+ },
21
+ {
22
+ className: 'class',
23
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
24
+ begin: '\\bclass ', end: ':',
25
+ illegal: '[${]',
26
+ keywords: {'class': 1},
27
+ contains: ['title', 'params',],
28
+ relevance: 10
29
+ },
30
+ {
31
+ className: 'title',
32
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
33
+ },
34
+ {
35
+ className: 'params',
36
+ begin: '\\(', end: '\\)',
37
+ contains: ['string']
38
+ },
39
+ hljs.HASH_COMMENT_MODE,
40
+ hljs.C_NUMBER_MODE,
41
+ {
42
+ className: 'string',
43
+ begin: '\'\'\'', end: '\'\'\'',
44
+ relevance: 10
45
+ },
46
+ {
47
+ className: 'string',
48
+ begin: '"""', end: '"""',
49
+ relevance: 10
50
+ },
51
+ hljs.APOS_STRING_MODE,
52
+ hljs.QUOTE_STRING_MODE,
53
+ hljs.BACKSLASH_ESCAPE,
54
+ {
55
+ className: 'string',
56
+ begin: 'r\'', end: '\'',
57
+ relevance: 10
58
+ },
59
+ {
60
+ className: 'string',
61
+ begin: 'r"', end: '"',
62
+ relevance: 10
63
+ },
64
+ {
65
+ className: 'string',
66
+ begin: 'u\'', end: '(^|[^\\\\])\'',
67
+ relevance: 10
68
+ },
69
+ {
70
+ className: 'string',
71
+ begin: 'u"', end: '(^|[^\\\\])"',
72
+ relevance: 10
73
+ },
74
+ {
75
+ className: 'string',
76
+ begin: 'ur\'', end: '\'',
77
+ relevance: 10
78
+ },
79
+ {
80
+ className: 'string',
81
+ begin: 'ur"', end: '"',
82
+ relevance: 10
83
+ },
84
+ {
85
+ className: 'decorator',
86
+ begin: '@', end: '$'
87
+ }
88
+ ]
89
+ };
90
+
91
+
92
+ /*
93
+
94
+ Perl definition (с) Peter Leonov <gojpeg@yandex.ru>
95
+
96
+ */
97
+ hljs.PERL_DEFAULT_CONTAINS = ['comment', 'string', 'number', 'regexp', 'sub', 'variable', 'operator', 'pod'];
98
+ hljs.PERL_KEYWORDS = {'getpwent': 1, 'getservent': 1, 'quotemeta': 1, 'msgrcv': 1, 'scalar': 1, 'kill': 1, 'dbmclose': 1, 'undef': 1, 'lc': 1, 'ma': 1, 'syswrite': 1, 'tr': 1, 'send': 1, 'umask': 1, 'sysopen': 1, 'shmwrite': 1, 'vec': 1, 'qx': 1, 'utime': 1, 'local': 1, 'oct': 1, 'semctl': 1, 'localtime': 1, 'readpipe': 1, 'do': 1, 'return': 1, 'format': 1, 'read': 1, 'sprintf': 1, 'dbmopen': 1, 'pop': 1, 'getpgrp': 1, 'not': 1, 'getpwnam': 1, 'rewinddir': 1, 'qq': 1, 'fileno': 1, 'qw': 1, 'endprotoent': 1, 'wait': 1, 'sethostent': 1, 'bless': 1, 's': 1, 'opendir': 1, 'continue': 1, 'each': 1, 'sleep': 1, 'endgrent': 1, 'shutdown': 1, 'dump': 1, 'chomp': 1, 'connect': 1, 'getsockname': 1, 'die': 1, 'socketpair': 1, 'close': 1, 'flock': 1, 'exists': 1, 'index': 1, 'shmget': 1, 'sub': 1, 'for': 1, 'endpwent': 1, 'redo': 1, 'lstat': 1, 'msgctl': 1, 'setpgrp': 1, 'abs': 1, 'exit': 1, 'select': 1, 'print': 1, 'ref': 1, 'gethostbyaddr': 1, 'unshift': 1, 'fcntl': 1, 'syscall': 1, 'goto': 1, 'getnetbyaddr': 1, 'join': 1, 'gmtime': 1, 'symlink': 1, 'semget': 1, 'splice': 1, 'x': 1, 'getpeername': 1, 'recv': 1, 'log': 1, 'setsockopt': 1, 'cos': 1, 'last': 1, 'reverse': 1, 'gethostbyname': 1, 'getgrnam': 1, 'study': 1, 'formline': 1, 'endhostent': 1, 'times': 1, 'chop': 1, 'length': 1, 'gethostent': 1, 'getnetent': 1, 'pack': 1, 'getprotoent': 1, 'getservbyname': 1, 'rand': 1, 'mkdir': 1, 'pos': 1, 'chmod': 1, 'y': 1, 'substr': 1, 'endnetent': 1, 'printf': 1, 'next': 1, 'open': 1, 'msgsnd': 1, 'readdir': 1, 'use': 1, 'unlink': 1, 'getsockopt': 1, 'getpriority': 1, 'rindex': 1, 'wantarray': 1, 'hex': 1, 'system': 1, 'getservbyport': 1, 'endservent': 1, 'int': 1, 'chr': 1, 'untie': 1, 'rmdir': 1, 'prototype': 1, 'tell': 1, 'listen': 1, 'fork': 1, 'shmread': 1, 'ucfirst': 1, 'setprotoent': 1, 'else': 1, 'sysseek': 1, 'link': 1, 'getgrgid': 1, 'shmctl': 1, 'waitpid': 1, 'unpack': 1, 'getnetbyname': 1, 'reset': 1, 'chdir': 1, 'grep': 1, 'split': 1, 'require': 1, 'caller': 1, 'lcfirst': 1, 'until': 1, 'warn': 1, 'while': 1, 'values': 1, 'shift': 1, 'telldir': 1, 'getpwuid': 1, 'my': 1, 'getprotobynumber': 1, 'delete': 1, 'and': 1, 'sort': 1, 'uc': 1, 'defined': 1, 'srand': 1, 'accept': 1, 'package': 1, 'seekdir': 1, 'getprotobyname': 1, 'semop': 1, 'our': 1, 'rename': 1, 'seek': 1, 'if': 1, 'q': 1, 'chroot': 1, 'sysread': 1, 'setpwent': 1, 'no': 1, 'crypt': 1, 'getc': 1, 'chown': 1, 'sqrt': 1, 'write': 1, 'setnetent': 1, 'setpriority': 1, 'foreach': 1, 'tie': 1, 'sin': 1, 'msgget': 1, 'map': 1, 'stat': 1, 'getlogin': 1, 'unless': 1, 'elsif': 1, 'truncate': 1, 'exec': 1, 'keys': 1, 'glob': 1, 'tied': 1, 'closedir': 1, 'ioctl': 1, 'socket': 1, 'readlink': 1, 'eval': 1, 'xor': 1, 'readline': 1, 'binmode': 1, 'setservent': 1, 'eof': 1, 'ord': 1, 'bind': 1, 'alarm': 1, 'pipe': 1, 'atan2': 1, 'getgrent': 1, 'exp': 1, 'time': 1, 'push': 1, 'setgrent': 1, 'gt': 1, 'lt': 1, 'or': 1, 'ne': 1, 'm': 1};
99
+
100
+ hljs.LANGUAGES.perl = {
101
+ defaultMode: {
102
+ lexems: [hljs.IDENT_RE],
103
+ contains: hljs.PERL_DEFAULT_CONTAINS,
104
+ keywords: hljs.PERL_KEYWORDS
105
+ },
106
+ modes: [
107
+
108
+ // variables
109
+ {
110
+ className: 'variable',
111
+ begin: '\\$\\d', end: '^'
112
+ },
113
+ {
114
+ className: 'variable',
115
+ begin: '[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)', end: '^'
116
+ },
117
+
118
+ // numbers and strings
119
+ {
120
+ className: 'subst',
121
+ begin: '[$@]\\{', end: '\}',
122
+ lexems: [hljs.IDENT_RE],
123
+ keywords: hljs.PERL_KEYWORDS,
124
+ contains: hljs.PERL_DEFAULT_CONTAINS,
125
+ relevance: 10
126
+ },
127
+ {
128
+ className: 'number',
129
+ begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', end: '^',
130
+ relevance: 0
131
+ },
132
+ {
133
+ className: 'string',
134
+ begin: 'q[qwxr]?\\s*\\(', end: '\\)',
135
+ contains: ['escape', 'subst', 'variable'],
136
+ relevance: 5
137
+ },
138
+ {
139
+ className: 'string',
140
+ begin: 'q[qwxr]?\\s*\\[', end: '\\]',
141
+ contains: ['escape', 'subst', 'variable'],
142
+ relevance: 5
143
+ },
144
+ {
145
+ className: 'string',
146
+ begin: 'q[qwxr]?\\s*\\{', end: '\\}',
147
+ contains: ['escape', 'subst', 'variable'],
148
+ relevance: 5
149
+ },
150
+ {
151
+ className: 'string',
152
+ begin: 'q[qwxr]?\\s*\\|', end: '\\|',
153
+ contains: ['escape', 'subst', 'variable'],
154
+ relevance: 5
155
+ },
156
+ {
157
+ className: 'string',
158
+ begin: 'q[qwxr]?\\s*\\<', end: '\\>',
159
+ contains: ['escape', 'subst', 'variable'],
160
+ relevance: 5
161
+ },
162
+ {
163
+ className: 'string',
164
+ begin: 'qw\\s+q', end: 'q',
165
+ contains: ['escape', 'subst', 'variable'],
166
+ relevance: 5
167
+ },
168
+ {
169
+ className: 'string',
170
+ begin: '\'', end: '\'',
171
+ contains: ['escape'],
172
+ relevance: 0
173
+ },
174
+ {
175
+ className: 'string',
176
+ begin: '"', end: '"',
177
+ contains: ['escape','subst','variable'],
178
+ relevance: 0
179
+ },
180
+ hljs.BACKSLASH_ESCAPE,
181
+ {
182
+ className: 'string',
183
+ begin: '`', end: '`',
184
+ contains: ['escape']
185
+ },
186
+
187
+ // regexps
188
+ {
189
+ className: 'regexp',
190
+ begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*', end: '^',
191
+ relevance: 10
192
+ },
193
+ {
194
+ className: 'regexp',
195
+ begin: '(m|qr)?/', end: '/[a-z]*',
196
+ contains: ['escape'],
197
+ relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
198
+ },
199
+
200
+ // bareword context
201
+ {
202
+ className: 'string',
203
+ begin: '{\\w+}', end: '^',
204
+ relevance: 0
205
+ },
206
+ {
207
+ className: 'string',
208
+ begin: '\-?\\w+\\s*\\=\\>', end: '^',
209
+ relevance: 0
210
+ },
211
+
212
+ // subroutines
213
+ {
214
+ className: 'sub',
215
+ begin: '\\bsub\\b', end: '(\\s*\\(.*?\\))?[;{]',
216
+ lexems: [hljs.IDENT_RE],
217
+ keywords: {'sub':1},
218
+ relevance: 5
219
+ },
220
+
221
+ // operators
222
+ {
223
+ className: 'operator',
224
+ begin: '-\\w\\b', end: '^',
225
+ relevance: 0
226
+ },
227
+
228
+ // comments
229
+ hljs.HASH_COMMENT_MODE,
230
+ {
231
+ className: 'comment',
232
+ begin: '^(__END__|__DATA__)', end: '\\n$',
233
+ relevance: 5
234
+ },
235
+ // pod
236
+ {
237
+ className: 'pod',
238
+ begin: '\\=\\w', end: '\\=cut'
239
+ }
240
+
241
+ ]
242
+ };
243
+
244
+ /*
245
+
246
+ PHP5 definition (с) Victor Karamzin <Victor.Karamzin@enterra-inc.com>
247
+
248
+ */
249
+ hljs.PHP5_KEYWORDS = {'and': 1, 'include_once': 1, 'list': 1, 'abstract': 1, 'global': 1, 'private': 1, 'echo': 1, 'interface': 1, 'as': 1, 'static': 1, 'endswitch': 1, 'array': 1, 'null': 1, 'if': 1, 'endwhile': 1, 'or': 1, 'const': 1, 'for': 1, 'endforeach': 1, 'self': 1, 'var': 1, 'while': 1, 'isset': 1, 'public': 1, 'protected': 1, 'exit': 1, 'foreach': 1, 'throw': 1, 'elseif': 1, 'extends': 1, 'include': 1, '__FILE__': 1, 'empty': 1, 'require_once': 1, 'function': 1, 'do': 1, 'xor': 1, 'return': 1, 'implements': 1, 'parent': 1, 'clone': 1, 'use': 1, '__CLASS__': 1, '__LINE__': 1, 'else': 1, 'break': 1, 'print': 1, 'eval': 1, 'new': 1, 'catch': 1, '__METHOD__': 1, 'class': 1, 'case': 1, 'exception': 1, 'php_user_filter': 1, 'default': 1, 'die': 1, 'require': 1, '__FUNCTION__': 1, 'enddeclare': 1, 'final': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'endfor': 1, 'endif': 1, 'declare': 1, 'unset': 1};
250
+
251
+ hljs.PHP_IDENTIFIER_RE = '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*';
252
+
253
+ hljs.LANGUAGES.php = {
254
+ defaultMode: {
255
+ lexems: [hljs.IDENT_RE],
256
+ contains: ['comment', 'number', 'string', 'variable', 'preprocessor'],
257
+ keywords: hljs.PHP5_KEYWORDS
258
+ },
259
+ case_insensitive: true,
260
+ modes: [
261
+ hljs.C_LINE_COMMENT_MODE,
262
+ hljs.HASH_COMMENT_MODE,
263
+ {
264
+ className: 'comment',
265
+ begin: '/\\*', end: '\\*/',
266
+ contains: ['phpdoc']
267
+ },
268
+ {
269
+ className: 'phpdoc',
270
+ begin: '\\s@[A-Za-z]+', end: '^',
271
+ relevance: 10
272
+ },
273
+ hljs.C_NUMBER_MODE,
274
+ {
275
+ className: 'string',
276
+ begin: '\'', end: '\'',
277
+ contains: ['escape'],
278
+ relevance: 0
279
+ },
280
+ {
281
+ className: 'string',
282
+ begin: '"', end: '"',
283
+ contains: ['escape'],
284
+ relevance: 0
285
+ },
286
+ hljs.BACKSLASH_ESCAPE,
287
+ {
288
+ className: 'variable',
289
+ begin: '\\$' + hljs.PHP_IDENTIFIER_RE, end: '^'
290
+ },
291
+ {
292
+ className: 'preprocessor',
293
+ begin: '<\\?php', end: '^',
294
+ relevance: 10
295
+ },
296
+ {
297
+ className: 'preprocessor',
298
+ begin: '\\?>', end: '^'
299
+ }
300
+ ]
301
+ };
302
+
303
+ /*
304
+
305
+ Ruby definition (с) Anton Kovalyov <anton@kovalyov.net>, Peter Leonov <gojpeg@yandex.ru>
306
+
307
+ */
308
+ hljs.RUBY_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
309
+ hljs.RUBY_DEFAULT_CONTAINS = ['comment', 'string', 'char', 'class', 'function', 'symbol', 'number', 'variable', 'regexp']
310
+ hljs.RUBY_KEYWORDS = {
311
+ 'keyword': {'and': 1, 'false': 1, 'then': 1, 'defined': 1, 'module': 1, 'in': 1, 'return': 1, 'redo': 1, 'if': 1, 'BEGIN': 1, 'retry': 1, 'end': 1, 'for': 1, 'true': 1, 'self': 1, 'when': 1, 'next': 1, 'until': 1, 'do': 1, 'begin': 1, 'unless': 1, 'END': 1, 'rescue': 1, 'nil': 1, 'else': 1, 'break': 1, 'undef': 1, 'not': 1, 'super': 1, 'class': 1, 'case': 1, 'require': 1, 'yield': 1, 'alias': 1, 'while': 1, 'ensure': 1, 'elsif': 1, 'or': 1, 'def': 1},
312
+ 'keymethods': {'__id__': 1, '__send__': 1, 'abort': 1, 'abs': 1, 'all?': 1, 'allocate': 1, 'ancestors': 1, 'any?': 1, 'arity': 1, 'assoc': 1, 'at': 1, 'at_exit': 1, 'autoload': 1, 'autoload?': 1, 'between?': 1, 'binding': 1, 'binmode': 1, 'block_given?': 1, 'call': 1, 'callcc': 1, 'caller': 1, 'capitalize': 1, 'capitalize!': 1, 'casecmp': 1, 'catch': 1, 'ceil': 1, 'center': 1, 'chomp': 1, 'chomp!': 1, 'chop': 1, 'chop!': 1, 'chr': 1, 'class': 1, 'class_eval': 1, 'class_variable_defined?': 1, 'class_variables': 1, 'clear': 1, 'clone': 1, 'close': 1, 'close_read': 1, 'close_write': 1, 'closed?': 1, 'coerce': 1, 'collect': 1, 'collect!': 1, 'compact': 1, 'compact!': 1, 'concat': 1, 'const_defined?': 1, 'const_get': 1, 'const_missing': 1, 'const_set': 1, 'constants': 1, 'count': 1, 'crypt': 1, 'default': 1, 'default_proc': 1, 'delete': 1, 'delete!': 1, 'delete_at': 1, 'delete_if': 1, 'detect': 1, 'display': 1, 'div': 1, 'divmod': 1, 'downcase': 1, 'downcase!': 1, 'downto': 1, 'dump': 1, 'dup': 1, 'each': 1, 'each_byte': 1, 'each_index': 1, 'each_key': 1, 'each_line': 1, 'each_pair': 1, 'each_value': 1, 'each_with_index': 1, 'empty?': 1, 'entries': 1, 'eof': 1, 'eof?': 1, 'eql?': 1, 'equal?': 1, 'eval': 1, 'exec': 1, 'exit': 1, 'exit!': 1, 'extend': 1, 'fail': 1, 'fcntl': 1, 'fetch': 1, 'fileno': 1, 'fill': 1, 'find': 1, 'find_all': 1, 'first': 1, 'flatten': 1, 'flatten!': 1, 'floor': 1, 'flush': 1, 'for_fd': 1, 'foreach': 1, 'fork': 1, 'format': 1, 'freeze': 1, 'frozen?': 1, 'fsync': 1, 'getc': 1, 'gets': 1, 'global_variables': 1, 'grep': 1, 'gsub': 1, 'gsub!': 1, 'has_key?': 1, 'has_value?': 1, 'hash': 1, 'hex': 1, 'id': 1, 'include?': 1, 'included_modules': 1, 'index': 1, 'indexes': 1, 'indices': 1, 'induced_from': 1, 'inject': 1, 'insert': 1, 'inspect': 1, 'instance_eval': 1, 'instance_method': 1, 'instance_methods': 1, 'instance_of?': 1, 'instance_variable_defined?': 1, 'instance_variable_get': 1, 'instance_variable_set': 1, 'instance_variables': 1, 'integer?': 1, 'intern': 1, 'invert': 1, 'ioctl': 1, 'is_a?': 1, 'isatty': 1, 'iterator?': 1, 'join': 1, 'key?': 1, 'keys': 1, 'kind_of?': 1, 'lambda': 1, 'last': 1, 'length': 1, 'lineno': 1, 'ljust': 1, 'load': 1, 'local_variables': 1, 'loop': 1, 'lstrip': 1, 'lstrip!': 1, 'map': 1, 'map!': 1, 'match': 1, 'max': 1, 'member?': 1, 'merge': 1, 'merge!': 1, 'method': 1, 'method_defined?': 1, 'method_missing': 1, 'methods': 1, 'min': 1, 'module_eval': 1, 'modulo': 1, 'name': 1, 'nesting': 1, 'new': 1, 'next': 1, 'next!': 1, 'nil?': 1, 'nitems': 1, 'nonzero?': 1, 'object_id': 1, 'oct': 1, 'open': 1, 'pack': 1, 'partition': 1, 'pid': 1, 'pipe': 1, 'pop': 1, 'popen': 1, 'pos': 1, 'prec': 1, 'prec_f': 1, 'prec_i': 1, 'print': 1, 'printf': 1, 'private_class_method': 1, 'private_instance_methods': 1, 'private_method_defined?': 1, 'private_methods': 1, 'proc': 1, 'protected_instance_methods': 1, 'protected_method_defined?': 1, 'protected_methods': 1, 'public_class_method': 1, 'public_instance_methods': 1, 'public_method_defined?': 1, 'public_methods': 1, 'push': 1, 'putc': 1, 'puts': 1, 'quo': 1, 'raise': 1, 'rand': 1, 'rassoc': 1, 'read': 1, 'read_nonblock': 1, 'readchar': 1, 'readline': 1, 'readlines': 1, 'readpartial': 1, 'rehash': 1, 'reject': 1, 'reject!': 1, 'remainder': 1, 'reopen': 1, 'replace': 1, 'require': 1, 'respond_to?': 1, 'reverse': 1, 'reverse!': 1, 'reverse_each': 1, 'rewind': 1, 'rindex': 1, 'rjust': 1, 'round': 1, 'rstrip': 1, 'rstrip!': 1, 'scan': 1, 'seek': 1, 'select': 1, 'send': 1, 'set_trace_func': 1, 'shift': 1, 'singleton_method_added': 1, 'singleton_methods': 1, 'size': 1, 'sleep': 1, 'slice': 1, 'slice!': 1, 'sort': 1, 'sort!': 1, 'sort_by': 1, 'split': 1, 'sprintf': 1, 'squeeze': 1, 'squeeze!': 1, 'srand': 1, 'stat': 1, 'step': 1, 'store': 1, 'strip': 1, 'strip!': 1, 'sub': 1, 'sub!': 1, 'succ': 1, 'succ!': 1, 'sum': 1, 'superclass': 1, 'swapcase': 1, 'swapcase!': 1, 'sync': 1, 'syscall': 1, 'sysopen': 1, 'sysread': 1, 'sysseek': 1, 'system': 1, 'syswrite': 1, 'taint': 1, 'tainted?': 1, 'tell': 1, 'test': 1, 'throw': 1, 'times': 1, 'to_a': 1, 'to_ary': 1, 'to_f': 1, 'to_hash': 1, 'to_i': 1, 'to_int': 1, 'to_io': 1, 'to_proc': 1, 'to_s': 1, 'to_str': 1, 'to_sym': 1, 'tr': 1, 'tr!': 1, 'tr_s': 1, 'tr_s!': 1, 'trace_var': 1, 'transpose': 1, 'trap': 1, 'truncate': 1, 'tty?': 1, 'type': 1, 'ungetc': 1, 'uniq': 1, 'uniq!': 1, 'unpack': 1, 'unshift': 1, 'untaint': 1, 'untrace_var': 1, 'upcase': 1, 'upcase!': 1, 'update': 1, 'upto': 1, 'value?': 1, 'values': 1, 'values_at': 1, 'warn': 1, 'write': 1, 'write_nonblock': 1, 'zero?': 1, 'zip': 1}
313
+ }
314
+
315
+ hljs.LANGUAGES.ruby = {
316
+ defaultMode: {
317
+ lexems: [hljs.RUBY_IDENT_RE],
318
+ contains: hljs.RUBY_DEFAULT_CONTAINS,
319
+ keywords: hljs.RUBY_KEYWORDS
320
+ },
321
+ modes: [
322
+ hljs.HASH_COMMENT_MODE,
323
+ {
324
+ className: 'comment',
325
+ begin: '^\\=begin', end: '^\\=end',
326
+ relevance: 10
327
+ },
328
+ {
329
+ className: 'comment',
330
+ begin: '^__END__', end: '\\n$'
331
+ },
332
+ {
333
+ className: 'params',
334
+ begin: '\\(', end: '\\)',
335
+ lexems: [hljs.RUBY_IDENT_RE],
336
+ keywords: hljs.RUBY_KEYWORDS,
337
+ contains: hljs.RUBY_DEFAULT_CONTAINS
338
+ },
339
+ {
340
+ className: 'function',
341
+ begin: '\\bdef\\b', end: '$|;',
342
+ lexems: [hljs.RUBY_IDENT_RE],
343
+ keywords: hljs.RUBY_KEYWORDS,
344
+ contains: ['title', 'params', 'comment']
345
+ },
346
+ {
347
+ className: 'class',
348
+ begin: '\\b(class|module)\\b', end: '$',
349
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
350
+ keywords: hljs.RUBY_KEYWORDS,
351
+ contains: ['title', 'inheritance', 'comment'],
352
+ keywords: {'class': 1, 'module': 1}
353
+ },
354
+ {
355
+ className: 'title',
356
+ begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?', end: '^',
357
+ relevance: 0
358
+ },
359
+ {
360
+ className: 'inheritance',
361
+ begin: '<\\s*', end: '^',
362
+ contains: ['parent']
363
+ },
364
+ {
365
+ className: 'parent',
366
+ begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE, end: '^'
367
+ },
368
+ {
369
+ className: 'number',
370
+ begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', end: '^',
371
+ relevance: 0
372
+ },
373
+ {
374
+ className: 'number',
375
+ begin: '\\?\\w', end: '^'
376
+ },
377
+ {
378
+ className: 'string',
379
+ begin: '\'', end: '\'',
380
+ contains: ['escape', 'subst'],
381
+ relevance: 0
382
+ },
383
+ {
384
+ className: 'string',
385
+ begin: '"', end: '"',
386
+ contains: ['escape', 'subst'],
387
+ relevance: 0
388
+ },
389
+ {
390
+ className: 'string',
391
+ begin: '%[qw]?\\(', end: '\\)',
392
+ contains: ['escape', 'subst'],
393
+ relevance: 10
394
+ },
395
+ {
396
+ className: 'string',
397
+ begin: '%[qw]?\\[', end: '\\]',
398
+ contains: ['escape', 'subst'],
399
+ relevance: 10
400
+ },
401
+ {
402
+ className: 'string',
403
+ begin: '%[qw]?{', end: '}',
404
+ contains: ['escape', 'subst'],
405
+ relevance: 10
406
+ },
407
+ {
408
+ className: 'string',
409
+ begin: '%[qw]?<', end: '>',
410
+ contains: ['escape', 'subst'],
411
+ relevance: 10
412
+ },
413
+ {
414
+ className: 'string',
415
+ begin: '%[qw]?/', end: '/',
416
+ contains: ['escape', 'subst'],
417
+ relevance: 10
418
+ },
419
+ {
420
+ className: 'string',
421
+ begin: '%[qw]?%', end: '%',
422
+ contains: ['escape', 'subst'],
423
+ relevance: 10
424
+ },
425
+ {
426
+ className: 'string',
427
+ begin: '%[qw]?-', end: '-',
428
+ contains: ['escape', 'subst'],
429
+ relevance: 10
430
+ },
431
+ {
432
+ className: 'string',
433
+ begin: '%[qw]?\\|', end: '\\|',
434
+ contains: ['escape', 'subst'],
435
+ relevance: 10
436
+ },
437
+ {
438
+ className: 'symbol',
439
+ begin: ':' + hljs.RUBY_IDENT_RE, end: '^'
440
+ },
441
+ hljs.BACKSLASH_ESCAPE,
442
+ {
443
+ className: 'subst',
444
+ begin: '#\\{', end: '}',
445
+ lexems: [hljs.RUBY_IDENT_RE],
446
+ keywords: hljs.RUBY_KEYWORDS,
447
+ contains: hljs.RUBY_DEFAULT_CONTAINS
448
+ },
449
+ {
450
+ className: 'regexp',
451
+ begin: '/', end: '/[a-z]*',
452
+ contains: ['escape'],
453
+ relevance: 0
454
+ },
455
+ {
456
+ className: 'variable',
457
+ begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))', end: '^'
458
+ }
459
+ ]
460
+ };