Project News
v11.11.1 - Merry Christmas!
Version 11.11.1
- Fixes regressions with Rust grammar in 11.11.0 release.
v11.11.0 - Happy Holidays
Version 11.11.0
CAVEATS / POTENTIALLY BREAKING CHANGES
- Nothing.
Core Grammars:
- fix(rust) - adds emoji support in single quote strings [joshgoebel][]
- fix(apache) - support line continuation via
\
Josh Goebel - fix(makefile) - allow strings inside
$()
expressions aneesh98 - enh(arcade) updated to ArcGIS Arcade version 1.29 Kristian Ekenes
- enh(css) add all properties listed on MDN (96 additions including
anchor-name
,aspect-ratio
,backdrop-filter
,container
,margin-trim
,place-content
,scroll-timeline
, ...) BaliBalo - enh(excel) add built-in functions for Excel 365 release to 2024 Danny Winrow
- enh(erlang) OTP 27 triple-quoted strings nixxquality
- enh(erlang) OTP 27 doc attribute nixxquality
- enh(erlang) OTP 27 Sigil type nixxquality
- enh(erlang) OTP25/27 maybe statement nixxquality
- enh(dart) Support digit-separators in number literals [Sam Rawlins][]
- enh(csharp) add Contextual keywords
file
,args
,dynamic
,record
,required
andscoped
Alvin Joy - enh(lua) add 'pluto' as an alias Sainan
- enh(bash) add reserved keywords
time
andcoproc
Álvaro Mondéjar - enh(nix) update keywords [h7x4][]
- enh(nix) support paths [h7x4][]
- enh(nix) support lookup paths [h7x4][]
- enh(nix) support operators [h7x4][]
- enh(nix) support REPL keywords [h7x4][]
- enh(nix) support markdown comments [h7x4][]
- enh(nix) support basic function params [h7x4][]
- enh(nix) better parsing of attrsets [h7x4][]
- fix(c) - Fixed hex numbers with decimals Dxuian
- fix(typescript) - Fixedoptional property not highlighted correctly Dxuian
- fix(ruby) - fix
|=
operator false positives (as block arguments) Aboobacker MK - enh(gcode) rewrote language for modern gcode support Barthélémy Bonhomme
- fix(sql) - Fixed sql primary key and foreign key spacing issue Dxuian
- fix(cpp) added flat_set and flat_map as a part of cpp 23 version Lavan
- fix(yaml) - Fixed special chars in yaml Dxuian
- fix(basic) - Fixed closing quotation marks not required for a PRINT statement Somya
- fix(nix) remove
add
builtin [h7x4][] - fix(nix) mark
or
as builtin instead of literal [h7x4][] - fix(nix) handle
'''
string escapes [h7x4][] - fix(nix) handle backslash string escapes [h7x4][]
- fix(nix) don't mix escapes for
"
and''
strings [h7x4][] - fix(swift) - Fixed syntax highlighting for class func/var declarations guuido
- fix(yaml) - Fixed wrong escaping behavior in single quoted strings guuido
- enh(nim) - Add
concept
anddefer
to list of Nim keywords Jake Leahy
New Grammars:
- added 3rd party TTCN-3 grammar to SUPPORTED_LANGUAGES Osmocom
- added 3rd party Odin grammar to SUPPORTED_LANGUAGES clsource
- added 3rd party Liquid grammar to SUPPORTED_LANGUAGES Laurel King
Developer Tools:
- Nothing yet.
Themes:
- Added
Rosé Pine
theme William Wilkinson - Added
Cybertopia Cherry
theme Alexandre ZANNI - Added
Cybertopia Dimmer
theme Alexandre ZANNI - Added
Cybertopia Icecap
theme Alexandre ZANNI - Added
Cybertopia Saturated
theme Alexandre ZANNI
Improvements:
- Resolve the memory leak problem when creating multiple Highlight.js instances Imken
CONTRIBUTORS
11.10.0 - Welcome to the 2024 Mega-smorgisbord update.
Sorry for the wait, this one is a doozie, thanks to all the contributors who made it possible!
CAVEATS / POTENTIALLY BREAKING CHANGES
[!IMPORTANT] This version drops support for Node 16.x, which is no longer supported by Node.js.
Core Grammars:
- enh(typescript) add support for
satisfies
operator Kisaragi Hiu - enc(c) added more C23 keywords Melkor-1
- enh(json) added jsonc as an alias BackupMiles
- enh(gml) updated to latest language version (GML v2024.2) gnysek
- enh(c) added more C23 keywords and preprcoessor directives Eisenwave
- enh(js/ts) support namespaced tagged template strings Aral Balkan
- enh(perl) fix false-positive variable match at end of string Josh Goebel
- fix(cpp) not all kinds of number literals are highlighted correctly Lê Duy Quang
- fix(css) fix overly greedy pseudo class matching Bradley Mackey
- enh(arcade) updated to ArcGIS Arcade version 1.24 Kristian Ekenes
- fix(typescript): params types Mohamed Ali
- fix(rust) fix escaped double quotes in string Mohamed Ali
- fix(rust) fix for r# raw identifier not being highlighted correctly. JaeBaek Lee
- enh(rust) Adding union to be recognized as a keyword in Rust. JaeBaek Lee
- fix(yaml) fix for yaml with keys having brackets highlighted incorrectly Aneesh Kulkarni
- fix(csharp) add raw string highlighting for C# 11. Tara
- fix(bash) fix # within token being detected as the start of a comment Felix Uhl
- fix(python) fix
or
conflicts with string highlighting Mohamed Ali - enh(python) adds a scope to the
self
variable [Lee Falin][] - enh(delphi) allow digits to be omitted for hex and binary literals Jonah Jeleniewski
- enh(delphi) add support for digit separators Jonah Jeleniewski
- enh(delphi) add support for character strings with non-decimal numerics Jonah Jeleniewski
- fix(javascript) incorrect function name highlighting CY Fung
- fix(1c) fix escaped symbols "+-;():=,[]" literals Vitaly Barilko
- fix(swift) correctly highlight generics and conformances in type definitions Bradley Mackey
- enh(swift) add package keyword Bradley Mackey
- fix(swift) ensure keyword attributes highlight correctly Bradley Mackey
- fix(types) fix interface LanguageDetail > keywords Patrick Chiu
- enh(java) add
goto
to be recognized as a keyword in Java Alvin Joy - enh(bash) add keyword
sudo
Alvin Joy - fix(haxe) captures
new
keyword without capturing it within variables/class names Cameron Taylor - fix(go) fix go number literals to accept
_
separators, add hex p exponents Lisa Ugray - enh(markdown) add entity support David Schach TaraLei
- enh(css) add
justify-items
andjustify-self
attributes Vasily Polovnyov - enh(css) add
accent-color
,appearance
,color-scheme
,rotate
,scale
andtranslate
attributes Carl Räfting - fix(fortran) fixes parsing of keywords delimited by dots Julien Bloino
- enh(css) add
select
,option
,optgroup
,picture
andsource
to list of known tags Vasily Polovnyov - enh(css) add
inset
,inset-*
,border-start-*-radius
andborder-end-*-radius
attributes Vasily Polovnyov - enh(css) add
text-decoration-skip-ink
,text-decoration-thickness
andtext-underline-offset
attributes Vasily Polovnyov
New Grammars:
- added 3rd party CODEOWNERS grammar to SUPPORTED_LANGUAGES nataliia-radina
- added 3rd party Luau grammar to SUPPORTED_LANGUAGES Robloxian Demo
- added 3rd party ReScript grammar to SUPPORTED_LANGUAGES Paul Tsnobiladzé
- added 3rd party Zig grammar to SUPPORTED_LANGUAGES [Hyou BunKen][]
- added 3rd party WGSL grammar to SUPPORTED_LANGUAGES Arman Uguray
- added 3rd party Unison grammar to SUPPORTED_LANGUAGES Rúnar Bjarnason
- added 3rd party Phix grammar to SUPPORTED_LANGUAGES PeteLomax
- added 3rd party Mirth grammar to SUPPORTED_LANGUAGES Sierra
- added 3rd party JSONata grammar to SUPPORTED_LANGUAGES Vlad Dimov
Developer Tool:
- enh(tools): order CSS options picklist David Schach
- enh(tools): remove duplicate CSS options David Schach
- (typescript): deprecate old
highlight
API Misha Kaletsky
Themes:
- Added
1c-light
theme a like in the IDE 1C:Enterprise 8 (for 1c) Vitaly Barilko
11.9.0 - Fall is in the air!
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
buildstyles/*.css
files now ship un-minified with minified counterparts as:styles/*.min.css
mvorisek (this makes things consistent with ourcdn
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
andw0-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
andvar
as keywords Guillaume Laforge
Developer Tool:
- (chore) Update dev tool to use the new
highlight
API. Shah Shabbir Ahmmed - (enh) Auto-update the highlighted output when the language dropdown changes. Shah Shabbir Ahmmed
New Website
Our previous website was created by Ivan Sagalaev, the original creator of highlight.js. Our old website served us well for years but due to age, became dated and hard to maintain. So, it's my pleasure to introduce our brand-new website powered by Next.js with a few new features that had been requested over the years. Our hope is, that with a more modern website, we'll be able to better maintain it and welcome more contributions from the community.
Demo Page
Whenever you're navigating the internet for libraries to use in your project, you look for demos of how said libraries behave. But what about highlight.js? Where's the demo section where you can put code snippets and test out the highlighting behavior and our plethora of themes?
Say no more, introducing our new demo page where you can test code snippets and preview themes! But wait, there's more!
You can share the code snippets you write on our demo page! We're not storing these code snippets in any databases. It's all stored in the URL. So be mindful of sharing extremely large code snippets.
Download Page
We've heard you! You want to be able to save your download configurations and have us bundle your package for you. Our download page now also supports specifying your languages and persisting them in the URL. Revisit the URL after a few weeks and if there's been any updates to the grammars you included, you'll automatically download the new bundle. 🎉
Open Source
Of course, our new website is open source and welcomes contributions! Just like the main highlight.js repo, create an issue to request features or discuss implementations of features if you'd like to contribute.
More to Come
Now that our website has been modernized, we look forward to a pleasant style with more regular updates and features added.
Thank you for highlighting with highlight.js!
11.8.0 "Spring has arrived" Edition
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
, andwhen
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
anduntil
as keywords