3 * Name: Syntax Highlighting
4 * Description: Highlights syntax of code blocks with highlight.js
6 * Author: Hypolite Petovan <hypolite@mrpetovan.com>
10 use Friendica\Core\Addon;
12 function highlightjs_install()
14 Addon::registerHook('page_end', __FILE__, 'highlightjs_page_end');
17 function highlightjs_uninstall()
19 Addon::unregisterHook('page_end', __FILE__, 'highlightjs_page_end');
22 function highlightjs_page_end(App $a, &$b)
24 $basedir = $a->get_baseurl() . '/addon/highlightjs/asset';
26 if ($a->getCurrentTheme() == 'frio') {
32 $a->page['htmlhead'] .= <<< HTML
34 <link rel="stylesheet" href="{$basedir}/styles/{$style}.css">
40 <script type="text/javascript" src="{$basedir}/highlight.pack.js"></script>
41 <script type="text/javascript">
42 hljs.initHighlightingOnLoad();
44 document.addEventListener('postprocess_liveupdate', function () {
45 var blocks = document.querySelectorAll('pre code:not(.hljs)');
46 Array.prototype.forEach.call(blocks, hljs.highlightBlock);