1 |
efrain |
1 |
## Version 8.0 beta
|
|
|
2 |
|
|
|
3 |
This new major release is quite a big overhaul bringing both new features and
|
|
|
4 |
some backwards incompatible changes. However, chances are that the majority of
|
|
|
5 |
users won't be affected by the latter: the basic scenario described in the
|
|
|
6 |
README is left intact.
|
|
|
7 |
|
|
|
8 |
Here's what did change in an incompatible way:
|
|
|
9 |
|
|
|
10 |
- We're now prefixing all classes located in [CSS classes reference][cr] with
|
|
|
11 |
`hljs-`, by default, because some class names would collide with other
|
|
|
12 |
people's stylesheets. If you were using an older version, you might still want
|
|
|
13 |
the previous behavior, but still want to upgrade. To suppress this new
|
|
|
14 |
behavior, you would initialize like so:
|
|
|
15 |
|
|
|
16 |
```html
|
|
|
17 |
<script type="text/javascript">
|
|
|
18 |
hljs.configure({classPrefix: ''});
|
|
|
19 |
hljs.initHighlightingOnLoad();
|
|
|
20 |
</script>
|
|
|
21 |
```
|
|
|
22 |
|
|
|
23 |
- `tabReplace` and `useBR` that were used in different places are also unified
|
|
|
24 |
into the global options object and are to be set using `configure(options)`.
|
|
|
25 |
This function is documented in our [API docs][]. Also note that these
|
|
|
26 |
parameters are gone from `highlightBlock` and `fixMarkup` which are now also
|
|
|
27 |
rely on `configure`.
|
|
|
28 |
|
|
|
29 |
- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which
|
|
|
30 |
was used to register languages with the library in favor of two new methods:
|
|
|
31 |
`registerLanguage` and `getLanguage`. Both are documented in our [API docs][].
|
|
|
32 |
|
|
|
33 |
- Result returned from `highlight` and `highlightAuto` no longer contains two
|
|
|
34 |
separate attributes contributing to relevance score, `relevance` and
|
|
|
35 |
`keyword_count`. They are now unified in `relevance`.
|
|
|
36 |
|
|
|
37 |
Another technically compatible change that nonetheless might need attention:
|
|
|
38 |
|
|
|
39 |
- The structure of the NPM package was refactored, so if you had installed it
|
|
|
40 |
locally, you'll have to update your paths. The usual `require('highlight.js')`
|
|
|
41 |
works as before. This is contributed by [Dmitry Smolin][].
|
|
|
42 |
|
|
|
43 |
New features:
|
|
|
44 |
|
|
|
45 |
- Languages now can be recognized by multiple names like "js" for JavaScript or
|
|
|
46 |
"html" for, well, HTML (which earlier insisted on calling it "xml"). These
|
|
|
47 |
aliases can be specified in the class attribute of the code container in your
|
|
|
48 |
HTML as well as in various API calls. For now there are only a few very common
|
|
|
49 |
aliases but we'll expand it in the future. All of them are listed in the
|
|
|
50 |
[class reference][].
|
|
|
51 |
|
|
|
52 |
- Language detection can now be restricted to a subset of languages relevant in
|
|
|
53 |
a given context — a web page or even a single highlighting call. This is
|
|
|
54 |
especially useful for node.js build that includes all the known languages.
|
|
|
55 |
Another example is a StackOverflow-style site where users specify languages
|
|
|
56 |
as tags rather than in the markdown-formatted code snippets. This is
|
|
|
57 |
documented in the [API reference][] (see methods `highlightAuto` and
|
|
|
58 |
`configure`).
|
|
|
59 |
|
|
|
60 |
- Language definition syntax streamlined with [variants][] and
|
|
|
61 |
[beginKeywords][].
|
|
|
62 |
|
|
|
63 |
New languages and styles:
|
|
|
64 |
|
|
|
65 |
- *Oxygene* by [Carlo Kok][]
|
|
|
66 |
- *Mathematica* by [Daniel Kvasnička][]
|
|
|
67 |
- *Autohotkey* by [Seongwon Lee][]
|
|
|
68 |
- *Atelier* family of styles in 10 variants by [Bram de Haan][]
|
|
|
69 |
- *Paraíso* styles by [Jan T. Sott][]
|
|
|
70 |
|
|
|
71 |
Miscelleanous improvements:
|
|
|
72 |
|
|
|
73 |
- Highlighting `=>` prompts in Clojure.
|
|
|
74 |
- [Jeremy Hull][] fixed a lot of styles for consistency.
|
|
|
75 |
- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html].
|
|
|
76 |
- Objective C and C# now properly highlight titles in method definition.
|
|
|
77 |
- Big overhaul of relevance counting for a number of languages. Please do report
|
|
|
78 |
bugs about mis-detection of non-trivial code snippets!
|
|
|
79 |
|
|
|
80 |
[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
|
|
|
81 |
[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html
|
|
|
82 |
[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion
|
|
|
83 |
[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d
|
|
|
84 |
[php-html]: https://twitter.com/highlightjs/status/408890903017689088
|
|
|
85 |
|
|
|
86 |
[Carlo Kok]: https://github.com/carlokok
|
|
|
87 |
[Bram de Haan]: https://github.com/atelierbram
|
|
|
88 |
[Daniel Kvasnička]: https://github.com/dkvasnicka
|
|
|
89 |
[Dmitry Smolin]: https://github.com/dimsmol
|
|
|
90 |
[Jeremy Hull]: https://github.com/sourrust
|
|
|
91 |
[Seongwon Lee]: https://github.com/dlimpid
|
|
|
92 |
[Jan T. Sott]: https://github.com/idleberg
|
|
|
93 |
|
|
|
94 |
|
|
|
95 |
## Version 7.5
|
|
|
96 |
|
|
|
97 |
A catch-up release dealing with some of the accumulated contributions. This one
|
|
|
98 |
is probably will be the last before the 8.0 which will be slightly backwards
|
|
|
99 |
incompatible regarding some advanced use-cases.
|
|
|
100 |
|
|
|
101 |
One outstanding change in this version is the addition of 6 languages to the
|
|
|
102 |
[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and
|
|
|
103 |
Makefile. It now weighs about 6K more but we're going to keep it under 30K.
|
|
|
104 |
|
|
|
105 |
New languages:
|
|
|
106 |
|
|
|
107 |
- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud]
|
|
|
108 |
- [LiveCode Server][lcs] by [Ralf Bitter][revig]
|
|
|
109 |
- Scilab by [Sylvestre Ledru][sylvestre]
|
|
|
110 |
- basic support for Makefile by [Ivan Sagalaev][isagalaev]
|
|
|
111 |
|
|
|
112 |
Improvements:
|
|
|
113 |
|
|
|
114 |
- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}`
|
|
|
115 |
regexps.
|
|
|
116 |
- Clojure now allows a function call in the beginning of s-expressions
|
|
|
117 |
`(($filter "myCount") (arr 1 2 3 4 5))`.
|
|
|
118 |
- Haskell's got new keywords and now recognizes more things like pragmas,
|
|
|
119 |
preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep]
|
|
|
120 |
for the implementation and to [Jeremy Hull][sourrust] for guiding it.
|
|
|
121 |
- Miscelleanous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#.
|
|
|
122 |
|
|
|
123 |
[mehdid]: https://github.com/mehdid
|
|
|
124 |
[nbraud]: https://github.com/nbraud
|
|
|
125 |
[revig]: https://github.com/revig
|
|
|
126 |
[lcs]: http://livecode.com/developers/guides/server/
|
|
|
127 |
[sylvestre]: https://github.com/sylvestre
|
|
|
128 |
[isagalaev]: https://github.com/isagalaev
|
|
|
129 |
[treep]: https://github.com/treep
|
|
|
130 |
[sourrust]: https://github.com/sourrust
|
|
|
131 |
[d]: http://highlightjs.org/download/
|
|
|
132 |
|
|
|
133 |
|
|
|
134 |
## New core developers
|
|
|
135 |
|
|
|
136 |
The latest long period of almost complete inactivity in the project coincided
|
|
|
137 |
with growing interest to it led to a decision that now seems completely obvious:
|
|
|
138 |
we need more core developers.
|
|
|
139 |
|
|
|
140 |
So without further ado let me welcome to the core team two long-time
|
|
|
141 |
contributors: [Jeremy Hull][] and [Oleg
|
|
|
142 |
Efimov][].
|
|
|
143 |
|
|
|
144 |
Hope now we'll be able to work through stuff faster!
|
|
|
145 |
|
|
|
146 |
P.S. The historical commit is [here][1] for the record.
|
|
|
147 |
|
|
|
148 |
[Jeremy Hull]: https://github.com/sourrust
|
|
|
149 |
[Oleg Efimov]: https://github.com/sannis
|
|
|
150 |
[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f
|
|
|
151 |
|
|
|
152 |
|
|
|
153 |
## Version 7.4
|
|
|
154 |
|
|
|
155 |
This long overdue version is a snapshot of the current source tree with all the
|
|
|
156 |
changes that happened during the past year. Sorry for taking so long!
|
|
|
157 |
|
|
|
158 |
Along with the changes in code highlight.js has finally got its new home at
|
|
|
159 |
<http://highlightjs.org/>, moving from its craddle on Software Maniacs which it
|
|
|
160 |
outgrew a long time ago. Be sure to report any bugs about the site to
|
|
|
161 |
<mailto:info@highlightjs.org>.
|
|
|
162 |
|
|
|
163 |
On to what's new…
|
|
|
164 |
|
|
|
165 |
New languages:
|
|
|
166 |
|
|
|
167 |
- Handlebars templates by [Robin Ward][]
|
|
|
168 |
- Oracle Rules Language by [Jason Jacobson][]
|
|
|
169 |
- F# by [Joans Follesø][]
|
|
|
170 |
- AsciiDoc and Haml by [Dan Allen][]
|
|
|
171 |
- Lasso by [Eric Knibbe][]
|
|
|
172 |
- SCSS by [Kurt Emch][]
|
|
|
173 |
- VB.NET by [Poren Chiang][]
|
|
|
174 |
- Mizar by [Kelley van Evert][]
|
|
|
175 |
|
|
|
176 |
[Robin Ward]: https://github.com/eviltrout
|
|
|
177 |
[Jason Jacobson]: https://github.com/jayce7
|
|
|
178 |
[Joans Follesø]: https://github.com/follesoe
|
|
|
179 |
[Dan Allen]: https://github.com/mojavelinux
|
|
|
180 |
[Eric Knibbe]: https://github.com/EricFromCanada
|
|
|
181 |
[Kurt Emch]: https://github.com/kemch
|
|
|
182 |
[Poren Chiang]: https://github.com/rschiang
|
|
|
183 |
[Kelley van Evert]: https://github.com/kelleyvanevert
|
|
|
184 |
|
|
|
185 |
New style themes:
|
|
|
186 |
|
|
|
187 |
- Monokai Sublime by [noformnocontent][]
|
|
|
188 |
- Railscasts by [Damien White][]
|
|
|
189 |
- Obsidian by [Alexander Marenin][]
|
|
|
190 |
- Docco by [Simon Madine][]
|
|
|
191 |
- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything)
|
|
|
192 |
- Foundation by [Dan Allen][]
|
|
|
193 |
|
|
|
194 |
[noformnocontent]: http://nn.mit-license.org/
|
|
|
195 |
[Damien White]: https://github.com/visoft
|
|
|
196 |
[Alexander Marenin]: https://github.com/ioncreature
|
|
|
197 |
[Simon Madine]: https://github.com/thingsinjars
|
|
|
198 |
[Ivan Sagalaev]: https://github.com/isagalaev
|
|
|
199 |
|
|
|
200 |
Other notable changes:
|
|
|
201 |
|
|
|
202 |
- Corrected many corner cases in CSS.
|
|
|
203 |
- Dropped Python 2 version of the build tool.
|
|
|
204 |
- Implemented building for the AMD format.
|
|
|
205 |
- Updated Rust keywords (thanks to [Dmitry Medvinsky][]).
|
|
|
206 |
- Literal regexes can now be used in language definitions.
|
|
|
207 |
- CoffeeScript highlighting is now significantly more robust and rich due to
|
|
|
208 |
input from [Cédric Néhémie][].
|
|
|
209 |
|
|
|
210 |
[Dmitry Medvinsky]: https://github.com/dmedvinsky
|
|
|
211 |
[Cédric Néhémie]: https://github.com/abe33
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
## Version 7.3
|
|
|
215 |
|
|
|
216 |
- Since this version highlight.js no longer works in IE version 8 and older.
|
|
|
217 |
It's made it possible to reduce the library size and dramatically improve code
|
|
|
218 |
readability and made it easier to maintain. Time to go forward!
|
|
|
219 |
|
|
|
220 |
- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and
|
|
|
221 |
Brainfuck (by [Evgeny Stepanischev][bolk]).
|
|
|
222 |
|
|
|
223 |
- Improvements to existing languages:
|
|
|
224 |
|
|
|
225 |
- interpreter prompt in Python (`>>>` and `...`)
|
|
|
226 |
- @-properties and classes in CoffeeScript
|
|
|
227 |
- E4X in JavaScript (by [Oleg Efimov][oe])
|
|
|
228 |
- new keywords in Perl (by [Kirk Kimmel][kk])
|
|
|
229 |
- big Ruby syntax update (by [Vasily Polovnyov][vast])
|
|
|
230 |
- small fixes in Bash
|
|
|
231 |
|
|
|
232 |
- Also Oleg Efimov did a great job of moving all the docs for language and style
|
|
|
233 |
developers and contributors from the old wiki under the source code in the
|
|
|
234 |
"docs" directory. Now these docs are nicely presented at
|
|
|
235 |
<http://highlightjs.readthedocs.org/>.
|
|
|
236 |
|
|
|
237 |
[ng]: https://github.com/nathan11g
|
|
|
238 |
[dd]: https://github.com/drdrang
|
|
|
239 |
[bolk]: https://github.com/bolknote
|
|
|
240 |
[oe]: https://github.com/Sannis
|
|
|
241 |
[kk]: https://github.com/kimmel
|
|
|
242 |
[vast]: https://github.com/vast
|
|
|
243 |
|
|
|
244 |
|
|
|
245 |
## Version 7.2
|
|
|
246 |
|
|
|
247 |
A regular bug-fix release without any significant new features. Enjoy!
|
|
|
248 |
|
|
|
249 |
|
|
|
250 |
## Version 7.1
|
|
|
251 |
|
|
|
252 |
A Summer crop:
|
|
|
253 |
|
|
|
254 |
- [Marc Fornos][mf] made the definition for Clojure along with the matching
|
|
|
255 |
style Rainbow (which, of course, works for other languages too).
|
|
|
256 |
- CoffeeScript support continues to improve getting support for regular
|
|
|
257 |
expressions.
|
|
|
258 |
- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the
|
|
|
259 |
[project by Chris Kempson][tm0].
|
|
|
260 |
- Thanks to [Casey Duncun][cd] the library can now be built in the popular
|
|
|
261 |
[AMD format][amd].
|
|
|
262 |
- And last but not least, we've got a fair number of correctness and consistency
|
|
|
263 |
fixes, including a pretty significant refactoring of Ruby.
|
|
|
264 |
|
|
|
265 |
[mf]: https://github.com/mfornos
|
|
|
266 |
[tm]: http://jmblog.github.com/color-themes-for-highlightjs/
|
|
|
267 |
[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme
|
|
|
268 |
[cd]: https://github.com/caseman
|
|
|
269 |
[amd]: http://requirejs.org/docs/whyamd.html
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
## Version 7.0
|
|
|
273 |
|
|
|
274 |
The reason for the new major version update is a global change of keyword syntax
|
|
|
275 |
which resulted in the library getting smaller once again. For example, the
|
|
|
276 |
hosted build is 2K less than at the previous version while supporting two new
|
|
|
277 |
languages.
|
|
|
278 |
|
|
|
279 |
Notable changes:
|
|
|
280 |
|
|
|
281 |
- The library now works not only in a browser but also with [node.js][]. It is
|
|
|
282 |
installable with `npm install highlight.js`. [API][] docs are available on our
|
|
|
283 |
wiki.
|
|
|
284 |
|
|
|
285 |
- The new unique feature (apparently) among syntax highlighters is highlighting
|
|
|
286 |
*HTTP* headers and an arbitrary language in the request body. The most useful
|
|
|
287 |
languages here are *XML* and *JSON* both of which highlight.js does support.
|
|
|
288 |
Here's [the detailed post][p] about the feature.
|
|
|
289 |
|
|
|
290 |
- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an
|
|
|
291 |
emulation of*XCode* IDE by [Angel Olloqui][ao].
|
|
|
292 |
|
|
|
293 |
- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc]
|
|
|
294 |
and *GLSL* by [Sergey Tikhomirov][st].
|
|
|
295 |
|
|
|
296 |
- *Nginx* syntax has become a million times smaller and more universal thanks to
|
|
|
297 |
remaking it in a more generic manner that doesn't require listing all the
|
|
|
298 |
directives in the known universe.
|
|
|
299 |
|
|
|
300 |
- Function titles are now highlighted in *PHP*.
|
|
|
301 |
|
|
|
302 |
- *Haskell* and *VHDL* were significantly reworked to be more rich and correct
|
|
|
303 |
by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik].
|
|
|
304 |
|
|
|
305 |
And last but not least, many bugs have been fixed around correctness and
|
|
|
306 |
language detection.
|
|
|
307 |
|
|
|
308 |
Overall highlight.js currently supports 51 languages and 20 style themes.
|
|
|
309 |
|
|
|
310 |
[node.js]: http://nodejs.org/
|
|
|
311 |
[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
|
|
|
312 |
[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/
|
|
|
313 |
[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
|
|
|
314 |
[ao]: https://github.com/angelolloqui
|
|
|
315 |
[ar]: https://github.com/raleksandar
|
|
|
316 |
[jc]: https://github.com/jcheng5
|
|
|
317 |
[st]: https://github.com/tikhomirov
|
|
|
318 |
[sr]: https://github.com/sourrust
|
|
|
319 |
[ik]: https://github.com/ikalnitsky
|
|
|
320 |
|
|
|
321 |
|
|
|
322 |
## Version 6.2
|
|
|
323 |
|
|
|
324 |
A lot of things happened in highlight.js since the last version! We've got nine
|
|
|
325 |
new contributors, the discussion group came alive, and the main branch on GitHub
|
|
|
326 |
now counts more than 350 followers. Here are most significant results coming
|
|
|
327 |
from all this activity:
|
|
|
328 |
|
|
|
329 |
- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and
|
|
|
330 |
experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av],
|
|
|
331 |
[Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis
|
|
|
332 |
Bardadym][db] and [John Crepezzi][jc].
|
|
|
333 |
|
|
|
334 |
- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of
|
|
|
335 |
another well-known highlighter Google Code Prettify by [Aahan Krish][ak].
|
|
|
336 |
|
|
|
337 |
- A vast number of [correctness fixes and code refactorings][log], mostly made
|
|
|
338 |
by [Oleg Efimov][oe] and [Evgeny Stepanischev][es].
|
|
|
339 |
|
|
|
340 |
[av]: https://github.com/vlasovskikh
|
|
|
341 |
[am]: https://github.com/myadzel
|
|
|
342 |
[dn]: https://github.com/dnagir
|
|
|
343 |
[oe]: https://github.com/Sannis
|
|
|
344 |
[db]: https://github.com/btd
|
|
|
345 |
[jc]: https://github.com/seejohnrun
|
|
|
346 |
[lm]: http://grigio.org/
|
|
|
347 |
[ak]: https://github.com/geekpanth3r
|
|
|
348 |
[es]: https://github.com/bolknote
|
|
|
349 |
[log]: https://github.com/isagalaev/highlight.js/commits/
|
|
|
350 |
|
|
|
351 |
|
|
|
352 |
## Version 6.1 — Solarized
|
|
|
353 |
|
|
|
354 |
[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][]
|
|
|
355 |
style theme famous for being based on the intricate color theory to achieve
|
|
|
356 |
correct contrast and color perception. It is now available for highlight.js in
|
|
|
357 |
both variants — light and dark.
|
|
|
358 |
|
|
|
359 |
This version also adds a new original style Arta. Its author pumbur maintains a
|
|
|
360 |
[heavily modified fork of highlight.js][pb] on GitHub.
|
|
|
361 |
|
|
|
362 |
[jh]: https://github.com/sourrust
|
|
|
363 |
[solarized]: http://ethanschoonover.com/solarized
|
|
|
364 |
[pb]: https://github.com/pumbur/highlight.js
|
|
|
365 |
|
|
|
366 |
|
|
|
367 |
## Version 6.0
|
|
|
368 |
|
|
|
369 |
New major version of the highlighter has been built on a significantly
|
|
|
370 |
refactored syntax. Due to this it's even smaller than the previous one while
|
|
|
371 |
supporting more languages!
|
|
|
372 |
|
|
|
373 |
New languages are:
|
|
|
374 |
|
|
|
375 |
- Haskell by [Jeremy Hull][sourrust]
|
|
|
376 |
- Erlang in two varieties — module and REPL — made collectively by [Nikolay
|
|
|
377 |
Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov]
|
|
|
378 |
- Objective C by [Valerii Hiora][vhbit]
|
|
|
379 |
- Vala by [Antono Vasiljev][antono]
|
|
|
380 |
- Go by [Stephan Kountso][steplg]
|
|
|
381 |
|
|
|
382 |
[sourrust]: https://github.com/sourrust
|
|
|
383 |
[desh]: http://desh.su/
|
|
|
384 |
[arhibot]: https://github.com/arhibot
|
|
|
385 |
[ignatov]: https://github.com/ignatov
|
|
|
386 |
[vhbit]: https://github.com/vhbit
|
|
|
387 |
[antono]: https://github.com/antono
|
|
|
388 |
[steplg]: https://github.com/steplg
|
|
|
389 |
|
|
|
390 |
Also this version is marginally faster and fixes a number of small long-standing
|
|
|
391 |
bugs.
|
|
|
392 |
|
|
|
393 |
Developer overview of the new language syntax is available in a [blog post about
|
|
|
394 |
recent beta release][beta].
|
|
|
395 |
|
|
|
396 |
[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/
|
|
|
397 |
|
|
|
398 |
P.S. New version is not yet available on a Yandex' CDN, so for now you have to
|
|
|
399 |
download [your own copy][d].
|
|
|
400 |
|
|
|
401 |
[d]: /soft/highlight/en/download/
|
|
|
402 |
|
|
|
403 |
|
|
|
404 |
## Version 5.14
|
|
|
405 |
|
|
|
406 |
Fixed bugs in HTML/XML detection and relevance introduced in previous
|
|
|
407 |
refactoring.
|
|
|
408 |
|
|
|
409 |
Also test.html now shows the second best result of language detection by
|
|
|
410 |
relevance.
|
|
|
411 |
|
|
|
412 |
|
|
|
413 |
## Version 5.13
|
|
|
414 |
|
|
|
415 |
Past weekend began with a couple of simple additions for existing languages but
|
|
|
416 |
ended up in a big code refactoring bringing along nice improvements for language
|
|
|
417 |
developers.
|
|
|
418 |
|
|
|
419 |
### For users
|
|
|
420 |
|
|
|
421 |
- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard.
|
|
|
422 |
- Description of HTML has got new tags from [HTML 5][].
|
|
|
423 |
- CSS-styles have been unified to use consistent padding and also have lost
|
|
|
424 |
pop-outs with names of detected languages.
|
|
|
425 |
- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake и VHDL.
|
|
|
426 |
|
|
|
427 |
This makes total number of languages supported by highlight.js to reach 35.
|
|
|
428 |
|
|
|
429 |
Bug fixes:
|
|
|
430 |
|
|
|
431 |
- Custom classes on `<pre>` tags are not being overridden anymore
|
|
|
432 |
- More correct highlighting of code blocks inside non-`<pre>` containers:
|
|
|
433 |
highlighter now doesn't insist on replacing them with its own container and
|
|
|
434 |
just replaces the contents.
|
|
|
435 |
- Small fixes in browser compatibility and heuristics.
|
|
|
436 |
|
|
|
437 |
[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
|
|
|
438 |
[html 5]: http://en.wikipedia.org/wiki/HTML5
|
|
|
439 |
[ik]: http://kalnitsky.org.ua/
|
|
|
440 |
|
|
|
441 |
### For developers
|
|
|
442 |
|
|
|
443 |
The most significant change is the ability to include language submodes right
|
|
|
444 |
under `contains` instead of defining explicit named submodes in the main array:
|
|
|
445 |
|
|
|
446 |
contains: [
|
|
|
447 |
'string',
|
|
|
448 |
'number',
|
|
|
449 |
{begin: '\\n', end: hljs.IMMEDIATE_RE}
|
|
|
450 |
]
|
|
|
451 |
|
|
|
452 |
This is useful for auxiliary modes needed only in one place to define parsing.
|
|
|
453 |
Note that such modes often don't have `className` and hence won't generate a
|
|
|
454 |
separate `<span>` in the resulting markup. This is similar in effect to
|
|
|
455 |
`noMarkup: true`. All existing languages have been refactored accordingly.
|
|
|
456 |
|
|
|
457 |
Test file test.html has at last become a real test. Now it not only puts the
|
|
|
458 |
detected language name under the code snippet but also tests if it matches the
|
|
|
459 |
expected one. Test summary is displayed right above all language snippets.
|
|
|
460 |
|
|
|
461 |
|
|
|
462 |
## CDN
|
|
|
463 |
|
|
|
464 |
Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
|
|
|
465 |
[Link up][l]!
|
|
|
466 |
|
|
|
467 |
[yandex]: http://yandex.com/
|
|
|
468 |
[l]: http://softwaremaniacs.org/soft/highlight/en/download/
|
|
|
469 |
|
|
|
470 |
|
|
|
471 |
## Version 5.10 — "Paris".
|
|
|
472 |
|
|
|
473 |
Though I'm on a vacation in Paris, I decided to release a new version with a
|
|
|
474 |
couple of small fixes:
|
|
|
475 |
|
|
|
476 |
- Tomas Vitvar discovered that TAB replacement doesn't always work when used
|
|
|
477 |
with custom markup in code
|
|
|
478 |
- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
|
|
|
479 |
|
|
|
480 |
|
|
|
481 |
## Version 5.9
|
|
|
482 |
|
|
|
483 |
A long-awaited version is finally released.
|
|
|
484 |
|
|
|
485 |
New languages:
|
|
|
486 |
|
|
|
487 |
- Andrew Fedorov made a definition for Lua
|
|
|
488 |
- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
|
|
|
489 |
Nginx config
|
|
|
490 |
- [Vladimir Moskva][vm] made a definition for TeX
|
|
|
491 |
|
|
|
492 |
[pl]: http://kung-fu-tzu.ru/
|
|
|
493 |
[vm]: http://fulc.ru/
|
|
|
494 |
|
|
|
495 |
Fixes for existing languages:
|
|
|
496 |
|
|
|
497 |
- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
|
|
|
498 |
[YARD][] inline documentation
|
|
|
499 |
- the definition of SQL has become more solid and now it shouldn't be overly
|
|
|
500 |
greedy when it comes to language detection
|
|
|
501 |
|
|
|
502 |
[ls]: http://gnuu.org/
|
|
|
503 |
[yard]: http://yardoc.org/
|
|
|
504 |
|
|
|
505 |
The highlighter has become more usable as a library allowing to do highlighting
|
|
|
506 |
from initialization code of JS frameworks and in ajax methods (see.
|
|
|
507 |
readme.eng.txt).
|
|
|
508 |
|
|
|
509 |
Also this version drops support for the [WordPress][wp] plugin. Everyone is
|
|
|
510 |
welcome to [pick up its maintenance][p] if needed.
|
|
|
511 |
|
|
|
512 |
[wp]: http://wordpress.org/
|
|
|
513 |
[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
|
|
|
514 |
|
|
|
515 |
|
|
|
516 |
## Version 5.8
|
|
|
517 |
|
|
|
518 |
- Jan Berkel has contributed a definition for Scala. +1 to hotness!
|
|
|
519 |
- All CSS-styles are rewritten to work only inside `<pre>` tags to avoid
|
|
|
520 |
conflicts with host site styles.
|
|
|
521 |
|
|
|
522 |
|
|
|
523 |
## Version 5.7.
|
|
|
524 |
|
|
|
525 |
Fixed escaping of quotes in VBScript strings.
|
|
|
526 |
|
|
|
527 |
|
|
|
528 |
## Version 5.5
|
|
|
529 |
|
|
|
530 |
This version brings a small change: now .ini-files allow digits, underscores and
|
|
|
531 |
square brackets in key names.
|
|
|
532 |
|
|
|
533 |
|
|
|
534 |
## Version 5.4
|
|
|
535 |
|
|
|
536 |
Fixed small but upsetting bug in the packer which caused incorrect highlighting
|
|
|
537 |
of explicitly specified languages. Thanks to Andrew Fedorov for precise
|
|
|
538 |
diagnostics!
|
|
|
539 |
|
|
|
540 |
|
|
|
541 |
## Version 5.3
|
|
|
542 |
|
|
|
543 |
The version to fulfil old promises.
|
|
|
544 |
|
|
|
545 |
The most significant change is that highlight.js now preserves custom user
|
|
|
546 |
markup in code along with its own highlighting markup. This means that now it's
|
|
|
547 |
possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
|
|
|
548 |
[initial proposal][1] and for making a proof-of-concept patch.
|
|
|
549 |
|
|
|
550 |
Also in this version:
|
|
|
551 |
|
|
|
552 |
- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
|
|
|
553 |
support for CSS @-rules and Ruby symbols.
|
|
|
554 |
- Yura Zaripov has sent two styles: Brown Paper and School Book.
|
|
|
555 |
- Oleg Volchkov has sent a definition for [Parser 3][p3].
|
|
|
556 |
|
|
|
557 |
[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
|
|
|
558 |
[p3]: http://www.parser.ru/
|
|
|
559 |
[vp]: http://vasily.polovnyov.ru/
|
|
|
560 |
[vd]: http://dolzhenko.blogspot.com/
|
|
|
561 |
|
|
|
562 |
|
|
|
563 |
## Version 5.2
|
|
|
564 |
|
|
|
565 |
- at last it's possible to replace indentation TABs with something sensible (e.g. 2 or 4 spaces)
|
|
|
566 |
- new keywords and built-ins for 1C by Sergey Baranov
|
|
|
567 |
- a couple of small fixes to Apache highlighting
|
|
|
568 |
|
|
|
569 |
|
|
|
570 |
## Version 5.1
|
|
|
571 |
|
|
|
572 |
This is one of those nice version consisting entirely of new and shiny
|
|
|
573 |
contributions!
|
|
|
574 |
|
|
|
575 |
- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
|
|
|
576 |
- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
|
|
|
577 |
original visual style for it is now available for all highlight.js languages
|
|
|
578 |
under the name "Magula".
|
|
|
579 |
- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
|
|
|
580 |
languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
|
|
|
581 |
the matter.
|
|
|
582 |
|
|
|
583 |
[vooon]: http://vehq.ru/about/
|
|
|
584 |
[rukeba]: http://rukeba.com/
|
|
|
585 |
[drake]: http://drakeguan.org/
|
|
|
586 |
[ke]: http://k-evdokimenko.moikrug.ru/
|
|
|
587 |
|
|
|
588 |
|
|
|
589 |
## Version 5.0
|
|
|
590 |
|
|
|
591 |
The main change in the new major version of highlight.js is a mechanism for
|
|
|
592 |
packing several languages along with the library itself into a single compressed
|
|
|
593 |
file. Now sites using several languages will load considerably faster because
|
|
|
594 |
the library won't dynamically include additional files while loading.
|
|
|
595 |
|
|
|
596 |
Also this version fixes a long-standing bug with Javascript highlighting that
|
|
|
597 |
couldn't distinguish between regular expressions and division operations.
|
|
|
598 |
|
|
|
599 |
And as usually there were a couple of minor correctness fixes.
|
|
|
600 |
|
|
|
601 |
Great thanks to all contributors! Keep using highlight.js.
|
|
|
602 |
|
|
|
603 |
|
|
|
604 |
## Version 4.3
|
|
|
605 |
|
|
|
606 |
This version comes with two contributions from [Jason Diamond][jd]:
|
|
|
607 |
|
|
|
608 |
- language definition for C# (yes! it was a long-missed thing!)
|
|
|
609 |
- Visual Studio-like highlighting style
|
|
|
610 |
|
|
|
611 |
Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
|
|
|
612 |
|
|
|
613 |
[jd]: http://jason.diamond.name/weblog/
|
|
|
614 |
|
|
|
615 |
|
|
|
616 |
## Version 4.2
|
|
|
617 |
|
|
|
618 |
The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
|
|
|
619 |
somewhat experimental meaning that for highlighting "keywords" it doesn't use
|
|
|
620 |
any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
|
|
|
621 |
in parentheses wherever it makes sense. I'd like to ask people programming in
|
|
|
622 |
Lisp to confirm if it's a good idea and send feedback to [the forum][f].
|
|
|
623 |
|
|
|
624 |
Other changes:
|
|
|
625 |
|
|
|
626 |
- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
|
|
|
627 |
- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
|
|
|
628 |
test.html
|
|
|
629 |
- comments now allowed inside Ruby function definition
|
|
|
630 |
- [MEL][] language from [Shuen-Huei Guan][drake]
|
|
|
631 |
- whitespace now allowed between `<pre>` and `<code>`
|
|
|
632 |
- better auto-detection of C++ and PHP
|
|
|
633 |
- HTML allows embedded VBScript (`<% .. %>`)
|
|
|
634 |
|
|
|
635 |
[f]: http://softwaremaniacs.org/forum/highlightjs/
|
|
|
636 |
[voldmar]: http://voldmar.ya.ru/
|
|
|
637 |
[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
|
|
|
638 |
[drake]: http://drakeguan.org/
|
|
|
639 |
|
|
|
640 |
|
|
|
641 |
## Version 4.1
|
|
|
642 |
|
|
|
643 |
Languages:
|
|
|
644 |
|
|
|
645 |
- Bash from Vah
|
|
|
646 |
- DOS bat-files from Alexander Makarov (Sam)
|
|
|
647 |
- Diff files from Vasily Polovnyov
|
|
|
648 |
- Ini files from myself though initial idea was from Sam
|
|
|
649 |
|
|
|
650 |
Styles:
|
|
|
651 |
|
|
|
652 |
- Zenburn from Vladimir Epifanov, this is an imitation of a
|
|
|
653 |
[well-known theme for Vim][zenburn].
|
|
|
654 |
- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
|
|
|
655 |
just one color in only three gradations :-)
|
|
|
656 |
|
|
|
657 |
In other news. [One small bug][bug] was fixed, built-in keywords were added for
|
|
|
658 |
Python and C++ which improved auto-detection for the latter (it was shame that
|
|
|
659 |
[my wife's blog][alenacpp] had issues with it from time to time). And lastly
|
|
|
660 |
thanks go to Sam for getting rid of my stylistic comments in code that were
|
|
|
661 |
getting in the way of [JSMin][].
|
|
|
662 |
|
|
|
663 |
[zenburn]: http://en.wikipedia.org/wiki/Zenburn
|
|
|
664 |
[alenacpp]: http://alenacpp.blogspot.com/
|
|
|
665 |
[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
|
|
|
666 |
[jsmin]: http://code.google.com/p/jsmin-php/
|
|
|
667 |
|
|
|
668 |
|
|
|
669 |
## Version 4.0
|
|
|
670 |
|
|
|
671 |
New major version is a result of vast refactoring and of many contributions.
|
|
|
672 |
|
|
|
673 |
Visible new features:
|
|
|
674 |
|
|
|
675 |
- Highlighting of embedded languages. Currently is implemented highlighting of
|
|
|
676 |
Javascript and CSS inside HTML.
|
|
|
677 |
- Bundled 5 ready-made style themes!
|
|
|
678 |
|
|
|
679 |
Invisible new features:
|
|
|
680 |
|
|
|
681 |
- Highlight.js no longer pollutes global namespace. Only one object and one
|
|
|
682 |
function for backward compatibility.
|
|
|
683 |
- Performance is further increased by about 15%.
|
|
|
684 |
|
|
|
685 |
Changing of a major version number caused by a new format of language definition
|
|
|
686 |
files. If you use some third-party language files they should be updated.
|
|
|
687 |
|
|
|
688 |
|
|
|
689 |
## Version 3.5
|
|
|
690 |
|
|
|
691 |
A very nice version in my opinion fixing a number of small bugs and slightly
|
|
|
692 |
increased speed in a couple of corner cases. Thanks to everybody who reports
|
|
|
693 |
bugs in he [forum][f] and by email!
|
|
|
694 |
|
|
|
695 |
There is also a new language — XML. A custom XML formerly was detected as HTML
|
|
|
696 |
and didn't highlight custom tags. In this version I tried to make custom XML to
|
|
|
697 |
be detected and highlighted by its own rules. Which by the way include such
|
|
|
698 |
things as CDATA sections and processing instructions (`<? ... ?>`).
|
|
|
699 |
|
|
|
700 |
[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
|
|
|
701 |
|
|
|
702 |
|
|
|
703 |
## Version 3.3
|
|
|
704 |
|
|
|
705 |
[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
|
|
|
706 |
File export.html contains a little program that shows and allows to copy and
|
|
|
707 |
paste an HTML code generated by the highlighter for any code snippet. This can
|
|
|
708 |
be useful in situations when one can't use the script itself on a site.
|
|
|
709 |
|
|
|
710 |
|
|
|
711 |
[xonix]: http://xonixx.blogspot.com/
|
|
|
712 |
|
|
|
713 |
|
|
|
714 |
## Version 3.2 consists completely of contributions:
|
|
|
715 |
|
|
|
716 |
- Vladimir Gubarkov has described SmallTalk
|
|
|
717 |
- Yuri Ivanov has described 1C
|
|
|
718 |
- Peter Leonov has packaged the highlighter as a Firefox extension
|
|
|
719 |
- Vladimir Ermakov has compiled a mod for phpBB
|
|
|
720 |
|
|
|
721 |
Many thanks to you all!
|
|
|
722 |
|
|
|
723 |
|
|
|
724 |
## Version 3.1
|
|
|
725 |
|
|
|
726 |
Three new languages are available: Django templates, SQL and Axapta. The latter
|
|
|
727 |
two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
|
|
|
728 |
SQL definition but I'd never started it be it from the ground up :-)
|
|
|
729 |
|
|
|
730 |
The engine itself has got a long awaited feature of grouping keywords
|
|
|
731 |
("keyword", "built-in function", "literal"). No more hacks!
|
|
|
732 |
|
|
|
733 |
[1]: http://roudakov.ru/
|
|
|
734 |
|
|
|
735 |
|
|
|
736 |
## Version 3.0
|
|
|
737 |
|
|
|
738 |
It is major mainly because now highlight.js has grown large and has become
|
|
|
739 |
modular. Now when you pass it a list of languages to highlight it will
|
|
|
740 |
dynamically load into a browser only those languages.
|
|
|
741 |
|
|
|
742 |
Also:
|
|
|
743 |
|
|
|
744 |
- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
|
|
|
745 |
RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
|
|
|
746 |
languages!
|
|
|
747 |
- Heuristics for C++ and HTML got better.
|
|
|
748 |
- I've implemented (at last) a correct handling of backslash escapes in C-like
|
|
|
749 |
languages.
|
|
|
750 |
|
|
|
751 |
There is also a small backwards incompatible change in the new version. The
|
|
|
752 |
function initHighlighting that was used to initialize highlighting instead of
|
|
|
753 |
initHighlightingOnLoad a long time ago no longer works. If you by chance still
|
|
|
754 |
use it — replace it with the new one.
|
|
|
755 |
|
|
|
756 |
[RibKit]: http://ribkit.sourceforge.net/
|
|
|
757 |
|
|
|
758 |
|
|
|
759 |
## Version 2.9
|
|
|
760 |
|
|
|
761 |
Highlight.js is a parser, not just a couple of regular expressions. That said
|
|
|
762 |
I'm glad to announce that in the new version 2.9 has support for:
|
|
|
763 |
|
|
|
764 |
- in-string substitutions for Ruby -- `#{...}`
|
|
|
765 |
- strings from from numeric symbol codes (like #XX) for Delphi
|
|
|
766 |
|
|
|
767 |
|
|
|
768 |
## Version 2.8
|
|
|
769 |
|
|
|
770 |
A maintenance release with more tuned heuristics. Fully backwards compatible.
|
|
|
771 |
|
|
|
772 |
|
|
|
773 |
## Version 2.7
|
|
|
774 |
|
|
|
775 |
- Nikita Ledyaev presents highlighting for VBScript, yay!
|
|
|
776 |
- A couple of bugs with escaping in strings were fixed thanks to Mickle
|
|
|
777 |
- Ongoing tuning of heuristics
|
|
|
778 |
|
|
|
779 |
Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
|
|
|
780 |
|
|
|
781 |
|
|
|
782 |
## Version 2.4
|
|
|
783 |
|
|
|
784 |
- Peter Leonov provides another improved highlighting for Perl
|
|
|
785 |
- Javascript gets a new kind of keywords — "literals". These are the words
|
|
|
786 |
"true", "false" and "null"
|
|
|
787 |
|
|
|
788 |
Also highlight.js homepage now lists sites that use the library. Feel free to
|
|
|
789 |
add your site by [dropping me a message][mail] until I find the time to build a
|
|
|
790 |
submit form.
|
|
|
791 |
|
|
|
792 |
[mail]: mailto:Maniac@SoftwareManiacs.Org
|
|
|
793 |
|
|
|
794 |
|
|
|
795 |
## Version 2.3
|
|
|
796 |
|
|
|
797 |
This version fixes IE breakage in previous version. My apologies to all who have
|
|
|
798 |
already downloaded that one!
|
|
|
799 |
|
|
|
800 |
|
|
|
801 |
## Version 2.2
|
|
|
802 |
|
|
|
803 |
- added highlighting for Javascript
|
|
|
804 |
- at last fixed parsing of Delphi's escaped apostrophes in strings
|
|
|
805 |
- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
|
|
|
806 |
Perl
|
|
|
807 |
|
|
|
808 |
|
|
|
809 |
## Version 2.0
|
|
|
810 |
|
|
|
811 |
- Ruby support by [Anton Kovalyov][ak]
|
|
|
812 |
- speed increased by orders of magnitude due to new way of parsing
|
|
|
813 |
- this same way allows now correct highlighting of keywords in some tricky
|
|
|
814 |
places (like keyword "End" at the end of Delphi classes)
|
|
|
815 |
|
|
|
816 |
[ak]: http://anton.kovalyov.net/
|
|
|
817 |
|
|
|
818 |
|
|
|
819 |
## Version 1.0
|
|
|
820 |
|
|
|
821 |
Version 1.0 of javascript syntax highlighter is released!
|
|
|
822 |
|
|
|
823 |
It's the first version available with English description. Feel free to post
|
|
|
824 |
your comments and question to [highlight.js forum][forum]. And don't be afraid
|
|
|
825 |
if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
|
|
|
826 |
|
|
|
827 |
[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
|