adminer/plugins/Prism.php

39 lines
1.3 KiB
PHP

<?php
/** Display XML values as table in edit
* @link https://www.adminer.org/plugins/#use
* @author Pau Capó, https://www.paucapo.com/
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
*/
class Prism
{
function head()
{
?>
<script<?= nonce() ?>>
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('[class^=jush-]').forEach(function ($item) {
let jush = $item.getAttribute('class').trim();
let lang = jush.replace('jush-', 'language-');
$item.setAttribute('class', lang);
// $item.classList.remove(jush);
// $item.classList.add(lang);
});
});
</script>
<link rel="stylesheet" type="text/css" href="assets/prism.css?<?= filemtime(__DIR__ . '/../assets/prism.js') ?>"/>
<script <?= nonce() ?> src="assets/prism.js?<?= filemtime(__DIR__ . '/../assets/prism.js') ?>"></script>
<script<?= nonce() ?>>
// Prism.hooks.add('before-highlight', function (env) {
// env.code = env.element.innerText;
// });
Prism.hooks.add('before-sanity-check', function (env) {
env.element.innerHTML = env.element.innerHTML.replace(/<br>/g, '\n');
env.code = env.element.textContent;
});
</script>
<?php
}
}