UNPKG

125 kBMarkdownView Raw
1## Version 11.5.1
2
3Packaging:
4
5- (chore) explicitly set `sideEffect` for css and scss files, fixes #3504
6
7
8## Version 11.5.0
9
10Themes:
11- Added `Tokyo-Night-dark` theme [Henri Vandersleyen][]
12- Added `Tokyo-Night-light` theme [Henri Vandersleyen][]
13
14New Grammars:
15
16- Added GraphQL to SUPPORTED_LANGUAGES [John Foster][]
17- Added Macaulay2 to SUPPORTED_LANGUAGES [Doug Torrance][]
18
19Grammars:
20
21- enh(ruby) lots of small Ruby cleanups/improvements [Josh Goebel][]
22- enh(objectivec) add `type` and `variable.language` scopes [Josh Goebel][]
23- enh(xml) support processing instructions (#3492) [Josh Goebel][]
24- enh(ruby ) better support multi-line IRB prompts
25- enh(bash) improved keyword `$pattern` (numbers allowed in command names) [Martin Mattel][]
26- add `meta.prompt` scope for REPL prompts, etc [Josh Goebel][]
27- fix(markdown) Handle `***Hello world***` without breaking [Josh Goebel][]
28- enh(php) add support for PHP Attributes [Wojciech Kania][]
29- fix(java) prevent false positive variable init on `else` [Josh Goebel][]
30- enh(php) named arguments [Wojciech Kania][]
31- fix(php) PHP constants [Wojciech Kania][]
32- fix(angelscript) incomplete int8, int16, int32, int64 highlighting [Melissa Geels][]
33- enh(ts) modify TypeScript-specific keywords and types list [anydonym][]
34- fix(brainfuck) fix highlighting of initial ++/-- [Christina Hanson][]
35- fix(llvm) escaping in strings and number formats [Flakebi][]
36- enh(elixir) recognize references to modules [Mark Ericksen][]
37- enh(css): add support for more properties [Nicolaos Skimas][]
38
39[Martin Mattel]: https://github.com/mmattel
40[John Foster]: https://github.com/jf990
41[Wojciech Kania]: https://github.com/wkania
42[Melissa Geels]: https://github.com/codecat
43[anydonym]: https://github.com/anydonym
44[henri Vandersleyen]: https://github.com/Vanderscycle
45[Christina Hanson]: https://github.com/LyricLy
46[Flakebi]: https://github.com/Flakebi
47[Josh Goebel]: https://github.com/joshgoebel
48[Mark Ericksen]: https://github.com/brainlid
49[Nicolaos Skimas]: https://github.com/dev-nicolaos
50[Doug Torrance]: https://github.com/d-torrance
51
52
53## Version 11.4.0
54
55New Language:
56
57- Added 3rd party Pine Script grammar to SUPPORTED_LANGUAGES [Jeylani B][]
58- Added 3rd party cURL grammar to SUPPORTED_LANGUAGES [highlightjs-curl](https://github.com/highlightjs/highlightjs-curl)
59
60Themes:
61
62- `Default` is now much closer WCAG AA (contrast) (#3402) [Josh Goebel]
63- `Dark` now meets WCAG AA (contrast) (#3402) [Josh Goebel]
64- Added `intellij-light` theme [Pegasis]
65- Added `felipec` theme [Felipe Contreras]
66
67These changes should be for the better and should not be super noticeable but if you're super picky about your colors you may want to intervene here or copy over the older themes from 11.3 or prior.
68
69Grammars:
70
71- enh(twig) update keywords list for symfony (#3453) [Matthieu Lempereur][]
72- enh(arcade) updated to ArcGIS Arcade version 1.16 [John Foster][]
73- enh(php) Left and right-side of double colon [Wojciech Kania][]
74- enh(php) add PHP constants [Wojciech Kania][]
75- enh(php) add PHP 8.1 keywords [Wojciech Kania][]
76- fix(cpp) fix `vector<<` template false positive (#3437) [Josh Goebel][]
77- enh(php) support First-class Callable Syntax (#3427) [Wojciech Kania][]
78- enh(php) support class constructor call (#3427) [Wojciech Kania][]
79- enh(php) support function invoke (#3427) [Wojciech Kania][]
80- enh(php) Switch highlighter to partially case-insensitive (#3427) [Wojciech Kania][]
81- enh(php) improve `namespace` and `use` highlighting (#3427) [Josh Goebel][]
82- enh(php) `$this` is a `variable.language` now (#3427) [Josh Goebel][]
83- enh(php) add `__COMPILER_HALT_OFFSET__` (#3427) [Josh Goebel][]
84- enh(js/ts) fix => async function title highlights (#3405) [Josh Goebel][]
85- enh(twig) update keywords list (#3415) [Matthieu Lempereur][]
86- fix(python) def, class keywords detected mid-identifier (#3381) [Josh Goebel][]
87- fix(python) Fix recognition of numeric literals followed by keywords without whitespace (#2985) [Richard Gibson][]
88- enh(swift) add SE-0290 unavailability condition (#3382) [Bradley Mackey][]
89- fix(fsharp) Highlight operators, match type names only in type annotations, support quoted identifiers, and other smaller fixes. [Melvyn Laïly][]
90- enh(java) add `sealed` and `non-sealed` keywords (#3386) [Bradley Mackey][]
91- enh(js/ts) improve `CLASS_REFERENCE` (#3411) [Josh Goebel][]
92- enh(nsis) Update defines pattern to allow `!` (#3417) [idleberg][]
93- enh(nsis) Update language strings pattern to allow `!` (#3420) [idleberg][]
94- fix(stan) Updated for Stan 2.28 and other misc. improvements (#3410)
95- enh(nsis) Update variables pattern (#3416) [idleberg][]
96- fix(clojure) Several issues with Clojure highlighting (#3397) [Björn Ebbinghaus][]
97 - fix(clojure) `comment` macro catches more than it should (#3395)
98 - fix(clojure) `$` in symbol breaks highlighting
99 - fix(clojure) Add complete regex for number detection
100 - enh(clojure) Add character mode for character literals
101 - fix(clojure) Inconsistent namespaced map highlighting
102 - enh(clojure) Add `regex` mode to regex literal
103 - fix(clojure) Remove inconsistent/broken highlighting for metadata
104 - enh(clojure) Add `punctuation` mode for commas.
105- fix(julia) Enable the `jldoctest` alias (#3432) [Fons van der Plas][]
106
107Developer Tools:
108
109- (chore) add gzip size compression report (#3400) [Bradley Mackey][]
110
111Themes:
112
113- Modified background color in css for Gradient Light and Gradient Dark themes [Samia Ali][]
114
115[John Foster]: https://github.com/jf990
116[Pegasis]: https://github.com/PegasisForever
117[Wojciech Kania]: https://github.com/wkania
118[Jeylani B]: https://github.com/jeyllani
119[Richard Gibson]: https://github.com/gibson042
120[Bradley Mackey]: https://github.com/bradleymackey
121[Melvyn Laïly]: https://github.com/mlaily
122[Björn Ebbinghaus]: https://github.com/MrEbbinghaus
123[Josh Goebel]: https://github.com/joshgoebel
124[Samia Ali]: https://github.com/samiaab1990
125[Matthieu Lempereur]: https://github.com/MrYamous
126[idleberg]: https://github.com/idleberg
127[Fons van der Plas]: https://github.com/fonsp
128[Felipe Contreras]: https://github.com/felipec
129
130## Version 11.3.1
131
132Build:
133
134- (fix) Grammar CDN modules not generated correctly. (#3363) [Josh Goebel][]
135
136[Josh Goebel]: https://github.com/joshgoebel
137
138
139## Version 11.3.0
140
141Build:
142
143- add `HighlightJS` named export (#3295) [Josh Goebel][]
144- add `.default` named export to CJS builds (#3333) [Josh Goebel][]
145
146Parser:
147
148- add first rough performance testing script (#3280) [Austin Schick][]
149- add `throwUnescapedHTML` to warn against potential HTML injection [Josh Goebel][]
150- expose `regex` helper functions via `hljs` injection [Josh Goebel][]
151 - concat
152 - lookahead
153 - either
154 - optional
155 - anyNumberOfTimes
156
157Grammars:
158
159- fix(ts) some complex types would classify as JSX (#3278) [Josh Goebel][]
160- fix(js/ts) less false positives for `class X extends Y` (#3278) [Josh Goebel][]
161- enh(css): add properties from several W3C (Candidate) Recommendations (#3308)
162- fix(js/ts) `Float32Array` highlighted incorrectly (#3353) [Josh Goebel][]
163- fix(css) single-colon psuedo-elements no longer break highlighting (#3240) [Josh Goebel][]
164- fix(scss) single-colon psuedo-elements no longer break highlighting (#3240) [Josh Goebel][]
165- enh(fsharp) rewrite most of the grammar, with many improvements [Melvyn Laïly][]
166- enh(go) better type highlighting, add `error` type [Josh Goebel][]
167- fix(js/ts) regex inside `SUBST` is no longer highlighted [Josh Goebel][]
168- fix(python) added support for unicode identifiers (#3280) [Austin Schick][]
169- enh(css/less/stylus/scss) improve consistency of function dispatch (#3301) [Josh Goebel][]
170- enh(css/less/stylus/scss) detect block comments more fully (#3301) [Josh Goebel][]
171- fix(cpp) switch is a keyword (#3312) [Josh Goebel][]
172- fix(cpp) fix `xor_eq` keyword highlighting. [Denis Kovalchuk][]
173- enh(c,cpp) highlight type modifiers as type (#3316) [Josh Goebel][]
174- enh(css/less/stylus/scss) add support for CSS Grid properties [monochromer][]
175- enh(java) add support for Java Text Block (#3322) [Teletha][]
176- enh(scala) add missing `do` and `then` keyword (#3323) [Nicolas Stucki][]
177- enh(scala) add missing `enum`, `export` and `given` keywords (#3328) [Nicolas Stucki][]
178- enh(scala) remove symbol syntax and fix quoted code syntax (#3324) [Nicolas Stucki][]
179- enh(scala) add Scala 3 `extension` soft keyword (#3326) [Nicolas Stucki][]
180- enh(scala) add Scala 3 `end` soft keyword (#3327) [Nicolas Stucki][]
181- enh(scala) add `inline` soft keyword (#3329) [Nicolas Stucki][]
182- enh(scala) add `using` soft keyword (#3330) [Nicolas Stucki][]
183- enh(fsharp) added `f#` alias (#3337) [Bahnschrift][]
184- enh(bash) added gnu core utilities (#3342) [katzeprior][]
185- enh(nsis) add new NSIS commands (#3351) [idleberg][]
186- fix(nsis) set `case_insensitive` to `true` (#3351) [idleberg][]
187- fix(css/less/stylus/scss) highlight single-colon psuedo-elements properly (#3240) [zsoltlengyelit][]
188- fix(css) add css hex color alpha support (#3360) [ierehon1905][]
189
190[Austin Schick]: https://github.com/austin-schick
191[Josh Goebel]: https://github.com/joshgoebel
192[Denis Kovalchuk]: https://github.com/deniskovalchuk
193[monochromer]: https://github.com/monochromer
194[Teletha]: https://github.com/teletha
195[Nicolas Stucki]: https://github.com/nicolasstucki
196[Bahnschrift]: https://github.com/Bahnschrift
197[Melvyn Laïly]: https://github.com/mlaily
198[katzeprior]: https://github.com/katzeprior
199[zsoltlengyelit]: github.com/zsoltlengyelit
200[Syb Wartna]:https://github.com/waarissyb
201[idleberg]: https://github.com/idleberg
202[ierehon1905]: https://github.com/ierehon1905
203
204
205## Version 11.2.0
206
207Build:
208
209- fix: run Node build CSS files thru CSS processor also (#3284) [Josh Goebel][]
210
211Parser:
212
213- fix(csharp) Fix assignments flagging as functions [Josh Goebel][]
214- fix(types) Fix some type definition issues (#3274) [Josh Goebel][]
215- fix(verilog) Fix directive handling (#3283) [Josh Goebel][]
216- fix(verilog) Fix binary number false positives on `_` (#3283) [Josh Goebel][]
217- enh(verilog) `__FILE__` and `__LINE__` constants (#3283) [Josh Goebel][]
218- enh(verilog) tighten keyword regex (#3283) [Josh Goebel][]
219
220
221Grammars:
222
223- enh(swift) Add `isolated`/`nonisolated` keywords (#3296) [Bradley Mackey][]
224
225New Languages:
226
227- Added 3rd party X# grammar to SUPPORTED_LANGUAGES [Patrick Kruselburger][]
228- Added 3rd party MKB grammar to SUPPORTED_LANGUAGES (#3297) [Dereavy][]
229
230[Josh Goebel]: https://github.com/joshgoebel
231[Patrick Kruselburger]: https://github.com/PatrickKru
232[Bradley Mackey]: https://github.com/bradleymackey
233[Dereavy]: https://github.com/dereavy
234
235
236## Version 11.1.0
237
238Grammars:
239
240- fix(csharp) add missing `catch` keyword (#3251) [Konrad Rudolph][]
241- add additional keywords to csp.js (#3244) [Elijah Conners][]
242- feat(css) handle css variables syntax (#3239) [Thanos Karagiannis][]
243- fix(markdown) Images with empty alt or links with empty text (#3233) [Josh Goebel][]
244- enh(powershell) added `pwsh` alias (#3236) [tebeco][]
245- fix(r) fix bug highlighting examples in doc comments [Konrad Rudolph][]
246- fix(python) identifiers starting with underscore not highlighted (#3221) [Antoine Lambert][]
247- enh(clojure) added `edn` alias (#3213) [Stel Abrego][]
248- enh(elixir) much improved regular expression sigil support (#3207) [Josh Goebel][]
249- enh(elixir) updated list of keywords (#3212) [Angelika Tyborska][]
250- fix(elixir) fixed number detection when numbers start with a zero (#3212) [Angelika Tyborska][]
251- fix(ps1) Flag highlighted incorrectly (#3167) [Pankaj Patil][]
252- fix(latex) Allow wider syntax for magic comments (#3243) [Benedikt Wilde][]
253- fix(js/ts) Constants may include numbers [Josh Goebel][]
254
255[Stel Abrego]: https://github.com/stelcodes
256[Josh Goebel]: https://github.com/joshgoebel
257[Antoine Lambert]: https://github.com/anlambert
258[Elijah Conners]: https://github.com/elijahepepe
259[Angelika Tyborska]: https://github.com/angelikatyborska
260[Konrad Rudolph]: https://github.com/klmr
261[tebeco]: https://github.com/tebeco
262[Pankaj Patil]: https://github.com/patil2099
263[Benedikt Wilde]: https://github.com/schtandard
264[Thanos Karagiannis]: https://github.com/thanoskrg
265
266
267## Version 11.0.0
268
269**This is a major release.** As such it contains breaking changes which may require action from users. Please read [VERSION_11_UPGRADE.md](https://github.com/highlightjs/highlight.js/blob/main/VERSION_11_UPGRADE.md) for a detailed summary of all breaking changes.
270
271### Potentially breaking changes
272
273Unless otherwise attributed items below are thanks to [Josh Goebel][] (ref: [#2558](https://github.com/highlightjs/highlight.js/issues/2558)).
274
275*The below list should only be considered to be a high-level summary.*
276
277Deprecations / Removals / API Changes:
278
279- `initHighlighting()` and `initHighlightingOnLoad()` deprecated. **Use `highlightAll()`.**
280- `highlightBlock(el)` deprecated. **Use `highlightElement(el)`**
281- `before:highlightBlock` & `after:highlightBlock` callbacks deprecated. **Use equivalent `highlightElement` callbacks.**
282- `highlight(languageName, code, ignoreIllegals, continuation)` signature deprecated. **Use `highlight(code, {language, ignoreIllegals})`.**
283- Deprecated `highlight()` signature no longer supports `continuation` argument.
284- `tabReplace` option removed. Consider a plugin.
285- `useBR` option removed. Consider a plugin or CSS.
286- `requireLanguage()` removed. **Use `getLanguage()`.**
287- `endSameAsBegin` mode key removed. **Use `hljs.END_SAME_AS_BEGIN`.**
288- `lexemes` mode key removed. **Use `keywords.$pattern`.**
289- The return values/keys of some APIs have changed slightly.
290
291Security:
292
293- HTML auto-passthru has been removed. Consider a plugin.
294- Unescaped HTML is now stripped (for security). A warning is logged to the console. (#3057) [Josh Goebel][]
295
296Themes:
297
298- The default padding of all themes increases (0.5em => 1em).
299- `schoolbook` has been updated to remove the lined background.
300- `github` updated to better match modern GitHub (#1616) [Jan Pilzer][]
301- `github-gist` has been removed in favor of `github` [Jan Pilzer][]
302- Base16 named themes have been updated to their "canonical" versions
303- `nnfx` updated for v11 xml styles and improved css support
304
305Language Grammars:
306
307- Default CDN build drops support for several languages.
308- Some language grammar files have been removed.
309- Some redundant language aliases have been removed.
310
311### Other changes
312
313Parser:
314
315- enh(vala) improve language detection for Vala (#3195) [Konrad Rudolph][]
316- enh(r) add support for operators, fix number highlighting bug (#3194, #3195) [Konrad Rudolph][]
317- enh(parser) add `beginScope` and `endScope` to allow separate scoping begin and end (#3159) [Josh Goebel][]
318- enh(parsed) `endScope` now supports multi-class matchers as well (#3159) [Josh Goebel][]
319- enh(parser) `highlightElement` now always tags blocks with a consistent `language-[name]` class [Josh Goebel][]
320 - subLanguage `span` tags now also always have the `language-` prefix added
321- enh(parser) support multi-class matchers (#3081) [Josh Goebel][]
322- enh(parser) Detect comments based on english like text, rather than keyword list [Josh Goebel][]
323- adds `title.class.inherited` sub-scope support [Josh Goebel][]
324- adds `title.class` sub-scope support (#3078) [Josh Goebel][]
325- adds `title.function` sub-scope support (#3078) [Josh Goebel][]
326- adds `beforeMatch` compiler extension (#3078) [Josh Goebel][]
327- adds `cssSelector ` configuration option (#3180) [James Edington][]
328
329Grammars:
330
331- enh(all) `.meta-keyword` => `.meta .keyword` (nested scopes) (#3167) [Josh Goebel][]
332- enh(all) `.meta-string` => `.meta .string` (nested scopes) (#3167) [Josh Goebel][]
333- enh(swift) add `actor` keyword (#3171) [Bradley Mackey][]
334- enh(crystal) highlight variables (#3154) [Josh Goebel][]
335- fix(ruby) Heredoc without interpolation (#3154) [Josh Goebel][]
336- enh(swift) add `@resultBuilder` attribute (#3151) [Bradley Mackey][]
337- enh(processing) added `pde` alias (#3142) [Dylan McBean][]
338- enh(thrift) Use proper scope for types [Josh Goebel][]
339- enh(java) Simplified class-like matcher (#3078) [Josh Goebel][]
340- enh(cpp) Simplified class-like matcher (#3078) [Josh Goebel][]
341- enh(rust) Simplified class-like matcher (#3078) [Josh Goebel][]
342- enh(actionscript) Simplified class-like matcher (#3078) [Josh Goebel][]
343- enh(arcade) `function.title` => `title.function` (#3078) [Josh Goebel][]
344- enh(autoit) `function.title` => `title.function` (#3078) [Josh Goebel][]
345- enh(c) `function.title` => `title.function` (#3078) [Josh Goebel][]
346- enh(rust) support function invoke and `impl` (#3078) [Josh Goebel][]
347- chore(properties) disable auto-detection #3102 [Josh Goebel][]
348- fix(properties) fix incorrect handling of non-alphanumeric keys #3102 [Egor Rogov][]
349- enh(java) support functions with nested template types (#2641) [Josh Goebel][]
350- enh(java) highlight types and literals separate from keywords (#3074) [Josh Goebel][]
351- enh(shell) add alias ShellSession [Ryan Mulligan][]
352- enh(shell) consider one space after prompt as part of prompt [Ryan Mulligan][]
353- fix(nginx) fix bug with $ and @ variables [Josh Goebel][]
354- enh(nginx) improving highlighting of some sections [Josh Goebel][]
355- fix(vim) variable names may not be zero length [Josh Goebel][]
356- enh(sqf) Updated keywords to Arma 3 v2.02 (#3084) [R3voA3][]
357- enh(sqf) Refactored function regex to match CBA component func naming scheme (#3181) [JonBons][]
358- enh(nim) highlight types properly (not as built-ins) [Josh Goebel][]
359- (chore) throttle deprecation messages (#3092) [Mihkel Eidast][]
360- enh(c) Update keyword list for C11/C18 (#3010) [Josh Goebel][]
361- enh(parser) highlight object properties (#3072) [Josh Goebel][]
362- enh(javascript/typescript) highlight object properties (#3072) [Josh Goebel][]
363- enh(haskell) add support for BinaryLiterals (#3150) [Martijn Bastiaan][]
364- enh(haskell) add support for NumericUnderscores (#3150) [Martijn Bastiaan][]
365- enh(haskell) add support for HexFloatLiterals (#3150) [Martijn Bastiaan][]
366- fix(c,cpp) allow declaring multiple functions and (for C++) parenthetical initializers (#3155) [Erik Demaine][]
367- enh(rust) highlight raw byte string literals correctly (#3173) [Nico Abram][]
368- fix(cpp) fix detection of common functions that are function templates (#3178) [Kris van Rens][]
369- enh(cpp) add various keywords and commonly used types for hinting (#3178) [Kris van Rens][]
370- enh(cpp) cleanup reserved keywords and type lists (#3178) [Kris van Rens][]
371
372New Languages:
373
374- Added 3rd party Glimmer grammar to SUPPORTED_LANGUAGES(#3123) [NullVoxPopuli][]
375- Added Wren support [Josh Goebel][]
376- Added NestedText support [Josh Goebel][]
377- Added WebAssembly language grammar [Josh Goebel][]
378- Added 3rd party Splunk search processing language grammar to SUPPORTED_LANGUAGES (#3090) [Wei Su][]
379- Added 3rd party ZenScript grammar to SUPPORTED_LANGUAGES(#3106) [Jared Luboff][]
380- Added 3rd party Papyrus grammar to SUPPORTED_LANGUAGES(#3125) [Mike Watling][]
381
382Theme Improvements:
383
384- Added all official Base16 themes (over 150 new themes) [Josh Goebel][]
385- chore(themes) remove `builtin-name` CSS class (#3119) [Josh Goebel][]
386- chore(theme) Update GitHub theme css to match GitHub's current styling (#1616) [Jan Pilzer][]
387- chore(theme) Update Srcery theme css to match its Emacs implementation [Chen Bin][]
388
389New Themes:
390
391- DeviBeans Dark by [Farzad Sadeghi][]
392- GitHub Dark and GitHub Dark Dimmed [Jan Pilzer][]
393
394Dev Improvements:
395
396- (chore) greatly improve match scope visualization in dev tool (#3126) [NullVoxPopuli][]
397- (fix) CSS used for devtool needed an adjustment to fix too wide of content (#3133) [NullVoxPopuli][]
398
399[Farzad Sadeghi]: https://github.com/terminaldweller
400[Martijn Bastiaan]: https://github.com/martijnbastiaan
401[Bradley Mackey]: https://github.com/bradleymackey
402[Dylan McBean]: https://github.com/DylanMcBean
403[Josh Goebel]: https://github.com/joshgoebel
404[Ryan Mulligan]: https://github.com/ryantm
405[R3voA3]: https://github.com/R3voA3
406[JonBons]: https://github.com/JonBons
407[Wei Su]: https://github.com/swsoyee
408[Jared Luboff]: https://github.com/jaredlll08
409[NullVoxPopuli]: https://github.com/NullVoxPopuli
410[Mike Watling]: https://github.com/Pickysaurus
411[Nico Abram]: https://github.com/nico-abram
412[James Edington]: http://www.ishygddt.xyz/
413[Jan Pilzer]: https://github.com/Hirse
414[Kris van Rens]: https://github.com/krisvanrens
415
416
417## Version 10.7.1
418
419- fix(parser) Resolves issues with TypeScript types [Josh Goebel][]
420
421### Version 10.7.0
422
423Parser:
424
425- keywords now have a maximum # of times they provide relevance (#3129) [Josh Goebel][]
426- enh(api) add `unregisterLanguage` method (#3009) [Antoine du Hamel][]
427- enh: Make alias registration case insensitive (#3026) [David Ostrovsky][]
428- fix(parser) `highlightAll()` now works if the library is lazy loaded [Josh Goebel][]
429
430New Languages:
431
432- Added 3rd party RiScript grammar to SUPPORTED_LANGUAGES (#2988) [John C][]
433- Added 3rd party HLSL grammar to SUPPORTED_LANGUAGES (#3002) [Stef Levesque][]
434- Added 3rd party Q# grammar to SUPPORTED_LANGUAGES(#3006) [Vyron Vasileiadis][]
435
436Language grammar improvements:
437
438- enh(js/ts) class references (CamelCase) are highlighted (#3169) [Josh Goebel][]
439- enh(js/ts) constants (ALL_CAPS) are highlighted (#3169) [Josh Goebel][]
440- enh(js/ts) highlights function invokation (#3169) [Josh Goebel][]
441- enh(js/ts) functions assigned to variables are now highlighted `title.function` (#3169) [Josh Goebel][]
442- enh(parser) smarter detection of comments (#2827) [Josh Goebel][]
443- fix(python) allow keywords immediately following numbers (#2985) [Josh Goebel][]
444- fix(xml) char immediately following tag close mis-highlighted (#3044) [Josh Goebel][]
445- fix(ruby) fix `defined?()` mis-highlighted as `def` (#3025) [Josh Goebel][]
446- fix(c) comments after `#include <str>` blocks (#3041) [Josh Goebel][]
447- fix(cpp) comments after `#include <str>` blocks (#3041) [Josh Goebel][]
448- enh(cpp) Highlight all function dispatches (#3005) [Josh Goebel][]
449- enh(python) support type hints and better type support (#2972) [Josh Goebel][]
450- enh(gml) Add additional GML 2.3 keywords (#2984) [xDGameStudios][]
451- fix(cpp) constructor support for initializers (#3001) [Josh Goebel][]
452- enh(php) Add `trait` to class-like naming patterns (#2997) [Ayesh][]
453- enh(php) Add `Stringable`, `UnhandledMatchError`, and `WeakMap` classes/interfaces (#2997) [Ayesh][]
454- enh(php) Add `mixed` to list of keywords (#2997) [Ayesh][]
455- enh(php) Add support binary, octal, hex and scientific numerals with underscore separator support (#2997) [Ayesh][]
456- enh(php) Add support for Enums (#3004) [Ayesh][]
457- enh(ecmascript) Add built-in types [Vaibhav Chanana][]
458- enh(kotlin) Add `kts` as an alias for Kotlin (#3021) [Vaibhav Chanana][]
459- enh(css) Add `font-smoothing` to attributes list for CSS (#3027) [AndyKIron][]
460- fix(python) Highlight `print` and `exec` as a builtin (#1468) [Samuel Colvin][]
461- fix(csharp) Fix unit being highlighted instead of uint (#3046) [Spacehamster][]
462- enh(swift) add async/await keywords (#3048) [Bradley Mackey][]
463
464Deprecations:
465
466- `highlight(languageName, code, ignoreIllegals, continuation)` deprecated as of 10.7
467 - Please use the newer API which takes `code` and then accepts options as an object
468 - IE: `highlight(code, {language, ignoreIllegals})`
469 - `continuation` is for internal use only and no longer supported
470- `highlightBlock(el)` deprecated as of 10.7.
471 - Please use `highlightElement(el)` instead.
472 - Plugin callbacks renamed `before/after:highlightBlock` => `before/after:highlightElement`
473 - Plugin callback now takes `el` vs `block` attribute
474 - The old API and callbacks will be supported until v12.
475
476
477[Stef Levesque]: https://github.com/stef-levesque
478[Josh Goebel]: https://github.com/joshgoebel
479[John Cheung]: https://github.com/Real-John-Cheung
480[xDGameStudios]: https://github.com/xDGameStudios
481[Ayesh]: https://github.com/Ayesh
482[Vyron Vasileiadis]: https://github.com/fedonman
483[Antoine du Hamel]: https://github.com/aduh95
484[Vaibhav Chanana]: https://github.com/il3ven
485[David Ostrovsky]: https://github.com/davido
486[AndyKIron]: https://github.com/AndyKIron
487[Samuel Colvin]: https://github.com/samuelcolvin
488
489## Version 10.6.0
490
491New Languages:
492
493- Added 3rd party Laravel Blade grammar to SUPPORTED_LANGUAGES (#2944) [Michael Newton][]
494
495Language grammar improvements:
496
497- enh(scala) fix triple quoted strings (#2987) [Josh Goebel][]
498- enh(perl) Much improved regex detection (#2960) [Josh Goebel][]
499- enh(swift) Improved highlighting for operator and precedencegroup declarations. (#2938) [Steven Van Impe][]
500- fix(xml) Support single-character namespaces. (#2957) [Jan Pilzer][]
501- enh(ruby) Support for character literals (#2950) [Vaibhav Chanana][]
502- enh(powershell) Add three VALID_VERBS and update the reference link (#2981) [davidhcefx][]
503- fix(php) Highlighting of anonymous functions without {} block [Vaibhav Chanana][]
504
505Grammar Deprecations:
506
507- Deprecate `c-like`, though you should not be using it directly anyways.
508 - will be removed in v11.
509- `c` and `cpp` are now wholly unique grammars that will diverge over time
510
511Parser:
512
513- new simpler `highlightAll()` API (#2962) [Josh Goebel][]
514 - this should be a drop-in replacement for both `initHighlighting()` and `initHighlightingOnLoad()`
515 - note: it does not prevent itself from being called multiple times (as the previous API did)
516- `beginKeyword` no longer bestows double relevance (#2953) [Josh Goebel][]
517- allow `keywords` to be an array of strings [Josh Goebel][]
518- add `modes.MATCH_NOTHING_RE` that will never match
519 - This can be used with `end` to hold a mode open (it must then be ended with `endsParent` in one of it's children modes) [Josh Goebel][]
520
521Deprecations:
522
523- `initHighlighting()` and `initHighlightingOnLoad()` deprecated.
524 - Please use the new `highlightAll()` API instead.
525 - Deprecated as of 10.6.
526 - These will both be aliases to `highlightAll` in v11.
527
528[Michael Newton]: https://github.com/miken32
529[Steven Van Impe]: https://github.com/svanimpe/
530[Josh Goebel]: https://github.com/joshgoebel
531[Vaibhav Chanana]: https://github.com/il3ven
532[davidhcefx]: https://github.com/davidhcefx
533[Jan Pilzer]: https://github.com/Hirse
534
535
536## Version 10.5.0
537
538Build:
539
540- Add Subresource Integrity digest lists to `cdn-assets` [Josh Goebel][]
541- R and VB.net grammars now ship in our default build (`:common`) [Josh Goebel][]
542
543Parser:
544
545- add `match` as sugar for simple `begin` only matches (#2834) [Josh Goebel][]
546- allow `illegal` to also be an array of regex (#2834) [Josh Goebel][]
547- add `compilerExtensions` allows grammers to influence mode compilation (#2834) [Josh Goebel][]
548 - some internal pieces are now simple compiler extensions
549
550New Languages:
551
552- Added 3rd party Red & Rebol grammar to SUPPORTED_LANGUAGES (#2872) [Oldes Huhuman][]
553
554Language grammar improvements:
555
556- enh: CSS grammars now share common foundation, keywords, etc. (#2937) [Josh Goebel][]
557 - enh(css): many consistency improvements
558 - enh(scss): many consistency improvements
559 - enh(stylus): many consistency improvements
560 - enh(less): many consistency improvements
561- enh(cpp): Support C++ pack expansion in function arguments [Martin Dørum][]
562- enh(makefile): Add `make` as an alias (#2883) [tripleee][]
563- enh(swift) Improved grammar for strings (#2819) [Steven Van Impe][]
564- enh(swift) Grammar improvements (#2908) [Steven Van Impe][]
565 - New grammar for keywords and built-ins
566 - Added support for operator highlighting
567 - New grammar for attributes
568 - Added support for quoted identifiers, implicit parameters, and property wrapper projections
569 - Support for more complex expressions in string interpolation
570- enh(swift) Improved highlighting for types and generic arguments (#2920) [Steven Van Impe][]
571- enh(swift) Improved highlighting for functions, initializers, and subscripts (#2930) [Steven Van Impe][]
572- fix(http) avoid recursive sublanguage and tighten rules (#2893) [Josh Goebel][]
573- fix(asciidoc): Handle section titles level 5 (#2868) [Vaibhav Chanana][]
574- fix(asciidoc): Support unconstrained emphasis syntax (#2869) [Guillaume Grossetie][]
575- enh(scheme) Allow `[]` for argument lists (#2913) [Josh Goebel][]
576- enh(vb) Large rework of VB.net grammar (#2808) [Jan Pilzer][]
577 - Adds support for Date data types, see (#2775)
578 - Adds support for `REM` comments and fixes `'''` doctags (#2875) (#2851)
579 - Custom number mode to support VB.net specific number flags
580 - Hex (&H), Oct (&O), and binary (&B) prefixes
581 - Separating digits with underscores: 90_946
582 - Type suffixes: 123UI (unsigned integer)
583 - Improves directives detection and adds support for `Enable`, `Disable`, and `Then` keywords
584 - Adds more markup tests
585- fix(javascript) Empty block-comments break highlighting (#2896) [Jan Pilzer][]
586- enh(dart) Fix empty block-comments from breaking highlighting (#2898) [Jan Pilzer][]
587- enh(dart) Fix empty doc-comment eating next line [Jan Pilzer][]
588- enh(asciidoc) Adds support for unconstrained bold syntax (#2869) [Guillaume Grossetie][]
589- enh(c-like) Incorrect highlighting for interger suffix (#2919) [Vaibhav Chanana][]
590- enh(properties) Correctly handle trailing backslash (#2922) [Vaibhav Chanana][]
591
592Recent Deprecations:
593
594- HTML "merging" is deprecated. (#2873) [Josh Goebel][]
595 - HTML inside `<pre>` blocks will no longer be magically merged back into the
596 highlighted code's HTML result - it will instead be silently removed.
597 - Consider [using a plugin][htmlPlugin] if you truly need this functionality
598 - Deprecated as of 10.5.0 - will be removed in v11.
599- `tabReplace` option deprecated. (#2873) [Josh Goebel][]
600 - **Consider:** Use the CSS `tab-size` property, or simply pre-process the
601 text yourself before rendering the initial HTML
602 - otherwise, [use a plugin][tabPlugin]
603 - Deprecated as of 10.5.0 - will be removed in v11.
604- `useBR` option deprecated. (#2559) [Josh Goebel][]
605 - **Recommended:** You really should just use the HTML `<pre>` tag
606 - or perhaps try CSS `white-space: pre;`
607 - otherwise, [use a plugin][brPlugin]
608 - Deprecated as of 10.3.0 - will be removed in v11.
609- `requireLanguage` API is deprecated, will be removed in v11.0.
610 - **Consider:** Use `getLanguage` (with custom error handling) or built-time dependencies.
611 - See [Library API](https://highlightjs.readthedocs.io/en/latest/api.html#requirelanguage-name) for more information.
612 - Deprecated as of 10.4.0 - will be removed in v11.
613
614[htmlPlugin]: https://github.com/highlightjs/highlight.js/issues/2889
615[tabPlugin]: https://github.com/highlightjs/highlight.js/issues/2874
616[brPlugin]: https://github.com/highlightjs/highlight.js/issues/2559
617
618[Martin Dørum]: https://github.com/mortie
619[Jan Pilzer]: https://github.com/Hirse
620[Oldes Huhuman]: https://github.com/Oldes
621[Josh Goebel]: https://github.com/joshgoebel
622[tripleee]: https://github.com/tripleee
623[Steven Van Impe]: https://github.com/svanimpe/
624[Vaibhav Chanana]: https://github.com/il3ven
625[Guillaume Grossetie]: https://github.com/mogztter
626
627
628## Version 10.4.1 (tentative)
629
630Security
631
632- (fix) Exponential backtracking fixes for: [Josh Goebel][]
633 - cpp
634 - handlebars
635 - gams
636 - perl
637 - jboss-cli
638 - r
639 - erlang-repl
640 - powershell
641 - routeros
642- (fix) Polynomial backtracking fixes for: [Josh Goebel][]
643 - asciidoc
644 - reasonml
645 - latex
646 - kotlin
647 - gcode
648 - d
649 - aspectj
650 - moonscript
651 - coffeescript/livescript
652 - csharp
653 - scilab
654 - crystal
655 - elixir
656 - basic
657 - ebnf
658 - ruby
659 - fortran/irpf90
660 - livecodeserver
661 - yaml
662 - x86asm
663 - dsconfig
664 - markdown
665 - ruleslanguage
666 - xquery
667 - sqf
668
669Very grateful to [Michael Schmidt][] for all the help.
670
671[Michael Schmidt]: https://github.com/RunDevelopment
672[Josh Goebel]: https://github.com/joshgoebel
673
674
675## Version 10.4.0
676
677A largish release with many improvements and fixes from quite a few different contributors. Enjoy!
678
679Deprecations:
680
681- (chore) `requireLanguage` is deprecated.
682 - Prefer `getLanguage` (with custom error handling) or built-time dependencies.
683 - See [Library API](https://highlightjs.readthedocs.io/en/latest/api.html#requirelanguage-name) for more information.
684
685Parser:
686
687- enh(parser) use negative look-ahead for `beginKeywords` support (#2813) [Josh Goebel][]
688- enh(grammars) allow `classNameAliases` for more complex grammars [Josh Goebel][]
689- fix(vue): Language name now appears in CSS class (#2807) [Michael Rush][]
690- (chore) Clean up all regexs to be UTF-8 compliant/ready (#2759) [Josh Goebel][]
691- enh(grammars) allow `classNameAliases` for more complex grammars [Josh Goebel][]
692
693New Languages:
694
695- Added 3rd party Chapel grammar to SUPPORTED_LANGUAGES (#2806) [Brad Chamberlain][]
696- Added BBCode grammar to SUPPORTED_LANGUAGES (#2867) [Paul Reid][]
697- enh(javascript) Added `node-repl` for Node.js REPL sessions (#2792) [Marat Nagayev][]
698
699Language Improvements:
700
701- enh(shell) Recognize prompts which contain tilde `~` (#2859) [Guillaume Grossetie][]
702- enh(shell) Add support for multiline commands with line continuation `\` (#2861) [Guillaume Grossetie][]
703- enh(autodetect) Over 30+ improvements to auto-detect (#2745) [Josh Goebel][]
704 - 4-5% improvement in auto-detect against large sample set
705 - properties, angelscript, lsl, javascript, n1ql, ocaml, ruby
706 - protobuf, hy, scheme, crystal, yaml, r, vbscript, groovy
707 - python, java, php, lisp, matlab, clojure, csharp, css
708- fix(r) fixed keywords not properly spaced (#2852) [Josh Goebel][]
709- fix(javascript) fix potential catastrophic backtracking (#2852) [Josh Goebel][]
710- fix(livescript) fix potential catastrophic backtracking (#2852) [Josh Goebel][]
711- bug(xml) XML grammar was far too imprecise/fuzzy [Josh Goebel][]
712- enh(xml) Improve precision to prevent false auto-detect positives [Josh Goebel][]
713- fix(js/ts) Prevent for/while/if/switch from falsly matching as functions (#2803) [Josh Goebel][]
714- enh(julia) Update keyword lists for Julia 1.x (#2781) [Fredrik Ekre][]
715- enh(python) Match numeric literals per the language reference [Richard Gibson][]
716- enh(ruby) Match numeric literals per language documentation [Richard Gibson][]
717- enh(javascript) Match numeric literals per ECMA-262 spec [Richard Gibson][]
718- enh(java) Match numeric literals per Java Language Specification [Richard Gibson][]
719- enh(swift) Match numeric literals per language reference [Richard Gibson][]
720- enh(php) highlight variables (#2785) [Taufik Nurrohman][]
721- fix(python) Handle comments on decorators (#2804) [Jonathan Sharpe][]
722- enh(diff) improve highlighting of diff for git patches [Florian Bezdeka][]
723- fix(llvm) lots of small improvements and fixes (#2830) [Josh Goebel][]
724- enh(mathematica) Rework entire implementation [Patrick Scheibe][]
725 - Correct matching of the many variations of Mathematica's numbers
726 - Matching of named-characters aka special symbols like `\[Gamma]`
727 - Updated list of version 12.1 built-in symbols
728 - Matching of patterns, slots, message-names and braces
729- fix(swift) Handle keywords that start with `#` [Marcus Ortiz][]
730- enh(swift) Match `some` keyword [Marcus Ortiz][]
731- enh(swift) Match `@main` attribute [Marcus Ortiz][]
732
733Dev Improvements:
734
735- chore(dev) add theme picker to the tools/developer tool (#2770) [Josh Goebel][]
736- fix(dev) the Vue.js plugin no longer throws an exception when hljs is not in the global namespace [Kyle Brown][]
737
738New themes:
739
740- *StackOverflow Dark* by [Jan Pilzer][]
741- *StackOverflow Light* by [Jan Pilzer][]
742
743[Guillaume Grossetie]: https://github.com/mogztter
744[Brad Chamberlain]: https://github.com/bradcray
745[Marat Nagayev]: https://github.com/nagayev
746[Fredrik Ekre]: https://github.com/fredrikekre
747[Richard Gibson]: https://github.com/gibson042
748[Josh Goebel]: https://github.com/joshgoebel
749[Taufik Nurrohman]: https://github.com/taufik-nurrohman
750[Jan Pilzer]: https://github.com/Hirse
751[Jonathan Sharpe]: https://github.com/textbook
752[Michael Rush]: https://github.com/rushimusmaximus
753[Patrick Scheibe]: https://github.com/halirutan
754[Kyle Brown]: https://github.com/kylebrown9
755[Marcus Ortiz]: https://github.com/mportiz08
756[Paul Reid]: https://github.com/RedGuy12
757
758
759## Version 10.3.1
760
761Prior version let some look-behind regex sneak in, which does not work
762yet on Safari. This release removes those incompatible regexes.
763
764Fix:
765
766- fix(Safari) Remove currently unsupported look-behind regex ([fix][187e7cfc]) [Josh Goebel][]
767
768[Josh Goebel]: https://github.com/joshgoebel
769[187e7cfc]: https://github.com/highlightjs/highlight.js/commit/187e7cfcb06277ce13b5f35fb6c37ab7a7b46de9
770
771
772## Version 10.3.0
773
774Language Improvements:
775
776- enh(latex) Complete ground up rewrite of LaTex grammar [schtandard][]
777- fix(cpp) implement backslash line continuation in comments (#2757) [Konrad Rudolph][]
778- fix(cpp) improve parsing issues with templates (#2752) [Josh Goebel][]
779- enh(cpp) add support for `enum (struct|class)` and `union` (#2752) [Josh Goebel][]
780- fix(js/ts) Fix nesting of `{}` inside template literals SUBST expression (#2748) [Josh Goebel][]
781- enh(js/ts) Highlight class methods as functions (#2727) [Josh Goebel][]
782- fix(js/ts) `constructor` is now highlighted as a function title (not keyword) (#2727) [Josh Goebel][]
783- fix(c-like) preprocessor directives not detected after else (#2738) [Josh Goebel][]
784- enh(javascript) allow `#` for private class fields (#2701) [Chris Krycho][]
785- fix(js) prevent runaway regex (#2746) [Josh Goebel][]
786- fix(bash) enh(bash) allow nested params (#2731) [Josh Goebel][]
787- fix(python) Fix highlighting of keywords and strings (#2713, #2715) [Konrad Rudolph][]
788- fix(fsharp) Prevent `(*)` from being detected as a multi-line comment [Josh Goebel][]
789- enh(bash) add support for heredocs (#2684) [Josh Goebel][]
790- enh(r) major overhaul of the R language grammar (and fix a few bugs) (#2680) [Konrad Rudolph][]
791- enh(csharp) Add all C# 9 keywords, and other missing keywords (#2679) [David Pine][]
792- enh(objectivec) Add `objective-c++` and `obj-c++` aliases for Objective-C [Josh Goebel][]
793- enh(java) Add support for `record` (#2685) [Josh Goebel][]
794- fix(csharp) prevent modifier keywords wrongly flagged as `title` (#2683) [Josh Goebel][]
795- enh(axapta) Update keyword list for Axapta (X++) (#2686) [Ryan Jonasson][]
796- fix(fortran) FORTRAN 77-style comments (#2677) [Philipp Engel][]
797- fix(javascript) Comments inside params should be highlighted (#2702) [Josh Goebel][]
798- fix(scala) Comments inside class header should be highlighted (#1559) [Josh Goebel][]
799- fix(c-like) Correctly highlight modifiers (`final`) in class declaration (#2696) [Josh Goebel][]
800- enh(angelscript) Improve heredocs, numbers, metadata blocks (#2724) [Melissa Geels][]
801- enh(javascript) Implement Numeric Separators (#2617) [Antoine du Hamel][]
802- enh(typescript) TypeScript also gains support for numeric separators (#2617) [Antoine du Hamel][]
803- enh(php) Add support for PHP 8 `match` keyword and add `php8` as an alias (#2733) [Ayesh Karunaratne][]
804- fix(handlebars) Support if else keyboards (#2659) [Tom Wallace][]
805
806Deprecations:
807
808- `useBR` option deprecated and will be removed in v11.0. (#2559) [Josh Goebel][]
809
810[Chris Krycho]: https://github.com/chriskrycho
811[David Pine]: https://github.com/IEvangelist
812
813
814[Ryan Jonasson]: https://github.com/ryanjonasson
815[Philipp Engel]: https://github.com/interkosmos
816[Konrad Rudolph]: https://github.com/klmr
817[Melissa Geels]: https://github.com/codecat
818[Antoine du Hamel]: https://github.com/aduh95
819[Ayesh Karunaratne]: https://github.com/Ayesh
820[Tom Wallace]: https://github.com/thomasmichaelwallace
821[schtandard]: https://github.com/schtandard
822
823
824## Version 10.2.1
825
826 Parser Engine:
827
828 - fix(parser) complete fix for resuming matches from same index (#2678) [Josh Goebel][]
829
830 [Josh Goebel]: https://github.com/yyyc514
831
832
833## Version 10.2.0
834
835Parser Engine:
836
837- (fix) When ignoring a potential match highlighting can terminate early (#2649) [Josh Goebel][]
838
839
840New themes:
841
842- *Gradient Light* by [Samia Ali]()
843
844Deprecations:
845
846- `fixMarkup` is now deprecated and will be removed in v11.0. (#2534) [Josh Goebel][]
847
848Big picture:
849
850- Add simple Vue plugin for basic use cases (#2544) [Josh Goebel][]
851
852Language Improvements:
853
854- fix(bash) Fewer false positives for keywords in arguments (#2669) [sirosen][]
855- fix(js) Prevent long series of /////// from causing freezes (#2656) [Josh Goebel][]
856- enh(csharp) Add `init` and `record` keywords for C# 9.0 (#2660) [Youssef Victor][]
857- enh(matlab) Add new R2019b `arguments` keyword and fix `enumeration` keyword (#2619) [Andrew Janke][]
858- fix(kotlin) Remove very old keywords and update example code (#2623) [kageru][]
859- fix(night) Prevent object prototypes method values from being returned in `getLanguage` (#2636) [night][]
860- enh(java) Add support for `enum`, which will identify as a `class` now (#2643) [ezksd][]
861- enh(nsis) Add support for NSIS 3.06 commands (#2653) [idleberg][]
862- enh(php) detect newer more flexible HEREdoc syntax (#2658) [eytienne][]
863
864[Youssef Victor]: https://github.com/Youssef1313
865[Josh Goebel]: https://github.com/joshgoebel
866[Andrew Janke]: https://github.com/apjanke
867[Samia Ali]: https://github.com/samiaab1990
868[kageru]: https://github.com/kageru
869[night]: https://github.com/night
870[ezksd]: https://github.com/ezksd
871[idleberg]: https://github.com/idleberg
872[eytienne]: https://github.com/eytienne
873[sirosen]: https://github.com/sirosen
874
875## Version 10.1.1
876
877Fixes:
878
879- Resolve issue on Node 6 due to dangling comma (#2608) [Edwin Hoogerbeets][]
880- Resolve `index.d.ts is not a module` error (#2603) [Josh Goebel][]
881
882[Josh Goebel]: https://github.com/joshgoebel
883[Edwin Hoogerbeets]: https://github.com/ehoogerbeets
884
885
886## Version 10.1.0
887
888New themes:
889
890- *NNFX* and *NNFX-dark* by [Jim Mason][]
891- *lioshi* by [lioshi][]
892
893Parser Engine:
894
895- (parser) Now escapes quotes in text content when escaping HTML (#2564) [Josh Goebel][]
896- (parser) Adds `keywords.$pattern` key to grammar definitions (#2519) [Josh Goebel][]
897- (parser) Adds SHEBANG utility mode [Josh Goebel][]
898- (parser) Adds `registerAliases` method (#2540) [Taufik Nurrohman][]
899- (enh) Added `on:begin` callback for modes (#2261) [Josh Goebel][]
900- (enh) Added `on:end` callback for modes (#2261) [Josh Goebel][]
901- (enh) Added ability to programatically ignore begin and end matches (#2261) [Josh Goebel][]
902- (enh) Added `END_SAME_AS_BEGIN` mode to replace `endSameAsBegin` parser attribute (#2261) [Josh Goebel][]
903- (fix) `fixMarkup` would rarely destroy markup when `useBR` was enabled (#2532) [Josh Goebel][]
904
905Deprecations:
906
907- `htmlbars` grammar is now deprecated. Use `handlebars` instead. (#2344) [Nils Knappmeier][]
908- when using `highlightBlock` `result.re` deprecated. Use `result.relevance` instead. (#2552) [Josh Goebel][]
909- ditto for `result.second_best.re` => `result.second_best.relevance` (#2552)
910- `lexemes` is now deprecated in favor of `keywords.$pattern` key (#2519) [Josh Goebel][]
911- `endSameAsBegin` is now deprecated. (#2261) [Josh Goebel][]
912
913Language Improvements:
914
915- fix(groovy) strings are not allowed inside ternary clauses (#2217) [Josh Goebel][]
916- fix(typescript) add `readonly` keyword (#2562) [Martin (Lhoerion)][]
917- fix(javascript) fix regex inside parens after a non-regex (#2530) [Josh Goebel][]
918- enh(typescript) use identifier to match potential keywords, preventing false positivites (#2519) [Josh Goebel][]
919- enh(javascript) use identifier to match potential keywords, preventing false positivites (#2519) [Josh Goebel][]
920- [enh] Add `OPTIMIZE:` and `HACK:` to the labels highlighted inside comments [Josh Goebel][]
921- enh(typescript/javascript/coffeescript/livescript) derive ECMAscript keywords from a common foudation (#2518) [Josh Goebel][]
922- enh(typescript) add setInterval, setTimeout, clearInterval, clearTimeout (#2514) [Josh Goebel][]
923- enh(javascript) add setInterval, setTimeout, clearInterval, clearTimeout (#2514) [Vania Kucher][]
924- enh(cpp) add `pair`, `make_pair`, `priority_queue` as built-ins (#2538) [Hankun Lin][]
925- enh(cpp) recognize `priority_queue` `pair` as cpp containers (#2541) [Hankun Lin][]
926- fix(javascript) prevent `set` keyword conflicting with setTimeout, etc. (#2514) [Vania Kucher][]
927- fix(cpp) Fix highlighting of unterminated raw strings (#2261) [David Benjamin][]
928- fix(javascript) `=>` function with nested `()` in params now works (#2502) [Josh Goebel][]
929- fix(typescript) `=>` function with nested `()` in params now works (#2502) [Josh Goebel][]
930- fix(yaml) Fix tags to include non-word characters (#2486) [Peter Plantinga][]
931- fix(swift) `@objcMembers` was being partially highlighted (#2543) [Nick Randall][]
932- enh(dart) Add `late` and `required` keywords, the `Never` built-in type, and nullable built-in types (#2550) [Sam Rawlins][]
933- enh(erlang) Add underscore separators to numeric literals (#2554) [Sergey Prokhorov][]
934- enh(handlebars) Support for sub-expressions, path-expressions, hashes, block-parameters and literals (#2344) [Nils Knappmeier][]
935- enh(protobuf) Support multiline comments (#2597) [Pavel Evstigneev][]
936- fix(toml) Improve key parsing (#2595) [Antoine du Hamel][]
937
938[Josh Goebel]: https://github.com/joshgoebel
939[Peter Plantinga]: https://github.com/pplantinga
940[David Benjamin]: https://github.com/davidben
941[Vania Kucher]: https://github.com/qWici
942[Hankun Lin]: https://github.com/Linhk1606
943[Nick Randall]: https://github.com/nicked
944[Sam Rawlins]: https://github.com/srawlins
945[Sergey Prokhorov]: https://github.com/seriyps
946[Nils Knappmeier]: https://github.com/nknapp
947[Martin (Lhoerion)]: https://github.com/Lhoerion
948[Jim Mason]: https://github.com/RocketMan
949[lioshi]: https://github.com/lioshi
950[Pavel Evstigneev]: https://github.com/Paxa
951[Antoine du Hamel]: https://github.com/aduh95
952
953
954## Version 10.0.2
955
956Brower build:
957
958- [Issue](https://github.com/highlightjs/highlight.js/issues/2505) (bug) Fix: Version 10 fails to load as CommonJS module. (#2511) [Josh Goebel][]
959- [Issue](https://github.com/highlightjs/highlight.js/issues/2505) (removal) AMD module loading support has been removed. (#2511) [Josh Goebel][]
960
961Parser Engine Changes:
962
963- [Issue](https://github.com/highlightjs/highlight.js/issues/2522) fix(parser) Fix freez issue with illegal 0 width matches (#2524) [Josh Goebel][]
964
965
966[Josh Goebel]: https://github.com/joshgoebel
967
968
969## Version 10.0.1
970
971Parser Engine Changes:
972
973- (bug) Fix sublanguage with no relevance score (#2506) [Josh Goebel][]
974
975[Josh Goebel]: https://github.com/joshgoebel
976
977
978## Version 10.0.0
979
980New languages:
981
982- add(php-template) Explicit language to detect PHP templates (vs xml) [Josh Goebel][]
983- enh(python) Added `python-repl` for Python REPL sessions
984- add(never) Added 3rd party Never language support
985
986New themes:
987
988- *Srcery* by [Chen Bin][]
989
990Parser Engine Changes:
991
992- (bug) Fix `beginKeywords` to ignore . matches (#2434) [Josh Goebel][]
993- (enh) add `before:highlight` plugin API callback (#2395) [Josh Goebel][]
994- (enh) add `after:highlight` plugin API callback (#2395) [Josh Goebel][]
995- (enh) split out parse tree generation and HTML rendering concerns (#2404) [Josh Goebel][]
996- (enh) every language can have a `name` attribute now (#2400) [Josh Goebel][]
997- (enh) improve regular expression detect (less false-positives) (#2380) [Josh Goebel][]
998- (enh) make `noHighlightRe` and `languagePrefixRe` configurable (#2374) [Josh Goebel][]
999
1000Language Improvements:
1001
1002- enh(python) Exclude parens from functions params (#2490) [Álvaro Mondéjar][]
1003- enh(swift) Add `compactMap` to keywords as built_in (#2478) [Omid Golparvar][]
1004- enh(nim) adds `func` keyword (#2468) [Adnan Yaqoob][]
1005- enh(xml) deprecate ActionScript inside script tags (#2444) [Josh Goebel][]
1006- fix(javascript) prevent get/set variables conflicting with keywords (#2440) [Josh Goebel][]
1007- bug(clojure) Now highlights `defn-` properly (#2438) [Josh Goebel][]
1008- enh(bash) default value is another variable (#2439) [Josh Goebel][]
1009- enh(bash) string nested within string (#2439) [Josh Goebel][]
1010- enh(bash) Add arithmetic expression support (#2439) [Josh Goebel][]
1011- enh(clojure) Add support for global definitions name (#2347) [Alexandre Grison][]
1012- enh(fortran) Support Fortran 77 style comments (#2416) [Josh Goebel][]
1013- (csharp) add support for `@identifier` style identifiers (#2414) [Josh Goebel][]
1014- fix(elixir) Support function names with a slash (#2406) [Josh Goebel][]
1015- fix(javascript) comma is allowed in a "value container" (#2403) [Josh Goebel][]
1016- enh(apache) add `deny` and `allow` keywords [Josh Goebel][]
1017- enh(apache) highlight numeric attributes values [Josh Goebel][]
1018- enh(apache) highlight IP addresses, ports, and strings in sections [Josh Goebel][]
1019- enh(php) added more keywords and include `<?=` syntax to meta [Taufik Nurrohman][]
1020- fix(protobuf) Fix `rpc` when followed by a block (#) [Josh Goebel][]
1021- enh(zephir) almost complete rework of the zephir grammar (#2387) [Josh Goebel][]
1022- (markdown) much improved code block support (#2382) [Josh Goebel][]
1023- (markdown) improve bold/italic nesting (#2382) [Josh Goebel][]
1024- enh(csharp) Support `where` keyword as class constraint (#2378) [Josh Goebel][]
1025- enh(csharp) Allow reference path in class inheritance lists (#2378) [Josh Goebel][]
1026- enh(csharp) Add generic modifiers (in, out) (#2378) [Josh Goebel][]
1027- (fortran) enh(fortran) support intrinsic data types (#2379) [Josh Goebel][]
1028- enh(java) annotations can include numbers (#2377) [Josh Goebel][]
1029- enh(java) annotations can take params (#2377) [Josh Goebel][]
1030- enh(java) allow annotations inside function call params (#2377) [Josh Goebel][]
1031- enh(parser) pre/post-highlightBlock callbacks via plugin (#2285) [Josh Goebel][]
1032- (fortran) Add Fortran 2018 keywords and coarray intrinsics (#2361) [Sam Miller][]
1033- (delphi) highlight hexadecimal, octal, and binary numbers (#2370) [Robert Riebisch]()
1034- enh(plaintext) added `text` and `txt` as alias (#2360) [Taufik Nurrohman][]
1035- enh(powershell) added PowerShell v5.1/v7 default aliases as "built_in"s (#2423) [Sean Williams][]
1036- enh(yaml) added support for timestamps (#2475) [Peter Plantinga][]
1037
1038Developer Tools:
1039
1040- added Dockerfile for optionally developing with a container
1041
1042[Omid Golparvar]: https://github.com/omidgolparvar
1043[Alexandre Grison]: https://github.com/agrison
1044[Josh Goebel]: https://github.com/joshgoebel
1045[Chen Bin]: https://github.com/redguardtoo
1046[Sam Miller]: https://github.com/smillerc
1047[Robert Riebisch]: https://github.com/bttrx
1048[Taufik Nurrohman]: https://github.com/taufik-nurrohman
1049[Josh Goebel]: https://github.com/joshgoebel
1050[Sean Williams]: https://github.com/hmmwhatsthisdo
1051[Adnan Yaqoob]: https://github.com/adnanyaqoobvirk
1052[Álvaro Mondéjar]: https://github.com/mondeja
1053
1054
1055## Version 9.18.1
1056
1057Grammar Improvements:
1058
1059- bug(coffeescript) fix freezing bug due to badly behaved regex (#2376) [Josh Goebel][]
1060
1061[Josh Goebel]: https://github.com/joshgoebel
1062
1063
1064## Version 9.18.0
1065
1066New languages:
1067
1068- none.
1069
1070New themes:
1071
1072- none.
1073
1074Core Changes:
1075
1076- none.
1077
1078Language Improvements:
1079
1080- (javascript) fix JSX self-closing tag issues (#2322) [Josh Goebel][]
1081- (fortran) added `block` and `endblock` keywords (#2343) [Philipp Engel][]
1082- (javascript) support jsx fragments (#2333) [Josh Goebel][]
1083- (ini) support TOML arrays, clean up grammar (#2335) [Josh Goebel][]
1084- (vbnet) add nameof operator to the keywords (#2329) [Youssef Victor][]
1085- (stan) updated with improved coverage of language keywords and patterns. (#1829) [Jeffrey Arnold][]
1086- enh(cpp) Detect namespaced function types (`A::typeName func(...)`) (#2332) [Josh Goebel][]
1087- enh(cpp) Detect namespaced functions also (`A::functionName`) (#2332) [Josh Goebel][]
1088- enh(cpp) Properly detect decltype(auto) (#2332) [Josh Goebel][]
1089- enh(cpp) recognize primitive types (`int8_t`, etc.) as function types (#2332) [Josh Goebel][]
1090
1091Developer Tools:
1092
1093- feat(developer): add button to show parsed structure (#2345) [Nils Knappmeier][]
1094
1095[Jeffrey Arnold]: https://github.com/jrnold
1096[Josh Goebel]: https://github.com/joshgoebel
1097[Philipp Engel]: https://github.com/interkosmos
1098[Youssef Victor]: https://github.com/Youssef1313
1099[Nils Knappmeier]: https://github.com/nknapp
1100
1101
1102## Version 9.17.1
1103
1104Fixes:
1105
1106- fix(parser): resolve IE 11 issue with Object.freeze() (#2319) [Josh Goebel][]
1107
1108[Josh Goebel]: https://github.com/joshgoebel
1109
1110
1111## Version 9.17.0
1112
1113New languages:
1114
1115- none.
1116
1117New themes:
1118
1119- *Gradient Dark* by [Samia Ali][]
1120
1121Core Improvements:
1122
1123- chore(parser): switch from `createElementNS` to `createElement` (#2314) [Josh Goebel][]
1124- enh(parser): add better error when a language requirement is missing (#2311) [Josh Goebel][]
1125- fix(parser/docs): disallow `self` mode at the top-level of a language (#2294) [Josh Goebel][]
1126- enh(parser) add safe & debug modes. Better error handling for crash conditions. (#2286) [Josh Goebel][]
1127- fix(parser): Fix merger HTML attribute quoting (#2235) [Josh Goebel][]
1128- fix(parser): Look-ahead regex now work for end matches also (#2237) [Josh Goebel][]
1129- fix(parser): Better errors when a language is missing (#2236) [Josh Goebel][]
1130- fix(parser): freeze built-in modes to prevent grammars altering them (#2271) [Josh Goebel][]
1131- fix(themes): fix inconsistencies between some themes padding/spacing (#2300) [Josh Goebel][]
1132- ehh(build) Add CI check for building a "use strict" safe rollup package from NPM builds (#2247) [Josh Goebel][]
1133- fix(pkg): Prefix global addEventListener with window to be able to minify with closure compiler (#2305) [Kirill Saksin]()
1134
1135Language Improvements:
1136
1137- fix(sql): backslash is not used to escape in strings in standard SQL (#1748) [Mike Schall][]
1138- enh(ebnf) add backticks as additional string variant (#2290) [Chris Marchesi][]
1139- chore(javascript): add esm related extensions to aliases (#2298) [Rongjian Zhang][]
1140- fix(kotlin): fix termination of """ string literals (#2295) [Josh Goebel][]
1141- fix(mercury): don't change global STRING modes (#2271) [Josh Goebel][]
1142- enh(xml) expand and improve document type highlighting (#2287) [w3suli][]
1143- enh(ebnf) add underscore as allowed meta identifier character, and dot as terminator (#2281) [Chris Marchesi][]
1144- fix(makefile) fix double relevance for assigns, improves auto-detection (#2278) [Josh Goebel][]
1145- enh(xml) support for highlighting entities (#2260) [w3suli][]
1146- enh(gml) fix naming of keyword class (consistency fix) (#2254) [Liam Nobel][]
1147- enh(javascript): Add support for jsdoc comments (#2245) [Milutin Kristofic][]
1148- fix(python) fix `if` getting confused as an f-string (#2200) [Josh Goebel][] and [Carl Baxter][]
1149- enh(powershell) major overhaul, huge improvements (#2224)
1150- enh(css) Improve @rule highlighting, including properties (#2241) [Josh Goebel][]
1151- enh(css) Improve highlighting of numbers inside expr/func `calc(2px+3px)` (#2241)
1152- enh(scss) Pull some of the CSS improvements back into SCSS (#2241)
1153- fix(go): Fix escaped character literals (#2266) [David Benjamin][]
1154- fix(objectivec): Fix various preprocessor highlighting issues (#2265) [David Benjamin][]
1155- fix(objectivec): Handle multibyte character literals (#2268) [David Benjamin][]
1156- enh(cpp): Add additional keywords (#2289) [Adrian Ostrowski][]
1157
1158[Josh Goebel]: https://github.com/joshgoebel
1159[Liam Nobel]: https://github.com/liamnobel
1160[Carl Baxter]: https://github.com/cdbax
1161[Milutin Kristofic]: https://github.com/milutin
1162[w3suli]: https://github.com/w3suli
1163[David Benjamin]: https://github.com/davidben
1164[Chris Marchesi]: https://github.com/vancluever
1165[Adrian Ostrowski]: https://github.com/aostrowski
1166[Rongjian Zhang]: https://github.com/pd4d10
1167[Mike Schall]: https://github.com/schallm
1168[Kirill Saksin]: https://github.com/saksmt
1169[Samia Ali]:https://github.com/samiaab1990
1170[Erik Demaine]:https://github.com/edemaine
1171
1172
1173## Version 9.16.2
1174
1175New languages:
1176 none.
1177
1178New styles:
1179 none.
1180
1181Improvements:
1182- fix(arduino) Resolves issue with arduino.js not being "use strict" safe (#2247)
1183
1184
1185## Version 9.16.1
1186
1187New languages:
1188 none.
1189
1190New styles:
1191- *Night Owl* by [Carl Baxter][]
1192
1193Improvements:
1194- Add CLI tool to quickly check for relevance conflicts [Mark Ellis][] (#1554)
1195- enhance(twig) update list of filter and tags (#2090)
1196- fix(crystal): correctly highlight `!~` method definition (#2222)
1197- fix dropping characters if we choke up on a 0-width match (#2219)
1198- (accesslog) improve accesslog relevancy scoring (#2172)
1199- fix(shell): fix parsing of prompts with forward slash (#2218)
1200- improve parser to properly support look-ahead regex in begin matchers (#2135)
1201- blacklist super-common keywords from having relevance (#2179)
1202- fix(swift): support for `@dynamicMemberLookup` and `@propertyWrapper` (#2202)
1203- fix: `endWithParent` inside `starts` now always works (#2201)
1204- fix(typescript): constructor in declaration doesn't break highlighting
1205- fix(typescript): only match function keyword as a separate identifier (#2191)
1206- feature(arduino) make arduino a super-set of cpp grammar
1207- fix(javascript): fix object attributes immediately following line comments
1208- fix(xml): remove `vbscript` as potential script tag subLanguage
1209- fix(Elixir): improve regex for numbers
1210- fix(YAML): improve matching for keys, blocks and numbers
1211- fix(Pony): improve regex for numbers
1212- fix(handlebars): add support for raw-blocks, and triple-mustaches(#2175)
1213- fix(handlebars): fix parsing of block-comments containing closing mustaches (#2175)
1214- fix(handlebars): add support for segment-literal notation, and escaped mustaches (#2184)
1215- JSON: support for comments in JSON (#2016)
1216- fix(cpp): improve string literal matching
1217- fix(highlight.js): omit empty span-tags in the output (#2182)
1218- fix(Go): improve function declaration matching
1219- fix(python): added support for f-string literal curly braces (#2195)
1220- fix(cpp): add `future` built-in (#1610)
1221- fix(python): support comments within function parameters (#2214)
1222
1223[Carl Baxter]: https://github.com/cdbax
1224[Mark Ellis]: https://github.com/ellismarkf
1225
1226## Version 9.15.10
1227New languages:
1228 none.
1229New styles:
1230 none.
1231Improvements:
1232 - support for ruby's squiggly heredoc (#2049)
1233 - support css custom properties (#2082)
1234 - fix(PureBASIC): update to 5.60 (#1508)
1235 - fix(Kotlin): parenthesized types in function declaration (#2107)
1236 - fix(Kotlin): nested comment (#2104)
1237 - fix(isbl): contains key typo (#2103)
1238 - fix(github-gist.css): match Github styles (#2100)
1239 - fix(elm): update to latest elm syntax (#2088)
1240 - fix: Support highlighting inline HTML and CSS tagged template strings in JS and TS (#2105)
1241 - feat(YAML): add YAML to common languages (#1952)
1242 - feat(xml): Add support for Windows Script File (.wsf), inline VBScript in XML `script` tags (#1690)
1243
1244## Version 9.15.9
1245
1246Improvements:
1247 - fix(AutoHotkey): order and extended highlighting (#1579)
1248 - fix(Go): correctly highlight hex numbers, rather than stopping at last 'd' or 'f'. (#2060)
1249 - fix(Mathematica): Improvements to language (#2065)
1250 - fix(Node): Adds SCSS build (#2079)
1251 - fix(Rust): update keywords (#2052)
1252 - fix(Stata): Added keywords for the meta-analysis suite introduced in Stata 16 (#2081)
1253 - fix(Bash): escape double quotes (#2048)
1254
1255## Version 9.15.8
1256
1257New languages:
1258 none.
1259New styles:
1260 none.
1261Improvements:
1262 - fix(bash): revert escaped double quotes - broke Firefox/Safari.
1263
1264## Version 9.15.7
1265New languages:
1266 none.
1267New styles:
1268 none.
1269Improvements:
1270 - fix(powershell): Add cmdlets (#2022)
1271 - fix(Bash): escaped double quotes (#2041)
1272 - fix(c++): add aliases 'hh', 'hxx', 'cxx' (#2017)
1273 - fix(ini/toml): Support comments on the same line. (#2039)
1274 - fix(JSX): not rendering well in a function without parentheses. (#2024)
1275 - fix(LiveCode): language definition update (#2021)
1276 - fix(markdown): indented lists (#2004)
1277 - fix(styles/school-book): don't style all the pre, use .hljs instead (#2034)
1278 - fix(JSX): Modify JSX tag detection to use XML language regex in place of simplistic \w+
1279
1280## Version 9.15.6
1281New languages:
1282 none.
1283New styles:
1284 none.
1285Improvements:
1286 - Move dependencies to be devDependencies.
1287 - Fixed security issues in dev dependencies.
1288
1289## Version 9.15.5
1290New languages:
1291 none.
1292New styles:
1293 none.
1294Improvements:
1295 🔥 Hot fix: updated build tool.
1296
1297## Version 9.15.4
1298New languages:
1299 none.
1300New styles:
1301 none.
1302Improvements:
1303 🔥 Hot fix: reverted hljs cli build tool, as it was causing issues with install.
1304
1305## Version 9.15.3
1306New languages:
1307 none.
1308New styles:
1309 none.
1310Improvements:
1311 🔥 Hot fix: reverted hljs cli build tool, as it was causing issues with install.
1312
1313## Version 9.15.2
1314New languages:
1315 none.
1316New styles:
1317 none.
1318Improvements:
1319 🔥 Hot fix that was preventing highlight.js from installing.
1320
1321## Version 9.15.1
1322
1323New languages:
1324 none.
1325
1326New styles:
1327 none.
1328
1329Improvements:
1330
1331- Pony: Fixed keywords without spaces at line ends, highlighting of `iso` in class definitions, and function heads without bodies in traits and interfaces. Removed FUNCTION and CLASS modes until they are found to be needed and to provide some of the fixes.
1332 - Support external language files in minified version of highlight.js (#1888)
1333
1334## Version 9.15
1335
1336New languages:
1337 none.
1338
1339New styles:
1340 none.
1341
1342Improvements:
1343 - new cli tool `hljs` - allows easier [building from command line](docs/building-testing.rst#building-a-bundle-from-the-command-line).
1344 - cpp: Fully support C++11 raw strings. (#1897)
1345 - Python: Treat False None and True as literals (#1920)
1346
1347## Version 9.14.2
1348
1349New languages:
1350 none.
1351New styles:
1352 none.
1353Improvements:
1354- *Gauss* fixed to stop global namespace pollution [Scott Hyndman][].
1355- fix(Tcl): removed apostrophe string delimiters (don't exist)
1356
1357[Scott Hyndman]: https://github.com/shyndman
1358
1359## Version 9.14.1
1360
1361New languages:
1362 none.
1363New styles:
1364 none.
1365Improvements:
1366- Pony: language improvements (#1958)
1367
1368## Version 9.14.0
1369
1370New languages:
1371 none.
1372New styles:
1373 none.
1374Improvements:
1375- Pony: add missing "object" highlighting (#1932)
1376- Added *XQuery* built-in functions, prolog declarations, as well as parsing of function bodies, computed and direct constructors, by [Duncan Paterson][]
1377- fix(dart): Corrects highlighting with string interpolation. (#1946)
1378- fix(swift): be eager on optional-using types (!/?) (#1919)
1379- fix(tex): Changed cyrillic to unicode (IE11 throw SCRIPT5021) (#1601)
1380- fix(JavaScript): Recognize get/set accessor keywords (#1940)
1381- Fixed Dockerfile definition when using highlight continuation parameter, by [Laurent Voullemier][]
1382- Added tests & new `annotation` and `verbatim` keywords to *Crystal*, by [Benoit de Chezelles][]
1383- Added missing dockerfile markup tests, by [Laurent Voullemier][]
1384 Allow empty prompt text in clojure-repl, by [Egor Rogov][]
1385- Fixed several issues with *Crystal* language definition, by [Johannes Müller][]
1386- Added `C#` as an alias for *CSharp* language, by [Ahmed Atito][]
1387- Added generic user-defined proc support, new compiler define, refactor to re-use rules, and add tests to *GAUSS*, by [Matthew Evans][]
1388- Improve *Crystal* language to highlight regexes after some keywords, by [Tsuyusato Kitsune][]
1389- Fix filterByQualifiers: fileInfo can be null
1390- Fixed String interpolation in Dart, by [Scott Hyndman][].
1391
1392[Laurent Voullemier]: https://github.com/l-vo
1393[Benoit de Chezelles]: https://github.com/bew
1394[Johannes Müller]: https://github.com/straight-shoota
1395[Ahmed Atito]: https://github.com/atitoa93
1396[Matthew Evans]: https://github.com/matthewevans
1397[Tsuyusato Kitsune]: https://github.com/MakeNowJust
1398[Scott Hyndman]: https://github.com/shyndman
1399[Duncan Paterson]: https://github.com/duncdrum
1400
1401## Version 9.13.1
1402
1403Improvements:
1404
1405- *C#* function declarations no longer include trailing whitespace, by [JeremyTCD][]
1406- Added new and missing keywords to *AngelScript*, by [Melissa Geels][]
1407- *TypeScript* decorator factories highlighting fix, by [Antoine Boisier-Michaud][]
1408- Added support for multiline strings to *Swift*, by [Alejandro Isaza][]
1409- Fixed issue that was causing some minifiers to fail.
1410- Fixed `autoDetection` to accept language aliases.
1411
1412[JeremyTCD]: https://github.com/JeremyTCD
1413[Melissa Geels]: https://github.com/codecat
1414[Antoine Boisier-Michaud]: https://github.com/Aboisier
1415[Alejandro Isaza]: https://github.com/alejandro-isaza
1416
1417## Version 9.13.0
1418
1419New languages:
1420
1421- *ArcGIS Arcade* by [John Foster][]
1422- *AngelScript* by [Melissa Geels][]
1423- *GML* by [meseta][]
1424- *isbl* built-in language DIRECTUM and Conterra by [Dmitriy Tarasov][].
1425- *PostgreSQL* SQL dialect and PL/pgSQL language by [Egor Rogov][].
1426- *ReasonML* by [Gidi Meir Morris][]
1427- *SAS* by [Mauricio Caceres Bravo][]
1428- *Plaintext* by [Egor Rogov][]
1429- *.properties* by [bostko][] and [Egor Rogov][]
1430
1431New styles:
1432
1433- *a11y-dark theme* by [Eric Bailey][]
1434- *a11y-light theme* by [Eric Bailey][]
1435- *An Old Hope* by [Gustavo Costa][]
1436- *Atom One Dark Reasonable* by [Gidi Meir Morris][]
1437- *isbl editor dark* by [Dmitriy Tarasov][]
1438- *isbl editor light* by [Dmitriy Tarasov][]
1439- *Lightfair* by [Tristian Kelly][]
1440- [*Nord*][nord-highlightjs] by [Arctic Ice Studio][]
1441- *[🦄 Shades of Purple](https://github.com/ahmadawais/Shades-of-Purple-HighlightJS)* by [Ahmad Awais][]
1442
1443Improvements:
1444
1445- New attribute `endSameAsBegin` for nested constructs with variable names
1446 by [Egor Rogov][].
1447- *Python* highlighting of escaped quotes fixed by [Harmon][]
1448- *PHP*: Added alias for php7, by [Vijaya Chandran Mani][]
1449- *C++* string handling, by [David Benjamin][]
1450- *Swift* Add `@objcMembers` to `@attributes`, by [Berk Çebi][]
1451- Infrastructural changes by [Marcos Cáceres][]
1452- Fixed metachars highighting for *NSIS* by [Jan T. Sott][]
1453- *Yaml* highlight local tags as types by [Léo Lam][]
1454- Improved highlighting for *Elixir* by [Piotr Kaminski][]
1455- New attribute `disableAutodetect` for preventing autodetection by [Egor Rogov][]
1456- *Matlab*: transpose operators and double quote strings, by [JohnC32][] and [Egor Rogov][]
1457- Various documentation typos and improvemets by [Jimmy Wärting][], [Lutz Büch][], [bcleland][]
1458- *Cmake* updated with new keywords and commands by [Deniz Bahadir][]
1459
1460[Ahmad Awais]: https://github.com/ahmadawais
1461[Arctic Ice Studio]: https://github.com/arcticicestudio
1462[Dmitriy Tarasov]: https://github.com/MedvedTMN
1463[Egor Rogov]: https://github.com/egor-rogov
1464[Eric Bailey]: https://github.com/ericwbailey
1465[Gidi Meir Morris]: https://github.com/gmmorris
1466[Gustavo Costa]: https://github.com/gusbemacbe
1467[Harmon]: https://github.com/Harmon758
1468[Melissa Geels]: https://github.com/codecat
1469[meseta]: https://github.com/meseta
1470[nord-highlightjs]: https://github.com/arcticicestudio/nord-highlightjs
1471[Tristian Kelly]: https://github.com/TristianK3604
1472[Vijaya Chandran Mani]: https://github.com/vijaycs85
1473[John Foster]: https://github.com/jf990
1474[David Benjamin]: https://github.com/davidben
1475[Berk Çebi]: https://github.com/berkcebi
1476[Mauricio Caceres Bravo]: https://github.com/mcaceresb
1477[bostko]: https://github.com/bostko
1478[Deniz Bahadir]: https://github.com/Bagira80
1479[bcleland]: https://github.com/bcleland
1480[JohnC32]: https://github.com/JohnC32
1481[Lutz Büch]: https://github.com/lutz-100worte
1482[Piotr Kaminski]: https://github.com/pkaminski
1483[Léo Lam]: https://github.com/leoetlino
1484[Jan T. Sott]: https://github.com/idleberg
1485[Jimmy Wärting]: https://github.com/jimmywarting
1486[Marcos Cáceres]: https://github.com/marcoscaceres
1487
1488## Version 9.12.0
1489
1490New language:
1491
1492- *MikroTik* RouterOS Scripting language by [Ivan Dementev][].
1493
1494New style:
1495
1496- *VisualStudio 2015 Dark* by [Nicolas LLOBERA][]
1497
1498Improvements:
1499- *Crystal* updated with new keywords and syntaxes by [Tsuyusato Kitsune][].
1500- *Julia* updated to the modern definitions by [Alex Arslan][].
1501- *julia-repl* added by [Morten Piibeleht][].
1502- [Stanislav Belov][] wrote a new definition for *1C*, replacing the one that
1503 has not been updated for more than 8 years. The new version supports syntax
1504 for versions 7.7 and 8.
1505- [Nicolas LLOBERA][] improved C# definition fixing edge cases with function
1506 titles detection and added highlighting of `[Attributes]`.
1507- [nnnik][] provided a few correctness fixes for *Autohotkey*.
1508- [Martin Clausen][] made annotation collections in *Clojure* to look
1509 consistently with other kinds.
1510- [Alejandro Alonso][] updated *Swift* keywords.
1511
1512[Tsuyusato Kitsune]: https://github.com/MakeNowJust
1513[Alex Arslan]: https://github.com/ararslan
1514[Morten Piibeleht]: https://github.com/mortenpi
1515[Stanislav Belov]: https://github.com/4ppl
1516[Ivan Dementev]: https://github.com/DiVAN1x
1517[Nicolas LLOBERA]: https://github.com/Nicolas01
1518[nnnik]: https://github.com/nnnik
1519[Martin Clausen]: https://github.com/maacl
1520[Alejandro Alonso]: https://github.com/Azoy
1521
1522## Version 9.11.0
1523
1524New languages:
1525
1526- *Shell* by [Tsuyusato Kitsune][]
1527- *jboss-cli* by [Raphaël Parrëe][]
1528
1529Improvements:
1530
1531- [Joël Porquet] has [greatly improved the definition of *makefile*][5b3e0e6].
1532- *C++* class titles are now highlighted as in other languages with classes.
1533- [Jordi Petit][] added rarely used `or`, `and` and `not` keywords to *C++*.
1534- [Pieter Vantorre][] fixed highlighting of negative floating point values.
1535
1536
1537[Tsuyusato Kitsune]: https://github.com/MakeNowJust
1538[Jordi Petit]: https://github.com/jordi-petit
1539[Raphaël Parrëe]: https://github.com/rparree
1540[Pieter Vantorre]: https://github.com/NuclearCookie
1541[5b3e0e6]: https://github.com/isagalaev/highlight.js/commit/5b3e0e68bfaae282faff6697d6a490567fa9d44b
1542
1543
1544## Version 9.10.0
1545
1546Apologies for missing the previous release cycle. Some thing just can't be
1547automated… Anyway, we're back!
1548
1549New languages:
1550
1551- *Hy* by [Sergey Sobko][]
1552- *Leaf* by [Hale Chan][]
1553- *N1QL* by [Andres Täht][] and [Rene Saarsoo][]
1554
1555Improvements:
1556
1557- *Rust* got updated with new keywords by [Kasper Andersen][] and then
1558 significantly modernized even more by [Eduard-Mihai Burtescu][] (yes, @eddyb,
1559 Rust core team member!)
1560- *Python* updated with f-literals by [Philipp A][].
1561- *YAML* updated with unquoted strings support.
1562- *Gauss* updated with new keywords by [Matt Evans][].
1563- *Lua* updated with new keywords by [Joe Blow][].
1564- *Kotlin* updated with new keywords by [Philipp Hauer][].
1565- *TypeScript* got highlighting of function params and updated keywords by
1566 [Ike Ku][].
1567- *Scheme* now correctly handles \`-quoted lists thanks to [Guannan Wei].
1568- [Sam Wu][] fixed handling of `<<` in *C++* defines.
1569
1570[Philipp A]: https://github.com/flying-sheep
1571[Philipp Hauer]: https://github.com/phauer
1572[Sergey Sobko]: https://github.com/profitware
1573[Hale Chan]: https://github.com/halechan
1574[Matt Evans]: https://github.com/matthewevans
1575[Joe Blow]: https://github.com/mossarelli
1576[Kasper Andersen]: https://github.com/kasma1990
1577[Eduard-Mihai Burtescu]: https://github.com/eddyb
1578[Andres Täht]: https://github.com/andrestaht
1579[Rene Saarsoo]: https://github.com/nene
1580[Philipp Hauer]: https://github.com/phauer
1581[Ike Ku]: https://github.com/dempfi
1582[Guannan Wei]: https://github.com/Kraks
1583[Sam Wu]: https://github.com/samsam2310
1584
1585
1586## Version 9.9.0
1587
1588New languages
1589
1590- *LLVM* by [Michael Rodler][]
1591
1592Improvements:
1593
1594- *TypeScript* updated with annotations and param lists inside constructors, by
1595 [Raphael Parree][].
1596- *CoffeeScript* updated with new keywords and fixed to recognize JavaScript
1597 in \`\`\`, thanks to thanks to [Geoffrey Booth][].
1598- Compiler directives in *Delphi* are now correctly highlighted as "meta".
1599
1600[Raphael Parree]: https://github.com/rparree
1601[Michael Rodler]: https://github.com/f0rki
1602[Geoffrey Booth]: https://github.com/GeoffreyBooth
1603
1604
1605## Version 9.8.0 "New York"
1606
1607This version is the second one that deserved a name. Because I'm in New York,
1608and the release isn't missing the deadline only because it's still Tuesday on
1609West Coast.
1610
1611New languages:
1612
1613- *Clean* by [Camil Staps][]
1614- *Flix* by [Magnus Madsen][]
1615
1616Improvements:
1617
1618- [Kenton Hamaluik][] did a comprehensive update for *Haxe*.
1619- New commands for *PowerShell* from [Nicolas Le Gall][].
1620- [Jan T. Sott][] updated *NSIS*.
1621- *Java* and *Swift* support unicode characters in identifiers thanks to
1622 [Alexander Lichter][].
1623
1624[Camil Staps]: https://github.com/camilstaps
1625[Magnus Madsen]: https://github.com/magnus-madsen
1626[Kenton Hamaluik]: https://github.com/FuzzyWuzzie
1627[Nicolas Le Gall]: https://github.com/darkitty
1628[Jan T. Sott]: https://github.com/idleberg
1629[Alexander Lichter]: https://github.com/manniL
1630
1631
1632## Version 9.7.0
1633
1634A comprehensive bugfix release. This is one of the best things about
1635highlight.js: even boring things keep getting better (even if slow).
1636
1637- VHDL updated with PSL keywords and uses more consistent styling.
1638- Nested C-style comments no longer break highlighting in many languages.
1639- JavaScript updated with `=>` functions, highlighted object attributes and
1640 parsing within template string substitution blocks (`${...}`).
1641- Fixed another corner case with self-closing `<tag/>` in JSX.
1642- Added `HEALTHCHECK` directive in Docker.
1643- Delphi updated with new Free Pascal keywords.
1644- Fixed digit separator parsing in C++.
1645- C# updated with new keywords and fixed to allow multiple identifiers within
1646 generics `<...>`.
1647- Fixed another slow regex in Less.
1648
1649
1650## Version 9.6.0
1651
1652New languages:
1653
1654- *ABNF* and *EBNF* by [Alex McKibben][]
1655- *Awk* by [Matthew Daly][]
1656- *SubUnit* by [Sergey Bronnikov][]
1657
1658New styles:
1659
1660- *Atom One* in both Dark and Light variants by [Daniel Gamage][]
1661
1662Plus, a few smaller updates for *Lasso*, *Elixir*, *C++* and *SQL*.
1663
1664[Alex McKibben]: https://github.com/mckibbenta
1665[Daniel Gamage]: https://github.com/danielgamage
1666[Matthew Daly]: https://github.com/matthewbdaly
1667[Sergey Bronnikov]: https://github.com/ligurio
1668
1669
1670## Version 9.5.0
1671
1672New languages:
1673
1674- *Excel* by [Victor Zhou][]
1675- *Linden Scripting Language* by [Builder's Brewery][]
1676- *TAP* (Test Anything Protocol) by [Sergey Bronnikov][]
1677- *Pony* by [Joe Eli McIlvain][]
1678- *Coq* by [Stephan Boyer][]
1679- *dsconfig* and *LDIF* by [Jacob Childress][]
1680
1681New styles:
1682
1683- *Ocean Dark* by [Gavin Siu][]
1684
1685Notable changes:
1686
1687- [Minh Nguyễn][] added more built-ins to Objective C.
1688- [Jeremy Hull][] fixed corner cases in C++ preprocessor directives and Diff
1689 comments.
1690- [Victor Zhou][] added support for digit separators in C++ numbers.
1691
1692[Gavin Siu]: https://github.com/gavsiu
1693[Builder's Brewery]: https://github.com/buildersbrewery
1694[Victor Zhou]: https://github.com/OiCMudkips
1695[Sergey Bronnikov]: https://github.com/ligurio
1696[Joe Eli McIlvain]: https://github.com/jemc
1697[Stephan Boyer]: https://github.com/boyers
1698[Jacob Childress]: https://github.com/braveulysses
1699[Minh Nguyễn]: https://github.com/1ec5
1700[Jeremy Hull]: https://github.com/sourrust
1701
1702
1703## Version 9.4.0
1704
1705New languages:
1706
1707- *PureBASIC* by [Tristano Ajmone][]
1708- *BNF* by [Oleg Efimov][]
1709- *Ada* by [Lars Schulna][]
1710
1711New styles:
1712
1713- *PureBASIC* by [Tristano Ajmone][]
1714
1715Improvements to existing languages and styles:
1716
1717- We now highlight function declarations in Go.
1718- [Taisuke Fujimoto][] contributed very convoluted rules for raw and
1719 interpolated strings in C#.
1720- [Boone Severson][] updated Verilog to comply with IEEE 1800-2012
1721 SystemVerilog.
1722- [Victor Zhou][] improved rules for comments and strings in PowerShell files.
1723- [Janis Voigtländer][] updated the definition of Elm to version 0.17 of the
1724 languages. Elm is now featured on the front page of <https://highlightjs.org>.
1725- Special variable `$this` is highlighted as a keyword in PHP.
1726- `usize` and `isize` are now highlighted in Rust.
1727- Fixed labels and directives in x86 assembler.
1728
1729[Tristano Ajmone]: https://github.com/tajmone
1730[Taisuke Fujimoto]: https://github.com/temp-impl
1731[Oleg Efimov]: https://github.com/Sannis
1732[Boone Severson]: https://github.com/BooneJS
1733[Victor Zhou]: https://github.com/OiCMudkips
1734[Lars Schulna]: https://github.com/captain-hanuta
1735[Janis Voigtländer]: https://github.com/jvoigtlaender
1736
1737
1738## Version 9.3.0
1739
1740New languages:
1741
1742- *Tagger Script* by [Philipp Wolfer][]
1743- *MoonScript* by [Billy Quith][]
1744
1745New styles:
1746
1747- *xt256* by [Herbert Shin][]
1748
1749Improvements to existing languages and styles:
1750
1751- More robust handling of unquoted HTML tag attributes
1752- Relevance tuning for QML which was unnecessary eager at seizing other
1753 languages' code
1754- Improve GAMS language parsing
1755- Fixed a bunch of bugs around selectors in Less
1756- Kotlin's got a new definition for annotations, updated keywords and other
1757 minor improvements
1758- Added `move` to Rust keywords
1759- Markdown now recognizes \`\`\`-fenced code blocks
1760- Improved detection of function declarations in C++ and C#
1761
1762[Philipp Wolfer]: https://github.com/phw
1763[Billy Quith]: https://github.com/billyquith
1764[Herbert Shin]: https://github.com/initbar
1765
1766
1767## Version 9.2.0
1768
1769New languages:
1770
1771- *QML* by [John Foster][]
1772- *HTMLBars* by [Michael Johnston][]
1773- *CSP* by [Taras][]
1774- *Maxima* by [Robert Dodier][]
1775
1776New styles:
1777
1778- *Gruvbox* by [Qeole][]
1779- *Dracula* by [Denis Ciccale][]
1780
1781Improvements to existing languages and styles:
1782
1783- We now correctly handle JSX with arbitrary node tree depth.
1784- Argument list for `(lambda)` in Scheme is no longer highlighted as a function
1785 call.
1786- Stylus syntax doesn't break on valid CSS.
1787- More correct handling of comments and strings and other improvements for
1788 VimScript.
1789- More subtle work on the default style.
1790- We now use anonymous modules for AMD.
1791- `macro_rules!` is now recognized as a built-in in Rust.
1792
1793[John Foster]: https://github.com/jf990
1794[Qeole]: https://github.com/Qeole
1795[Denis Ciccale]: https://github.com/dciccale
1796[Michael Johnston]: https://github.com/lastobelus
1797[Taras]: https://github.com/oxdef
1798[Robert Dodier]: https://github.com/robert-dodier
1799
1800
1801## Version 9.1.0
1802
1803New languages:
1804
1805- *Stan* by [Brendan Rocks][]
1806- *BASIC* by [Raphaël Assénat][]
1807- *GAUSS* by [Matt Evans][]
1808- *DTS* by [Martin Braun][]
1809- *Arduino* by [Stefania Mellai][]
1810
1811New Styles:
1812
1813- *Arduino Light* by [Stefania Mellai][]
1814
1815Improvements to existing languages and styles:
1816
1817- Handle return type annotations in Python
1818- Allow shebang headers in Javascript
1819- Support strings in Rust meta
1820- Recognize `struct` as a class-level definition in Rust
1821- Recognize b-prefixed chars and strings in Rust
1822- Better numbers handling in Verilog
1823
1824[Brendan Rocks]: http://brendanrocks.com
1825[Raphaël Assénat]: https://github.com/raphnet
1826[Matt Evans]: https://github.com/matthewevans
1827[Martin Braun]: https://github.com/mbr0wn
1828[Stefania Mellai]: https://github.com/smellai
1829
1830
1831## Version 9.0.0
1832
1833The new major version brings a reworked styling system. Highlight.js now defines
1834a limited set of highlightable classes giving a consistent result across all the
1835styles and languages. You can read a more detailed explanation and background in
1836the [tracking issue][#348] that started this long process back in May.
1837
1838This change is backwards incompatible for those who uses highlight.js with a
1839custom stylesheet. The [new style guide][sg] explains how to write styles
1840in this new world.
1841
1842Bundled themes have also suffered a significant amount of improvements and may
1843look different in places, but all the things now consistent and make more sense.
1844Among others, the Default style has got a refresh and will probably be tweaked
1845some more in next releases. Please do give your feedback in our
1846[issue tracker][issues].
1847
1848New languages in this release:
1849
1850- *Caché Object Script* by [Nikita Savchenko][]
1851- *YAML* by [Stefan Wienert][]
1852- *MIPS Assembler* by [Nebuleon Fumika][]
1853- *HSP* by [prince][]
1854
1855Improvements to existing languages and styles:
1856
1857- ECMAScript 6 modules import now do not require closing semicolon.
1858- ECMAScript 6 classes constructors now highlighted.
1859- Template string support for Typescript, as for ECMAScript 6.
1860- Scala case classes params highlight fixed.
1861- Built-in names introduced in Julia v0.4 added by [Kenta Sato][].
1862- Refreshed Default style.
1863
1864Other notable changes:
1865
1866- [Web workers support][webworkers] added bu [Jan Kühle][].
1867- We now have tests for compressed browser builds as well.
1868- The building tool chain has been switched to node.js 4.x. and is now
1869 shamelessly uses ES6 features all over the place, courtesy of [Jeremy Hull][].
1870- License added to non-compressed browser build.
1871
1872[Jan Kühle]: https://github.com/frigus02
1873[Stefan Wienert]: https://github.com/zealot128
1874[Kenta Sato]: https://github.com/bicycle1885
1875[Nikita Savchenko]: https://github.com/ZitRos
1876[webworkers]: https://github.com/isagalaev/highlight.js#web-workers
1877[Jeremy Hull]: https://github.com/sourrust
1878[#348]: https://github.com/isagalaev/highlight.js/issues/348
1879[sg]: http://highlightjs.readthedocs.org/en/latest/style-guide.html
1880[issues]: https://github.com/isagalaev/highlight.js/issues
1881[Nebuleon Fumika]: https://github.com/Nebuleon
1882[prince]: https://github.com/prince-0203
1883
1884
1885## Version 8.9.1
1886
1887Some last-minute changes reverted due to strange bug with minified browser build:
1888
1889- Scala case classes params highlight fixed
1890- ECMAScript 6 modules import now do not require closing semicolon
1891- ECMAScript 6 classes constructors now highlighted
1892- Template string support for Typescript, as for ECMAScript 6
1893- License added to not minified browser build
1894
1895
1896## Version 8.9.0
1897
1898New languages:
1899
1900- *crmsh* by [Kristoffer Gronlund][]
1901- *SQF* by [Soren Enevoldsen][]
1902
1903[Kristoffer Gronlund]: https://github.com/krig
1904[Soren Enevoldsen]: https://github.com/senevoldsen90
1905
1906Notable fixes and improvements to existing languages:
1907
1908- Added `abstract` and `namespace` keywords to TypeScript by [Daniel Rosenwasser][]
1909- Added `label` support to Dockerfile by [Ladislav Prskavec][]
1910- Crystal highlighting improved by [Tsuyusato Kitsune][]
1911- Missing Swift keywords added by [Nate Cook][]
1912- Improve detection of C block comments
1913- ~~Scala case classes params highlight fixed~~
1914- ~~ECMAScript 6 modules import now do not require closing semicolon~~
1915- ~~ECMAScript 6 classes constructors now highlighted~~
1916- ~~Template string support for Typescript, as for ECMAScript 6~~
1917
1918Other notable changes:
1919
1920- ~~License added to not minified browser build~~
1921
1922[Kristoffer Gronlund]: https://github.com/krig
1923[Søren Enevoldsen]: https://github.com/senevoldsen90
1924[Daniel Rosenwasser]: https://github.com/DanielRosenwasser
1925[Ladislav Prskavec]: https://github.com/abtris
1926[Tsuyusato Kitsune]: https://github.com/MakeNowJust
1927[Nate Cook]: https://github.com/natecook1000
1928
1929
1930## Version 8.8.0
1931
1932New languages:
1933
1934- *Golo* by [Philippe Charrière][]
1935- *GAMS* by [Stefan Bechert][]
1936- *IRPF90* by [Anthony Scemama][]
1937- *Access logs* by [Oleg Efimov][]
1938- *Crystal* by [Tsuyusato Kitsune][]
1939
1940Notable fixes and improvements to existing languages:
1941
1942- JavaScript highlighting no longer fails with ES6 default parameters
1943- Added keywords `async` and `await` to Python
1944- PHP heredoc support improved
1945- Allow preprocessor directives within C++ functions
1946
1947Other notable changes:
1948
1949- Change versions to X.Y.Z SemVer-compatible format
1950- Added ability to build all targets at once
1951
1952[Philippe Charrière]: https://github.com/k33g
1953[Stefan Bechert]: https://github.com/b-pos465
1954[Anthony Scemama]: https://github.com/scemama
1955[Oleg Efimov]: https://github.com/Sannis
1956[Tsuyusato Kitsune]: https://github.com/MakeNowJust
1957
1958
1959## Version 8.7
1960
1961New languages:
1962
1963- *Zephir* by [Oleg Efimov][]
1964- *Elm* by [Janis Voigtländer][]
1965- *XQuery* by [Dirk Kirsten][]
1966- *Mojolicious* by [Dotan Dimet][]
1967- *AutoIt* by Manh Tuan from [J2TeaM][]
1968- *Toml* (ini extension) by [Guillaume Gomez][]
1969
1970New styles:
1971
1972- *Hopscotch* by [Jan T. Sott][]
1973- *Grayscale* by [MY Sun][]
1974
1975Notable fixes and improvements to existing languages:
1976
1977- Fix encoding of images when copied over in certain builds
1978- Fix incorrect highlighting of the word "bug" in comments
1979- Treat decorators different from matrix multiplication in Python
1980- Fix traits inheritance highlighting in Rust
1981- Fix incorrect document
1982- Oracle keywords added to SQL language definition by [Vadimtro][]
1983- Postgres keywords added to SQL language definition by [Benjamin Auder][]
1984- Fix registers in x86asm being highlighted as a hex number
1985- Fix highlighting for numbers with a leading decimal point
1986- Correctly highlight numbers and strings inside of C/C++ macros
1987- C/C++ functions now support pointer, reference, and move returns
1988
1989[Oleg Efimov]: https://github.com/Sannis
1990[Guillaume Gomez]: https://github.com/GuillaumeGomez
1991[Janis Voigtländer]: https://github.com/jvoigtlaender
1992[Jan T. Sott]: https://github.com/idleberg
1993[Dirk Kirsten]: https://github.com/dirkk
1994[MY Sun]: https://github.com/simonmysun
1995[Vadimtro]: https://github.com/Vadimtro
1996[Benjamin Auder]: https://github.com/ghost
1997[Dotan Dimet]: https://github.com/dotandimet
1998[J2TeaM]: https://github.com/J2TeaM
1999
2000
2001## Version 8.6
2002
2003New languages:
2004
2005- *C/AL* by [Kenneth Fuglsang][]
2006- *DNS zone file* by [Tim Schumacher][]
2007- *Ceylon* by [Lucas Werkmeister][]
2008- *OpenSCAD* by [Dan Panzarella][]
2009- *Inform7* by [Bruno Dias][]
2010- *armasm* by [Dan Panzarella][]
2011- *TP* by [Jay Strybis][]
2012
2013New styles:
2014
2015- *Atelier Cave*, *Atelier Estuary*,
2016 *Atelier Plateau* and *Atelier Savanna* by [Bram de Haan][]
2017- *Github Gist* by [Louis Barranqueiro][]
2018
2019Notable fixes and improvements to existing languages:
2020
2021- Multi-line raw strings from C++11 are now supported
2022- Fix class names with dashes in HAML
2023- The `async` keyword from ES6/7 is now supported
2024- TypeScript functions handle type and parameter complexity better
2025- We unified phpdoc/javadoc/yardoc etc modes across all languages
2026- CSS .class selectors relevance was dropped to prevent wrong language detection
2027- Images is now included to CDN build
2028- Release process is now automated
2029
2030[Bram de Haan]: https://github.com/atelierbram
2031[Kenneth Fuglsang]: https://github.com/kfuglsang
2032[Louis Barranqueiro]: https://github.com/LouisBarranqueiro
2033[Tim Schumacher]: https://github.com/enko
2034[Lucas Werkmeister]: https://github.com/lucaswerkmeister
2035[Dan Panzarella]: https://github.com/pzl
2036[Bruno Dias]: https://github.com/sequitur
2037[Jay Strybis]: https://github.com/unreal
2038
2039
2040## Version 8.5
2041
2042New languages:
2043
2044- *pf.conf* by [Peter Piwowarski][]
2045- *Julia* by [Kenta Sato][]
2046- *Prolog* by [Raivo Laanemets][]
2047- *Docker* by [Alexis Hénaut][]
2048- *Fortran* by [Anthony Scemama][] and [Thomas Applencourt][]
2049- *Kotlin* by [Sergey Mashkov][]
2050
2051New styles:
2052
2053- *Agate* by [Taufik Nurrohman][]
2054- *Darcula* by [JetBrains][]
2055- *Atelier Sulphurpool* by [Bram de Haan][]
2056- *Android Studio* by [Pedro Oliveira][]
2057
2058Notable fixes and improvements to existing languages:
2059
2060- ES6 features in JavaScript are better supported now by [Gu Yiling][].
2061- Swift now recognizes body-less method definitions.
2062- Single expression functions `def foo, do: ... ` now work in Elixir.
2063- More uniform detection of built-in classes in Objective C.
2064- Fixes for number literals and processor directives in Rust.
2065- HTML `<script>` tag now allows any language, not just JavaScript.
2066- Multi-line comments are supported now in MatLab.
2067
2068[Taufik Nurrohman]: https://github.com/taufik-nurrohman
2069[Jet Brains]: https://www.jetbrains.com/
2070[Peter Piwowarski]: https://github.com/oldlaptop
2071[Kenta Sato]: https://github.com/bicycle1885
2072[Bram de Haan]: https://github.com/atelierbram
2073[Raivo Laanemets]: https://github.com/rla
2074[Alexis Hénaut]: https://github.com/AlexisNo
2075[Anthony Scemama]: https://github.com/scemama
2076[Pedro Oliveira]: https://github.com/kanytu
2077[Gu Yiling]: https://github.com/Justineo
2078[Sergey Mashkov]: https://github.com/cy6erGn0m
2079[Thomas Applencourt]: https://github.com/TApplencourt
2080
2081
2082## Version 8.4
2083
2084We've got the new [demo page][]! The obvious new feature is the new look, but
2085apart from that it's got smarter: by presenting languages in groups it avoids
2086running 10000 highlighting attempts after first load which was slowing it down
2087and giving bad overall impression. It is now also being generated from test
2088code snippets so the authors of new languages don't have to update both tests
2089and the demo page with the same thing.
2090
2091Other notable changes:
2092
2093- The `template_comment` class is gone in favor of the more general `comment`.
2094- Number parsing unified and improved across languages.
2095- C++, Java and C# now use unified grammar to highlight titles in
2096 function/method definitions.
2097- The browser build is now usable as an AMD module, there's no separate build
2098 target for that anymore.
2099- OCaml has got a [comprehensive overhaul][ocaml] by [Mickaël Delahaye][].
2100- Clojure's data structures and literals are now highlighted outside of lists
2101 and we can now highlight Clojure's REPL sessions.
2102
2103New languages:
2104
2105- *AspectJ* by [Hakan Özler][]
2106- *STEP Part 21* by [Adam Joseph Cook][]
2107- *SML* derived by [Edwin Dalorzo][] from OCaml definition
2108- *Mercury* by [mucaho][]
2109- *Smali* by [Dennis Titze][]
2110- *Verilog* by [Jon Evans][]
2111- *Stata* by [Brian Quistorff][]
2112
2113[Hakan Özler]: https://github.com/ozlerhakan
2114[Adam Joseph Cook]: https://github.com/adamjcook
2115[demo page]: https://highlightjs.org/static/demo/
2116[Ivan Sagalaev]: https://github.com/isagalaev
2117[Edwin Dalorzo]: https://github.com/edalorzo
2118[mucaho]: https://github.com/mucaho
2119[Dennis Titze]: https://github.com/titze
2120[Jon Evans]: https://github.com/craftyjon
2121[Brian Quistorff]: https://github.com/bquistorff
2122[ocaml]: https://github.com/isagalaev/highlight.js/pull/608#issue-46190207
2123[Mickaël Delahaye]: https://github.com/polazarus
2124
2125
2126## Version 8.3
2127
2128We streamlined our tool chain, it is now based entirely on node.js instead of
2129being a mix of node.js, Python and Java. The build script options and arguments
2130remained the same, and we've noted all the changes in the [documentation][b].
2131Apart from reducing complexity, the new build script is also faster from not
2132having to start Java machine repeatedly. The credits for the work go to [Jeremy
2133Hull][].
2134
2135Some notable fixes:
2136
2137- PHP and JavaScript mixed in HTML now live happily with each other.
2138- JavaScript regexes now understand ES6 flags "u" and "y".
2139- `throw` keyword is no longer detected as a method name in Java.
2140- Fixed parsing of numbers and symbols in Clojure thanks to [input from Ivan
2141 Kleshnin][ik].
2142
2143New languages in this release:
2144
2145- *Less* by [Max Mikhailov][]
2146- *Stylus* by [Bryant Williams][]
2147- *Tcl* by [Radek Liska][]
2148- *Puppet* by [Jose Molina Colmenero][]
2149- *Processing* by [Erik Paluka][]
2150- *Twig* templates by [Luke Holder][]
2151- *PowerShell* by [David Mohundro][], based on [the work of Nicholas Blumhardt][ps]
2152- *XL* by [Christophe de Dinechin][]
2153- *LiveScript* by [Taneli Vatanen][] and [Jen Evers-Corvina][]
2154- *ERB* (Ruby in HTML) by [Lucas Mazza][]
2155- *Roboconf* by [Vincent Zurczak][]
2156
2157[b]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
2158[Jeremy Hull]: https://github.com/sourrust
2159[ik]: https://twitter.com/IvanKleshnin/status/514041599484231680
2160[Max Mikhailov]: https://github.com/seven-phases-max
2161[Bryant Williams]: https://github.com/scien
2162[Radek Liska]: https://github.com/Nindaleth
2163[Jose Molina Colmenero]: https://github.com/Moliholy
2164[Erik Paluka]: https://github.com/paluka
2165[Luke Holder]: https://github.com/lukeholder
2166[David Mohundro]: https://github.com/drmohundro
2167[ps]: https://github.com/OctopusDeploy/Library/blob/master/app/shared/presentation/highlighting/powershell.js
2168[Christophe de Dinechin]: https://github.com/c3d
2169[Taneli Vatanen]: https://github.com/Daiz-
2170[Jen Evers-Corvina]: https://github.com/sevvie
2171[Lucas Mazza]: https://github.com/lucasmazza
2172[Vincent Zurczak]: https://github.com/vincent-zurczak
2173
2174
2175## Version 8.2
2176
2177We've finally got [real tests][test] and [continuous testing on Travis][ci]
2178thanks to [Jeremy Hull][] and [Chris Eidhof][]. The tests designed to cover
2179everything: language detection, correct parsing of individual language features
2180and various special cases. This is a very important change that gives us
2181confidence in extending language definitions and refactoring library core.
2182
2183We're going to redesign the old [demo/test suite][demo] into an interactive
2184demo web app. If you're confident front-end developer or designer and want to
2185help us with it, drop a comment into [the issue][#542] on GitHub.
2186
2187[test]: https://github.com/isagalaev/highlight.js/tree/master/test
2188[demo]: https://highlightjs.org/static/test.html
2189[#542]: https://github.com/isagalaev/highlight.js/issues/542
2190[ci]: https://travis-ci.org/isagalaev/highlight.js
2191[Jeremy Hull]: https://github.com/sourrust
2192[Chris Eidhof]: https://github.com/chriseidhof
2193
2194As usually there's a handful of new languages in this release:
2195
2196- *Groovy* by [Guillaume Laforge][]
2197- *Dart* by [Maxim Dikun][]
2198- *Dust* by [Michael Allen][]
2199- *Scheme* by [JP Verkamp][]
2200- *G-Code* by [Adam Joseph Cook][]
2201- *Q* from Kx Systems by [Sergey Vidyuk][]
2202
2203[Guillaume Laforge]: https://github.com/glaforge
2204[Maxim Dikun]: https://github.com/dikmax
2205[Michael Allen]: https://github.com/bfui
2206[JP Verkamp]: https://github.com/jpverkamp
2207[Adam Joseph Cook]: https://github.com/adamjcook
2208[Sergey Vidyuk]: https://github.com/sv
2209
2210Other improvements:
2211
2212- [Erik Osheim][] heavily reworked Scala definitions making it richer.
2213- [Lucas Mazza][] fixed Ruby hashes highlighting
2214- Lisp variants (Lisp, Clojure and Scheme) are unified in regard to naming
2215 the first symbol in parentheses: it's "keyword" in general case and also
2216 "built_in" for built-in functions in Clojure and Scheme.
2217
2218[Erik Osheim]: https://github.com/non
2219[Lucas Mazza]: https://github.com/lucasmazza
2220
2221
2222## Version 8.1
2223
2224New languages:
2225
2226- *Gherkin* by [Sam Pikesley][]
2227- *Elixir* by [Josh Adams][]
2228- *NSIS* by [Jan T. Sott][]
2229- *VIM script* by [Jun Yang][]
2230- *Protocol Buffers* by [Dan Tao][]
2231- *Nix* by [Domen Kožar][]
2232- *x86asm* by [innocenat][]
2233- *Cap'n Proto* and *Thrift* by [Oleg Efimov][]
2234- *Monkey* by [Arthur Bikmullin][]
2235- *TypeScript* by [Panu Horsmalahti][]
2236- *Nimrod* by [Flaviu Tamas][]
2237- *Gradle* by [Damian Mee][]
2238- *Haxe* by [Christopher Kaster][]
2239- *Swift* by [Chris Eidhof][] and [Nate Cook][]
2240
2241New styles:
2242
2243- *Kimbie*, light and dark variants by [Jan T. Sott][]
2244- *Color brewer* by [Fabrício Tavares de Oliveira][]
2245- *Codepen.io embed* by [Justin Perry][]
2246- *Hybrid* by [Nic West][]
2247
2248[Sam Pikesley]: https://github.com/pikesley
2249[Sindre Sorhus]: https://github.com/sindresorhus
2250[Josh Adams]: https://github.com/knewter
2251[Jan T. Sott]: https://github.com/idleberg
2252[Jun Yang]: https://github.com/harttle
2253[Dan Tao]: https://github.com/dtao
2254[Domen Kožar]: https://github.com/iElectric
2255[innocenat]: https://github.com/innocenat
2256[Oleg Efimov]: https://github.com/Sannis
2257[Arthur Bikmullin]: https://github.com/devolonter
2258[Panu Horsmalahti]: https://github.com/panuhorsmalahti
2259[Flaviu Tamas]: https://github.com/flaviut
2260[Damian Mee]: https://github.com/chester1000
2261[Christopher Kaster]: http://christopher.kaster.ws
2262[Fabrício Tavares de Oliveira]: https://github.com/fabriciotav
2263[Justin Perry]: https://github.com/ourmaninamsterdam
2264[Nic West]: https://github.com/nicwest
2265[Chris Eidhof]: https://github.com/chriseidhof
2266[Nate Cook]: https://github.com/natecook1000
2267
2268Other improvements:
2269
2270- The README is heavily reworked and brought up to date by [Jeremy Hull][].
2271- Added [`listLanguages()`][ll] method in the API.
2272- Improved C/C++/C# detection.
2273- Added a bunch of new language aliases, documented the existing ones. Thanks to
2274 [Sindre Sorhus][] for background research.
2275- Added phrasal English words to boost relevance in comments.
2276- Many improvements to SQL definition made by [Heiko August][],
2277 [Nikolay Lisienko][] and [Travis Odom][].
2278- The shorter `lang-` prefix for language names in HTML classes supported
2279 alongside `language-`. Thanks to [Jeff Escalante][].
2280- Ruby's got support for interactive console sessions. Thanks to
2281 [Pascal Hurni][].
2282- Added built-in functions for R language. Thanks to [Artem A. Klevtsov][].
2283- Rust's got definition for lifetime parameters and improved string syntax.
2284 Thanks to [Roman Shmatov][].
2285- Various improvements to Objective-C definition by [Matt Diephouse][].
2286- Fixed highlighting of generics in Java.
2287
2288[ll]: http://highlightjs.readthedocs.org/en/latest/api.html#listlanguages
2289[Sindre Sorhus]: https://github.com/sindresorhus
2290[Heiko August]: https://github.com/auge8472
2291[Nikolay Lisienko]: https://github.com/neor-ru
2292[Travis Odom]: https://github.com/Burstaholic
2293[Jeff Escalante]: https://github.com/jenius
2294[Pascal Hurni]: https://github.com/phurni
2295[Jiyin Yiyong]: https://github.com/jiyinyiyong
2296[Artem A. Klevtsov]: https://github.com/unikum
2297[Roman Shmatov]: https://github.com/shmatov
2298[Jeremy Hull]: https://github.com/sourrust
2299[Matt Diephouse]: https://github.com/mdiep
2300
2301
2302## Version 8.0
2303
2304This new major release is quite a big overhaul bringing both new features and
2305some backwards incompatible changes. However, chances are that the majority of
2306users won't be affected by the latter: the basic scenario described in the
2307README is left intact.
2308
2309Here's what did change in an incompatible way:
2310
2311- We're now prefixing all classes located in [CSS classes reference][cr] with
2312 `hljs-`, by default, because some class names would collide with other
2313 people's stylesheets. If you were using an older version, you might still want
2314 the previous behavior, but still want to upgrade. To suppress this new
2315 behavior, you would initialize like so:
2316
2317 ```html
2318 <script type="text/javascript">
2319 hljs.configure({classPrefix: ''});
2320 hljs.initHighlightingOnLoad();
2321 </script>
2322 ```
2323
2324- `tabReplace` and `useBR` that were used in different places are also unified
2325 into the global options object and are to be set using `configure(options)`.
2326 This function is documented in our [API docs][]. Also note that these
2327 parameters are gone from `highlightBlock` and `fixMarkup` which are now also
2328 rely on `configure`.
2329
2330- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which
2331 was used to register languages with the library in favor of two new methods:
2332 `registerLanguage` and `getLanguage`. Both are documented in our [API docs][].
2333
2334- Result returned from `highlight` and `highlightAuto` no longer contains two
2335 separate attributes contributing to relevance score, `relevance` and
2336 `keyword_count`. They are now unified in `relevance`.
2337
2338Another technically compatible change that nonetheless might need attention:
2339
2340- The structure of the NPM package was refactored, so if you had installed it
2341 locally, you'll have to update your paths. The usual `require('highlight.js')`
2342 works as before. This is contributed by [Dmitry Smolin][].
2343
2344New features:
2345
2346- Languages now can be recognized by multiple names like "js" for JavaScript or
2347 "html" for, well, HTML (which earlier insisted on calling it "xml"). These
2348 aliases can be specified in the class attribute of the code container in your
2349 HTML as well as in various API calls. For now there are only a few very common
2350 aliases but we'll expand it in the future. All of them are listed in the
2351 [class reference][cr].
2352
2353- Language detection can now be restricted to a subset of languages relevant in
2354 a given context — a web page or even a single highlighting call. This is
2355 especially useful for node.js build that includes all the known languages.
2356 Another example is a StackOverflow-style site where users specify languages
2357 as tags rather than in the markdown-formatted code snippets. This is
2358 documented in the [API reference][] (see methods `highlightAuto` and
2359 `configure`).
2360
2361- Language definition syntax streamlined with [variants][] and
2362 [beginKeywords][].
2363
2364New languages and styles:
2365
2366- *Oxygene* by [Carlo Kok][]
2367- *Mathematica* by [Daniel Kvasnička][]
2368- *Autohotkey* by [Seongwon Lee][]
2369- *Atelier* family of styles in 10 variants by [Bram de Haan][]
2370- *Paraíso* styles by [Jan T. Sott][]
2371
2372Miscellaneous improvements:
2373
2374- Highlighting `=>` prompts in Clojure.
2375- [Jeremy Hull][] fixed a lot of styles for consistency.
2376- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html].
2377- Objective C and C# now properly highlight titles in method definition.
2378- Big overhaul of relevance counting for a number of languages. Please do report
2379 bugs about mis-detection of non-trivial code snippets!
2380
2381[API reference]: http://highlightjs.readthedocs.org/en/latest/api.html
2382
2383[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
2384[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html
2385[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion
2386[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d
2387[php-html]: https://twitter.com/highlightjs/status/408890903017689088
2388
2389[Carlo Kok]: https://github.com/carlokok
2390[Bram de Haan]: https://github.com/atelierbram
2391[Daniel Kvasnička]: https://github.com/dkvasnicka
2392[Dmitry Smolin]: https://github.com/dimsmol
2393[Jeremy Hull]: https://github.com/sourrust
2394[Seongwon Lee]: https://github.com/dlimpid
2395[Jan T. Sott]: https://github.com/idleberg
2396
2397
2398## Version 7.5
2399
2400A catch-up release dealing with some of the accumulated contributions. This one
2401is probably will be the last before the 8.0 which will be slightly backwards
2402incompatible regarding some advanced use-cases.
2403
2404One outstanding change in this version is the addition of 6 languages to the
2405[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and
2406Makefile. It now weighs about 6K more but we're going to keep it under 30K.
2407
2408New languages:
2409
2410- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud]
2411- [LiveCode Server][lcs] by [Ralf Bitter][revig]
2412- Scilab by [Sylvestre Ledru][sylvestre]
2413- basic support for Makefile by [Ivan Sagalaev][isagalaev]
2414
2415Improvements:
2416
2417- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}`
2418 regexps.
2419- Clojure now allows a function call in the beginning of s-expressions
2420 `(($filter "myCount") (arr 1 2 3 4 5))`.
2421- Haskell's got new keywords and now recognizes more things like pragmas,
2422 preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep]
2423 for the implementation and to [Jeremy Hull][sourrust] for guiding it.
2424- Miscellaneous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#.
2425
2426[mehdid]: https://github.com/mehdid
2427[nbraud]: https://github.com/nbraud
2428[revig]: https://github.com/revig
2429[lcs]: http://livecode.com/developers/guides/server/
2430[sylvestre]: https://github.com/sylvestre
2431[isagalaev]: https://github.com/isagalaev
2432[treep]: https://github.com/treep
2433[sourrust]: https://github.com/sourrust
2434[d]: http://highlightjs.org/download/
2435
2436
2437## New core developers
2438
2439The latest long period of almost complete inactivity in the project coincided
2440with growing interest to it led to a decision that now seems completely obvious:
2441we need more core developers.
2442
2443So without further ado let me welcome to the core team two long-time
2444contributors: [Jeremy Hull][] and [Oleg
2445Efimov][].
2446
2447Hope now we'll be able to work through stuff faster!
2448
2449P.S. The historical commit is [here][1] for the record.
2450
2451[Jeremy Hull]: https://github.com/sourrust
2452[Oleg Efimov]: https://github.com/sannis
2453[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f
2454
2455
2456## Version 7.4
2457
2458This long overdue version is a snapshot of the current source tree with all the
2459changes that happened during the past year. Sorry for taking so long!
2460
2461Along with the changes in code highlight.js has finally got its new home at
2462<http://highlightjs.org/>, moving from its cradle on Software Maniacs which it
2463outgrew a long time ago. Be sure to report any bugs about the site to
2464<mailto:info@highlightjs.org>.
2465
2466On to what's new…
2467
2468New languages:
2469
2470- Handlebars templates by [Robin Ward][]
2471- Oracle Rules Language by [Jason Jacobson][]
2472- F# by [Joans Follesø][]
2473- AsciiDoc and Haml by [Dan Allen][]
2474- Lasso by [Eric Knibbe][]
2475- SCSS by [Kurt Emch][]
2476- VB.NET by [Poren Chiang][]
2477- Mizar by [Kelley van Evert][]
2478
2479[Robin Ward]: https://github.com/eviltrout
2480[Jason Jacobson]: https://github.com/jayce7
2481[Joans Follesø]: https://github.com/follesoe
2482[Dan Allen]: https://github.com/mojavelinux
2483[Eric Knibbe]: https://github.com/EricFromCanada
2484[Kurt Emch]: https://github.com/kemch
2485[Poren Chiang]: https://github.com/rschiang
2486[Kelley van Evert]: https://github.com/kelleyvanevert
2487
2488New style themes:
2489
2490- Monokai Sublime by [noformnocontent][]
2491- Railscasts by [Damien White][]
2492- Obsidian by [Alexander Marenin][]
2493- Docco by [Simon Madine][]
2494- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything)
2495- Foundation by [Dan Allen][]
2496
2497[noformnocontent]: http://nn.mit-license.org/
2498[Damien White]: https://github.com/visoft
2499[Alexander Marenin]: https://github.com/ioncreature
2500[Simon Madine]: https://github.com/thingsinjars
2501[Ivan Sagalaev]: https://github.com/isagalaev
2502
2503Other notable changes:
2504
2505- Corrected many corner cases in CSS.
2506- Dropped Python 2 version of the build tool.
2507- Implemented building for the AMD format.
2508- Updated Rust keywords (thanks to [Dmitry Medvinsky][]).
2509- Literal regexes can now be used in language definitions.
2510- CoffeeScript highlighting is now significantly more robust and rich due to
2511 input from [Cédric Néhémie][].
2512
2513[Dmitry Medvinsky]: https://github.com/dmedvinsky
2514[Cédric Néhémie]: https://github.com/abe33
2515
2516
2517## Version 7.3
2518
2519- Since this version highlight.js no longer works in IE version 8 and older.
2520 It's made it possible to reduce the library size and dramatically improve code
2521 readability and made it easier to maintain. Time to go forward!
2522
2523- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and
2524 Brainfuck (by [Evgeny Stepanischev][bolk]).
2525
2526- Improvements to existing languages:
2527
2528 - interpreter prompt in Python (`>>>` and `...`)
2529 - @-properties and classes in CoffeeScript
2530 - E4X in JavaScript (by [Oleg Efimov][oe])
2531 - new keywords in Perl (by [Kirk Kimmel][kk])
2532 - big Ruby syntax update (by [Vasily Polovnyov][vast])
2533 - small fixes in Bash
2534
2535- Also Oleg Efimov did a great job of moving all the docs for language and style
2536 developers and contributors from the old wiki under the source code in the
2537 "docs" directory. Now these docs are nicely presented at
2538 <http://highlightjs.readthedocs.org/>.
2539
2540[ng]: https://github.com/nathan11g
2541[dd]: https://github.com/drdrang
2542[bolk]: https://github.com/bolknote
2543[oe]: https://github.com/Sannis
2544[kk]: https://github.com/kimmel
2545[vast]: https://github.com/vast
2546
2547
2548## Version 7.2
2549
2550A regular bug-fix release without any significant new features. Enjoy!
2551
2552
2553## Version 7.1
2554
2555A Summer crop:
2556
2557- [Marc Fornos][mf] made the definition for Clojure along with the matching
2558 style Rainbow (which, of course, works for other languages too).
2559- CoffeeScript support continues to improve getting support for regular
2560 expressions.
2561- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the
2562 [project by Chris Kempson][tm0].
2563- Thanks to [Casey Duncun][cd] the library can now be built in the popular
2564 [AMD format][amd].
2565- And last but not least, we've got a fair number of correctness and consistency
2566 fixes, including a pretty significant refactoring of Ruby.
2567
2568[mf]: https://github.com/mfornos
2569[tm]: http://jmblog.github.com/color-themes-for-highlightjs/
2570[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme
2571[cd]: https://github.com/caseman
2572[amd]: http://requirejs.org/docs/whyamd.html
2573
2574
2575## Version 7.0
2576
2577The reason for the new major version update is a global change of keyword syntax
2578which resulted in the library getting smaller once again. For example, the
2579hosted build is 2K less than at the previous version while supporting two new
2580languages.
2581
2582Notable changes:
2583
2584- The library now works not only in a browser but also with [node.js][]. It is
2585 installable with `npm install highlight.js`. [API][] docs are available on our
2586 wiki.
2587
2588- The new unique feature (apparently) among syntax highlighters is highlighting
2589 *HTTP* headers and an arbitrary language in the request body. The most useful
2590 languages here are *XML* and *JSON* both of which highlight.js does support.
2591 Here's [the detailed post][p] about the feature.
2592
2593- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an
2594 emulation of*XCode* IDE by [Angel Olloqui][ao].
2595
2596- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc]
2597 and *GLSL* by [Sergey Tikhomirov][st].
2598
2599- *Nginx* syntax has become a million times smaller and more universal thanks to
2600 remaking it in a more generic manner that doesn't require listing all the
2601 directives in the known universe.
2602
2603- Function titles are now highlighted in *PHP*.
2604
2605- *Haskell* and *VHDL* were significantly reworked to be more rich and correct
2606 by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik].
2607
2608And last but not least, many bugs have been fixed around correctness and
2609language detection.
2610
2611Overall highlight.js currently supports 51 languages and 20 style themes.
2612
2613[node.js]: http://nodejs.org/
2614[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
2615[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/
2616[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
2617[ao]: https://github.com/angelolloqui
2618[ar]: https://github.com/raleksandar
2619[jc]: https://github.com/jcheng5
2620[st]: https://github.com/tikhomirov
2621[sr]: https://github.com/sourrust
2622[ik]: https://github.com/ikalnitsky
2623
2624
2625## Version 6.2
2626
2627A lot of things happened in highlight.js since the last version! We've got nine
2628new contributors, the discussion group came alive, and the main branch on GitHub
2629now counts more than 350 followers. Here are most significant results coming
2630from all this activity:
2631
2632- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and
2633 experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av],
2634 [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis
2635 Bardadym][db] and [John Crepezzi][jc].
2636
2637- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of
2638 another well-known highlighter Google Code Prettify by [Aahan Krish][ak].
2639
2640- A vast number of [correctness fixes and code refactorings][log], mostly made
2641 by [Oleg Efimov][oe] and [Evgeny Stepanischev][es].
2642
2643[av]: https://github.com/vlasovskikh
2644[am]: https://github.com/myadzel
2645[dn]: https://github.com/dnagir
2646[oe]: https://github.com/Sannis
2647[db]: https://github.com/btd
2648[jc]: https://github.com/seejohnrun
2649[lm]: http://grigio.org/
2650[ak]: https://github.com/geekpanth3r
2651[es]: https://github.com/bolknote
2652[log]: https://github.com/isagalaev/highlight.js/commits/
2653
2654
2655## Version 6.1 — Solarized
2656
2657[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][]
2658style theme famous for being based on the intricate color theory to achieve
2659correct contrast and color perception. It is now available for highlight.js in
2660both variants — light and dark.
2661
2662This version also adds a new original style Arta. Its author pumbur maintains a
2663[heavily modified fork of highlight.js][pb] on GitHub.
2664
2665[jh]: https://github.com/sourrust
2666[solarized]: http://ethanschoonover.com/solarized
2667[pb]: https://github.com/pumbur/highlight.js
2668
2669
2670## Version 6.0
2671
2672New major version of the highlighter has been built on a significantly
2673refactored syntax. Due to this it's even smaller than the previous one while
2674supporting more languages!
2675
2676New languages are:
2677
2678- Haskell by [Jeremy Hull][sourrust]
2679- Erlang in two varieties — module and REPL — made collectively by [Nikolay
2680 Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov]
2681- Objective C by [Valerii Hiora][vhbit]
2682- Vala by [Antono Vasiljev][antono]
2683- Go by [Stephan Kountso][steplg]
2684
2685[sourrust]: https://github.com/sourrust
2686[desh]: http://desh.su/
2687[arhibot]: https://github.com/arhibot
2688[ignatov]: https://github.com/ignatov
2689[vhbit]: https://github.com/vhbit
2690[antono]: https://github.com/antono
2691[steplg]: https://github.com/steplg
2692
2693Also this version is marginally faster and fixes a number of small long-standing
2694bugs.
2695
2696Developer overview of the new language syntax is available in a [blog post about
2697recent beta release][beta].
2698
2699[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/
2700
2701P.S. New version is not yet available on a Yandex CDN, so for now you have to
2702download [your own copy][d].
2703
2704[d]: /soft/highlight/en/download/
2705
2706
2707## Version 5.14
2708
2709Fixed bugs in HTML/XML detection and relevance introduced in previous
2710refactoring.
2711
2712Also test.html now shows the second best result of language detection by
2713relevance.
2714
2715
2716## Version 5.13
2717
2718Past weekend began with a couple of simple additions for existing languages but
2719ended up in a big code refactoring bringing along nice improvements for language
2720developers.
2721
2722### For users
2723
2724- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard.
2725- Description of HTML has got new tags from [HTML 5][].
2726- CSS-styles have been unified to use consistent padding and also have lost
2727 pop-outs with names of detected languages.
2728- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake & VHDL.
2729
2730This makes total number of languages supported by highlight.js to reach 35.
2731
2732Bug fixes:
2733
2734- Custom classes on `<pre>` tags are not being overridden anymore
2735- More correct highlighting of code blocks inside non-`<pre>` containers:
2736 highlighter now doesn't insist on replacing them with its own container and
2737 just replaces the contents.
2738- Small fixes in browser compatibility and heuristics.
2739
2740[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
2741[html 5]: http://en.wikipedia.org/wiki/HTML5
2742[ik]: http://kalnitsky.org.ua/
2743
2744### For developers
2745
2746The most significant change is the ability to include language submodes right
2747under `contains` instead of defining explicit named submodes in the main array:
2748
2749 contains: [
2750 'string',
2751 'number',
2752 {begin: '\\n', end: hljs.IMMEDIATE_RE}
2753 ]
2754
2755This is useful for auxiliary modes needed only in one place to define parsing.
2756Note that such modes often don't have `className` and hence won't generate a
2757separate `<span>` in the resulting markup. This is similar in effect to
2758`noMarkup: true`. All existing languages have been refactored accordingly.
2759
2760Test file test.html has at last become a real test. Now it not only puts the
2761detected language name under the code snippet but also tests if it matches the
2762expected one. Test summary is displayed right above all language snippets.
2763
2764
2765## CDN
2766
2767Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
2768[Link up][l]!
2769
2770[yandex]: http://yandex.com/
2771[l]: http://softwaremaniacs.org/soft/highlight/en/download/
2772
2773
2774## Version 5.10 — "Paris".
2775
2776Though I'm on a vacation in Paris, I decided to release a new version with a
2777couple of small fixes:
2778
2779- Tomas Vitvar discovered that TAB replacement doesn't always work when used
2780 with custom markup in code
2781- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
2782
2783
2784## Version 5.9
2785
2786A long-awaited version is finally released.
2787
2788New languages:
2789
2790- Andrew Fedorov made a definition for Lua
2791- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
2792 Nginx config
2793- [Vladimir Moskva][vm] made a definition for TeX
2794
2795[pl]: http://kung-fu-tzu.ru/
2796[vm]: http://fulc.ru/
2797
2798Fixes for existing languages:
2799
2800- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
2801 [YARD][] inline documentation
2802- the definition of SQL has become more solid and now it shouldn't be overly
2803 greedy when it comes to language detection
2804
2805[ls]: http://gnuu.org/
2806[yard]: http://yardoc.org/
2807
2808The highlighter has become more usable as a library allowing to do highlighting
2809from initialization code of JS frameworks and in ajax methods (see.
2810readme.eng.txt).
2811
2812Also this version drops support for the [WordPress][wp] plugin. Everyone is
2813welcome to [pick up its maintenance][p] if needed.
2814
2815[wp]: http://wordpress.org/
2816[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
2817
2818
2819## Version 5.8
2820
2821- Jan Berkel has contributed a definition for Scala. +1 to hotness!
2822- All CSS-styles are rewritten to work only inside `<pre>` tags to avoid
2823 conflicts with host site styles.
2824
2825
2826## Version 5.7.
2827
2828Fixed escaping of quotes in VBScript strings.
2829
2830
2831## Version 5.5
2832
2833This version brings a small change: now .ini-files allow digits, underscores and
2834square brackets in key names.
2835
2836
2837## Version 5.4
2838
2839Fixed small but upsetting bug in the packer which caused incorrect highlighting
2840of explicitly specified languages. Thanks to Andrew Fedorov for precise
2841diagnostics!
2842
2843
2844## Version 5.3
2845
2846The version to fulfil old promises.
2847
2848The most significant change is that highlight.js now preserves custom user
2849markup in code along with its own highlighting markup. This means that now it's
2850possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
2851[initial proposal][1] and for making a proof-of-concept patch.
2852
2853Also in this version:
2854
2855- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
2856 support for CSS @-rules and Ruby symbols.
2857- Yura Zaripov has sent two styles: Brown Paper and School Book.
2858- Oleg Volchkov has sent a definition for [Parser 3][p3].
2859
2860[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
2861[p3]: http://www.parser.ru/
2862[vp]: http://vasily.polovnyov.ru/
2863[vd]: http://dolzhenko.blogspot.com/
2864
2865
2866## Version 5.2
2867
2868- at last it's possible to replace indentation TABs with something sensible
2869 (e.g. 2 or 4 spaces)
2870- new keywords and built-ins for 1C by Sergey Baranov
2871- a couple of small fixes to Apache highlighting
2872
2873
2874## Version 5.1
2875
2876This is one of those nice version consisting entirely of new and shiny
2877contributions!
2878
2879- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
2880- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
2881 original visual style for it is now available for all highlight.js languages
2882 under the name "Magula".
2883- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
2884 languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
2885 the matter.
2886
2887[vooon]: http://vehq.ru/about/
2888[rukeba]: http://rukeba.com/
2889[drake]: http://drakeguan.org/
2890[ke]: http://k-evdokimenko.moikrug.ru/
2891
2892
2893## Version 5.0
2894
2895The main change in the new major version of highlight.js is a mechanism for
2896packing several languages along with the library itself into a single compressed
2897file. Now sites using several languages will load considerably faster because
2898the library won't dynamically include additional files while loading.
2899
2900Also this version fixes a long-standing bug with Javascript highlighting that
2901couldn't distinguish between regular expressions and division operations.
2902
2903And as usually there were a couple of minor correctness fixes.
2904
2905Great thanks to all contributors! Keep using highlight.js.
2906
2907
2908## Version 4.3
2909
2910This version comes with two contributions from [Jason Diamond][jd]:
2911
2912- language definition for C# (yes! it was a long-missed thing!)
2913- Visual Studio-like highlighting style
2914
2915Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
2916
2917[jd]: http://jason.diamond.name/weblog/
2918
2919
2920## Version 4.2
2921
2922The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
2923somewhat experimental meaning that for highlighting "keywords" it doesn't use
2924any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
2925in parentheses wherever it makes sense. I'd like to ask people programming in
2926Lisp to confirm if it's a good idea and send feedback to [the forum][f].
2927
2928Other changes:
2929
2930- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
2931- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
2932 test.html
2933- comments now allowed inside Ruby function definition
2934- [MEL][] language from [Shuen-Huei Guan][drake]
2935- whitespace now allowed between `<pre>` and `<code>`
2936- better auto-detection of C++ and PHP
2937- HTML allows embedded VBScript (`<% .. %>`)
2938
2939[f]: http://softwaremaniacs.org/forum/highlightjs/
2940[voldmar]: http://voldmar.ya.ru/
2941[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
2942[drake]: http://drakeguan.org/
2943
2944
2945## Version 4.1
2946
2947Languages:
2948
2949- Bash from Vah
2950- DOS bat-files from Alexander Makarov (Sam)
2951- Diff files from Vasily Polovnyov
2952- Ini files from myself though initial idea was from Sam
2953
2954Styles:
2955
2956- Zenburn from Vladimir Epifanov, this is an imitation of a
2957 [well-known theme for Vim][zenburn].
2958- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
2959 just one color in only three gradations :-)
2960
2961In other news. [One small bug][bug] was fixed, built-in keywords were added for
2962Python and C++ which improved auto-detection for the latter (it was shame that
2963[my wife's blog][alenacpp] had issues with it from time to time). And lastly
2964thanks go to Sam for getting rid of my stylistic comments in code that were
2965getting in the way of [JSMin][].
2966
2967[zenburn]: http://en.wikipedia.org/wiki/Zenburn
2968[alenacpp]: http://alenacpp.blogspot.com/
2969[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
2970[jsmin]: http://code.google.com/p/jsmin-php/
2971
2972
2973## Version 4.0
2974
2975New major version is a result of vast refactoring and of many contributions.
2976
2977Visible new features:
2978
2979- Highlighting of embedded languages. Currently is implemented highlighting of
2980 Javascript and CSS inside HTML.
2981- Bundled 5 ready-made style themes!
2982
2983Invisible new features:
2984
2985- Highlight.js no longer pollutes global namespace. Only one object and one
2986 function for backward compatibility.
2987- Performance is further increased by about 15%.
2988
2989Changing of a major version number caused by a new format of language definition
2990files. If you use some third-party language files they should be updated.
2991
2992
2993## Version 3.5
2994
2995A very nice version in my opinion fixing a number of small bugs and slightly
2996increased speed in a couple of corner cases. Thanks to everybody who reports
2997bugs in he [forum][f] and by email!
2998
2999There is also a new language — XML. A custom XML formerly was detected as HTML
3000and didn't highlight custom tags. In this version I tried to make custom XML to
3001be detected and highlighted by its own rules. Which by the way include such
3002things as CDATA sections and processing instructions (`<? ... ?>`).
3003
3004[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
3005
3006
3007## Version 3.3
3008
3009[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
3010File export.html contains a little program that shows and allows to copy and
3011paste an HTML code generated by the highlighter for any code snippet. This can
3012be useful in situations when one can't use the script itself on a site.
3013
3014
3015[xonix]: http://xonixx.blogspot.com/
3016
3017
3018## Version 3.2 consists completely of contributions:
3019
3020- Vladimir Gubarkov has described SmallTalk
3021- Yuri Ivanov has described 1C
3022- Peter Leonov has packaged the highlighter as a Firefox extension
3023- Vladimir Ermakov has compiled a mod for phpBB
3024
3025Many thanks to you all!
3026
3027
3028## Version 3.1
3029
3030Three new languages are available: Django templates, SQL and Axapta. The latter
3031two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
3032SQL definition but I'd never started it be it from the ground up :-)
3033
3034The engine itself has got a long awaited feature of grouping keywords
3035("keyword", "built-in function", "literal"). No more hacks!
3036
3037[1]: http://roudakov.ru/
3038
3039
3040## Version 3.0
3041
3042It is major mainly because now highlight.js has grown large and has become
3043modular. Now when you pass it a list of languages to highlight it will
3044dynamically load into a browser only those languages.
3045
3046Also:
3047
3048- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
3049 RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
3050 languages!
3051- Heuristics for C++ and HTML got better.
3052- I've implemented (at last) a correct handling of backslash escapes in C-like
3053 languages.
3054
3055There is also a small backwards incompatible change in the new version. The
3056function initHighlighting that was used to initialize highlighting instead of
3057initHighlightingOnLoad a long time ago no longer works. If you by chance still
3058use it — replace it with the new one.
3059
3060[RibKit]: http://ribkit.sourceforge.net/
3061
3062
3063## Version 2.9
3064
3065Highlight.js is a parser, not just a couple of regular expressions. That said
3066I'm glad to announce that in the new version 2.9 has support for:
3067
3068- in-string substitutions for Ruby -- `#{...}`
3069- strings from from numeric symbol codes (like #XX) for Delphi
3070
3071
3072## Version 2.8
3073
3074A maintenance release with more tuned heuristics. Fully backwards compatible.
3075
3076
3077## Version 2.7
3078
3079- Nikita Ledyaev presents highlighting for VBScript, yay!
3080- A couple of bugs with escaping in strings were fixed thanks to Mickle
3081- Ongoing tuning of heuristics
3082
3083Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
3084
3085
3086## Version 2.4
3087
3088- Peter Leonov provides another improved highlighting for Perl
3089- Javascript gets a new kind of keywords — "literals". These are the words
3090 "true", "false" and "null"
3091
3092Also highlight.js homepage now lists sites that use the library. Feel free to
3093add your site by [dropping me a message][mail] until I find the time to build a
3094submit form.
3095
3096[mail]: mailto:Maniac@SoftwareManiacs.Org
3097
3098
3099## Version 2.3
3100
3101This version fixes IE breakage in previous version. My apologies to all who have
3102already downloaded that one!
3103
3104
3105## Version 2.2
3106
3107- added highlighting for Javascript
3108- at last fixed parsing of Delphi's escaped apostrophes in strings
3109- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
3110 Perl
3111
3112
3113## Version 2.0
3114
3115- Ruby support by [Anton Kovalyov][ak]
3116- speed increased by orders of magnitude due to new way of parsing
3117- this same way allows now correct highlighting of keywords in some tricky
3118 places (like keyword "End" at the end of Delphi classes)
3119
3120[ak]: http://anton.kovalyov.net/
3121
3122
3123## Version 1.0
3124
3125Version 1.0 of javascript syntax highlighter is released!
3126
3127It's the first version available with English description. Feel free to post
3128your comments and question to [highlight.js forum][forum]. And don't be afraid
3129if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
3130
3131[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
3132
\No newline at end of file