UNPKG

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