]> git.mxchange.org Git - friendica-addons.git/blob - highlightjs/asset/CHANGES.md
Bluesky: Tags are now supported
[friendica-addons.git] / highlightjs / asset / CHANGES.md
1 ## Version 9.12.0
2
3 New language:
4
5 - *MikroTik* RouterOS Scripting language by [Ivan Dementev][].
6
7 New style:
8
9 - *VisualStudio 2015 Dark* by [Nicolas LLOBERA][]
10
11 Improvements:
12
13 - *Crystal* updated with new keywords and syntaxes by [Tsuyusato Kitsune][].
14 - *Julia* updated to the modern definitions by [Alex Arslan][].
15 - *julia-repl* added by [Morten Piibeleht][].
16 - [Stanislav Belov][] wrote a new definition for *1C*, replacing the one that
17   has not been updated for more than 8 years. The new version supports syntax
18   for versions 7.7 and 8.
19 - [Nicolas LLOBERA][] improved C# definition fixing edge cases with function
20   titles detection and added highlighting of `[Attributes]`.
21 - [nnnik][] provided a few correctness fixes for *Autohotkey*.
22 - [Martin Clausen][] made annotation collections in *Clojure* to look
23   consistently with other kinds.
24 - [Alejandro Alonso][] updated *Swift* keywords.
25
26 [Tsuyusato Kitsune]: https://github.com/MakeNowJust
27 [Alex Arslan]: https://github.com/ararslan
28 [Morten Piibeleht]: https://github.com/mortenpi
29 [Stanislav Belov]: https://github.com/4ppl
30 [Ivan Dementev]: https://github.com/DiVAN1x
31 [Nicolas LLOBERA]: https://github.com/Nicolas01
32 [nnnik]: https://github.com/nnnik
33 [Martin Clausen]: https://github.com/maacl
34 [Alejandro Alonso]: https://github.com/Azoy
35
36
37 ## Version 9.11.0
38
39 New languages:
40
41 - *Shell* by [Tsuyusato Kitsune][]
42 - *jboss-cli* by [Raphaël Parrëe][]
43
44 Improvements:
45
46 - [Joël Porquet] has [greatly improved the definition of *makefile*][5b3e0e6].
47 - *C++* class titles are now highlighted as in other languages with classes.
48 - [Jordi Petit][] added rarely used `or`, `and` and `not` keywords to *C++*.
49 - [Pieter Vantorre][] fixed highlighting of negative floating point values.
50
51
52 [Tsuyusato Kitsune]: https://github.com/MakeNowJust
53 [Jordi Petit]: https://github.com/jordi-petit
54 [Raphaël Parrëe]: https://github.com/rparree
55 [Pieter Vantorre]: https://github.com/NuclearCookie
56 [5b3e0e6]: https://github.com/isagalaev/highlight.js/commit/5b3e0e68bfaae282faff6697d6a490567fa9d44b
57
58
59 ## Version 9.10.0
60
61 Apologies for missing the previous release cycle. Some thing just can't be
62 automated… Anyway, we're back!
63
64 New languages:
65
66 - *Hy* by [Sergey Sobko][]
67 - *Leaf* by [Hale Chan][]
68 - *N1QL* by [Andres Täht][] and [Rene Saarsoo][]
69
70 Improvements:
71
72 - *Rust* got updated with new keywords by [Kasper Andersen][] and then
73   significantly modernized even more by [Eduard-Mihai Burtescu][] (yes, @eddyb,
74   Rust core team member!)
75 - *Python* updated with f-literals by [Philipp A][].
76 - *YAML* updated with unquoted strings support.
77 - *Gauss* updated with new keywords by [Matt Evans][].
78 - *Lua* updated with new keywords by [Joe Blow][].
79 - *Kotlin* updated with new keywords by [Philipp Hauer][].
80 - *TypeScript* got highlighting of function params and updated keywords by
81   [Ike Ku][].
82 - *Scheme* now correctly handles \`-quoted lists thanks to [Guannan Wei].
83 - [Sam Wu][] fixed handling of `<<` in *C++* defines.
84
85 [Philipp A]: https://github.com/flying-sheep
86 [Philipp Hauer]: https://github.com/phauer
87 [Sergey Sobko]: https://github.com/profitware
88 [Hale Chan]: https://github.com/halechan
89 [Matt Evans]: https://github.com/matthewevans
90 [Joe Blow]: https://github.com/mossarelli
91 [Kasper Andersen]: https://github.com/kasma1990
92 [Eduard-Mihai Burtescu]: https://github.com/eddyb
93 [Andres Täht]: https://github.com/andrestaht
94 [Rene Saarsoo]: https://github.com/nene
95 [Philipp Hauer]: https://github.com/phauer
96 [Ike Ku]: https://github.com/dempfi
97 [Guannan Wei]: https://github.com/Kraks
98 [Sam Wu]: https://github.com/samsam2310
99
100
101 ## Version 9.9.0
102
103 New languages
104
105 - *LLVM* by [Michael Rodler][]
106
107 Improvements:
108
109 - *TypeScript* updated with annotations and param lists inside constructors, by
110   [Raphael Parree][].
111 - *CoffeeScript* updated with new keywords and fixed to recognize JavaScript
112   in \`\`\`, thanks to thanks to [Geoffrey Booth][].
113 - Compiler directives in *Delphi* are now correctly highlighted as "meta".
114
115 [Raphael Parree]: https://github.com/rparree
116 [Michael Rodler]: https://github.com/f0rki
117 [Geoffrey Booth]: https://github.com/GeoffreyBooth
118
119
120 ## Version 9.8.0 "New York"
121
122 This version is the second one that deserved a name. Because I'm in New York,
123 and the release isn't missing the deadline only because it's still Tuesday on
124 West Coast.
125
126 New languages:
127
128 - *Clean* by [Camil Staps][]
129 - *Flix* by [Magnus Madsen][]
130
131 Improvements:
132
133 - [Kenton Hamaluik][] did a comprehensive update for *Haxe*.
134 - New commands for *PowerShell* from [Nicolas Le Gall][].
135 - [Jan T. Sott][] updated *NSIS*.
136 - *Java* and *Swift* support unicode characters in identifiers thanks to
137   [Alexander Lichter][].
138
139 [Camil Staps]: https://github.com/camilstaps
140 [Magnus Madsen]: https://github.com/magnus-madsen
141 [Kenton Hamaluik]: https://github.com/FuzzyWuzzie
142 [Nicolas Le Gall]: https://github.com/darkitty
143 [Jan T. Sott]: https://github.com/idleberg
144 [Alexander Lichter]: https://github.com/manniL
145
146
147 ## Version 9.7.0
148
149 A comprehensive bugfix release. This is one of the best things about
150 highlight.js: even boring things keep getting better (even if slow).
151
152 - VHDL updated with PSL keywords and uses more consistent styling.
153 - Nested C-style comments no longer break highlighting in many languages.
154 - JavaScript updated with `=>` functions, highlighted object attributes and
155   parsing within template string substitution blocks (`${...}`).
156 - Fixed another corner case with self-closing `<tag/>` in JSX.
157 - Added `HEALTHCHECK` directive in Docker.
158 - Delphi updated with new Free Pascal keywords.
159 - Fixed digit separator parsing in C++.
160 - C# updated with new keywords and fixed to allow multiple identifiers within
161   generics `<...>`.
162 - Fixed another slow regex in Less.
163
164
165 ## Version 9.6.0
166
167 New languages:
168
169 - *ABNF* and *EBNF* by [Alex McKibben][]
170 - *Awk* by [Matthew Daly][]
171 - *SubUnit* by [Sergey Bronnikov][]
172
173 New styles:
174
175 - *Atom One* in both Dark and Light variants  by [Daniel Gamage][]
176
177 Plus, a few smaller updates for *Lasso*, *Elixir*, *C++* and *SQL*.
178
179 [Alex McKibben]: https://github.com/mckibbenta
180 [Daniel Gamage]: https://github.com/danielgamage
181 [Matthew Daly]: https://github.com/matthewbdaly
182 [Sergey Bronnikov]: https://github.com/ligurio
183
184
185 ## Version 9.5.0
186
187 New languages:
188
189 - *Excel* by [Victor Zhou][]
190 - *Linden Scripting Language* by [Builder's Brewery][]
191 - *TAP* (Test Anything Protocol) by [Sergey Bronnikov][]
192 - *Pony* by [Joe Eli McIlvain][]
193 - *Coq* by [Stephan Boyer][]
194 - *dsconfig* and *LDIF* by [Jacob Childress][]
195
196 New styles:
197
198 - *Ocean Dark* by [Gavin Siu][]
199
200 Notable changes:
201
202 - [Minh Nguyễn][] added more built-ins to Objective C.
203 - [Jeremy Hull][] fixed corner cases in C++ preprocessor directives and Diff
204   comments.
205 - [Victor Zhou][] added support for digit separators in C++ numbers.
206
207 [Gavin Siu]: https://github.com/gavsiu
208 [Builder's Brewery]: https://github.com/buildersbrewery
209 [Victor Zhou]: https://github.com/OiCMudkips
210 [Sergey Bronnikov]: https://github.com/ligurio
211 [Joe Eli McIlvain]: https://github.com/jemc
212 [Stephan Boyer]: https://github.com/boyers
213 [Jacob Childress]: https://github.com/braveulysses
214 [Minh Nguyễn]: https://github.com/1ec5
215 [Jeremy Hull]: https://github.com/sourrust
216
217
218 ## Version 9.4.0
219
220 New languages:
221
222 - *PureBASIC* by [Tristano Ajmone][]
223 - *BNF* by [Oleg Efimov][]
224 - *Ada* by [Lars Schulna][]
225
226 New styles:
227
228 - *PureBASIC* by [Tristano Ajmone][]
229
230 Improvements to existing languages and styles:
231
232 - We now highlight function declarations in Go.
233 - [Taisuke Fujimoto][] contributed very convoluted rules for raw and
234   interpolated strings in C#.
235 - [Boone Severson][] updated Verilog to comply with IEEE 1800-2012
236   SystemVerilog.
237 - [Victor Zhou][] improved rules for comments and strings in PowerShell files.
238 - [Janis Voigtländer][] updated the definition of Elm to version 0.17 of the
239   languages. Elm is now featured on the front page of <https://highlightjs.org>.
240 - Special variable `$this` is highlighted as a keyword in PHP.
241 - `usize` and `isize` are now highlighted in Rust.
242 - Fixed labels and directives in x86 assembler.
243
244 [Tristano Ajmone]: https://github.com/tajmone
245 [Taisuke Fujimoto]: https://github.com/temp-impl
246 [Oleg Efimov]: https://github.com/Sannis
247 [Boone Severson]: https://github.com/BooneJS
248 [Victor Zhou]: https://github.com/OiCMudkips
249 [Lars Schulna]: https://github.com/captain-hanuta
250 [Janis Voigtländer]: https://github.com/jvoigtlaender
251
252
253 ## Version 9.3.0
254
255 New languages:
256
257 - *Tagger Script* by [Philipp Wolfer][]
258 - *MoonScript* by [Billy Quith][]
259
260 New styles:
261
262 - *xt256* by [Herbert Shin][]
263
264 Improvements to existing languages and styles:
265
266 - More robust handling of unquoted HTML tag attributes
267 - Relevance tuning for QML which was unnecessary eager at seizing other
268   languages' code
269 - Improve GAMS language parsing
270 - Fixed a bunch of bugs around selectors in Less
271 - Kotlin's got a new definition for annotations, updated keywords and other
272   minor improvements
273 - Added `move` to Rust keywords
274 - Markdown now recognizes \`\`\`-fenced code blocks
275 - Improved detection of function declarations in C++ and C#
276
277 [Philipp Wolfer]: https://github.com/phw
278 [Billy Quith]: https://github.com/billyquith
279 [Herbert Shin]: https://github.com/initbar
280
281
282 ## Version 9.2.0
283
284 New languages:
285
286 - *QML* by [John Foster][]
287 - *HTMLBars* by [Michael Johnston][]
288 - *CSP* by [Taras][]
289 - *Maxima* by [Robert Dodier][]
290
291 New styles:
292
293 - *Gruvbox* by [Qeole][]
294 - *Dracula* by [Denis Ciccale][]
295
296 Improvements to existing languages and styles:
297
298 - We now correctly handle JSX with arbitrary node tree depth.
299 - Argument list for `(lambda)` in Scheme is no longer highlighted as a function
300   call.
301 - Stylus syntax doesn't break on valid CSS.
302 - More correct handling of comments and strings and other improvements for
303   VimScript.
304 - More subtle work on the default style.
305 - We now use anonymous modules for AMD.
306 - `macro_rules!` is now recognized as a built-in in Rust.
307
308 [John Foster]: https://github.com/jf990
309 [Qeole]: https://github.com/Qeole
310 [Denis Ciccale]: https://github.com/dciccale
311 [Michael Johnston]: https://github.com/lastobelus
312 [Taras]: https://github.com/oxdef
313 [Robert Dodier]: https://github.com/robert-dodier
314
315
316 ## Version 9.1.0
317
318 New languages:
319
320 - *Stan* by [Brendan Rocks][]
321 - *BASIC* by [Raphaël Assénat][]
322 - *GAUSS* by [Matt Evans][]
323 - *DTS* by [Martin Braun][]
324 - *Arduino* by [Stefania Mellai][]
325
326 New Styles:
327
328 - *Arduino Light* by [Stefania Mellai][]
329
330 Improvements to existing languages and styles:
331
332 - Handle return type annotations in Python
333 - Allow shebang headers in Javascript
334 - Support strings in Rust meta
335 - Recognize `struct` as a class-level definition in Rust
336 - Recognize b-prefixed chars and strings in Rust
337 - Better numbers handling in Verilog
338
339 [Brendan Rocks]: http://brendanrocks.com
340 [Raphaël Assénat]: https://github.com/raphnet
341 [Matt Evans]: https://github.com/matthewevans
342 [Martin Braun]: https://github.com/mbr0wn
343 [Stefania Mellai]: https://github.com/smellai
344
345
346 ## Version 9.0.0
347
348 The new major version brings a reworked styling system. Highlight.js now defines
349 a limited set of highlightable classes giving a consistent result across all the
350 styles and languages. You can read a more detailed explanation and background in
351 the [tracking issue][#348] that started this long process back in May.
352
353 This change is backwards incompatible for those who uses highlight.js with a
354 custom stylesheet. The [new style guide][sg] explains how to write styles
355 in this new world.
356
357 Bundled themes have also suffered a significant amount of improvements and may
358 look different in places, but all the things now consistent and make more sense.
359 Among others, the Default style has got a refresh and will probably be tweaked
360 some more in next releases. Please do give your feedback in our
361 [issue tracker][issues].
362
363 New languages in this release:
364
365 - *Caché Object Script* by [Nikita Savchenko][]
366 - *YAML* by [Stefan Wienert][]
367 - *MIPS Assembler* by [Nebuleon Fumika][]
368 - *HSP* by [prince][]
369
370 Improvements to existing languages and styles:
371
372 - ECMAScript 6 modules import now do not require closing semicolon.
373 - ECMAScript 6 classes constructors now highlighted.
374 - Template string support for Typescript, as for ECMAScript 6.
375 - Scala case classes params highlight fixed.
376 - Built-in names introduced in Julia v0.4 added by [Kenta Sato][].
377 - Refreshed Default style.
378
379 Other notable changes:
380
381 - [Web workers support][webworkers] added bu [Jan Kühle][].
382 - We now have tests for compressed browser builds as well.
383 - The building tool chain has been switched to node.js 4.x. and is now
384   shamelessly uses ES6 features all over the place, courtesy of [Jeremy Hull][].
385 - License added to non-compressed browser build.
386
387 [Jan Kühle]: https://github.com/frigus02
388 [Stefan Wienert]: https://github.com/zealot128
389 [Kenta Sato]: https://github.com/bicycle1885
390 [Nikita Savchenko]: https://github.com/ZitRos
391 [webworkers]: https://github.com/isagalaev/highlight.js#web-workers
392 [Jeremy Hull]: https://github.com/sourrust
393 [#348]: https://github.com/isagalaev/highlight.js/issues/348
394 [sg]: http://highlightjs.readthedocs.org/en/latest/style-guide.html
395 [issues]: https://github.com/isagalaev/highlight.js/issues
396 [Nebuleon Fumika]: https://github.com/Nebuleon
397 [prince]: https://github.com/prince-0203
398
399
400 ## Version 8.9.1
401
402 Some last-minute changes reverted due to strange bug with minified browser build:
403
404 - Scala case classes params highlight fixed
405 - ECMAScript 6 modules import now do not require closing semicolon
406 - ECMAScript 6 classes constructors now highlighted
407 - Template string support for Typescript, as for ECMAScript 6
408 - License added to not minified browser build
409
410
411 ## Version 8.9.0
412
413 New languages:
414
415 - *crmsh* by [Kristoffer Gronlund][]
416 - *SQF* by [Soren Enevoldsen][]
417
418 [Kristoffer Gronlund]: https://github.com/krig
419 [Soren Enevoldsen]: https://github.com/senevoldsen90
420
421 Notable fixes and improvements to existing languages:
422
423 - Added `abstract` and `namespace` keywords to TypeScript by [Daniel Rosenwasser][]
424 - Added `label` support to Dockerfile by [Ladislav Prskavec][]
425 - Crystal highlighting improved by [Tsuyusato Kitsune][]
426 - Missing Swift keywords added by [Nate Cook][]
427 - Improve detection of C block comments
428 - ~~Scala case classes params highlight fixed~~
429 - ~~ECMAScript 6 modules import now do not require closing semicolon~~
430 - ~~ECMAScript 6 classes constructors now highlighted~~
431 - ~~Template string support for Typescript, as for ECMAScript 6~~
432
433 Other notable changes:
434
435 - ~~License added to not minified browser build~~
436
437 [Kristoffer Gronlund]: https://github.com/krig
438 [Søren Enevoldsen]: https://github.com/senevoldsen90
439 [Daniel Rosenwasser]: https://github.com/DanielRosenwasser
440 [Ladislav Prskavec]: https://github.com/abtris
441 [Tsuyusato Kitsune]: https://github.com/MakeNowJust
442 [Nate Cook]: https://github.com/natecook1000
443
444
445 ## Version 8.8.0
446
447 New languages:
448
449 - *Golo* by [Philippe Charrière][]
450 - *GAMS* by [Stefan Bechert][]
451 - *IRPF90* by [Anthony Scemama][]
452 - *Access logs* by [Oleg Efimov][]
453 - *Crystal* by [Tsuyusato Kitsune][]
454
455 Notable fixes and improvements to existing languages:
456
457 - JavaScript highlighting no longer fails with ES6 default parameters
458 - Added keywords `async` and `await` to Python
459 - PHP heredoc support improved
460 - Allow preprocessor directives within C++ functions
461
462 Other notable changes:
463
464 - Change versions to X.Y.Z SemVer-compatible format
465 - Added ability to build all targets at once
466
467 [Philippe Charrière]: https://github.com/k33g
468 [Stefan Bechert]: https://github.com/b-pos465
469 [Anthony Scemama]: https://github.com/scemama
470 [Oleg Efimov]: https://github.com/Sannis
471 [Tsuyusato Kitsune]: https://github.com/MakeNowJust
472
473
474 ## Version 8.7
475
476 New languages:
477
478 - *Zephir* by [Oleg Efimov][]
479 - *Elm* by [Janis Voigtländer][]
480 - *XQuery* by [Dirk Kirsten][]
481 - *Mojolicious* by [Dotan Dimet][]
482 - *AutoIt* by Manh Tuan from [J2TeaM][]
483 - *Toml* (ini extension) by [Guillaume Gomez][]
484
485 New styles:
486
487 - *Hopscotch* by [Jan T. Sott][]
488 - *Grayscale* by [MY Sun][]
489
490 Notable fixes and improvements to existing languages:
491
492 - Fix encoding of images when copied over in certain builds
493 - Fix incorrect highlighting of the word "bug" in comments
494 - Treat decorators different from matrix multiplication in Python
495 - Fix traits inheritance highlighting in Rust
496 - Fix incorrect document
497 - Oracle keywords added to SQL language definition by [Vadimtro][]
498 - Postgres keywords added to SQL language definition by [Benjamin Auder][]
499 - Fix registers in x86asm being highlighted as a hex number
500 - Fix highlighting for numbers with a leading decimal point
501 - Correctly highlight numbers and strings inside of C/C++ macros
502 - C/C++ functions now support pointer, reference, and move returns
503
504 [Oleg Efimov]: https://github.com/Sannis
505 [Guillaume Gomez]: https://github.com/GuillaumeGomez
506 [Janis Voigtländer]: https://github.com/jvoigtlaender
507 [Jan T. Sott]: https://github.com/idleberg
508 [Dirk Kirsten]: https://github.com/dirkk
509 [MY Sun]: https://github.com/simonmysun
510 [Vadimtro]: https://github.com/Vadimtro
511 [Benjamin Auder]: https://github.com/ghost
512 [Dotan Dimet]: https://github.com/dotandimet
513 [J2TeaM]: https://github.com/J2TeaM
514
515
516 ## Version 8.6
517
518 New languages:
519
520 - *C/AL* by [Kenneth Fuglsang][]
521 - *DNS zone file* by [Tim Schumacher][]
522 - *Ceylon* by [Lucas Werkmeister][]
523 - *OpenSCAD* by [Dan Panzarella][]
524 - *Inform7* by [Bruno Dias][]
525 - *armasm* by [Dan Panzarella][]
526 - *TP* by [Jay Strybis][]
527
528 New styles:
529
530 - *Atelier Cave*, *Atelier Estuary*,
531   *Atelier Plateau* and *Atelier Savanna* by [Bram de Haan][]
532 - *Github Gist* by [Louis Barranqueiro][]
533
534 Notable fixes and improvements to existing languages:
535
536 - Multi-line raw strings from C++11 are now supported
537 - Fix class names with dashes in HAML
538 - The `async` keyword from ES6/7 is now supported
539 - TypeScript functions handle type and parameter complexity better
540 - We unified phpdoc/javadoc/yardoc etc modes across all languages
541 - CSS .class selectors relevance was dropped to prevent wrong language detection
542 - Images is now included to CDN build
543 - Release process is now automated
544
545 [Bram de Haan]: https://github.com/atelierbram
546 [Kenneth Fuglsang]: https://github.com/kfuglsang
547 [Louis Barranqueiro]: https://github.com/LouisBarranqueiro
548 [Tim Schumacher]: https://github.com/enko
549 [Lucas Werkmeister]: https://github.com/lucaswerkmeister
550 [Dan Panzarella]: https://github.com/pzl
551 [Bruno Dias]: https://github.com/sequitur
552 [Jay Strybis]: https://github.com/unreal
553
554
555 ## Version 8.5
556
557 New languages:
558
559 - *pf.conf* by [Peter Piwowarski][]
560 - *Julia* by [Kenta Sato][]
561 - *Prolog* by [Raivo Laanemets][]
562 - *Docker* by [Alexis Hénaut][]
563 - *Fortran* by [Anthony Scemama][] and [Thomas Applencourt][]
564 - *Kotlin* by [Sergey Mashkov][]
565
566 New styles:
567
568 - *Agate* by [Taufik Nurrohman][]
569 - *Darcula* by [JetBrains][]
570 - *Atelier Sulphurpool* by [Bram de Haan][]
571 - *Android Studio* by [Pedro Oliveira][]
572
573 Notable fixes and improvements to existing languages:
574
575 - ES6 features in JavaScript are better supported now by [Gu Yiling][].
576 - Swift now recognizes body-less method definitions.
577 - Single expression functions `def foo, do: ... ` now work in Elixir.
578 - More uniform detection of built-in classes in Objective C.
579 - Fixes for number literals and processor directives in Rust.
580 - HTML `<script>` tag now allows any language, not just JavaScript.
581 - Multi-line comments are supported now in MatLab.
582
583 [Taufik Nurrohman]: https://github.com/tovic
584 [Jet Brains]: https://www.jetbrains.com/
585 [Peter Piwowarski]: https://github.com/oldlaptop
586 [Kenta Sato]: https://github.com/bicycle1885
587 [Bram de Haan]: https://github.com/atelierbram
588 [Raivo Laanemets]: https://github.com/rla
589 [Alexis Hénaut]: https://github.com/AlexisNo
590 [Anthony Scemama]: https://github.com/scemama
591 [Pedro Oliveira]: https://github.com/kanytu
592 [Gu Yiling]: https://github.com/Justineo
593 [Sergey Mashkov]: https://github.com/cy6erGn0m
594 [Thomas Applencourt]: https://github.com/TApplencourt
595
596
597 ## Version 8.4
598
599 We've got the new [demo page][]! The obvious new feature is the new look, but
600 apart from that it's got smarter: by presenting languages in groups it avoids
601 running 10000 highlighting attempts after first load which was slowing it down
602 and giving bad overall impression. It is now also being generated from test
603 code snippets so the authors of new languages don't have to update both tests
604 and the demo page with the same thing.
605
606 Other notable changes:
607
608 - The `template_comment` class is gone in favor of the more general `comment`.
609 - Number parsing unified and improved across languages.
610 - C++, Java and C# now use unified grammar to highlight titles in
611   function/method definitions.
612 - The browser build is now usable as an AMD module, there's no separate build
613   target for that anymore.
614 - OCaml has got a [comprehensive overhaul][ocaml] by [Mickaël Delahaye][].
615 - Clojure's data structures and literals are now highlighted outside of lists
616   and we can now highlight Clojure's REPL sessions.
617
618 New languages:
619
620 - *AspectJ* by [Hakan Özler][]
621 - *STEP Part 21* by [Adam Joseph Cook][]
622 - *SML* derived by [Edwin Dalorzo][] from OCaml definition
623 - *Mercury* by [mucaho][]
624 - *Smali* by [Dennis Titze][]
625 - *Verilog* by [Jon Evans][]
626 - *Stata* by [Brian Quistorff][]
627
628 [Hakan Özler]: https://github.com/ozlerhakan
629 [Adam Joseph Cook]: https://github.com/adamjcook
630 [demo page]: https://highlightjs.org/static/demo/
631 [Ivan Sagalaev]: https://github.com/isagalaev
632 [Edwin Dalorzo]: https://github.com/edalorzo
633 [mucaho]: https://github.com/mucaho
634 [Dennis Titze]: https://github.com/titze
635 [Jon Evans]: https://github.com/craftyjon
636 [Brian Quistorff]: https://github.com/bquistorff
637 [ocaml]: https://github.com/isagalaev/highlight.js/pull/608#issue-46190207
638 [Mickaël Delahaye]: https://github.com/polazarus
639
640
641 ## Version 8.3
642
643 We streamlined our tool chain, it is now based entirely on node.js instead of
644 being a mix of node.js, Python and Java. The build script options and arguments
645 remained the same, and we've noted all the changes in the [documentation][b].
646 Apart from reducing complexity, the new build script is also faster from not
647 having to start Java machine repeatedly. The credits for the work go to [Jeremy
648 Hull][].
649
650 Some notable fixes:
651
652 - PHP and JavaScript mixed in HTML now live happily with each other.
653 - JavaScript regexes now understand ES6 flags "u" and "y".
654 - `throw` keyword is no longer detected as a method name in Java.
655 - Fixed parsing of numbers and symbols in Clojure thanks to [input from Ivan
656   Kleshnin][ik].
657
658 New languages in this release:
659
660 - *Less* by [Max Mikhailov][]
661 - *Stylus* by [Bryant Williams][]
662 - *Tcl* by [Radek Liska][]
663 - *Puppet* by [Jose Molina Colmenero][]
664 - *Processing* by [Erik Paluka][]
665 - *Twig* templates by [Luke Holder][]
666 - *PowerShell* by [David Mohundro][], based on [the work of Nicholas Blumhardt][ps]
667 - *XL* by [Christophe de Dinechin][]
668 - *LiveScript* by [Taneli Vatanen][] and [Jen Evers-Corvina][]
669 - *ERB* (Ruby in HTML) by [Lucas Mazza][]
670 - *Roboconf* by [Vincent Zurczak][]
671
672 [b]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
673 [Jeremy Hull]: https://github.com/sourrust
674 [ik]: https://twitter.com/IvanKleshnin/status/514041599484231680
675 [Max Mikhailov]: https://github.com/seven-phases-max
676 [Bryant Williams]: https://github.com/scien
677 [Radek Liska]: https://github.com/Nindaleth
678 [Jose Molina Colmenero]: https://github.com/Moliholy
679 [Erik Paluka]: https://github.com/paluka
680 [Luke Holder]: https://github.com/lukeholder
681 [David Mohundro]: https://github.com/drmohundro
682 [ps]: https://github.com/OctopusDeploy/Library/blob/master/app/shared/presentation/highlighting/powershell.js
683 [Christophe de Dinechin]: https://github.com/c3d
684 [Taneli Vatanen]: https://github.com/Daiz-
685 [Jen Evers-Corvina]: https://github.com/sevvie
686 [Lucas Mazza]: https://github.com/lucasmazza
687 [Vincent Zurczak]: https://github.com/vincent-zurczak
688
689
690 ## Version 8.2
691
692 We've finally got [real tests][test] and [continuous testing on Travis][ci]
693 thanks to [Jeremy Hull][] and [Chris Eidhof][]. The tests designed to cover
694 everything: language detection, correct parsing of individual language features
695 and various special cases. This is a very important change that gives us
696 confidence in extending language definitions and refactoring library core.
697
698 We're going to redesign the old [demo/test suite][demo] into an interactive
699 demo web app. If you're confident front-end developer or designer and want to
700 help us with it, drop a comment into [the issue][#542] on GitHub.
701
702 [test]: https://github.com/isagalaev/highlight.js/tree/master/test
703 [demo]: https://highlightjs.org/static/test.html
704 [#542]: https://github.com/isagalaev/highlight.js/issues/542
705 [ci]: https://travis-ci.org/isagalaev/highlight.js
706 [Jeremy Hull]: https://github.com/sourrust
707 [Chris Eidhof]: https://github.com/chriseidhof
708
709 As usually there's a handful of new languages in this release:
710
711 - *Groovy* by [Guillaume Laforge][]
712 - *Dart* by [Maxim Dikun][]
713 - *Dust* by [Michael Allen][]
714 - *Scheme* by [JP Verkamp][]
715 - *G-Code* by [Adam Joseph Cook][]
716 - *Q* from Kx Systems by [Sergey Vidyuk][]
717
718 [Guillaume Laforge]: https://github.com/glaforge
719 [Maxim Dikun]: https://github.com/dikmax
720 [Michael Allen]: https://github.com/bfui
721 [JP Verkamp]: https://github.com/jpverkamp
722 [Adam Joseph Cook]: https://github.com/adamjcook
723 [Sergey Vidyuk]: https://github.com/sv
724
725 Other improvements:
726
727 - [Erik Osheim][] heavily reworked Scala definitions making it richer.
728 - [Lucas Mazza][] fixed Ruby hashes highlighting
729 - Lisp variants (Lisp, Clojure and Scheme) are unified in regard to naming
730   the first symbol in parentheses: it's "keyword" in general case and also
731   "built_in" for built-in functions in Clojure and Scheme.
732
733 [Erik Osheim]: https://github.com/non
734 [Lucas Mazza]: https://github.com/lucasmazza
735
736
737 ## Version 8.1
738
739 New languages:
740
741 - *Gherkin* by [Sam Pikesley][]
742 - *Elixir* by [Josh Adams][]
743 - *NSIS* by [Jan T. Sott][]
744 - *VIM script* by [Jun Yang][]
745 - *Protocol Buffers* by [Dan Tao][]
746 - *Nix* by [Domen Kožar][]
747 - *x86asm* by [innocenat][]
748 - *Cap’n Proto* and *Thrift* by [Oleg Efimov][]
749 - *Monkey* by [Arthur Bikmullin][]
750 - *TypeScript* by [Panu Horsmalahti][]
751 - *Nimrod* by [Flaviu Tamas][]
752 - *Gradle* by [Damian Mee][]
753 - *Haxe* by [Christopher Kaster][]
754 - *Swift* by [Chris Eidhof][] and [Nate Cook][]
755
756 New styles:
757
758 - *Kimbie*, light and dark variants by [Jan T. Sott][]
759 - *Color brewer* by [Fabrício Tavares de Oliveira][]
760 - *Codepen.io embed* by [Justin Perry][]
761 - *Hybrid* by [Nic West][]
762
763 [Sam Pikesley]: https://github.com/pikesley
764 [Sindre Sorhus]: https://github.com/sindresorhus
765 [Josh Adams]: https://github.com/knewter
766 [Jan T. Sott]: https://github.com/idleberg
767 [Jun Yang]: https://github.com/harttle
768 [Dan Tao]: https://github.com/dtao
769 [Domen Kožar]: https://github.com/iElectric
770 [innocenat]: https://github.com/innocenat
771 [Oleg Efimov]: https://github.com/Sannis
772 [Arthur Bikmullin]: https://github.com/devolonter
773 [Panu Horsmalahti]: https://github.com/panuhorsmalahti
774 [Flaviu Tamas]: https://github.com/flaviut
775 [Damian Mee]: https://github.com/chester1000
776 [Christopher Kaster]: http://christopher.kaster.ws
777 [Fabrício Tavares de Oliveira]: https://github.com/fabriciotav
778 [Justin Perry]: https://github.com/ourmaninamsterdam
779 [Nic West]: https://github.com/nicwest
780 [Chris Eidhof]: https://github.com/chriseidhof
781 [Nate Cook]: https://github.com/natecook1000
782
783 Other improvements:
784
785 - The README is heavily reworked and brought up to date by [Jeremy Hull][].
786 - Added [`listLanguages()`][ll] method in the API.
787 - Improved C/C++/C# detection.
788 - Added a bunch of new language aliases, documented the existing ones. Thanks to
789   [Sindre Sorhus][] for background research.
790 - Added phrasal English words to boost relevance in comments.
791 - Many improvements to SQL definition made by [Heiko August][],
792   [Nikolay Lisienko][] and [Travis Odom][].
793 - The shorter `lang-` prefix for language names in HTML classes supported
794   alongside `language-`. Thanks to [Jeff Escalante][].
795 - Ruby's got support for interactive console sessions. Thanks to
796   [Pascal Hurni][].
797 - Added built-in functions for R language. Thanks to [Artem A. Klevtsov][].
798 - Rust's got definition for lifetime parameters and improved string syntax.
799   Thanks to [Roman Shmatov][].
800 - Various improvements to Objective-C definition by [Matt Diephouse][].
801 - Fixed highlighting of generics in Java.
802
803 [ll]: http://highlightjs.readthedocs.org/en/latest/api.html#listlanguages
804 [Sindre Sorhus]: https://github.com/sindresorhus
805 [Heiko August]: https://github.com/auge8472
806 [Nikolay Lisienko]: https://github.com/neor-ru
807 [Travis Odom]: https://github.com/Burstaholic
808 [Jeff Escalante]: https://github.com/jenius
809 [Pascal Hurni]: https://github.com/phurni
810 [Jiyin Yiyong]: https://github.com/jiyinyiyong
811 [Artem A. Klevtsov]: https://github.com/unikum
812 [Roman Shmatov]: https://github.com/shmatov
813 [Jeremy Hull]: https://github.com/sourrust
814 [Matt Diephouse]: https://github.com/mdiep
815
816
817 ## Version 8.0
818
819 This new major release is quite a big overhaul bringing both new features and
820 some backwards incompatible changes. However, chances are that the majority of
821 users won't be affected by the latter: the basic scenario described in the
822 README is left intact.
823
824 Here's what did change in an incompatible way:
825
826 - We're now prefixing all classes located in [CSS classes reference][cr] with
827   `hljs-`, by default, because some class names would collide with other
828   people's stylesheets. If you were using an older version, you might still want
829   the previous behavior, but still want to upgrade. To suppress this new
830   behavior, you would initialize like so:
831
832   ```html
833   <script type="text/javascript">
834     hljs.configure({classPrefix: ''});
835     hljs.initHighlightingOnLoad();
836   </script>
837   ```
838
839 - `tabReplace` and `useBR` that were used in different places are also unified
840   into the global options object and are to be set using `configure(options)`.
841   This function is documented in our [API docs][]. Also note that these
842   parameters are gone from `highlightBlock` and `fixMarkup` which are now also
843   rely on `configure`.
844
845 - We removed public-facing (though undocumented) object `hljs.LANGUAGES` which
846   was used to register languages with the library in favor of two new methods:
847   `registerLanguage` and `getLanguage`. Both are documented in our [API docs][].
848
849 - Result returned from `highlight` and `highlightAuto` no longer contains two
850   separate attributes contributing to relevance score, `relevance` and
851   `keyword_count`. They are now unified in `relevance`.
852
853 Another technically compatible change that nonetheless might need attention:
854
855 - The structure of the NPM package was refactored, so if you had installed it
856   locally, you'll have to update your paths. The usual `require('highlight.js')`
857   works as before. This is contributed by [Dmitry Smolin][].
858
859 New features:
860
861 - Languages now can be recognized by multiple names like "js" for JavaScript or
862   "html" for, well, HTML (which earlier insisted on calling it "xml"). These
863   aliases can be specified in the class attribute of the code container in your
864   HTML as well as in various API calls. For now there are only a few very common
865   aliases but we'll expand it in the future. All of them are listed in the
866   [class reference][cr].
867
868 - Language detection can now be restricted to a subset of languages relevant in
869   a given context — a web page or even a single highlighting call. This is
870   especially useful for node.js build that includes all the known languages.
871   Another example is a StackOverflow-style site where users specify languages
872   as tags rather than in the markdown-formatted code snippets. This is
873   documented in the [API reference][] (see methods `highlightAuto` and
874   `configure`).
875
876 - Language definition syntax streamlined with [variants][] and
877   [beginKeywords][].
878
879 New languages and styles:
880
881 - *Oxygene* by [Carlo Kok][]
882 - *Mathematica* by [Daniel Kvasnička][]
883 - *Autohotkey* by [Seongwon Lee][]
884 - *Atelier* family of styles in 10 variants by [Bram de Haan][]
885 - *Paraíso* styles by [Jan T. Sott][]
886
887 Miscellaneous improvements:
888
889 - Highlighting `=>` prompts in Clojure.
890 - [Jeremy Hull][] fixed a lot of styles for consistency.
891 - Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html].
892 - Objective C and C# now properly highlight titles in method definition.
893 - Big overhaul of relevance counting for a number of languages. Please do report
894   bugs about mis-detection of non-trivial code snippets!
895
896 [API reference]: http://highlightjs.readthedocs.org/en/latest/api.html
897
898 [cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
899 [api docs]: http://highlightjs.readthedocs.org/en/latest/api.html
900 [variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion
901 [beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d
902 [php-html]: https://twitter.com/highlightjs/status/408890903017689088
903
904 [Carlo Kok]: https://github.com/carlokok
905 [Bram de Haan]: https://github.com/atelierbram
906 [Daniel Kvasnička]: https://github.com/dkvasnicka
907 [Dmitry Smolin]: https://github.com/dimsmol
908 [Jeremy Hull]: https://github.com/sourrust
909 [Seongwon Lee]: https://github.com/dlimpid
910 [Jan T. Sott]: https://github.com/idleberg
911
912
913 ## Version 7.5
914
915 A catch-up release dealing with some of the accumulated contributions. This one
916 is probably will be the last before the 8.0 which will be slightly backwards
917 incompatible regarding some advanced use-cases.
918
919 One outstanding change in this version is the addition of 6 languages to the
920 [hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and
921 Makefile. It now weighs about 6K more but we're going to keep it under 30K.
922
923 New languages:
924
925 - OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud]
926 - [LiveCode Server][lcs] by [Ralf Bitter][revig]
927 - Scilab by [Sylvestre Ledru][sylvestre]
928 - basic support for Makefile by [Ivan Sagalaev][isagalaev]
929
930 Improvements:
931
932 - Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}`
933   regexps.
934 - Clojure now allows a function call in the beginning of s-expressions
935   `(($filter "myCount") (arr 1 2 3 4 5))`.
936 - Haskell's got new keywords and now recognizes more things like pragmas,
937   preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep]
938   for the implementation and to [Jeremy Hull][sourrust] for guiding it.
939 - Miscellaneous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#.
940
941 [mehdid]: https://github.com/mehdid
942 [nbraud]: https://github.com/nbraud
943 [revig]: https://github.com/revig
944 [lcs]: http://livecode.com/developers/guides/server/
945 [sylvestre]: https://github.com/sylvestre
946 [isagalaev]: https://github.com/isagalaev
947 [treep]: https://github.com/treep
948 [sourrust]: https://github.com/sourrust
949 [d]: http://highlightjs.org/download/
950
951
952 ## New core developers
953
954 The latest long period of almost complete inactivity in the project coincided
955 with growing interest to it led to a decision that now seems completely obvious:
956 we need more core developers.
957
958 So without further ado let me welcome to the core team two long-time
959 contributors: [Jeremy Hull][] and [Oleg
960 Efimov][].
961
962 Hope now we'll be able to work through stuff faster!
963
964 P.S. The historical commit is [here][1] for the record.
965
966 [Jeremy Hull]: https://github.com/sourrust
967 [Oleg Efimov]: https://github.com/sannis
968 [1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f
969
970
971 ## Version 7.4
972
973 This long overdue version is a snapshot of the current source tree with all the
974 changes that happened during the past year. Sorry for taking so long!
975
976 Along with the changes in code highlight.js has finally got its new home at
977 <http://highlightjs.org/>, moving from its cradle on Software Maniacs which it
978 outgrew a long time ago. Be sure to report any bugs about the site to
979 <mailto:info@highlightjs.org>.
980
981 On to what's new…
982
983 New languages:
984
985 - Handlebars templates by [Robin Ward][]
986 - Oracle Rules Language by [Jason Jacobson][]
987 - F# by [Joans Follesø][]
988 - AsciiDoc and Haml by [Dan Allen][]
989 - Lasso by [Eric Knibbe][]
990 - SCSS by [Kurt Emch][]
991 - VB.NET by [Poren Chiang][]
992 - Mizar by [Kelley van Evert][]
993
994 [Robin Ward]: https://github.com/eviltrout
995 [Jason Jacobson]: https://github.com/jayce7
996 [Joans Follesø]: https://github.com/follesoe
997 [Dan Allen]: https://github.com/mojavelinux
998 [Eric Knibbe]: https://github.com/EricFromCanada
999 [Kurt Emch]: https://github.com/kemch
1000 [Poren Chiang]: https://github.com/rschiang
1001 [Kelley van Evert]: https://github.com/kelleyvanevert
1002
1003 New style themes:
1004
1005 - Monokai Sublime by [noformnocontent][]
1006 - Railscasts by [Damien White][]
1007 - Obsidian by [Alexander Marenin][]
1008 - Docco by [Simon Madine][]
1009 - Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything)
1010 - Foundation by [Dan Allen][]
1011
1012 [noformnocontent]: http://nn.mit-license.org/
1013 [Damien White]: https://github.com/visoft
1014 [Alexander Marenin]: https://github.com/ioncreature
1015 [Simon Madine]: https://github.com/thingsinjars
1016 [Ivan Sagalaev]: https://github.com/isagalaev
1017
1018 Other notable changes:
1019
1020 - Corrected many corner cases in CSS.
1021 - Dropped Python 2 version of the build tool.
1022 - Implemented building for the AMD format.
1023 - Updated Rust keywords (thanks to [Dmitry Medvinsky][]).
1024 - Literal regexes can now be used in language definitions.
1025 - CoffeeScript highlighting is now significantly more robust and rich due to
1026   input from [Cédric Néhémie][].
1027
1028 [Dmitry Medvinsky]: https://github.com/dmedvinsky
1029 [Cédric Néhémie]: https://github.com/abe33
1030
1031
1032 ## Version 7.3
1033
1034 - Since this version highlight.js no longer works in IE version 8 and older.
1035   It's made it possible to reduce the library size and dramatically improve code
1036   readability and made it easier to maintain. Time to go forward!
1037
1038 - New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and
1039   Brainfuck (by [Evgeny Stepanischev][bolk]).
1040
1041 - Improvements to existing languages:
1042
1043     - interpreter prompt in Python (`>>>` and `...`)
1044     - @-properties and classes in CoffeeScript
1045     - E4X in JavaScript (by [Oleg Efimov][oe])
1046     - new keywords in Perl (by [Kirk Kimmel][kk])
1047     - big Ruby syntax update (by [Vasily Polovnyov][vast])
1048     - small fixes in Bash
1049
1050 - Also Oleg Efimov did a great job of moving all the docs for language and style
1051   developers and contributors from the old wiki under the source code in the
1052   "docs" directory. Now these docs are nicely presented at
1053   <http://highlightjs.readthedocs.org/>.
1054
1055 [ng]: https://github.com/nathan11g
1056 [dd]: https://github.com/drdrang
1057 [bolk]: https://github.com/bolknote
1058 [oe]: https://github.com/Sannis
1059 [kk]: https://github.com/kimmel
1060 [vast]: https://github.com/vast
1061
1062
1063 ## Version 7.2
1064
1065 A regular bug-fix release without any significant new features. Enjoy!
1066
1067
1068 ## Version 7.1
1069
1070 A Summer crop:
1071
1072 - [Marc Fornos][mf] made the definition for Clojure along with the matching
1073   style Rainbow (which, of course, works for other languages too).
1074 - CoffeeScript support continues to improve getting support for regular
1075   expressions.
1076 - Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the
1077   [project by Chris Kempson][tm0].
1078 - Thanks to [Casey Duncun][cd] the library can now be built in the popular
1079   [AMD format][amd].
1080 - And last but not least, we've got a fair number of correctness and consistency
1081   fixes, including a pretty significant refactoring of Ruby.
1082
1083 [mf]: https://github.com/mfornos
1084 [tm]: http://jmblog.github.com/color-themes-for-highlightjs/
1085 [tm0]: https://github.com/ChrisKempson/Tomorrow-Theme
1086 [cd]: https://github.com/caseman
1087 [amd]: http://requirejs.org/docs/whyamd.html
1088
1089
1090 ## Version 7.0
1091
1092 The reason for the new major version update is a global change of keyword syntax
1093 which resulted in the library getting smaller once again. For example, the
1094 hosted build is 2K less than at the previous version while supporting two new
1095 languages.
1096
1097 Notable changes:
1098
1099 - The library now works not only in a browser but also with [node.js][]. It is
1100   installable with `npm install highlight.js`. [API][] docs are available on our
1101   wiki.
1102
1103 - The new unique feature (apparently) among syntax highlighters is highlighting
1104   *HTTP* headers and an arbitrary language in the request body. The most useful
1105   languages here are *XML* and *JSON* both of which highlight.js does support.
1106   Here's [the detailed post][p] about the feature.
1107
1108 - Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an
1109   emulation of*XCode* IDE by [Angel Olloqui][ao].
1110
1111 - Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc]
1112   and *GLSL* by [Sergey Tikhomirov][st].
1113
1114 - *Nginx* syntax has become a million times smaller and more universal thanks to
1115   remaking it in a more generic manner that doesn't require listing all the
1116   directives in the known universe.
1117
1118 - Function titles are now highlighted in *PHP*.
1119
1120 - *Haskell* and *VHDL* were significantly reworked to be more rich and correct
1121   by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik].
1122
1123 And last but not least, many bugs have been fixed around correctness and
1124 language detection.
1125
1126 Overall highlight.js currently supports 51 languages and 20 style themes.
1127
1128 [node.js]: http://nodejs.org/
1129 [api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
1130 [p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/
1131 [pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
1132 [ao]: https://github.com/angelolloqui
1133 [ar]: https://github.com/raleksandar
1134 [jc]: https://github.com/jcheng5
1135 [st]: https://github.com/tikhomirov
1136 [sr]: https://github.com/sourrust
1137 [ik]: https://github.com/ikalnitsky
1138
1139
1140 ## Version 6.2
1141
1142 A lot of things happened in highlight.js since the last version! We've got nine
1143 new contributors, the discussion group came alive, and the main branch on GitHub
1144 now counts more than 350 followers. Here are most significant results coming
1145 from all this activity:
1146
1147 - 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and
1148   experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av],
1149   [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis
1150   Bardadym][db] and [John Crepezzi][jc].
1151
1152 - 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of
1153   another well-known highlighter Google Code Prettify by [Aahan Krish][ak].
1154
1155 - A vast number of [correctness fixes and code refactorings][log], mostly made
1156   by [Oleg Efimov][oe] and [Evgeny Stepanischev][es].
1157
1158 [av]: https://github.com/vlasovskikh
1159 [am]: https://github.com/myadzel
1160 [dn]: https://github.com/dnagir
1161 [oe]: https://github.com/Sannis
1162 [db]: https://github.com/btd
1163 [jc]: https://github.com/seejohnrun
1164 [lm]: http://grigio.org/
1165 [ak]: https://github.com/geekpanth3r
1166 [es]: https://github.com/bolknote
1167 [log]: https://github.com/isagalaev/highlight.js/commits/
1168
1169
1170 ## Version 6.1 — Solarized
1171
1172 [Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][]
1173 style theme famous for being based on the intricate color theory to achieve
1174 correct contrast and color perception. It is now available for highlight.js in
1175 both variants — light and dark.
1176
1177 This version also adds a new original style Arta. Its author pumbur maintains a
1178 [heavily modified fork of highlight.js][pb] on GitHub.
1179
1180 [jh]: https://github.com/sourrust
1181 [solarized]: http://ethanschoonover.com/solarized
1182 [pb]: https://github.com/pumbur/highlight.js
1183
1184
1185 ## Version 6.0
1186
1187 New major version of the highlighter has been built on a significantly
1188 refactored syntax. Due to this it's even smaller than the previous one while
1189 supporting more languages!
1190
1191 New languages are:
1192
1193 - Haskell by [Jeremy Hull][sourrust]
1194 - Erlang in two varieties — module and REPL — made collectively by [Nikolay
1195   Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov]
1196 - Objective C by [Valerii Hiora][vhbit]
1197 - Vala by [Antono Vasiljev][antono]
1198 - Go by [Stephan Kountso][steplg]
1199
1200 [sourrust]: https://github.com/sourrust
1201 [desh]: http://desh.su/
1202 [arhibot]: https://github.com/arhibot
1203 [ignatov]: https://github.com/ignatov
1204 [vhbit]: https://github.com/vhbit
1205 [antono]: https://github.com/antono
1206 [steplg]: https://github.com/steplg
1207
1208 Also this version is marginally faster and fixes a number of small long-standing
1209 bugs.
1210
1211 Developer overview of the new language syntax is available in a [blog post about
1212 recent beta release][beta].
1213
1214 [beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/
1215
1216 P.S. New version is not yet available on a Yandex CDN, so for now you have to
1217 download [your own copy][d].
1218
1219 [d]: /soft/highlight/en/download/
1220
1221
1222 ## Version 5.14
1223
1224 Fixed bugs in HTML/XML detection and relevance introduced in previous
1225 refactoring.
1226
1227 Also test.html now shows the second best result of language detection by
1228 relevance.
1229
1230
1231 ## Version 5.13
1232
1233 Past weekend began with a couple of simple additions for existing languages but
1234 ended up in a big code refactoring bringing along nice improvements for language
1235 developers.
1236
1237 ### For users
1238
1239 - Description of C++ has got new keywords from the upcoming [C++ 0x][] standard.
1240 - Description of HTML has got new tags from [HTML 5][].
1241 - CSS-styles have been unified to use consistent padding and also have lost
1242   pop-outs with names of detected languages.
1243 - [Igor Kalnitsky][ik] has sent two new language descriptions: CMake & VHDL.
1244
1245 This makes total number of languages supported by highlight.js to reach 35.
1246
1247 Bug fixes:
1248
1249 - Custom classes on `<pre>` tags are not being overridden anymore
1250 - More correct highlighting of code blocks inside non-`<pre>` containers:
1251   highlighter now doesn't insist on replacing them with its own container and
1252   just replaces the contents.
1253 - Small fixes in browser compatibility and heuristics.
1254
1255 [c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
1256 [html 5]: http://en.wikipedia.org/wiki/HTML5
1257 [ik]: http://kalnitsky.org.ua/
1258
1259 ### For developers
1260
1261 The most significant change is the ability to include language submodes right
1262 under `contains` instead of defining explicit named submodes in the main array:
1263
1264     contains: [
1265       'string',
1266       'number',
1267       {begin: '\\n', end: hljs.IMMEDIATE_RE}
1268     ]
1269
1270 This is useful for auxiliary modes needed only in one place to define parsing.
1271 Note that such modes often don't have `className` and hence won't generate a
1272 separate `<span>` in the resulting markup. This is similar in effect to
1273 `noMarkup: true`. All existing languages have been refactored accordingly.
1274
1275 Test file test.html has at last become a real test. Now it not only puts the
1276 detected language name under the code snippet but also tests if it matches the
1277 expected one. Test summary is displayed right above all language snippets.
1278
1279
1280 ## CDN
1281
1282 Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
1283 [Link up][l]!
1284
1285 [yandex]: http://yandex.com/
1286 [l]: http://softwaremaniacs.org/soft/highlight/en/download/
1287
1288
1289 ## Version 5.10 — "Paris".
1290
1291 Though I'm on a vacation in Paris, I decided to release a new version with a
1292 couple of small fixes:
1293
1294 - Tomas Vitvar discovered that TAB replacement doesn't always work when used
1295   with custom markup in code
1296 - SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
1297
1298
1299 ## Version 5.9
1300
1301 A long-awaited version is finally released.
1302
1303 New languages:
1304
1305 - Andrew Fedorov made a definition for Lua
1306 - a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
1307   Nginx config
1308 - [Vladimir Moskva][vm] made a definition for TeX
1309
1310 [pl]: http://kung-fu-tzu.ru/
1311 [vm]: http://fulc.ru/
1312
1313 Fixes for existing languages:
1314
1315 - [Loren Segal][ls] reworked the Ruby definition and added highlighting for
1316   [YARD][] inline documentation
1317 - the definition of SQL has become more solid and now it shouldn't be overly
1318   greedy when it comes to language detection
1319
1320 [ls]: http://gnuu.org/
1321 [yard]: http://yardoc.org/
1322
1323 The highlighter has become more usable as a library allowing to do highlighting
1324 from initialization code of JS frameworks and in ajax methods (see.
1325 readme.eng.txt).
1326
1327 Also this version drops support for the [WordPress][wp] plugin. Everyone is
1328 welcome to [pick up its maintenance][p] if needed.
1329
1330 [wp]: http://wordpress.org/
1331 [p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
1332
1333
1334 ## Version 5.8
1335
1336 - Jan Berkel has contributed a definition for Scala. +1 to hotness!
1337 - All CSS-styles are rewritten to work only inside `<pre>` tags to avoid
1338   conflicts with host site styles.
1339
1340
1341 ## Version 5.7.
1342
1343 Fixed escaping of quotes in VBScript strings.
1344
1345
1346 ## Version 5.5
1347
1348 This version brings a small change: now .ini-files allow digits, underscores and
1349 square brackets in key names.
1350
1351
1352 ## Version 5.4
1353
1354 Fixed small but upsetting bug in the packer which caused incorrect highlighting
1355 of explicitly specified languages. Thanks to Andrew Fedorov for precise
1356 diagnostics!
1357
1358
1359 ## Version 5.3
1360
1361 The version to fulfil old promises.
1362
1363 The most significant change is that highlight.js now preserves custom user
1364 markup in code along with its own highlighting markup. This means that now it's
1365 possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
1366 [initial proposal][1] and for making a proof-of-concept patch.
1367
1368 Also in this version:
1369
1370 - [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
1371   support for CSS @-rules and Ruby symbols.
1372 - Yura Zaripov has sent two styles: Brown Paper and School Book.
1373 - Oleg Volchkov has sent a definition for [Parser 3][p3].
1374
1375 [1]: http://softwaremaniacs.org/forum/highlightjs/6612/
1376 [p3]: http://www.parser.ru/
1377 [vp]: http://vasily.polovnyov.ru/
1378 [vd]: http://dolzhenko.blogspot.com/
1379
1380
1381 ## Version 5.2
1382
1383 - at last it's possible to replace indentation TABs with something sensible
1384   (e.g. 2 or 4 spaces)
1385 - new keywords and built-ins for 1C by Sergey Baranov
1386 - a couple of small fixes to Apache highlighting
1387
1388
1389 ## Version 5.1
1390
1391 This is one of those nice version consisting entirely of new and shiny
1392 contributions!
1393
1394 - [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
1395 - [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
1396   original visual style for it is now available for all highlight.js languages
1397   under the name "Magula".
1398 - [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
1399   languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
1400   the matter.
1401
1402 [vooon]: http://vehq.ru/about/
1403 [rukeba]: http://rukeba.com/
1404 [drake]: http://drakeguan.org/
1405 [ke]: http://k-evdokimenko.moikrug.ru/
1406
1407
1408 ## Version 5.0
1409
1410 The main change in the new major version of highlight.js is a mechanism for
1411 packing several languages along with the library itself into a single compressed
1412 file. Now sites using several languages will load considerably faster because
1413 the library won't dynamically include additional files while loading.
1414
1415 Also this version fixes a long-standing bug with Javascript highlighting that
1416 couldn't distinguish between regular expressions and division operations.
1417
1418 And as usually there were a couple of minor correctness fixes.
1419
1420 Great thanks to all contributors! Keep using highlight.js.
1421
1422
1423 ## Version 4.3
1424
1425 This version comes with two contributions from [Jason Diamond][jd]:
1426
1427 - language definition for C# (yes! it was a long-missed thing!)
1428 - Visual Studio-like highlighting style
1429
1430 Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
1431
1432 [jd]: http://jason.diamond.name/weblog/
1433
1434
1435 ## Version 4.2
1436
1437 The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
1438 somewhat experimental meaning that for highlighting "keywords" it doesn't use
1439 any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
1440 in parentheses wherever it makes sense. I'd like to ask people programming in
1441 Lisp to confirm if it's a good idea and send feedback to [the forum][f].
1442
1443 Other changes:
1444
1445 - Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
1446 - [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
1447   test.html
1448 - comments now allowed inside Ruby function definition
1449 - [MEL][] language from [Shuen-Huei Guan][drake]
1450 - whitespace now allowed between `<pre>` and `<code>`
1451 - better auto-detection of C++ and PHP
1452 - HTML allows embedded VBScript (`<% .. %>`)
1453
1454 [f]: http://softwaremaniacs.org/forum/highlightjs/
1455 [voldmar]: http://voldmar.ya.ru/
1456 [mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
1457 [drake]: http://drakeguan.org/
1458
1459
1460 ## Version 4.1
1461
1462 Languages:
1463
1464 - Bash from Vah
1465 - DOS bat-files from Alexander Makarov (Sam)
1466 - Diff files from Vasily Polovnyov
1467 - Ini files from myself though initial idea was from Sam
1468
1469 Styles:
1470
1471 - Zenburn from Vladimir Epifanov, this is an imitation of a
1472   [well-known theme for Vim][zenburn].
1473 - Ascetic from myself, as a realization of ideals of non-flashy highlighting:
1474   just one color in only three gradations :-)
1475
1476 In other news. [One small bug][bug] was fixed, built-in keywords were added for
1477 Python and C++ which improved auto-detection for the latter (it was shame that
1478 [my wife's blog][alenacpp] had issues with it from time to time). And lastly
1479 thanks go to Sam for getting rid of my stylistic comments in code that were
1480 getting in the way of [JSMin][].
1481
1482 [zenburn]: http://en.wikipedia.org/wiki/Zenburn
1483 [alenacpp]: http://alenacpp.blogspot.com/
1484 [bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
1485 [jsmin]: http://code.google.com/p/jsmin-php/
1486
1487
1488 ## Version 4.0
1489
1490 New major version is a result of vast refactoring and of many contributions.
1491
1492 Visible new features:
1493
1494 - Highlighting of embedded languages. Currently is implemented highlighting of
1495   Javascript and CSS inside HTML.
1496 - Bundled 5 ready-made style themes!
1497
1498 Invisible new features:
1499
1500 - Highlight.js no longer pollutes global namespace. Only one object and one
1501   function for backward compatibility.
1502 - Performance is further increased by about 15%.
1503
1504 Changing of a major version number caused by a new format of language definition
1505 files. If you use some third-party language files they should be updated.
1506
1507
1508 ## Version 3.5
1509
1510 A very nice version in my opinion fixing a number of small bugs and slightly
1511 increased speed in a couple of corner cases. Thanks to everybody who reports
1512 bugs in he [forum][f] and by email!
1513
1514 There is also a new language — XML. A custom XML formerly was detected as HTML
1515 and didn't highlight custom tags. In this version I tried to make custom XML to
1516 be detected and highlighted by its own rules. Which by the way include such
1517 things as CDATA sections and processing instructions (`<? ... ?>`).
1518
1519 [f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
1520
1521
1522 ## Version 3.3
1523
1524 [Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
1525 File export.html contains a little program that shows and allows to copy and
1526 paste an HTML code generated by the highlighter for any code snippet. This can
1527 be useful in situations when one can't use the script itself on a site.
1528
1529
1530 [xonix]: http://xonixx.blogspot.com/
1531
1532
1533 ## Version 3.2 consists completely of contributions:
1534
1535 - Vladimir Gubarkov has described SmallTalk
1536 - Yuri Ivanov has described 1C
1537 - Peter Leonov has packaged the highlighter as a Firefox extension
1538 - Vladimir Ermakov has compiled a mod for phpBB
1539
1540 Many thanks to you all!
1541
1542
1543 ## Version 3.1
1544
1545 Three new languages are available: Django templates, SQL and Axapta. The latter
1546 two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
1547 SQL definition but I'd never started it be it from the ground up :-)
1548
1549 The engine itself has got a long awaited feature of grouping keywords
1550 ("keyword", "built-in function", "literal"). No more hacks!
1551
1552 [1]: http://roudakov.ru/
1553
1554
1555 ## Version 3.0
1556
1557 It is major mainly because now highlight.js has grown large and has become
1558 modular. Now when you pass it a list of languages to highlight it will
1559 dynamically load into a browser only those languages.
1560
1561 Also:
1562
1563 - Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
1564   RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
1565   languages!
1566 - Heuristics for C++ and HTML got better.
1567 - I've implemented (at last) a correct handling of backslash escapes in C-like
1568   languages.
1569
1570 There is also a small backwards incompatible change in the new version. The
1571 function initHighlighting that was used to initialize highlighting instead of
1572 initHighlightingOnLoad a long time ago no longer works. If you by chance still
1573 use it — replace it with the new one.
1574
1575 [RibKit]: http://ribkit.sourceforge.net/
1576
1577
1578 ## Version 2.9
1579
1580 Highlight.js is a parser, not just a couple of regular expressions. That said
1581 I'm glad to announce that in the new version 2.9 has support for:
1582
1583 - in-string substitutions for Ruby -- `#{...}`
1584 - strings from from numeric symbol codes (like #XX) for Delphi
1585
1586
1587 ## Version 2.8
1588
1589 A maintenance release with more tuned heuristics. Fully backwards compatible.
1590
1591
1592 ## Version 2.7
1593
1594 - Nikita Ledyaev presents highlighting for VBScript, yay!
1595 - A couple of bugs with escaping in strings were fixed thanks to Mickle
1596 - Ongoing tuning of heuristics
1597
1598 Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
1599
1600
1601 ## Version 2.4
1602
1603 - Peter Leonov provides another improved highlighting for Perl
1604 - Javascript gets a new kind of keywords — "literals". These are the words
1605   "true", "false" and "null"
1606
1607 Also highlight.js homepage now lists sites that use the library. Feel free to
1608 add your site by [dropping me a message][mail] until I find the time to build a
1609 submit form.
1610
1611 [mail]: mailto:Maniac@SoftwareManiacs.Org
1612
1613
1614 ## Version 2.3
1615
1616 This version fixes IE breakage in previous version. My apologies to all who have
1617 already downloaded that one!
1618
1619
1620 ## Version 2.2
1621
1622 - added highlighting for Javascript
1623 - at last fixed parsing of Delphi's escaped apostrophes in strings
1624 - in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
1625   Perl
1626
1627
1628 ## Version 2.0
1629
1630 - Ruby support by [Anton Kovalyov][ak]
1631 - speed increased by orders of magnitude due to new way of parsing
1632 - this same way allows now correct highlighting of keywords in some tricky
1633   places (like keyword "End" at the end of Delphi classes)
1634
1635 [ak]: http://anton.kovalyov.net/
1636
1637
1638 ## Version 1.0
1639
1640 Version 1.0 of javascript syntax highlighter is released!
1641
1642 It's the first version available with English description. Feel free to post
1643 your comments and question to [highlight.js forum][forum]. And don't be afraid
1644 if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
1645
1646 [forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6