Highlight.js Versions Save

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

11.1.0

2 years ago

Grammars:

  • fix(csharp) add missing catch keyword (#3251) Konrad Rudolph
  • add additional keywords to csp.js (#3244) Elijah Conners
  • feat(css) handle css variables syntax (#3239) Thanos Karagiannis
  • fix(markdown) Images with empty alt or links with empty text (#3233) Josh Goebel
  • enh(powershell) added pwsh alias (#3236) tebeco
  • fix(r) fix bug highlighting examples in doc comments Konrad Rudolph
  • fix(python) identifiers starting with underscore not highlighted (#3221) Antoine Lambert
  • enh(clojure) added edn alias (#3213) Stel Abrego
  • enh(elixir) much improved regular expression sigil support (#3207) Josh Goebel
  • enh(elixir) updated list of keywords (#3212) Angelika Tyborska
  • fix(elixir) fixed number detection when numbers start with a zero (#3212) Angelika Tyborska
  • fix(ps1) Flag highlighted incorrectly (#3167) Pankaj Patil
  • fix(latex) Allow wider syntax for magic comments (#3243) Benedikt Wilde
  • fix(js/ts) Constants may include numbers Josh Goebel

11.0.1

2 years ago
  • (fix) use console.log for .js.js deprecation warning (#3222) Josh Goebel
  • (fix) do not restrict exports from cdn-assets (#3223) Josh Goebel

10.7.3

2 years ago
  • fix(parser) Resolves issue with missing TypeScript property Jacob Swanner

No other changes.

11.0.0

2 years ago

Potentially Breaking Changes

This is a major release. As such it contains breaking changes which may require action from users. Most of the breaking changes work was done by the current maintainer Josh Goebel (ref: #2558) while many other contributors contributed many other changes for this release. You'll find that list below the breaking changes summary.

Please read VERSION_11_UPGRADE.md for a detailed summary of all breaking changes. The below list should only be considered to be a summary.

Deprecations / Removals / API Changes:

  • initHighlighting() and initHighlightingOnLoad() deprecated. Use highlightAll().
  • highlightBlock(el) deprecated. Use highlightElement(el)
  • before:highlightBlock & after:highlightBlock callbacks deprecated. Use equivalent highlightElement callbacks.
  • highlight(languageName, code, ignoreIllegals, continuation) signature deprecated. Use highlight(code, {language, ignoreIllegals}).
  • Deprecated highlight() signature no longer supports continuation argument.
  • tabReplace option removed. Consider a plugin.
  • useBR option removed. Consider a plugin or CSS.
  • requireLanguage() removed. Use getLanguage().
  • endSameAsBegin mode key removed. Use hljs.END_SAME_AS_BEGIN.
  • lexemes mode key removed. Use keywords.$pattern.
  • The return values/keys of some APIs have changed slightly.

Security:

  • HTML auto-passthru has been removed. Consider a plugin.
  • Unescaped HTML is now stripped (for security). A warning is logged to the console. (#3057) Josh Goebel

Themes:

  • The default padding of all themes increases (0.5em => 1em).
  • schoolbook has been updated to remove the lined background.
  • github updated to better match modern GitHub (#1616) Jan Pilzer
  • github-gist has been removed in favor of github Jan Pilzer
  • Base16 named themes have been updated to their "canonical" versions
  • nnfx updated for v11 xml styles and improved css support

Language Grammars:

  • Default CDN build drops support for several languages.
  • Some language grammar files have been removed.
  • Some redundant language aliases have been removed.

Other changes

Parser:

  • enh(vala) improve language detection for Vala (#3195) [Konrad Rudolph][]
  • enh(r) add support for operators, fix number highlighting bug (#3194, #3195) [Konrad Rudolph][]
  • enh(parser) add beginScope and endScope to allow separate scoping begin and end (#3159) Josh Goebel
  • enh(parsed) endScope now supports multi-class matchers as well (#3159) Josh Goebel
  • enh(parser) highlightElement now always tags blocks with a consistent language-[name] class Josh Goebel
    • subLanguage span tags now also always have the language- prefix added
  • enh(parser) support multi-class matchers (#3081) Josh Goebel
  • enh(parser) Detect comments based on english like text, rather than keyword list Josh Goebel
  • adds title.class.inherited sub-scope support Josh Goebel
  • adds title.class sub-scope support (#3078) Josh Goebel
  • adds title.function sub-scope support (#3078) Josh Goebel
  • adds beforeMatch compiler extension (#3078) Josh Goebel
  • adds cssSelector configuration option (#3180) James Edington

Grammars:

  • enh(all) .meta-keyword => .meta .keyword (nested scopes) (#3167) Josh Goebel
  • enh(all) .meta-string => .meta .string (nested scopes) (#3167) Josh Goebel
  • enh(swift) add actor keyword (#3171) Bradley Mackey
  • enh(crystal) highlight variables (#3154) Josh Goebel
  • fix(ruby) Heredoc without interpolation (#3154) Josh Goebel
  • enh(swift) add @resultBuilder attribute (#3151) Bradley Mackey
  • enh(processing) added pde alias (#3142) Dylan McBean
  • enh(thrift) Use proper scope for types Josh Goebel
  • enh(java) Simplified class-like matcher (#3078) Josh Goebel
  • enh(cpp) Simplified class-like matcher (#3078) Josh Goebel
  • enh(rust) Simplified class-like matcher (#3078) Josh Goebel
  • enh(actionscript) Simplified class-like matcher (#3078) Josh Goebel
  • enh(arcade) function.title => title.function (#3078) Josh Goebel
  • enh(autoit) function.title => title.function (#3078) Josh Goebel
  • enh(c) function.title => title.function (#3078) Josh Goebel
  • enh(rust) support function invoke and impl (#3078) Josh Goebel
  • chore(properties) disable auto-detection #3102 Josh Goebel
  • fix(properties) fix incorrect handling of non-alphanumeric keys #3102 [Egor Rogov][]
  • enh(java) support functions with nested template types (#2641) Josh Goebel
  • enh(java) highlight types and literals separate from keywords (#3074) Josh Goebel
  • enh(shell) add alias ShellSession Ryan Mulligan
  • enh(shell) consider one space after prompt as part of prompt Ryan Mulligan
  • fix(nginx) fix bug with $ and @ variables Josh Goebel
  • enh(nginx) improving highlighting of some sections Josh Goebel
  • fix(vim) variable names may not be zero length Josh Goebel
  • enh(sqf) Updated keywords to Arma 3 v2.02 (#3084) R3voA3
  • enh(sqf) Refactored function regex to match CBA component func naming scheme (#3181) JonBons
  • enh(nim) highlight types properly (not as built-ins) Josh Goebel
  • (chore) throttle deprecation messages (#3092) [Mihkel Eidast][]
  • enh(c) Update keyword list for C11/C18 (#3010) Josh Goebel
  • enh(parser) highlight object properties (#3072) Josh Goebel
  • enh(javascript/typescript) highlight object properties (#3072) Josh Goebel
  • enh(haskell) add support for BinaryLiterals (#3150) Martijn Bastiaan
  • enh(haskell) add support for NumericUnderscores (#3150) Martijn Bastiaan
  • enh(haskell) add support for HexFloatLiterals (#3150) Martijn Bastiaan
  • fix(c,cpp) allow declaring multiple functions and (for C++) parenthetical initializers (#3155) [Erik Demaine][]
  • enh(rust) highlight raw byte string literals correctly (#3173) Nico Abram
  • fix(cpp) fix detection of common functions that are function templates (#3178) Kris van Rens
  • enh(cpp) add various keywords and commonly used types for hinting (#3178) Kris van Rens
  • enh(cpp) cleanup reserved keywords and type lists (#3178) Kris van Rens

New Languages:

  • Added 3rd party Glimmer grammar to SUPPORTED_LANGUAGES(#3123) NullVoxPopuli
  • Added Wren support Josh Goebel
  • Added NestedText support Josh Goebel
  • Added WebAssembly language grammar Josh Goebel
  • Added 3rd party Splunk search processing language grammar to SUPPORTED_LANGUAGES (#3090) Wei Su
  • Added 3rd party ZenScript grammar to SUPPORTED_LANGUAGES(#3106) Jared Luboff
  • Added 3rd party Papyrus grammar to SUPPORTED_LANGUAGES(#3125) Mike Watling

Theme Improvements:

  • Added all official Base16 themes (over 150 new themes) Josh Goebel
  • chore(themes) remove builtin-name CSS class (#3119) Josh Goebel
  • chore(theme) Update GitHub theme css to match GitHub's current styling (#1616) Jan Pilzer
  • chore(theme) Update Srcery theme css to match its Emacs implementation [Chen Bin][]

New Themes:

Dev Improvements:

  • (chore) greatly improve match scope visualization in dev tool (#3126) NullVoxPopuli
  • (fix) CSS used for devtool needed an adjustment to fix too wide of content (#3133) NullVoxPopuli

11.0.0-beta1

2 years ago

See CHANGES.md.

11.0.0-beta0

3 years ago

See CHANGES.md.

11.0.0-alpha1

3 years ago

This is a major release. As such it contains breaking changes which may require action from users. Please read VERSION_11_UPGRADE.md for a detailed summary of all breaking changes.

This release is:


Potentially breaking changes

Unless otherwise attributed items below are thanks to Josh Goebel (ref: #2558).

The below list should only be considered to be a high-level summary.

Deprecations / Removals / API Changes:

  • initHighlighting() and initHighlightingOnLoad() deprecated. Use highlightAll().
  • highlightBlock(el) deprecated. Use highlightElement(el)
  • before:highlightBlock & after:highlightBlock callbacks deprecated. Use equivalent highlightElement callbacks.
  • highlight(languageName, code, ignoreIllegals, continuation) signature deprecated. Use highlight(code, {language, ignoreIllegals}).
  • Deprecated highlight() signature no longer supports continuation argument.
  • tabReplace option removed. Consider a plugin.
  • useBR option removed. Consider a plugin or CSS.
  • requireLanguage() removed. Use getLanguage().
  • endSameAsBegin mode key removed. Use hljs.END_SAME_AS_BEGIN.
  • lexemes mode key removed. Use keywords.$pattern.
  • The return values/keys of some APIs have changed slightly.

Security:

  • HTML auto-passthru has been removed. Consider a plugin.
  • Unescaped HTML is now stripped (for security). A warning is logged to the console. (#3057) Josh Goebel

Themes:

  • The default padding of all themes increases (0.5em => 1em).
  • schoolbook has been updated to remove the lined background.
  • github updated to better match modern GitHub (#1616) [Jan Pilzer][]
  • Base16 named themes have been updated to their "canonical" versions

Language Grammars:

  • Default CDN build drops support for several languages.
  • Some language grammar files have been removed.
  • Some redundant language aliases have been removed.

Other changes

Parser:

  • enh(parser) add beginScope and endScope to allow separate scoping begin and end (#3159) Josh Goebel
  • enh(parsed) endScope now supports multi-class matchers as well (#3159) Josh Goebel
  • enh(parser) highlightElement now always tags blocks with a consistent language-[name] class Josh Goebel
    • subLanguage span tags now also always have the language- prefix added
  • enh(parser) support multi-class matchers (#3081) Josh Goebel
  • enh(parser) Detect comments based on english like text, rather than keyword list Josh Goebel
  • adds title.class.inherited sub-scope support Josh Goebel
  • adds title.class sub-scope support (#3078) Josh Goebel
  • adds title.function sub-scope support (#3078) Josh Goebel
  • adds beforeMatch compiler extension (#3078) Josh Goebel

Grammars:

  • enh(crystal) highlight variables (#3154) Josh Goebel
  • fix(ruby) Heredoc without interpolation (#3154) Josh Goebel
  • enh(swift) add @resultBuilder attribute (#3151) Bradley Mackey
  • enh(processing) added pde alias (#3142) Dylan McBean
  • enh(thrift) Use proper scope for types Josh Goebel
  • enh(java) Simplified class-like matcher (#3078) Josh Goebel
  • enh(cpp) Simplified class-like matcher (#3078) Josh Goebel
  • enh(rust) Simplified class-like matcher (#3078) Josh Goebel
  • enh(actionscript) Simplified class-like matcher (#3078) Josh Goebel
  • enh(arcade) function.title => title.function (#3078) Josh Goebel
  • enh(autoit) function.title => title.function (#3078) Josh Goebel
  • enh(c) function.title => title.function (#3078) Josh Goebel
  • enh(rust) support function invoke and impl (#3078) Josh Goebel
  • chore(properties) disable auto-detection #3102 Josh Goebel
  • fix(properties) fix incorrect handling of non-alphanumeric keys #3102 [Egor Rogov][]
  • enh(java) support functions with nested template types (#2641) Josh Goebel
  • enh(java) highlight types and literals separate from keywords (#3074) Josh Goebel
  • enh(shell) add alias ShellSession Ryan Mulligan
  • enh(shell) consider one space after prompt as part of prompt Ryan Mulligan
  • fix(nginx) fix bug with $ and @ variables Josh Goebel
  • enh(nginx) improving highlighting of some sections Josh Goebel
  • fix(vim) variable names may not be zero length Josh Goebel
  • enh(sqf) Updated keywords to Arma 3 v2.02 (#3084) R3voA3
  • enh(nim) highlight types properly (not as built-ins) Josh Goebel
  • (chore) throttle deprecation messages (#3092) [Mihkel Eidast][]
  • enh(c) Update keyword list for C11/C18 (#3010) Josh Goebel
  • enh(parser) highlight object properties (#3072) Josh Goebel
  • enh(javascript/typescript) highlight object properties (#3072) Josh Goebel
  • enh(haskell) add support for BinaryLiterals (#3150) Martijn Bastiaan
  • enh(haskell) add support for NumericUnderscores (#3150) Martijn Bastiaan
  • enh(haskell) add support for HexFloatLiterals (#3150) Martijn Bastiaan

New Languages:

  • Added 3rd party Glimmer grammar to SUPPORTED_LANGUAGES(#3123) NullVoxPopuli
  • Added NestedText support Josh Goebel
  • Added WebAssembly language grammar Josh Goebel
  • Added 3rd party Splunk search processing language grammar to SUPPORTED_LANGUAGES (#3090) Wei Su
  • Added 3rd party ZenScript grammar to SUPPORTED_LANGUAGES(#3106) Jared Luboff
  • Added 3rd party Papyrus grammar to SUPPORTED_LANGUAGES(#3125) Mike Watling

Theme Improvements:

  • Added all official Base16 themes (over 150 new themes) Josh Goebel
  • chore(themes) remove builtin-name CSS class (#3119) Josh Goebel
  • chore(theme) Update GitHub theme css to match GitHub's current styling (#1616) [Jan Pilzer][]
  • chore(theme) Update Srcery theme css to match its Emacs implementation [Chen Bin][]

New Themes:

Dev Improvements:

  • (chore) greatly improve match scope visualization in dev tool (#3126) NullVoxPopuli

11.0.0-alpha0

3 years ago

This is a major alpha release. As such it contains breaking changes which may require action from users. Please read VERSION_11_UPGRADE.md for a detailed summary of all breaking changes.

Potentially breaking changes

Unless otherwise attributed items below are thanks to Josh Goebel (ref: #2558).

The below list should only be considered to be a high-level summary.

Deprecations / Removals / API Changes:

  • initHighlighting() and initHighlightingOnLoad() deprecated. Use highlightAll().
  • highlightBlock(el) deprecated. Use highlightElement(el)
  • before:highlightBlock & after:highlightBlock callbacks deprecated. Use equivalent highlightElement callbacks.
  • highlight(languageName, code, ignoreIllegals, continuation) signature deprecated. Use highlight(code, {language, ignoreIllegals}).
  • Deprecated highlight() signature no longer supports continuation argument.
  • tabReplace option removed. Consider a plugin.
  • useBR option removed. Consider a plugin or CSS.
  • requireLanguage() removed. Use getLanguage().
  • endSameAsBegin mode key removed. Use hljs.END_SAME_AS_BEGIN.
  • lexemes mode key removed. Use keywords.$pattern.
  • The return values/keys of some APIs have changed slightly.

Security:

  • HTML auto-passthru has been removed. Consider a plugin.
  • Unescaped HTML is now stripped (for security). A warning is logged to the console. (#3057) Josh Goebel

Themes:

  • The default padding of all themes increases (0.5em => 1em).
  • schoolbook has been updated to remove the lined background.
  • github updated to better match modern GitHub (#1616) [Jan Pilzer][]

Language Grammars:

  • Default CDN build drops support for several languages.
  • Some language grammar files have been removed.
  • Some redundant language aliases have been removed.

Other changes

Parser:

  • enh(parser) support multi-class matchers (#3081) Josh Goebel
  • enh(parser) Detect comments based on english like text, rather than keyword list Josh Goebel
  • adds title.class sub-scope support (#3078) Josh Goebel
  • adds title.function sub-scope support (#3078) Josh Goebel
  • adds beforeMatch compiler extension (#3078) Josh Goebel

Grammars:

  • enh(thrift) Use proper scope for types Josh Goebel
  • enh(java) Simplified class-like matcher (#3078) Josh Goebel
  • enh(cpp) Simplified class-like matcher (#3078) Josh Goebel
  • enh(rust) Simplified class-like matcher (#3078) Josh Goebel
  • enh(actionscript) Simplified class-like matcher (#3078) Josh Goebel
  • enh(arcade) function.title => title.function (#3078) Josh Goebel
  • enh(autoit) function.title => title.function (#3078) Josh Goebel
  • enh(c) function.title => title.function (#3078) Josh Goebel
  • enh(rust) support function invoke and impl (#3078) Josh Goebel
  • chore(properties) disable auto-detection #3102 Josh Goebel
  • fix(properties) fix incorrect handling of non-alphanumeric keys #3102 [Egor Rogov][]
  • enh(java) support functions with nested template types (#2641) Josh Goebel
  • enh(java) highlight types and literals separate from keywords (#3074) Josh Goebel
  • enh(shell) add alias ShellSession Ryan Mulligan
  • enh(shell) consider one space after prompt as part of prompt Ryan Mulligan
  • fix(nginx) fix bug with $ and @ variables Josh Goebel
  • enh(nginx) improving highlighting of some sections Josh Goebel
  • fix(vim) variable names may not be zero length Josh Goebel
  • enh(sqf) Updated keywords to Arma 3 v2.02 (#3084) R3voA3
  • enh(nim) highlight types properly (not as built-ins) Josh Goebel
  • (chore) throttle deprecation messages (#3092) [Mihkel Eidast][]
  • enh(c) Update keyword list for C11/C18 (#3010) Josh Goebel
  • enh(parser) highlight object properties (#3072) Josh Goebel
  • enh(javascript/typescript) highlight object properties (#3072) Josh Goebel

New Languages:

  • Added 3rd party Splunk search processing language grammar to SUPPORTED_LANGUAGES (#3090) Wei Su
  • Added 3rd party ZenScript grammar to SUPPORTED_LANGUAGES(#3106) Jared Luboff
  • Added 3rd party Papyrus grammar to SUPPORTED_LANGUAGES(#3125) Mike Watling

Theme Improvements:

  • chore(themes) remove builtin-name CSS class (#3119) Josh Goebel
  • chore(theme) Update GitHub theme css to match GitHub's current styling (#1616) [Jan Pilzer][]

Dev Improvements:

  • (chore) greatly improve match scope visualization in dev tool (#3126) NullVoxPopuli

10.7.2

3 years ago

This is a patch release. The only change is that deprecation messages are throttled and shown only once.

10.7.1

3 years ago

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

Release notes from 10.7.0

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.