5 - *MikroTik* RouterOS Scripting language by [Ivan Dementev][].
9 - *VisualStudio 2015 Dark* by [Nicolas LLOBERA][]
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.
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
41 - *Shell* by [Tsuyusato Kitsune][]
42 - *jboss-cli* by [Raphaël Parrëe][]
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.
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
61 Apologies for missing the previous release cycle. Some thing just can't be
62 automated… Anyway, we're back!
66 - *Hy* by [Sergey Sobko][]
67 - *Leaf* by [Hale Chan][]
68 - *N1QL* by [Andres Täht][] and [Rene Saarsoo][]
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
82 - *Scheme* now correctly handles \`-quoted lists thanks to [Guannan Wei].
83 - [Sam Wu][] fixed handling of `<<` in *C++* defines.
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
105 - *LLVM* by [Michael Rodler][]
109 - *TypeScript* updated with annotations and param lists inside constructors, by
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".
115 [Raphael Parree]: https://github.com/rparree
116 [Michael Rodler]: https://github.com/f0rki
117 [Geoffrey Booth]: https://github.com/GeoffreyBooth
120 ## Version 9.8.0 "New York"
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
128 - *Clean* by [Camil Staps][]
129 - *Flix* by [Magnus Madsen][]
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][].
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
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).
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
162 - Fixed another slow regex in Less.
169 - *ABNF* and *EBNF* by [Alex McKibben][]
170 - *Awk* by [Matthew Daly][]
171 - *SubUnit* by [Sergey Bronnikov][]
175 - *Atom One* in both Dark and Light variants by [Daniel Gamage][]
177 Plus, a few smaller updates for *Lasso*, *Elixir*, *C++* and *SQL*.
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
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][]
198 - *Ocean Dark* by [Gavin Siu][]
202 - [Minh Nguyễn][] added more built-ins to Objective C.
203 - [Jeremy Hull][] fixed corner cases in C++ preprocessor directives and Diff
205 - [Victor Zhou][] added support for digit separators in C++ numbers.
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
222 - *PureBASIC* by [Tristano Ajmone][]
223 - *BNF* by [Oleg Efimov][]
224 - *Ada* by [Lars Schulna][]
228 - *PureBASIC* by [Tristano Ajmone][]
230 Improvements to existing languages and styles:
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
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.
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
257 - *Tagger Script* by [Philipp Wolfer][]
258 - *MoonScript* by [Billy Quith][]
262 - *xt256* by [Herbert Shin][]
264 Improvements to existing languages and styles:
266 - More robust handling of unquoted HTML tag attributes
267 - Relevance tuning for QML which was unnecessary eager at seizing other
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
273 - Added `move` to Rust keywords
274 - Markdown now recognizes \`\`\`-fenced code blocks
275 - Improved detection of function declarations in C++ and C#
277 [Philipp Wolfer]: https://github.com/phw
278 [Billy Quith]: https://github.com/billyquith
279 [Herbert Shin]: https://github.com/initbar
286 - *QML* by [John Foster][]
287 - *HTMLBars* by [Michael Johnston][]
289 - *Maxima* by [Robert Dodier][]
293 - *Gruvbox* by [Qeole][]
294 - *Dracula* by [Denis Ciccale][]
296 Improvements to existing languages and styles:
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
301 - Stylus syntax doesn't break on valid CSS.
302 - More correct handling of comments and strings and other improvements for
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.
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
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][]
328 - *Arduino Light* by [Stefania Mellai][]
330 Improvements to existing languages and styles:
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
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
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.
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
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].
363 New languages in this release:
365 - *Caché Object Script* by [Nikita Savchenko][]
366 - *YAML* by [Stefan Wienert][]
367 - *MIPS Assembler* by [Nebuleon Fumika][]
368 - *HSP* by [prince][]
370 Improvements to existing languages and styles:
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.
379 Other notable changes:
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.
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
402 Some last-minute changes reverted due to strange bug with minified browser build:
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
415 - *crmsh* by [Kristoffer Gronlund][]
416 - *SQF* by [Soren Enevoldsen][]
418 [Kristoffer Gronlund]: https://github.com/krig
419 [Soren Enevoldsen]: https://github.com/senevoldsen90
421 Notable fixes and improvements to existing languages:
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~~
433 Other notable changes:
435 - ~~License added to not minified browser build~~
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
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][]
455 Notable fixes and improvements to existing languages:
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
462 Other notable changes:
464 - Change versions to X.Y.Z SemVer-compatible format
465 - Added ability to build all targets at once
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
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][]
487 - *Hopscotch* by [Jan T. Sott][]
488 - *Grayscale* by [MY Sun][]
490 Notable fixes and improvements to existing languages:
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
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
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][]
530 - *Atelier Cave*, *Atelier Estuary*,
531 *Atelier Plateau* and *Atelier Savanna* by [Bram de Haan][]
532 - *Github Gist* by [Louis Barranqueiro][]
534 Notable fixes and improvements to existing languages:
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
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
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][]
568 - *Agate* by [Taufik Nurrohman][]
569 - *Darcula* by [JetBrains][]
570 - *Atelier Sulphurpool* by [Bram de Haan][]
571 - *Android Studio* by [Pedro Oliveira][]
573 Notable fixes and improvements to existing languages:
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.
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
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.
606 Other notable changes:
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.
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][]
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
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
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
658 New languages in this release:
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][]
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
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.
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.
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
709 As usually there's a handful of new languages in this release:
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][]
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
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.
733 [Erik Osheim]: https://github.com/non
734 [Lucas Mazza]: https://github.com/lucasmazza
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][]
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][]
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
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
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.
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
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.
824 Here's what did change in an incompatible way:
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:
833 <script type="text/javascript">
834 hljs.configure({classPrefix: ''});
835 hljs.initHighlightingOnLoad();
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
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][].
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`.
853 Another technically compatible change that nonetheless might need attention:
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][].
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].
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
876 - Language definition syntax streamlined with [variants][] and
879 New languages and styles:
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][]
887 Miscellaneous improvements:
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!
896 [API reference]: http://highlightjs.readthedocs.org/en/latest/api.html
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
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
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.
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.
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]
932 - Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}`
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#.
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/
952 ## New core developers
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.
958 So without further ado let me welcome to the core team two long-time
959 contributors: [Jeremy Hull][] and [Oleg
962 Hope now we'll be able to work through stuff faster!
964 P.S. The historical commit is [here][1] for the record.
966 [Jeremy Hull]: https://github.com/sourrust
967 [Oleg Efimov]: https://github.com/sannis
968 [1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f
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!
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>.
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][]
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
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][]
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
1018 Other notable changes:
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][].
1028 [Dmitry Medvinsky]: https://github.com/dmedvinsky
1029 [Cédric Néhémie]: https://github.com/abe33
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!
1038 - New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and
1039 Brainfuck (by [Evgeny Stepanischev][bolk]).
1041 - Improvements to existing languages:
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
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/>.
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
1065 A regular bug-fix release without any significant new features. Enjoy!
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
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
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.
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
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
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
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.
1108 - Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an
1109 emulation of*XCode* IDE by [Angel Olloqui][ao].
1111 - Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc]
1112 and *GLSL* by [Sergey Tikhomirov][st].
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.
1118 - Function titles are now highlighted in *PHP*.
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].
1123 And last but not least, many bugs have been fixed around correctness and
1126 Overall highlight.js currently supports 51 languages and 20 style themes.
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
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:
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].
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].
1155 - A vast number of [correctness fixes and code refactorings][log], mostly made
1156 by [Oleg Efimov][oe] and [Evgeny Stepanischev][es].
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/
1170 ## Version 6.1 — Solarized
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.
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.
1180 [jh]: https://github.com/sourrust
1181 [solarized]: http://ethanschoonover.com/solarized
1182 [pb]: https://github.com/pumbur/highlight.js
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!
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]
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
1208 Also this version is marginally faster and fixes a number of small long-standing
1211 Developer overview of the new language syntax is available in a [blog post about
1212 recent beta release][beta].
1214 [beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/
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].
1219 [d]: /soft/highlight/en/download/
1224 Fixed bugs in HTML/XML detection and relevance introduced in previous
1227 Also test.html now shows the second best result of language detection by
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
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.
1245 This makes total number of languages supported by highlight.js to reach 35.
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.
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/
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:
1267 {begin: '\\n', end: hljs.IMMEDIATE_RE}
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.
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.
1282 Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
1285 [yandex]: http://yandex.com/
1286 [l]: http://softwaremaniacs.org/soft/highlight/en/download/
1289 ## Version 5.10 — "Paris".
1291 Though I'm on a vacation in Paris, I decided to release a new version with a
1292 couple of small fixes:
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
1301 A long-awaited version is finally released.
1305 - Andrew Fedorov made a definition for Lua
1306 - a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
1308 - [Vladimir Moskva][vm] made a definition for TeX
1310 [pl]: http://kung-fu-tzu.ru/
1311 [vm]: http://fulc.ru/
1313 Fixes for existing languages:
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
1320 [ls]: http://gnuu.org/
1321 [yard]: http://yardoc.org/
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.
1327 Also this version drops support for the [WordPress][wp] plugin. Everyone is
1328 welcome to [pick up its maintenance][p] if needed.
1330 [wp]: http://wordpress.org/
1331 [p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
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.
1343 Fixed escaping of quotes in VBScript strings.
1348 This version brings a small change: now .ini-files allow digits, underscores and
1349 square brackets in key names.
1354 Fixed small but upsetting bug in the packer which caused incorrect highlighting
1355 of explicitly specified languages. Thanks to Andrew Fedorov for precise
1361 The version to fulfil old promises.
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.
1368 Also in this version:
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].
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/
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
1391 This is one of those nice version consisting entirely of new and shiny
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
1402 [vooon]: http://vehq.ru/about/
1403 [rukeba]: http://rukeba.com/
1404 [drake]: http://drakeguan.org/
1405 [ke]: http://k-evdokimenko.moikrug.ru/
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.
1415 Also this version fixes a long-standing bug with Javascript highlighting that
1416 couldn't distinguish between regular expressions and division operations.
1418 And as usually there were a couple of minor correctness fixes.
1420 Great thanks to all contributors! Keep using highlight.js.
1425 This version comes with two contributions from [Jason Diamond][jd]:
1427 - language definition for C# (yes! it was a long-missed thing!)
1428 - Visual Studio-like highlighting style
1430 Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
1432 [jd]: http://jason.diamond.name/weblog/
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].
1445 - Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
1446 - [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
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 (`<% .. %>`)
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/
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
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 :-)
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][].
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/
1490 New major version is a result of vast refactoring and of many contributions.
1492 Visible new features:
1494 - Highlighting of embedded languages. Currently is implemented highlighting of
1495 Javascript and CSS inside HTML.
1496 - Bundled 5 ready-made style themes!
1498 Invisible new features:
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%.
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.
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!
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 (`<? ... ?>`).
1519 [f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
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.
1530 [xonix]: http://xonixx.blogspot.com/
1533 ## Version 3.2 consists completely of contributions:
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
1540 Many thanks to you all!
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 :-)
1549 The engine itself has got a long awaited feature of grouping keywords
1550 ("keyword", "built-in function", "literal"). No more hacks!
1552 [1]: http://roudakov.ru/
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.
1563 - Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
1564 RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
1566 - Heuristics for C++ and HTML got better.
1567 - I've implemented (at last) a correct handling of backslash escapes in C-like
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.
1575 [RibKit]: http://ribkit.sourceforge.net/
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:
1583 - in-string substitutions for Ruby -- `#{...}`
1584 - strings from from numeric symbol codes (like #XX) for Delphi
1589 A maintenance release with more tuned heuristics. Fully backwards compatible.
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
1598 Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
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"
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
1611 [mail]: mailto:Maniac@SoftwareManiacs.Org
1616 This version fixes IE breakage in previous version. My apologies to all who have
1617 already downloaded that one!
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
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)
1635 [ak]: http://anton.kovalyov.net/
1640 Version 1.0 of javascript syntax highlighter is released!
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 :-)
1646 [forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6