ramsey / pygments
A PHP wrapper for Pygments, the Python syntax highlighter, forked from kzykhys/pygments.
Installs: 2 101
Dependents: 2
Suggesters: 1
Security: 0
Stars: 8
Watchers: 2
Forks: 14
Open Issues: 0
Requires
- php: ^8.2
- symfony/process: ^7.1.7
Requires (Dev)
- captainhook/captainhook: ^5.25
- captainhook/plugin-composer: ^5.3
- ergebnis/composer-normalize: ^2.45
- mockery/mockery: ^1.6
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-mockery: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^11.5 || ^12.0
- ramsey/coding-standard: ^2.3
- ramsey/composer-repl: ^1.5
- ramsey/conventional-commits: ^1.6
- roave/security-advisories: dev-latest
- spatie/phpunit-snapshot-assertions: ^5.1
This package is auto-updated.
Last update: 2025-03-07 23:07:30 UTC
README
A PHP wrapper for Pygments, the Python syntax highlighter.
About
ramsey/pygments is a PHP wrapper for Pygments, the Python syntax highlighter, forked from the Pygments.php project.
This project adheres to a code of conduct. By participating in this project and its community, you are expected to uphold this code.
Installation
Install this package as a dependency using Composer.
composer require ramsey/pygments
Requirements
- PHP 8.2 or greater
- Python
- Pygments (
pip install Pygments
)
Python and Pygments versions tested:
Pygments: | 2.17 | 2.18 | 2.19 |
---|---|---|---|
Python 3.11 | ✔ | ✔ | ✔ |
Python 3.12 | ✔ | ✔ | ✔ |
Python 3.13 | ✔ | ✔ | ✔ |
Note
ramsey/pygments will likely work on other versions of Python and Pygments, but the versions tested against are limited to keep the GitHub Actions job matrix at a reasonable size. If you encounter a version of Python or Pygments that does not work, please open an issue.
Usage
Highlight source code
use Ramsey\Pygments\Pygments; $pygments = new Pygments(); $html = $pygments->highlight(file_get_contents('index.php'), 'php', 'html'); $console = $pygments->highlight('package main', 'go', 'ansi');
Generate CSS
use Ramsey\Pygments\Pygments; $pygments = new Pygments(); $css = $pygments->getCss('monokai'); $prefixedCss = $pygments->getCss('default', '.syntax');
Guess lexer name
use Ramsey\Pygments\Pygments; $pygments = new Pygments(); $lexer = $pygments->guessLexer('foo.rb'); // ruby
Get a list of lexers/formatters/styles
use Ramsey\Pygments\Pygments; $pygments = new Pygments(); $lexers = $pygments->getLexers() $formatters = $pygments->getFormatters(); $styles = $pygments->getStyles();
Set a custom pygmentize
path
use Ramsey\Pygments\Pygments; $pygments = new Pygments('/path/to/pygmentize');
Contributing
Contributions are welcome! To contribute, please familiarize yourself with CONTRIBUTING.md.
Coordinated Disclosure
Keeping user information safe and secure is a top priority, and we welcome the contribution of external security researchers. If you believe you've found a security issue in software that is maintained in this repository, please read SECURITY.md for instructions on submitting a vulnerability report.
Copyright and License
The ramsey/pygments library is copyright © Ben Ramsey and licensed for use under the terms of the MIT License (MIT).
ramsey/pygments is a fork of Pygments.php. The Pygments.php library is copyright © Kazuyuki Hayashi and licensed for use under the terms of the MIT License (MIT).
Please see LICENSE for more information.