Skip to content

Releases: highlightjs/highlight.js

10.7.1 - Spring Edition

21 Mar 19:32
Compare
Choose a tag to compare

This .1 patch release fixes an issue with the TypeScript typing info in 10.7.0.

Release notes from 10.7.0

Parser:

New Languages:

  • Added 3rd party RiScript grammar to SUPPORTED_LANGUAGES (#2988) [John C][]
  • Added 3rd party HLSL grammar to SUPPORTED_LANGUAGES (#3002) Stef Levesque
  • Added 3rd party Q# grammar to SUPPORTED_LANGUAGES(#3006) Vyron Vasileiadis

Language grammar improvements:

  • fix(python) allow keywords immediately following numbers (#2985) Josh Goebel
  • fix(xml) char immediately following tag close mis-highlighted (#3044) Josh Goebel
  • fix(ruby) fix defined?() mis-highlighted as def (#3025) Josh Goebel
  • fix(c) comments after #include <str> blocks (#3041) Josh Goebel
  • fix(cpp) comments after #include <str> blocks (#3041) Josh Goebel
  • enh(cpp) Highlight all function dispatches (#3005) Josh Goebel
  • enh(python) support type hints and better type support (#2972) Josh Goebel
  • enh(gml) Add additional GML 2.3 keywords (#2984) xDGameStudios
  • fix(cpp) constructor support for initializers (#3001) Josh Goebel
  • enh(php) Add trait to class-like naming patterns (#2997) Ayesh
  • enh(php) Add Stringable, UnhandledMatchError, and WeakMap classes/interfaces (#2997) Ayesh
  • enh(php) Add mixed to list of keywords (#2997) Ayesh
  • enh(php) Add support binary, octal, hex and scientific numerals with underscore separator support (#2997) Ayesh
  • enh(php) Add support for Enums (#3004) Ayesh
  • enh(ecmascript) Add built-in types Vaibhav Chanana
  • enh(kotlin) Add kts as an alias for Kotlin (#3021) Vaibhav Chanana
  • enh(css) Add font-smoothing to attributes list for CSS (#3027) AndyKIron
  • fix(python) Highlight print and exec as a builtin (#1468) Samuel Colvin
  • fix(csharp) Fix unit being highlighted instead of uint (#3046) [Spacehamster][]
  • enh(swift) add async/await keywords (#3048) [Bradley Mackey][]

Deprecations:

  • highlight(languageName, code, ignoreIllegals, continuation) deprecated as of 10.7
    • Please use the newer API which takes code and then accepts options as an object
    • IE: highlight(code, {language, ignoreIllegals})
    • continuation is for internal use only and no longer supported
  • highlightBlock(el) deprecated as of 10.7.
    • Please use highlightElement(el) instead.
    • Plugin callbacks renamed before/after:highlightBlock => before/after:highlightElement
    • Plugin callback now takes el vs block attribute
    • The old API and callbacks will be supported until v12.

10.7.0 - Spring Edition

20 Mar 13:16
Compare
Choose a tag to compare

Parser:

New Languages:

  • Added 3rd party RiScript grammar to SUPPORTED_LANGUAGES (#2988) [John C][]
  • Added 3rd party HLSL grammar to SUPPORTED_LANGUAGES (#3002) Stef Levesque
  • Added 3rd party Q# grammar to SUPPORTED_LANGUAGES(#3006) Vyron Vasileiadis

Language grammar improvements:

  • fix(python) allow keywords immediately following numbers (#2985) Josh Goebel
  • fix(xml) char immediately following tag close mis-highlighted (#3044) Josh Goebel
  • fix(ruby) fix defined?() mis-highlighted as def (#3025) Josh Goebel
  • fix(c) comments after #include <str> blocks (#3041) Josh Goebel
  • fix(cpp) comments after #include <str> blocks (#3041) Josh Goebel
  • enh(cpp) Highlight all function dispatches (#3005) Josh Goebel
  • enh(python) support type hints and better type support (#2972) Josh Goebel
  • enh(gml) Add additional GML 2.3 keywords (#2984) xDGameStudios
  • fix(cpp) constructor support for initializers (#3001) Josh Goebel
  • enh(php) Add trait to class-like naming patterns (#2997) Ayesh
  • enh(php) Add Stringable, UnhandledMatchError, and WeakMap classes/interfaces (#2997) Ayesh
  • enh(php) Add mixed to list of keywords (#2997) Ayesh
  • enh(php) Add support binary, octal, hex and scientific numerals with underscore separator support (#2997) Ayesh
  • enh(php) Add support for Enums (#3004) Ayesh
  • enh(ecmascript) Add built-in types Vaibhav Chanana
  • enh(kotlin) Add kts as an alias for Kotlin (#3021) Vaibhav Chanana
  • enh(css) Add font-smoothing to attributes list for CSS (#3027) AndyKIron
  • fix(python) Highlight print and exec as a builtin (#1468) Samuel Colvin
  • fix(csharp) Fix unit being highlighted instead of uint (#3046) [Spacehamster][]
  • enh(swift) add async/await keywords (#3048) [Bradley Mackey][]

Deprecations:

  • highlight(languageName, code, ignoreIllegals, continuation) deprecated as of 10.7
    • Please use the newer API which takes code and then accepts options as an object
    • IE: highlight(code, {language, ignoreIllegals})
    • continuation is for internal use only and no longer supported
  • highlightBlock(el) deprecated as of 10.7.
    • Please use highlightElement(el) instead.
    • Plugin callbacks renamed before/after:highlightBlock => before/after:highlightElement
    • Plugin callback now takes el vs block attribute
    • The old API and callbacks will be supported until v12.

Version 10.6.0

08 Feb 13:26
eb122d3
Compare
Choose a tag to compare

New Languages:

Language grammar improvements:

Grammar Deprecations:

  • Deprecate c-like, though you should not be using it directly anyways.
    • will be removed in v11.
  • c and cpp are now wholly unique grammars that will diverge over time

Parser:

  • new simpler highlightAll() API (#2962) Josh Goebel
    • this should be a drop-in replacement for both initHighlighting() and initHighlightingOnLoad()
    • note: it does not prevent itself from being called multiple times (as the previous API did)
  • beginKeyword no longer bestows double relevance (#2953) Josh Goebel
  • allow keywords to be an array of strings Josh Goebel
  • add modes.MATCH_NOTHING_RE that will never match
    • 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

Deprecations:

  • initHighlighting() and initHighlightingOnLoad() deprecated.
    • Please use the new highlightAll() API instead.
    • Deprecated as of 10.6.
    • These will both be aliases to highlightAll in v11.

10.5.0 - Holiday Cheer Edition

23 Dec 20:54
af20048
Compare
Choose a tag to compare

What's New

Build:

  • Add Subresource Integrity digest lists to cdn-assets Josh Goebel
  • R and VB.net grammars now ship in our default build (:common) Josh Goebel

Parser:

  • add match as sugar for simple begin only matches (#2834) Josh Goebel
  • allow illegal to also be an array of regex (#2834) Josh Goebel
  • add compilerExtensions allows grammers to influence mode compilation (#2834) Josh Goebel
    • some internal pieces are now simple compiler extensions

New Languages:

Language grammar improvements:

  • enh(cpp): Support C++ pack expansion in function arguments Martin Dørum
  • enh(makefile): Add make as an alias (#2883) tripleee
  • enh(swift) Improved grammar for strings (#2819) Steven Van Impe
  • enh(swift) Grammar improvements (#2908) Steven Van Impe
    • New grammar for keywords and built-ins
    • Added support for operator highlighting
    • New grammar for attributes
    • Added support for quoted identifiers, implicit parameters, and property wrapper projections
    • Support for more complex expressions in string interpolation
  • enh(swift) Improved highlighting for types and generic arguments (#2920) Steven Van Impe
  • fix(http) avoid recursive sublanguage and tighten rules (#2893) Josh Goebel
  • fix(asciidoc): Handle section titles level 5 (#2868) Vaibhav Chanana
  • fix(asciidoc): Support unconstrained emphasis syntax (#2869) Guillaume Grossetie
  • enh(scheme) Allow [] for argument lists (#2913) Josh Goebel
  • enh(vb) Large rework of VB.net grammar (#2808) Jan Pilzer
    • Adds support for Date data types, see (#2775)
    • Adds support for REM comments and fixes ''' doctags (#2875) (#2851)
      • Custom number mode to support VB.net specific number flags
      • Hex (&H), Oct (&O), and binary (&B) prefixes
      • Separating digits with underscores: 90_946
    • Type suffixes: 123UI (unsigned integer)
    • Improves directives detection and adds support for Enable, Disable, and Then keywords
    • Adds more markup tests
  • fix(javascript) Empty block-comments break highlighting (#2896) Jan Pilzer
  • enh(dart) Fix empty block-comments from breaking highlighting (#2898) Jan Pilzer
  • enh(dart) Fix empty doc-comment eating next line Jan Pilzer
  • enh(asciidoc) Adds support for unconstrained bold syntax (#2869) Guillaume Grossetie
  • enh(c-like) Incorrect highlighting for interger suffix (#2919) Vaibhav Chanana
  • enh(properties) Correctly handle trailing backslash (#2922) Vaibhav Chanana

Recent Deprecations:

  • HTML "merging" is deprecated. (#2873) Josh Goebel
    • HTML inside <pre> blocks will no longer be magically merged back into the
      highlighted code's HTML result - it will instead be silently removed.
    • Consider using a plugin if you truly need this functionality
    • Deprecated as of 10.5.0 - will be removed in v11.
  • tabReplace option deprecated. (#2873) Josh Goebel
    • Consider: Use the CSS tab-size property, or simply pre-process the
      text yourself before rendering the initial HTML
    • otherwise, use a plugin
    • Deprecated as of 10.5.0 - will be removed in v11.
  • useBR option deprecated. (#2559) Josh Goebel
    • Recommended: You really should just use the HTML <pre> tag
    • or perhaps try CSS white-space: pre;
    • otherwise, use a plugin
    • Deprecated as of 10.3.0 - will be removed in v11.
  • requireLanguage API is deprecated, will be removed in v11.0.
    • Consider: Use getLanguage (with custom error handling) or built-time dependencies.
    • See Library API for more information.
    • Deprecated as of 10.4.0 - will be removed in v11.

10.4.1

03 Dec 18:19
Compare
Choose a tag to compare

Security fixes:

  • (fix) Exponential backtracking fixes for: Josh Goebel
    • cpp
    • handlebars
    • gams
    • perl
    • jboss-cli
    • r
    • erlang-repl
    • powershell
    • routeros
  • (fix) Polynomial backtracking fixes for: Josh Goebel
    • asciidoc
    • reasonml
    • latex
    • kotlin
    • gcode
    • d
    • aspectj
    • moonscript
    • coffeescript/livescript
    • csharp
    • scilab
    • crystal
    • elixir
    • basic
    • ebnf
    • ruby
    • fortran/irpf90
    • livecodeserver
    • yaml
    • x86asm
    • dsconfig
    • markdown
    • ruleslanguage
    • xquery
    • sqf

Very grateful to Michael Schmidt for all the help.

10.4.0 - November 2020

18 Nov 19:26
Compare
Choose a tag to compare

A largish release with many improvements and fixes from quite a few different contributors. Enjoy!

Deprecations:

  • (chore) requireLanguage is deprecated.
    • Prefer getLanguage (with custom error handling) or built-time dependencies.
    • See Library API for more information.

Parser:

  • enh(parser) use negative look-ahead for beginKeywords support (#2813) Josh Goebel
  • enh(grammars) allow classNameAliases for more complex grammars Josh Goebel
  • fix(vue): Language name now appears in CSS class (#2807) Michael Rush
  • (chore) Clean up all regexs to be UTF-8 compliant/ready (#2759) Josh Goebel

New Languages:

Language Improvements:

  • enh(shell) Recognize prompts which contain tilde ~ (#2859) Guillaume Grossetie
  • enh(shell) Add support for multiline commands with line continuation \ (#2861) Guillaume Grossetie
  • enh(autodetect) Over 30+ improvements to auto-detect (#2745) Josh Goebel
    • 4-5% improvement in auto-detect against large sample set
    • properties, angelscript, lsl, javascript, n1ql, ocaml, ruby
    • protobuf, hy, scheme, crystal, yaml, r, vbscript, groovy
    • python, java, php, lisp, matlab, clojure, csharp, css
  • fix(r) fixed keywords not properly spaced (#2852) Josh Goebel
  • fix(javascript) fix potential catastrophic backtracking (#2852) Josh Goebel
  • fix(livescript) fix potential catastrophic backtracking (#2852) Josh Goebel
  • bug(xml) XML grammar was far too imprecise/fuzzy Josh Goebel
  • enh(xml) Improve precision to prevent false auto-detect positives Josh Goebel
  • fix(js/ts) Prevent for/while/if/switch from falsly matching as functions (#2803) Josh Goebel
  • enh(julia) Update keyword lists for Julia 1.x (#2781) Fredrik Ekre
  • enh(python) Match numeric literals per the language reference Richard Gibson
  • enh(ruby) Match numeric literals per language documentation Richard Gibson
  • enh(javascript) Match numeric literals per ECMA-262 spec Richard Gibson
  • enh(java) Match numeric literals per Java Language Specification Richard Gibson
  • enh(swift) Match numeric literals per language reference Richard Gibson
  • enh(php) highlight variables (#2785) Taufik Nurrohman
  • fix(python) Handle comments on decorators (#2804) Jonathan Sharpe
  • enh(diff) improve highlighting of diff for git patches [Florian Bezdeka][]
  • fix(llvm) lots of small improvements and fixes (#2830) Josh Goebel
  • enh(mathematica) Rework entire implementation Patrick Scheibe
    • Correct matching of the many variations of Mathematica's numbers
    • Matching of named-characters aka special symbols like \[Gamma]
    • Updated list of version 12.1 built-in symbols
    • Matching of patterns, slots, message-names and braces
  • fix(swift) Handle keywords that start with # Marcus Ortiz
  • enh(swift) Match some keyword Marcus Ortiz
  • enh(swift) Match @main attribute Marcus Ortiz

Dev Improvements:

  • chore(dev) add theme picker to the tools/developer tool (#2770) Josh Goebel
  • fix(dev) the Vue.js plugin no longer throws an exception when hljs is not in the global namespace Kyle Brown

New themes:

10.3.2 - Oops, "Javascript".

29 Oct 13:08
Compare
Choose a tag to compare

Tiny tiny release, just to fix the website incorrectly not listing Javascript
in the list of languages you could choose for a custom build. NPM and CDN
build should not have been affected so 10.3.1 is effectively the same as
10.3.2 for those builds.

If you made a custom build from the website with 10.3 or 10.3.1 you may
want to check and make sure it includes Javascript, and if not, build it again.

10.3.1 hotfix

17 Oct 23:39
Compare
Choose a tag to compare

Prior version let some look-behind regex sneak in, which does not work
yet on Safari. This release removes those incompatible regexes.

Fixes:

  • fix(Safari) Remove currently unsupported look-behind regex (fix) Josh Goebel

10.3.0

17 Oct 17:28
Compare
Choose a tag to compare

Lots of large and small improvements to grammars including a major rewrite of our LaTeX grammar. See CHANGES.md for full list. Thanks for the interest from StackOverflow and Octoberfest!

  • The useBR option deprecated and will be removed in v11.0.

Thanks to everyone who contributed to this release:

  • Chris Krycho
  • David Pine
  • Josh Goebel
  • Ryan Jonasson
  • Philipp Engel
  • Konrad Rudolph
  • Melissa Geels
  • Antoine du Hamel
  • Ayesh Karunaratne
  • Tom Wallace
  • schtandard

10.2.1

08 Oct 12:03
Compare
Choose a tag to compare

Version 10.2.1

Parser Engine:

  • fix(parser) complete fix for resuming matches from same index (#2678) Josh Goebel