diff --git a/highlightjs/highlightjs.js b/highlightjs/highlightjs.js
new file mode 100644
index 00000000..b198c705
--- /dev/null
+++ b/highlightjs/highlightjs.js
@@ -0,0 +1,6 @@
+hljs.initHighlightingOnLoad();
+
+document.addEventListener('postprocess_liveupdate', function () {
+ var blocks = document.querySelectorAll('pre code:not(.hljs)');
+ Array.prototype.forEach.call(blocks, hljs.highlightBlock);
+});
diff --git a/highlightjs/highlightjs.php b/highlightjs/highlightjs.php
index e8b5fe01..8d05453b 100644
--- a/highlightjs/highlightjs.php
+++ b/highlightjs/highlightjs.php
@@ -11,41 +11,29 @@ use Friendica\Core\Addon;
function highlightjs_install()
{
- Addon::registerHook('page_end', __FILE__, 'highlightjs_page_end');
+ Addon::registerHook('head' , __FILE__, 'highlightjs_head');
+ Addon::registerHook('footer', __FILE__, 'highlightjs_footer');
}
function highlightjs_uninstall()
{
- Addon::unregisterHook('page_end', __FILE__, 'highlightjs_page_end');
+ Addon::unregisterHook('head' , __FILE__, 'highlightjs_head');
+ Addon::unregisterHook('footer', __FILE__, 'highlightjs_footer');
}
-function highlightjs_page_end(App $a, &$b)
+function highlightjs_head(App $a, &$b)
{
- $basedir = $a->get_baseurl() . '/addon/highlightjs/asset';
-
if ($a->getCurrentTheme() == 'frio') {
$style = 'bootstrap';
} else {
$style = 'default';
}
- $a->page['htmlhead'] .= <<< HTML
-
-
-
-HTML;
-
- $b .= <<< HTML
-
-
-
-
-HTML;
+ $a->registerStylesheet(__DIR__ . '/asset/styles/' . $style . '.css');
+}
+
+function highlightjs_footer(App $a, &$b)
+{
+ $a->registerFooterScript(__DIR__ . '/asset/highlight.pack.js');
+ $a->registerFooterScript(__DIR__ . '/highlightjs.js');
}