| Server IP : 127.0.1.1 / Your IP : 216.73.216.152 Web Server : Apache/2.4.52 (Ubuntu) System : Linux bahcrestlinepropertiesllc 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/bahcrestline/core/vendor/scrivo/highlight.php/demo/ |
Upload File : |
<?php
/* Copyright (c)
* - 2006-2013, Ivan Sagalaev (maniac@softwaremaniacs.org), highlight.js
* (original author)
* - 2013-2019, Geert Bergman (geert@scrivo.nl), highlight.php
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of "highlight.js", "highlight.php", nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
set_time_limit(0);
$start = microtime(true);
require_once "../Highlight/Autoloader.php";
spl_autoload_register("Highlight\\Autoloader::load");
$styles = array();
$d = dir(".." . DIRECTORY_SEPARATOR . "styles");
while (($e = $d->read()) !== false) {
if ($e[0] !== "." && $e !== "default.css" && strpos($e, ".css") !== false) {
$styles[] = $e;
}
}
sort($styles);
use Highlight\Highlighter;
$hl = new Highlighter();
$hl->setAutodetectLanguages($hl->listLanguages());
$tableRows = "";
$failed = array();
foreach ($hl->listLanguages() as $name) {
$sn = $name;
$snippet = file_get_contents("../test/detect/{$sn}/default.txt");
$r = $hl->highlightAuto($snippet);
$passed = ($r->language === $name);
$res = "<div class=\"test\"><var class=\"" . ($passed ? "passed" : "failed") .
"\">{$r->language}</var>" . " ({$r->relevance})<br>";
if (isset($r->secondBest)) {
$res .= "{$r->secondBest->language}" . " ({$r->secondBest->relevance})";
}
$tableRows .= "<tr><th>{$name}{$res}</th><td class=\"{$name}\">
<pre><code class=\"hljs {$name}\">{$r->value}</code></pre></td></th>";
if (!$passed) {
$failed[] = $name;
}
}
if (count($failed)) {
$testResult = "<p id=\"summary\" class=\"failed\">Failed tests: " .
implode(", ", $failed);
} else {
$testResult = "<p id=\"summary\" class=\"passed\">All tests passed";
}
$testResult .= "</p><p>Highlighting took " .
(microtime(true) - $start) . " seconds</p>";
$d->close();
?>
<!DOCTYPE html>
<head>
<title>highlight.js test</title>
<meta charset="utf-8">
<link rel="stylesheet" title="Default" href="../styles/default.css">
<?php foreach ($styles as $style) {
?>
<link rel="alternate stylesheet" title="<?php echo $style; ?>"
href="../styles/<?php echo $style; ?>">
<?php
} ?>
<style>
/* Base styles */
body {
font: small Arial, sans-serif;
}
h2 {
font: bold 100% Arial, sans-serif;
margin-top: 2em;
margin-bottom: 0.5em;
}
table {
width: 100%;
padding: 0;
border-collapse: collapse;
}
th {
width: 12em;
padding: 0; margin: 0;
}
td {
padding-bottom: 1em;
}
td, th {
vertical-align: top;
text-align: left;
}
pre {
margin: 0;
font-size: medium;
}
.hljs-debug {
color: red;
}
/* Style switcher */
ul#switch {
width: 66em;
-webkit-column-width: 15em;
-webkit-column-gap: 2em;
-moz-column-width: 15em;
-moz-column-gap: 2em;
-o-column-width: 15em;
-o-column-gap: 2em;
column-width: 15em;
column-gap: 2em;
list-style: none;
overflow: auto;
padding: 0;
margin: 0;
}
ul#switch li {
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
-o-column-break-inside: avoid;
column-break-inside: avoid;
padding: 0.1em;
margin: 0.1em 1em 0.1em 0;
background: #EEE;
cursor: pointer;
}
ul#switch li.current {
background: #CCC;
}
/* Tests */
.test {
color: #888;
font-weight: normal;
margin: 2em 0 0 0;
}
.test var {
font-style: normal;
}
.passed {
color: green;
}
.failed, .failed a {
color: red;
}
.code {
font: medium monospace;
}
.code .hljs-keyword {
font-weight: bold;
}
/* Export form */
#export_from, #export_to {
width: 98%;
}
address {
margin-top: 4em;
}
</style>
<script>
// Stylesheet switcher © Vladimir Epifanov <voldmar@voldmar.ru>
(function(container_id) {
if (window.addEventListener) {
var attach = function(el, ev, handler) {
el.addEventListener(ev, handler, false);
}
} else if (window.attachEvent) {
var attach = function(el, ev, handler) {
el.attachEvent('on' + ev, handler);
}
} else {
var attach = function(el, ev, handler) {
ev['on' + ev] = handler;
}
}
attach(window, 'load', function() {
var current = null;
var info = {};
var links = document.getElementsByTagName('link');
var ul = document.createElement('ul');
for (var i = 0; (link = links[i]); i++) {
if ((link.getAttribute('rel').indexOf('style') != -1) && link.title) {
var title = link.title;
info[title] = {
'link': link,
'li': document.createElement('li')
};
ul.appendChild(info[title].li);
info[title].li.title = title;
info[title].link.disabled = true;
info[title].li.appendChild(document.createTextNode(title));
attach(info[title].li, 'click', (function (el) {
return function() {
current.li.className = '';
current.link.disabled = true;
current = el;
current.li.className = 'current';
current.link.disabled = false;
}
})(info[title]));
}
}
current = info['Default'];
current.li.className = 'current';
current.link.disabled = false;
ul.id = 'switch';
container = document.getElementById(container_id);
container.appendChild(ul);
});
})('styleswitcher');
</script>
<body>
<p>This is a demo/test page showing all languages supported by
<a href="https://github.com/scrivo/highlight.php">highlight.php</a>.
Most snippets do not contain working code :-).
<div id="styleswitcher">
<h2>Styles</h2>
</div>
<h2>Automatically detected languages</h2>
<?php echo $testResult; ?>
<table id="autotest"><?php echo $tableRows; ?></table>
</body>
</html>