@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorSyntaxHighlighter extends Phobject {
4
5 public static function newEngine() {
6 $engine = PhabricatorEnv::newObjectFromConfig('syntax-highlighter.engine');
7
8 $config = array(
9 'pygments.enabled' => PhabricatorEnv::getEnvConfig('pygments.enabled'),
10 'filename.map' => PhabricatorEnv::getEnvConfig('syntax.filemap'),
11 );
12
13 foreach ($config as $key => $value) {
14 $engine->setConfig($key, $value);
15 }
16
17 return $engine;
18 }
19
20 public static function highlightWithFilename($filename, $source) {
21 $engine = self::newEngine();
22 $language = $engine->getLanguageFromFilename($filename);
23 return $engine->highlightSource($language, $source);
24 }
25
26 public static function highlightWithLanguage($language, $source) {
27 $engine = self::newEngine();
28 return $engine->highlightSource($language, $source);
29 }
30
31}