PrismJS/prism
57.2
Adequate · 1 October 2026
31.9k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
Prism is a syntax highlighting library that provides core rendering capabilities for programming and markup languages. It features a modular, asynchronous architecture with a dynamic registry for on-demand language loading and support for embedded code. The system includes various plugins for enhanced visualization, such as autolinking and command-line simulation, and is distributed as an ES module with CommonJS compatibility.
How it got here
2012–2015 — Prism v2 preparation and test expansion
63 changes.
The project underwent a major structural cleanup to prepare for the Prism v2 release, removing legacy components and modernizing the build infrastructure with ESLint, Prettier, and TypeScript support. This period also saw the introduction of the v2 alpha package manifests and the establishment of a comprehensive, automated test suite covering a vast array of programming languages and syntax features.
2016–2019 — Comprehensive syntax highlighting test coverage
49 changes.
This period focused on systematically expanding test coverage for the syntax highlighting engine across a wide array of programming languages, templates, and markup formats. The work involved adding detailed unit tests for language-specific constructs, embedded code contexts, and core parsing behaviors to ensure accurate tokenization and highlighting stability.
2020–2022 — Prism v2 modular rewrite and test expansion
53 changes.
The project underwent a major architectural rewrite for Prism v2, introducing a modular core with dynamic language loading, a component registry, and support for meta-languages. This foundational shift was accompanied by a massive expansion of test coverage, adding comprehensive suites for dozens of new and existing languages, plugins, and embedded syntax features.
2025–2026 — V2 API migration and plugin expansion
20 changes.
This period focused on migrating core plugins to the V2 API registry pattern and restructuring the project by consolidating plugin source code with its documentation. Significant feature additions included declarative nested language support in the core tokenizer, a wide array of new language definitions, and numerous new plugins for command-line simulation, data URI highlighting, and inline color previews.
Features
Add Autolinker and Show Invisibles plugins
This change introduces two new syntax-highlighting plugins. The Autolinker plugin automatically converts URLs and email addresses in code comments into clickable links and supports Markdown-style links (e.g., \Text\) within comments. The Show Invisibles plugin visualizes hidden whitespace characters like tabs, spaces, and line breaks using specific symbols, and it lists Autolinker as an optional dependency to enhance link handling in its examples.
src/plugins/autolinker · high confidence
Added T4 templating support and extracted language patterns
The language support module now includes a new T4 templating grammar, enabling syntax highlighting for T4 code blocks (such as Razor directives and expressions) within supported languages. Additionally, common regex patterns for markup tags and JavaScript template literals have been extracted into a shared \patterns.js\ file to reduce duplication and improve maintainability across language definitions.
src/shared/languages · high confidence
Added benchmark suite for performance testing
A new benchmark suite has been added to the project, allowing users to measure and compare the performance of different Prism implementations. The suite, located in the \benchmark/\ directory, includes a main runner (\benchmark.js\) and a configuration file (\config.js\) that defines test cases for various languages (such as CSS, JavaScript, C, Ruby, and Rust) using sample files from public repositories and the local project. Users can run benchmarks to evaluate tokenization or highlighting speed across different candidates, including remote versions of Prism (e.g., v2 branch), with configurable options for test function, maximum time, and specific languages.
benchmark · high confidence
New Command Line plugin for simulating shell prompts
Adds a new plugin that allows code blocks to display a simulated command-line interface, including user/host prompts (e.g., user@host $), custom prompts, and visual distinction between commands and output. Users can specify output lines via numeric ranges or prefixes, and configure multi-line command continuation for languages like Bash or PowerShell.
src/plugins/command-line · high confidence
New Data URI Highlight plugin for automatic syntax highlighting
A new plugin, \data-uri-highlight\, has been added to automatically detect and highlight the contents of data URIs within code. It inspects the MIME type of the data URI and applies the appropriate grammar (CSS, JavaScript, JSON, or Markup) to the embedded content, improving readability for inline assets like SVGs or stylesheets.
src/plugins/data-uri-highlight · high confidence
New Filter highlightAll and Inline Color plugins
Two new plugins are now available. The Filter highlightAll plugin allows you to control which code blocks are highlighted by the \highlightAll\ method using custom conditions, CSS selectors, or a \data-filter-known\ attribute to restrict highlighting to known languages. The Inline Color plugin adds small visual color previews next to color values in CSS and HTML, improving readability by showing the actual color alongside its code representation.
src/plugins/filter-highlight-all, src/plugins/inline-color · high confidence
New declarative nested language support via $inner selectors
The core tokenizer now supports a new \$inner\ property in language definitions, allowing grammars to declaratively specify nested languages. This feature enables meta-languages to highlight specific parts of their content (such as embedded scripts or styles) using a different language's grammar. The implementation introduces a selector system (supporting token names and \:text\) to target exactly which containers should be re-tokenized, handling complex cases like tokens spanning multiple containers or overlapping selectors. This replaces the previous implicit or manual nesting mechanisms with a more flexible, declarative approach for embedding languages within other languages.
src/core/tokenize · high confidence
New language definitions for ABAP, ABNF, ActionScript, Ada, Agda, AL, ANTLR4, Apacheconf, Apex, APL, AppleScript, AQL, Arduino, ARFF, ARM assembly, Arturo, AsciiDoc, and 6502/Atmel assembly
The \src/languages\ directory now includes new grammar definitions for a wide range of programming and markup languages, enabling syntax highlighting for ABAP, ABNF, ActionScript, Ada, Agda, AL (Microsoft Dynamics 365 Business Central), ANTLR4, Apache configuration, Apex, APL, AppleScript, AQL (ArangoDB), Arduino, ARFF, ARM assembly, Arturo, AsciiDoc, 6502 assembly, and Atmel assembly. These additions expand the library's coverage to include enterprise, academic, embedded, and specialized configuration languages.
src/languages · high confidence
New shared utility modules for DOM, tokenization, and general helpers
The src/shared directory now includes three new JavaScript modules: dom-util.js provides functions to detect and set Prism language classes on elements and check class activation states; tokenize-strings.js adds a utility to recursively tokenize string content within a token stream; and util.js introduces general-purpose helpers including lazy evaluation, HTML encoding, regex escaping, and case conversion utilities.
src/shared · high confidence
New utility functions for grammar manipulation and async handling
The \src/util\ directory now includes a suite of new JavaScript utility modules to support grammar extension and asynchronous operations. Key additions include \extend.js\ for creating deep copies of languages with token overwriting and insertion logic, \insert.js\ for adding tokens before or after existing ones in a grammar, and \grammar-patch.js\ for applying declarative patches (insert, delete, merge) to grammar definitions. Async support is provided by \async.js\, which introduces helpers like \documentReady\ to handle DOM readiness race conditions, \nextTick\ for scheduling, and \allSettled\ for robust promise handling. Additional utilities include \language-id.js\ for parsing compound language identifiers (e.g., \outer:inner\), \token-stream.js\ for splitting and inserting tokens in streams, and \objects.js\ for deep cloning and merging while preserving accessors.
src/util · high confidence
Treeview Icons plugin adds file-type icons to code trees
The Treeview Icons plugin now provides visual icons for file types within tree structures. It includes a CSS file that defines styles for tree lines and entry names, and embeds a custom font generated from SVG icons for files, folders, images, audio, video, text, code, archives, PDFs, Excel, PowerPoint, and Word documents. The JavaScript module registers the plugin and declares a dependency on the Treeview language plugin, ensuring icons are displayed alongside the tree structure.
src/plugins/treeview-icons · high confidence
Removals
Removal of legacy Prism component files
The legacy component files for the core highlighting engine and the JavaScript, CSS, and HTML language definitions have been removed from the repository. This change eliminates the outdated, standalone implementations of these modules, which previously contained basic tokenization logic and language grammars, indicating a shift to a newer architecture or build system for these components.
components · high confidence
Behavioural changes
Autoloader now supports compound language IDs and embedded code loading
The Autoloader plugin has been updated to handle compound language identifiers (such as \language-diff:css\ or \language-django:css\) by automatically loading all constituent parts. It also now detects and loads grammars for code embedded within highlighted blocks, such as fenced code blocks in Markdown. Additionally, the plugin reports loading failures through the \Prism.config.errorHandler\ and supports specifying extra dependencies via the \data-dependencies\ attribute on code elements.
src/plugins/autoloader · high confidence
Build and release tooling rewritten in JavaScript
The project's build and release scripts (build.js, create-changelog.js, linkify-changelog.js, tasks.js) have been rewritten from TypeScript to plain JavaScript. This change simplifies the core tooling by removing the TypeScript compilation step from the build process, while retaining the same functionality for bundling, minification, and changelog generation.
scripts · high confidence
Core highlighting logic restructured with new registry and async support
The core highlighting engine has been refactored to support a component registry and asynchronous highlighting. The \highlightAll\ API now accepts a \root\ parameter to scope highlighting to specific containers (replacing the previous \container\ boolean flag) and an \async\ function to offload processing. The \highlightElement\ function now uses the registry to resolve grammars and ensures that if one grammar throws an error, other elements in the same batch continue to be highlighted. A new \Registry\ class manages language and plugin dependencies, resolving aliases and detecting circular dependencies.
src/core · high confidence
Normalize Whitespace plugin updated to V2 API
The Normalize Whitespace plugin has been migrated to the V2 API, introducing a new plugin registration system via \Prism.pluginRegistry\ and a \NormalizeWhitespace\ class with a \setDefaults()\ method for configuration. The plugin now hooks into \before-sanity-check\ to normalize code blocks, supports configuration via \data-\*\ attributes on \\<pre\>\ elements, and includes updated documentation and a demo page reflecting these changes.
src/plugins/normalize-whitespace · high confidence
Plugins moved alongside source code and documentation restructured
The documentation and source files for several plugins (Copy to Clipboard, Download Button, File Highlight, Line Highlight, Match Braces, and Show Language) have been relocated from their previous directory structure into the \src/plugins/\<plugin-name\>/\ folders alongside their respective JavaScript and CSS source files. This change consolidates the plugin resources, making the project structure more intuitive by keeping related documentation and code in the same location, and updates the internal resource paths (e.g., \/plugins/autoloader.js\) to reflect this new organization.
(repo-wide) · high confidence
Plugins relocated alongside source code with updated documentation
The Highlight Keywords, Keep Markup, and Line Numbers plugins have been moved from their previous locations into the src/plugins directory, with their documentation (README files) now placed directly alongside their source code. This change simplifies the project structure and makes it easier to find plugin-specific usage instructions and examples.
src/plugins/highlight-keywords, src/plugins/keep-markup, src/plugins/line-numbers · high confidence
Plugins updated to the V2 API with source-local documentation
The custom-class, jsonp-highlight, and unescaped-markup plugins have been migrated to the V2 API, moving from global functions to a plugin registry pattern where features are accessed via Prism.pluginRegistry. This change includes a new class-based architecture for custom-class (supporting prefixing, mapping, and adding classes) and jsonp-highlight (supporting registered adapters and timeout configuration), while unescaped-markup now supports \<script type="text/plain"\> elements in addition to HTML comments. Documentation and demo files have been moved alongside the plugin source code to reflect these structural updates.
src/plugins/custom-class, src/plugins/jsonp-highlight, src/plugins/unescaped-markup · high confidence
Previewers plugin ported to V2 API with new modular architecture
The Previewers plugin has been updated to the V2 plugin API, introducing a new \Previewer\ class and \PreviewerCollection\ for registering and managing visual previews of CSS values (angles, colors, gradients, easing, and time). This change includes a new \previewers.css\ file for styling the preview overlays and updates the documentation to reflect the V2 structure. Users will see the same hover-to-preview functionality, but it is now built on a more extensible foundation that supports language-specific registration and the \data-previewers\ attribute for fine-grained control over which previewers are active.
src/plugins/previewers · high confidence
Prism v1 repository cleanup and v2 preparation
The repository has been restructured to prepare for the upcoming Prism v2 release. The main website files (index.html, code.js, logo.svg, prism.css) and the legacy prism.js bundle have been removed from the source tree, as the project is now accepting only security-relevant pull requests for v1. The build and linting infrastructure has been modernized: ESLint has been migrated to the flat config format (eslint.config.mjs) with the regexp plugin, Prettier configuration has been updated to a JS file, and TypeScript support has been added via tsconfig.json. Additionally, new configuration files for JSDoc, Prettier, and editor settings have been introduced to standardize development workflows.
(repo-wide) · high confidence
Prism v2: New modular architecture with dynamic language loading and meta-language support
Prism has been rewritten for v2 with a new modular core that replaces the previous monolithic structure. The library now uses a ComponentRegistry system to manage languages and plugins, enabling dynamic, on-demand loading of language definitions via ES modules instead of requiring all grammars upfront. This change introduces support for meta-languages using compound IDs (e.g., \diff:css\) to handle embedded or produced languages, and allows plugins and languages to declare optional dependencies. The global \Prism\ object is now a singleton instance that auto-starts highlighting when ready, and the API has been updated to support async highlighting functions and new configuration options for manual mode and error handling.
src · high confidence
Support for compound language identifiers in metadata
The metadata module now supports compound language identifiers (e.g., \outer:inner\) for meta-languages. The \title-data.js\ file includes logic to generate user-friendly titles for these compound IDs, such as formatting \Diff (JavaScript)\ for a diff embedded in JavaScript, and handles special cases like \php:none\. Additionally, new generated files \alias-data.js\ and \all-languages-data.js\ provide resolved aliases and a list of all known language IDs, replacing previous manual or less structured approaches.
src/shared/meta · high confidence
Toolbar plugin now supports custom button registration and ordering
The Toolbar plugin has been updated to allow plugins and users to register custom buttons via the JavaScript API (\registerButton\) in addition to the existing HTML-based \data-label\ attribute. Users can now define buttons with text, click handlers, or URLs, and control the display order of buttons using the \data-toolbar-order\ attribute on code blocks or the document body.
src/plugins/toolbar · high confidence
Updated and reorganized syntax highlighting themes
The syntax highlighting themes in src/themes have been refreshed and reorganized. The Coy, Dark, Funky, Okaidia, Prism (default), Solarized Light, Tomorrow, and Twilight themes have been updated with new CSS definitions, including adjustments to color palettes, typography, and visual styling for code blocks and inline code. This change ensures consistent and improved visual presentation of highlighted code across different themes.
src/themes · high confidence
Test coverage
Add tests for Brainfuck; Added AsciiDoc language tests; Added AutoHotkey syntax tests; Added C\# syntax highlighting tests; Added F\# language tests; Added HTTP language tests for request lines, headers, and response statuses; Added Java syntax highlighting tests; Added Julia language syntax tests; Added Kotlin language test coverage; Added OpenCL host API test coverage for C and C++; Added PL/SQL language test coverage; Added Power Query language tests; Added Rip language tokenization tests; Added Robot Framework syntax highlighting tests; Added VB.NET syntax highlighting tests; Added comprehensive syntax highlighting tests for Scheme; Added comprehensive test coverage for GraphQL syntax highlighting; Added comprehensive test coverage for Markdown syntax features; Added comprehensive test coverage for SAS language syntax; Added comprehensive test coverage for reST language features; Added comprehensive test suite for Groovy syntax highlighting; Added comprehensive test suite for Markup language syntax; Added comprehensive tokenization tests for OCaml language features; Added core tests for compound language IDs and greedy matching; Added inclusion tests for Pug filters; Added parser test suite for language features; Added snapshot tests for Highlight Keywords and Show Invisibles plugins; Added syntax highlighting tests for Ada and Arduino; Added syntax highlighting tests for Django templates; Added syntax highlighting tests for ERB and Ruby inclusions; Added syntax highlighting tests for GML language features; Added syntax highlighting tests for Puppet configuration files; Added syntax highlighting tests for the J programming language; Added test coverage for BSL (1C:Enterprise) language syntax; Added test coverage for C-like language features; Added test coverage for CSP syntax highlighting features; Added test coverage for CSS Extras features; Added test coverage for Dockerfile syntax highlighting; Added test coverage for Go language syntax features; Added test coverage for INI language parsing; Added test coverage for Inform 7 language features; Added test coverage for JSON and JSONP language features; Added test coverage for Moonscript language features; Added test coverage for Nix language syntax; Added test coverage for Objective-C language features; Added test coverage for PARI/GP language syntax; Added test coverage for Sass syntax highlighting; Added test coverage for Scala syntax features; Added test coverage for Textile filter inclusion in Haml; Added test coverage for Vim language support; Added test coverage for WebAssembly language support; Added test coverage for Wiki markup parsing; Added test coverage for Zig language syntax highlighting; Added test coverage for copy-to-clipboard and unescaped-markup plugins; Added test fixtures for Discord, Docker, Hadoop, Java stack traces, Minecraft, Nginx, NPM, table, and Tomcat logs; Added test for Arturo shell string literals; Added test for CSS variable syntax in Sass; Added test for CSS/JS in Markup CDATA; Added test for HTML content in HTTP responses; Added test for Handlebars filter tokenization in Pug; Added test for PHP embedded in CSS style attributes; Added test for PHPDoc comment highlighting; Added test for Stylus filter inclusion in Pug; Added test for Twig inclusion in Pug templates; Added test for regex inclusion in JavaScript; Added test helper utilities; Added tests for .gitignore comment and entry parsing; Added tests for .properties file syntax highlighting; Added tests for 6502 assembly language syntax highlighting; Added tests for ARM Assembly language support; Added tests for ASP.NET Razor (CSHTML) syntax highlighting; Added tests for ASP.NET comment and page directive syntax; Added tests for ASP.NET directive syntax; Added tests for ASP.NET script tag handling; Added tests for ActionScript XML variable syntax; Added tests for ActionScript keyword and operator syntax; Added tests for Apache Configuration syntax highlighting; Added tests for Arturo language HTML string feature; Added tests for Arturo language syntax highlighting; Added tests for Atmel AVR Assembly language support; Added tests for Autolinker plugin basic functionality; Added tests for BBCode parsing; Added tests for BNF and RBNF language syntax highlighting; Added tests for CSS and Markdown in JavaScript tagged template literals; Added tests for CSV value parsing; Added tests for Cilk keyword syntax highlighting; Added tests for Cooklang language parsing; Added tests for Custom class plugin functionality; Added tests for DOT language markup attribute support; Added tests for Django/Jinja2 syntax inside HTML style and script blocks; Added tests for Excel formula syntax features; Added tests for Factor language syntax highlighting; Added tests for Flow language syntax features; Added tests for FreeMarker Template Language (FTL) syntax highlighting; Added tests for G-code language parsing features; Added tests for GNU Linker Script syntax highlighting; Added tests for GraphQL syntax highlighting in JavaScript tagged template literals; Added tests for HPKP tokenization; Added tests for HSTS directive tokenization; Added tests for HTTP content-type inclusion of CSS and JavaScript; Added tests for HTTP header tokenization; Added tests for Haml language filter inclusions; Added tests for ICU Message Format parsing features; Added tests for IEC 61131-3 Structured Text tokenization; Added tests for IchigoJam BASIC language features; Added tests for JSON5 number, property, and string parsing; Added tests for Java stack trace parsing; Added tests for JavaDoc and JSDoc comment highlighting; Added tests for JavaScript inclusion in markup; Added tests for JavaScript stack trace parsing; Added tests for LLVM IR language support; Added tests for LaTeX comment and equation syntax; Added tests for Markup inside Jade; Added tests for MikroTik (RouterOS scripting language) syntax highlighting; Added tests for N4JS annotations and keywords; Added tests for PATROL Scripting Language (PSL) syntax highlighting; Added tests for PC-Axis language syntax; Added tests for PHP closing tag handling in markup contexts; Added tests for PHP extras superglobals, scope keywords, and $this; Added tests for PHPDoc language highlighting; Added tests for PlantUML language support; Added tests for Pure language features; Added tests for Q\# language syntax highlighting; Added tests for Qore string parsing; Added tests for RDF Turtle language parsing features; Added tests for Ren'Py language syntax highlighting; Added tests for SCSS inclusion in Haml filters; Added tests for SQL syntax highlighting in JavaScript template literals; Added tests for Solution (.sln) file language support; Added tests for Soy (Closure Template) syntax highlighting; Added tests for Systemd configuration file parsing; Added tests for T4 Text Template syntax highlighting; Added tests for TAP language parsing features; Added tests for Tcl operators and punctuation; Added tests for Template Toolkit 2 language features; Added tests for Template Toolkit 2 syntax within Markup; Added tests for UO Razor script syntax parsing; Added tests for Web IDL language support; Added tests for Wiki markup table tag features; Added tests for XML documentation comment parsing in C\#, F\#, and VB.NET; Added tests for YAML front matter support in Markdown; Added tests for autoloader embedded language loading; Added tests for compound language IDs in fenced code blocks; Added tests for embedded Groovy and Lua code in SAS; Added tests for etlua delimiter feature; Added tests for markup feature parsing; Added tests for the Nevod language parser; Added tests for the Previewers plugin; Added tests for the new Keepalived language support; Added tests for the show-language plugin's title resolution; Added tests for treeview syntax highlighting styles and features; Added tokenization tests for CSS selectors and XML-in-HTTP; Added tokenization tests for EJS and LiveScript filters in Pug; Added unit tests for Xojo language syntax; Added unit tests for the Keep Markup plugin; Expanded JSX syntax highlighting coverage; Expanded JavaScript syntax highlighting test coverage; Initial test coverage for PowerShell language features; New component, coverage, and identifier test suites.
Dependencies
Initial release of Prism.js v2.0.0-alpha.1 with Composer and ESM support
This change introduces the initial package manifests for Prism.js version 2.0.0-alpha.1, establishing the project's dependency structure and distribution capabilities. A new \package.json\ defines the project as an ES module with CommonJS compatibility, specifying a Node.js engine requirement of version 18 or higher and listing development dependencies for testing, linting, and building. Additionally, a new \composer.json\ file is added to provide Composer support for PHP environments, configuring the distribution of the core \prism.js\ script, CSS themes, and language components.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 58 → 57 (-1.2)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 58 → 58 (-0.1)
- Architecture 88 → 82 (-5.7)
- Maturity 50 → 50 (-0.3)
- Readiness 62 → 63 (+0.9)
- Security 85 → 81 (-3.7)
- Performance 66 (new)
Resolved (9)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Hotspot: src/shared/languages/templating.js (src/shared/languages/templating.js)
- Off-boarding risk: anonymized user #1
- replaceRanges::walk (cognitive 28) (src/shared/languages/templating.js)
- replaceRanges::walk (cyclomatic 17) (src/shared/languages/templating.js)
- templating.replaceRanges (cognitive 29) (src/shared/languages/templating.js)
- templating.replaceRanges (cyclomatic 18) (src/shared/languages/templating.js)
New (23)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (the committed lockfile resolved no direct production dependency)
- Documentation: no installation or build instructions (src/plugins/unescaped-markup/README.md)
- Documentation: no project overview (src/plugins/unescaped-markup/README.md)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- Low CVE: [GHSA redacted] (package-lock.json)
- Medium CVE: [GHSA redacted] (package-lock.json)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No assertions: should combine token containers with the unmatched text (tests/core/registry.js)
- No assertions: should highlight each selector separately, later ones winning (tests/core/registry.js)
- Off-boarding risk: anonymized user #1
- Projects may be oversized for their cohesion
- collectRuns (cognitive 21) (src/core/tokenize/embed.js)
- embed.collectRuns (cyclomatic 17) (src/core/tokenize/embed.js)
- …and 3 more
Changes since last survey
- 11 commits — 10 feature/other, 1 fixes
By area
- src/plugins — 5 commits
- tests/languages — 2 commits
- tests/plugins — 2 commits
- src/core — 1 commit
- src/util — 1 commit
Notable commits
- fix: Fix TypeDoc parse error on DeferredPromise typedef (#4125)
- change: Declarative $inner selectors and a token overlay helper (#4110)
- change: Drop type="module" from plugin resources in the docs (#4139)
- change: Keep highlighting the other snippets when one grammar throws (#4136)
- change: Load the languages of embedded code in the Autoloader (#4135)
- change: Mark fenced code blocks with their language in Markdown again (#4133)
- change: Port the Previewers plugin to V2 (#4130)
- change: Preload CSS in the Autoloader demo and drop type="module" from language resources (#4134)
- change: Restore Markdown links in Autolinker (#4127)
- change: Split compound ids in the Autoloader and report errors through errorHandler (#4132)
- change: Update plugin docs and demos to the V2 API (#4129)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
PrismJS/prism was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 5e5352488937b2db45d9720d333302c199880cc1 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.