Highlight.js Versions Save

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

10.7.0

3 years ago

Parser:

  • enh(api) add unregisterLanguage method (#3009) Antoine du Hamel
  • enh: Make alias registration case insensitive (#3026) David Ostrovsky
  • fix(parser) highlightAll() now works if the library is lazy loaded Josh Goebel

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.6.0

3 years ago

New Languages:

  • Added 3rd party Laravel Blade grammar to SUPPORTED_LANGUAGES (#2944) Michael Newton

Language grammar improvements:

  • enh(scala) fix triple quoted strings (#2987) Josh Goebel
  • enh(perl) Much improved regex detection (#2960) Josh Goebel
  • enh(swift) Improved highlighting for operator and precedencegroup declarations. (#2938) Steven Van Impe
  • fix(xml) Support single-character namespaces. (#2957) [Jan Pilzer][]
  • enh(ruby) Support for character literals (#2950) Vaibhav Chanana
  • enh(powershell) Add three VALID_VERBS and update the reference link (#2981) davidhcefx

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

3 years ago

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:

  • Added 3rd party Red & Rebol grammar to SUPPORTED_LANGUAGES (#2872) Oldes Huhuman

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

3 years ago

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

3 years ago

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:

  • Added 3rd party Chapel grammar to SUPPORTED_LANGUAGES (#2806) Brad Chamberlain
  • Added BBCode grammar to SUPPORTED_LANGUAGES (#2867) Paul Reid
  • enh(javascript) Added node-repl for Node.js REPL sessions (#2792) Marat Nagayev

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

3 years ago

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

3 years ago

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

3 years ago

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

3 years ago

Version 10.2.1

Parser Engine:

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

10.2.0

3 years ago

Version 10.2.0

Parser Engine:

  • (fix) When ignoring a potential match highlighting can terminate early (#2649) Josh Goebel

New themes:

Deprecations:

  • fixMarkup is now deprecated and will be removed in v11.0. (#2534) Josh Goebel

Big picture:

  • Add simple Vue plugin for basic use cases (#2544) Josh Goebel

Language Improvements:

  • fix(bash) Fewer false positives for keywords in arguments (#2669) sirosen
  • fix(js) Prevent long series of /////// from causing freezes (#2656) Josh Goebel
  • enh(csharp) Add init and record keywords for C# 9.0 (#2660) Youssef Victor
  • enh(matlab) Add new R2019b arguments keyword and fix enumeration keyword (#2619) Andrew Janke
  • fix(kotlin) Remove very old keywords and update example code (#2623) kageru
  • fix(night) Prevent object prototypes method values from being returned in getLanguage (#2636) night
  • enh(java) Add support for enum, which will identify as a class now (#2643) ezksd
  • enh(nsis) Add support for NSIS 3.06 commands (#2653) idleberg
  • enh(php) detect newer more flexible HEREdoc syntax (#2658) eytienne