Server Side Highlight

Server-side code highlighting with cached results.

Compatible with Flarum v1.8.5

Latest release v1.4.0

97 downloads

released on Apr 25, 2023

CLUB1 Server Side Highlight

License Latest Stable Version Total Downloads Coverage Build Status

A Flarum extension. Server-side code highlighting with cached results.

banner banner

For each code block of the posts, a hash is computed while parsing them, then on render the code highlighting is done in the backend once, and stored in the cache for future renderings.

It provides the following advantages:

  1. The highlighting is done on the server so it is not up to the clients to do it.
  2. The server uses the cache to save highlighted blocks to only do the processing once.
  3. It works without any JS so even on the worst web browser the highlight will be there and there is no delay before the highlighting is applied.
  4. The theme adapts itself to the "dark mode" setting of Flarum.
  5. It works even with BBCode extension disabled.
  6. Admins can choose the highlight theme for both "Light" and "Dark" Flarum variants.
  7. Admins can download highlight themes with highlight:download Flarum console command.
  8. It is compatible with fof/nightmode by switching the highlight theme accordingly.

Client-side highlighting is still used, but only for the post preview.

Installation

Install with composer:

composer require club-1/flarum-ext-server-side-highlight:"*"

Recommendation

This extension alone does not apply the formatting changes to previously posted comments. I you want to reparse all the comments posts of the database it is recommended to install and enable the club-1/flarum-ext-chore-commands extension and use its chore:reparse command.

Updating

composer update club-1/flarum-ext-server-side-highlight:"*"
php flarum migrate
php flarum cache:clear
php flarum assets:publish

Acknowledgement

This extension is based on the following libraries:

Links

© 2024 Hyn by DaniĆ«l "Luceos" Klabbers. All rights reserved. · Extensions and extension information is provided by the respective (copyright holding) authors. · Extiverse is not affiliated to the Flarum project or Flarum foundation. · Images on Extiverse pages are from Unsplash.