ramsey/pygments

A PHP wrapper for Pygments, the Python syntax highlighter, forked from kzykhys/pygments.

Fund package maintenance!
ramsey

2.0.2 2021-03-07 19:15 UTC

This package is auto-updated.

Last update: 2024-04-11 08:34:23 UTC


README

A PHP wrapper for Pygments, the Python syntax highlighter.

Source Code Download Package PHP Programming Language Read License Build Status Codecov Code Coverage Psalm Type Coverage

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 7.4 or greater (including PHP 8)
  • Python
  • Pygments (pip install Pygments)

Python and Pygments versions supported:

Pygments: 2.2 2.3 2.4 2.5 2.6 2.7 2.8
Python 3.6
Python 3.7
Python 3.8
Python 3.9

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();
$pygments->guessLexer('foo.rb'); // ruby

Get a list of lexers/formatters/styles

use Ramsey\Pygments\Pygments;

$pygments = new Pygments();
$pygments->getLexers()
$pygments->getFormatters();
$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.