You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1049 lines
38 KiB

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