News

Fast Server-Side Code Highlighting with Tempest

Published
Fast Server-Side Code Highlighting with Tempest image

The Tempest highlight package by Brent Roose released v1.0 yesterday, offering a fast, extensible, server-side code highlighting for HTML and terminal in PHP:

require __DIR__.'/vendor/autoload.php';
 
use Tempest\Highlight\Highlighter;
use Tempest\Highlight\Themes\LightTerminalTheme;
 
$highlighter = new Highlighter(new LightTerminalTheme());
 
$code = <<<'CODE'
<?php
 
require __DIR__.'/vendor/autoload.php';
 
use Tempest\Highlight\Highlighter;
use Tempest\Highlight\Themes\LightTerminalTheme;
 
$highlighter = new Highlighter(new LightTerminalTheme());
CODE;
 
echo "\n", $highlighter->parse($code, 'php'), "\n\n\n";

Given the above code example, here's what the syntax highlighting looks like in the console:

Tempest Highlight with Light Theme
Tempest Highlight with Light Theme

Note: the built-in theme in the tempest/highlight package is for a light terminal theme, and it seems easy to provide your own highlighter theme for the console 👍

At the time of writing, v1.0.0 was released, and supports the following languages (and a few I wasn't familiar with):

  • Blade
  • CSS
  • DocComment
  • Gdscript
  • HTML
  • JavaScript
  • JSON
  • PHP
  • SQL
  • Twig
  • XML
  • YAML

You can add your own languages or extend them easily. Check out the package's readme on adding or extending languages. This package also has a commonmark integration which you can use to highlight code blocks and inline code.

Learn More

You can learn more about this package, get full installation instructions, and view the source code on GitHub. The readme has info about special tags for emphasis, strong, blur, and additions/deletions, etc.

Brent Roose wrote A syntax highlighter that doesn't suck, which gives you the background on why he created the tempest/highlight package.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Laravel Auditor Audits Your App With Your Own AI Agent image

Laravel Auditor Audits Your App With Your Own AI Agent

Read article
A simple form builder that stays out of your way image

A simple form builder that stays out of your way

Read article
Laravel AI: Trace Agent Runs With Lifecycle Events image

Laravel AI: Trace Agent Runs With Lifecycle Events

Read article
Laravel AI: Get Raw HTTP Responses and Rate Limits image

Laravel AI: Get Raw HTTP Responses and Rate Limits

Read article
Agent Run Observability in Laravel AI SDK 0.11 image

Agent Run Observability in Laravel AI SDK 0.11

Read article
Debounced Queued Event Listeners in Laravel image

Debounced Queued Event Listeners in Laravel

Read article