Highlight.js Versions Save

JavaScript syntax highlighter with language auto-detection and zero dependencies.

11.9.0

6 months ago

Version 11.9.0

CAVEATS / POTENTIALLY BREAKING CHANGES

  • Drops support for Node 14.x, which is no longer supported by Node.js.
  • In the node build styles/*.css files now ship un-minified with minified counterparts as: styles/*.min.css mvorisek (this makes things consistent with our cdn builds)

Parser:

  • (enh) prevent re-highlighting of an element [joshgoebel][]
  • (chore) Remove discontinued badges from README Bradley Mackey
  • (chore) Fix build size report Bradley Mackey

New Grammars:

  • added 3rd party Iptables grammar to SUPPORTED_LANGUAGES Checconio
  • added 3rd party x86asmatt grammar to SUPPORTED_LANGUAGES gondow
  • added 3rd party riscv64 grammar to SUPPORTED_LANGUAGES aana-h2
  • added 3rd party Ballerina grammar to SUPPORTED_LANGUAGES Yasith Deelaka

Core Grammars:

  • fix(rust) added negative-lookahead for callable keywords if while for [Omar Hussein][]
  • enh(armasm) added x0-x30 and w0-w30 ARMv8 registers Nicholas Thompson
  • enh(haxe) added final, is, macro keywords and $ identifiers Robert Borghese
  • enh(haxe) support numeric separators and suffixes Robert Borghese
  • fix(haxe) fixed metadata arguments and support non-colon syntax Robert Borghese
  • fix(haxe) differentiate abstract declaration from keyword Robert Borghese
  • fix(bash) do not delimit a string by an escaped apostrophe [hancar][]
  • enh(swift) support macro keyword Bradley Mackey
  • enh(swift) support parameter pack keywords Bradley Mackey
  • enh(swift) regex literal support Bradley Mackey
  • enh(swift) @unchecked and @Sendable support Bradley Mackey
  • enh(scala) add using directives support //> using foo bar [Jamie Thompson][]
  • fix(scala) fixed comments in constructor arguments not being properly highlighted Isaac Nonato
  • enh(swift) ownership modifiers support Bradley Mackey
  • enh(nsis) Add !assert compiler flag [idleberg][]
  • fix(haskell) do not treat double dashes inside infix operators as comments [Zlondrej][]
  • enh(rust) added eprintln! macro qoheniac
  • enh(leaf) update syntax to 4.0 Samuel Bishop
  • fix(reasonml) simplify syntax and align it with ocaml jchavarri
  • fix(swift) warn_unqualified_access is an attribute Bradley Mackey
  • enh(swift) macro attributes are highlighted as keywords Bradley Mackey
  • enh(stan) updated for version 2.33 (#3859) Brian Ward
  • fix(css) added '_' css variable detection Md Saad Akhtar
  • enh(groovy) add record and var as keywords Guillaume Laforge

Developer Tool:

11.8.0

11 months ago

Changelog

Parser engine:

  • added a function to default export to generate a fresh highlighter instance to be used by extensions WisamMechano
  • added BETA __emitTokens key to grammars to allow then to direct their own parsing, only using Highlight.js for the HTML rendering Josh Goebel
  • (enh) add removePlugin api faga295
  • (fix) typo in language name of JavaScript Cyrus Kao

New Grammars:

  • added 3rd party Lang grammar to SUPPORTED_LANGUAGES AdamRaichu
  • added 3rd party C3 grammar to SUPPORTED_LANGUAGES aliaegik

Core Grammars:

  • enh(sql) support _ in variable names [joshgoebel][]
  • enh(mathematica) update keywords list to 13.2.1 arnoudbuzing
  • enh(protobuf) add proto alias for Protobuf [dimitropoulos][]
  • enh(sqf) latest changes in Arma 3 v2.11 Leopard20
  • enh(js/ts) Added support for GraphQL tagged template strings Ali Ukani
  • enh(javascript) add sessionStorage to list of built-in variables Jeroen van Vianen
  • enh(http) Add supporxt for HTTP/3 Rijenkii
  • added 3rd party Motoko grammar to SUPPORTED_LANGUAGES rvanasa
  • added 3rd party Candid grammar to SUPPORTED_LANGUAGES rvanasa
  • fix(haskell) Added support for characters CrystalSplitter
  • enh(dart) Add base, interface, sealed, and when keywords Sam Rawlins
  • enh(php) detect newer more flexible NOWdoc syntax (#3679) Timur Kamaev
  • enh(python) improve autodetection of code with type hinting any function's return type (making the -> operator legal) Keyacom
  • enh(bash) add select and until as keywords

11.7.0

1 year ago

Version 11.7.0

New Grammars:

  • added 3rd party LookML grammar to SUPPORTED_LANGUAGES Josh Temple
  • added 3rd party FunC grammar to SUPPORTED_LANGUAGES [Nikita Sobolev][]
  • Added 3rd party Flix grammar to SUPPORTED_LANGUAGES The Flix Organisation
  • Added 3rd party RVT grammar to SUPPORTED_LANGUAGES Sopitive

Grammars:

  • enh(scheme) add scm alias for Scheme matyklug18
  • fix(typescript) patterns like <T = are not JSX Josh Goebel
  • fix(bash) recognize the (( keyword Nick Chambers
  • enh(Ruby) misc improvements (kws, class names, etc) Josh Goebel
  • fix(js) do not flag import() as a function, rather a keyword nathnolt
  • fix(bash) recognize the (( keyword Nick Chambers
  • fix(nix) support escaped dollar signs in strings h7x4
  • enh(cmake) support bracket comments Hirse
  • enh(java) add yield keyword to java MBoegers
  • enh(java) add permits keyword to java MBoegers
  • fix(javascript/typescript) correct identifier matching when using numbers Lachlan Heywood

Improvements:

11.6.0

1 year ago

Version 11.6.0

Supported Node.js versions:

  • (chore) Drops support for Node 12.x, which is no longer supported by Node.js.

Default build changes:

  • add wasm to default :common build (#3526) [Josh Goebel][]
  • add graphql to default :common build (#3526) [Josh Goebel][]

Grammars:

  • fix(json) changed null/booleans from keyword to literal shikhar13012001
  • enh(gml) reorganized and added additional keywords Bluecoreg
  • enh(csharp) Added support for the new scoped keyword in C# (#3571) [David Pine][]
  • enh(scala) add transparent keyword Matt Bovel
  • fix(rust) highlight types immediately preceeding :: (#3540) [Josh Goebel][]
  • Added 3rd party Apex grammar to SUPPORTED_LANGUAGES (#3546) David Schach
  • fix(rust) recognize include_bytes! macro (#3541) Serial-ATA
  • fix(java) do not intepret == as a variable declaration Mousetail
  • enh(swift) add SE-0335 existential any keyword (#3515) Bradley Mackey
  • enh(swift) add support for distributed keyword Marcus Ortiz
  • enh(xml) recognize Unicode letters instead of only ASCII letters in XML element and attribute names (#3256)Martin Honnen
  • Added 3rd party Toit grammar to SUPPORTED_LANGUAGES Serzhan Nasredin
  • Use substring() instead of deprecated substr() Tobias Buschor
  • Added 3rd party Oak grammar to SUPPORTED_LANGUAGES Tim Smith
  • enh(python) add match and case keywords Avrumy Lunger

11.5.1

2 years ago

Just a tiny release to hopefully fix the issues some are having with CSS not seen as having side effects with web pack, etc...


Packaging:

  • (chore) explicitly set sideEffect for css and scss files, fixes #3504

11.5.0

2 years ago

Changes from CHANGELOG:

Themes:

New Grammars:

Grammars:

  • enh(ruby) lots of small Ruby cleanups/improvements Josh Goebel
  • enh(objectivec) add type and variable.language scopes Josh Goebel
  • enh(xml) support processing instructions (#3492) Josh Goebel
  • enh(ruby ) better support multi-line IRB prompts
  • enh(bash) improved keyword $pattern (numbers allowed in command names) Martin Mattel
  • add meta.prompt scope for REPL prompts, etc Josh Goebel
  • fix(markdown) Handle ***Hello world*** without breaking Josh Goebel
  • enh(php) add support for PHP Attributes Wojciech Kania
  • fix(java) prevent false positive variable init on else Josh Goebel
  • enh(php) named arguments Wojciech Kania
  • fix(php) PHP constants Wojciech Kania
  • fix(angelscript) incomplete int8, int16, int32, int64 highlighting Melissa Geels
  • enh(ts) modify TypeScript-specific keywords and types list anydonym
  • fix(brainfuck) fix highlighting of initial ++/-- Christina Hanson
  • fix(llvm) escaping in strings and number formats Flakebi
  • enh(elixir) recognize references to modules Mark Ericksen
  • enh(css): add support for more properties Nicolaos Skimas

11.4.0

2 years ago

This is a big one. Holidays and all. Wishing all of you the best for 2022! See the note below about theme changes if you're super picky about your theming.

New Languages:

  • Added 3rd party Pine Script grammar to SUPPORTED_LANGUAGES Jeylani B
  • Added 3rd party cURL grammar to SUPPORTED_LANGUAGES highlightjs-curl

Themes:

  • Default is now much closer WCAG AA (contrast) (#3402) Josh Goebel
  • Dark now meets WCAG AA (contrast) (#3402) Josh Goebel
  • Added intellij-light theme Pegasis

These changes should be for the better and should not be super noticeable but if you're super picky about your colors you may want to intervene here or copy over the older themes from 11.3 or prior.

Grammars:

  • enh(arcade) updated to ArcGIS Arcade version 1.16 John Foster
  • enh(php) Left and right-side of double colon Wojciech Kania
  • enh(php) add PHP constants Wojciech Kania
  • enh(php) add PHP 8.1 keywords Wojciech Kania
  • fix(cpp) fix vector<< template false positive (#3437) Josh Goebel
  • enh(php) support First-class Callable Syntax (#3427) Wojciech Kania
  • enh(php) support class constructor call (#3427) Wojciech Kania
  • enh(php) support function invoke (#3427) Wojciech Kania
  • enh(php) Switch highlighter to partially case-insensitive (#3427) Wojciech Kania
  • enh(php) improve namespace and use highlighting (#3427) Josh Goebel
  • enh(php) $this is a variable.language now (#3427) Josh Goebel
  • enh(php) add __COMPILER_HALT_OFFSET__ (#3427) Josh Goebel
  • enh(js/ts) fix => async function title highlights (#3405) Josh Goebel
  • enh(twig) update keywords list (#3415) Matthieu Lempereur
  • fix(python) def, class keywords detected mid-identifier (#3381) Josh Goebel
  • fix(python) Fix recognition of numeric literals followed by keywords without whitespace (#2985) Richard Gibson
  • enh(swift) add SE-0290 unavailability condition (#3382) Bradley Mackey
  • fix(fsharp) Highlight operators, match type names only in type annotations, support quoted identifiers, and other smaller fixes. Melvyn Laïly
  • enh(java) add sealed and non-sealed keywords (#3386) Bradley Mackey
  • enh(js/ts) improve CLASS_REFERENCE (#3411) Josh Goebel
  • enh(nsis) Update defines pattern to allow ! (#3417) idleberg
  • enh(nsis) Update language strings pattern to allow ! (#3420) idleberg
  • fix(stan) Updated for Stan 2.28 and other misc. improvements (#3410)
  • enh(nsis) Update variables pattern (#3416) idleberg
  • fix(clojure) Several issues with Clojure highlighting (#3397) Björn Ebbinghaus
    • fix(clojure) comment macro catches more than it should (#3395)
    • fix(clojure) $ in symbol breaks highlighting
    • fix(clojure) Add complete regex for number detection
    • enh(clojure) Add character mode for character literals
    • fix(clojure) Inconsistent namespaced map highlighting
    • enh(clojure) Add regex mode to regex literal
    • fix(clojure) Remove inconsistent/broken highlighting for metadata
    • enh(clojure) Add punctuation mode for commas.
  • fix(julia) Enable the jldoctest alias (#3432) Fons van der Plas

Developer Tools:

Themes:

  • Modified background color in css for Gradient Light and Gradient Dark themes Samia Ali

11.3.1

2 years ago

Version 11.3.1

Same as 11.3.0 except for the fix to generating optional CDN grammar modules.

Build:

  • (fix) Grammar CDN modules not generated correctly. (#3363) Josh Goebel
  • add HighlightJS named export (#3295) Josh Goebel
  • add .default named export to CJS builds (#3333) Josh Goebel

Parser:

  • add first rough performance testing script (#3280) Austin Schick
  • add throwUnescapedHTML to warn against potential HTML injection Josh Goebel
  • expose regex helper functions via hljs injection Josh Goebel
    • concat
    • lookahead
    • either
    • optional
    • anyNumberOfTimes

Grammars:

  • fix(ts) some complex types would classify as JSX (#3278) Josh Goebel
  • fix(js/ts) less false positives for class X extends Y (#3278) Josh Goebel
  • enh(css): add properties from several W3C (Candidate) Recommendations (#3308)
  • fix(js/ts) Float32Array highlighted incorrectly (#3353) Josh Goebel
  • fix(css) single-colon psuedo-elements no longer break highlighting (#3240) Josh Goebel
  • fix(scss) single-colon psuedo-elements no longer break highlighting (#3240) Josh Goebel
  • enh(fsharp) rewrite most of the grammar, with many improvements Melvyn Laïly
  • enh(go) better type highlighting, add error type Josh Goebel
  • fix(js/ts) regex inside SUBST is no longer highlighted Josh Goebel
  • fix(python) added support for unicode identifiers (#3280) Austin Schick
  • enh(css/less/stylus/scss) improve consistency of function dispatch (#3301) Josh Goebel
  • enh(css/less/stylus/scss) detect block comments more fully (#3301) Josh Goebel
  • fix(cpp) switch is a keyword (#3312) Josh Goebel
  • fix(cpp) fix xor_eq keyword highlighting. Denis Kovalchuk
  • enh(c,cpp) highlight type modifiers as type (#3316) Josh Goebel
  • enh(css/less/stylus/scss) add support for CSS Grid properties monochromer
  • enh(java) add support for Java Text Block (#3322) Teletha
  • enh(scala) add missing do and then keyword (#3323) Nicolas Stucki
  • enh(scala) add missing enum, export and given keywords (#3328) Nicolas Stucki
  • enh(scala) remove symbol syntax and fix quoted code syntax (#3324) Nicolas Stucki
  • enh(scala) add Scala 3 extension soft keyword (#3326) Nicolas Stucki
  • enh(scala) add Scala 3 end soft keyword (#3327) Nicolas Stucki
  • enh(scala) add inline soft keyword (#3329) Nicolas Stucki
  • enh(scala) add using soft keyword (#3330) Nicolas Stucki
  • enh(fsharp) added f# alias (#3337) Bahnschrift
  • enh(bash) added gnu core utilities (#3342) katzeprior
  • enh(nsis) add new NSIS commands (#3351) idleberg
  • fix(nsis) set case_insensitive to true (#3351) idleberg
  • fix(css/less/stylus/scss) highlight single-colon psuedo-elements properly (#3240) zsoltlengyelit
  • fix(css) add css hex color alpha support (#3360) ierehon1905

11.3.0

2 years ago

Version 11.3.0

Build:

  • add HighlightJS named export (#3295) Josh Goebel
  • add .default named export to CJS builds (#3333) Josh Goebel

Parser:

  • add first rough performance testing script (#3280) Austin Schick
  • add throwUnescapedHTML to warn against potential HTML injection Josh Goebel
  • expose regex helper functions via hljs injection Josh Goebel
    • concat
    • lookahead
    • either
    • optional
    • anyNumberOfTimes

Grammars:

  • fix(ts) some complex types would classify as JSX (#3278) Josh Goebel
  • fix(js/ts) less false positives for class X extends Y (#3278) Josh Goebel
  • enh(css): add properties from several W3C (Candidate) Recommendations (#3308)
  • fix(js/ts) Float32Array highlighted incorrectly (#3353) Josh Goebel
  • fix(css) single-colon psuedo-elements no longer break highlighting (#3240) Josh Goebel
  • fix(scss) single-colon psuedo-elements no longer break highlighting (#3240) Josh Goebel
  • enh(fsharp) rewrite most of the grammar, with many improvements Melvyn Laïly
  • enh(go) better type highlighting, add error type Josh Goebel
  • fix(js/ts) regex inside SUBST is no longer highlighted Josh Goebel
  • fix(python) added support for unicode identifiers (#3280) Austin Schick
  • enh(css/less/stylus/scss) improve consistency of function dispatch (#3301) Josh Goebel
  • enh(css/less/stylus/scss) detect block comments more fully (#3301) Josh Goebel
  • fix(cpp) switch is a keyword (#3312) Josh Goebel
  • fix(cpp) fix xor_eq keyword highlighting. Denis Kovalchuk
  • enh(c,cpp) highlight type modifiers as type (#3316) Josh Goebel
  • enh(css/less/stylus/scss) add support for CSS Grid properties monochromer
  • enh(java) add support for Java Text Block (#3322) Teletha
  • enh(scala) add missing do and then keyword (#3323) Nicolas Stucki
  • enh(scala) add missing enum, export and given keywords (#3328) Nicolas Stucki
  • enh(scala) remove symbol syntax and fix quoted code syntax (#3324) Nicolas Stucki
  • enh(scala) add Scala 3 extension soft keyword (#3326) Nicolas Stucki
  • enh(scala) add Scala 3 end soft keyword (#3327) Nicolas Stucki
  • enh(scala) add inline soft keyword (#3329) Nicolas Stucki
  • enh(scala) add using soft keyword (#3330) Nicolas Stucki
  • enh(fsharp) added f# alias (#3337) Bahnschrift
  • enh(bash) added gnu core utilities (#3342) katzeprior
  • enh(nsis) add new NSIS commands (#3351) idleberg
  • fix(nsis) set case_insensitive to true (#3351) idleberg
  • fix(css/less/stylus/scss) highlight single-colon psuedo-elements properly (#3240) zsoltlengyelit
  • fix(css) add css hex color alpha support (#3360) ierehon1905

11.2.0

2 years ago

Version 11.2.0

Build:

  • fix: run Node build CSS files thru CSS processor also (#3284) Josh Goebel

Parser:

  • fix(types) Fix some type definition issues (#3274) Josh Goebel

Grammars:

New Languages: