mirror of
https://github.com/ethauvin/kobalt-doc.git
synced 2025-04-25 20:07:11 -07:00
Syntax highlighting.
This commit is contained in:
parent
c11be25ff8
commit
6b7427454a
105 changed files with 17571 additions and 91 deletions
242
sh/tests/syntaxhighlighter_tests.html
Normal file
242
sh/tests/syntaxhighlighter_tests.html
Normal file
|
@ -0,0 +1,242 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>SyntaxHighlighter Highlight Tests</title>
|
||||
|
||||
<!-- jQuery & QUnit -->
|
||||
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
|
||||
<script type="text/javascript" src="js/qunit.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="js/qunit.css"/>
|
||||
|
||||
<!-- SyntaxHighlighter -->
|
||||
<script type="text/javascript" src="/sh/scripts/XRegExp.js"></script> <!-- XRegExp is bundled with the final shCore.js during build -->
|
||||
<script type="text/javascript" src="/sh/scripts/shCore.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shLegacy.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushAppleScript.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushAS3.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushBash.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushColdFusion.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushCpp.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushCSharp.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushCss.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushDelphi.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushDiff.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushErlang.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushGroovy.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushJava.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushJavaFx.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushJScript.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushPerl.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushPhp.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushPlain.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushPowerShell.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushPython.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushRuby.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushSass.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushScala.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushSql.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushVb.js"></script>
|
||||
<script type="text/javascript" src="/sh/scripts/shBrushXml.js"></script>
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="/sh/styles/shCoreDefault.css"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1 id="qunit-header">SyntaxHighlighter Highlight Lines Test</h1>
|
||||
<h2 id="qunit-banner"></h2>
|
||||
<div id="qunit-testrunner-toolbar"></div>
|
||||
<h2 id="qunit-userAgent"></h2>
|
||||
<ol id="qunit-tests"></ol>
|
||||
|
||||
<button id="interaction">Run interaction tests</button>
|
||||
|
||||
<div id="output">
|
||||
</div>
|
||||
|
||||
<style>
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
|
||||
#interaction {
|
||||
margin-top: 1em;
|
||||
padding: 1em;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.test-wrap {
|
||||
width: 45%;
|
||||
height: 400px;
|
||||
overflow: auto;
|
||||
float: left;
|
||||
margin: 1em 1em 0 0;
|
||||
border: 5px solid silver;
|
||||
background: gray;
|
||||
font-family: Helvetica;
|
||||
}
|
||||
|
||||
.test-wrap h3 {
|
||||
margin: 1em 0 0 1em;
|
||||
color: white;
|
||||
font-size: 1em;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
var testQueue = [],
|
||||
renderTests = [
|
||||
'001_basic',
|
||||
'002_brushes',
|
||||
'003_script_tag',
|
||||
'004_url_parsing',
|
||||
'005_no_gutter',
|
||||
'006_pad_line_numbers',
|
||||
'007_collapse',
|
||||
'008_first_line',
|
||||
'009_class_name',
|
||||
'010_highlight',
|
||||
'011_smart_tabs',
|
||||
'012_server_side',
|
||||
'013_html_script',
|
||||
'014_legacy'
|
||||
],
|
||||
interactionTests = [
|
||||
'007_collapse_interaction'
|
||||
]
|
||||
;
|
||||
|
||||
function queue(func)
|
||||
{
|
||||
testQueue.push(func);
|
||||
};
|
||||
|
||||
function ok_sh($sh)
|
||||
{
|
||||
ok($sh.length > 0, 'Element present');
|
||||
ok($sh.is('div'), 'Element is DIV');
|
||||
ok($sh.find('> div').is('.syntaxhighlighter'), 'Nested DIV is a .syntaxhighlighter');
|
||||
};
|
||||
|
||||
function ok_toolbar($sh)
|
||||
{
|
||||
var $target = $sh.find('> .syntaxhighlighter > .toolbar');
|
||||
ok($target.length > 0, 'Toolbar present');
|
||||
ok($target.is(':visible'), 'Toolbar visible');
|
||||
};
|
||||
|
||||
function ok_caption($sh, value)
|
||||
{
|
||||
var $target = $sh.find('> .syntaxhighlighter > table > caption');
|
||||
ok($target.length > 0, 'Caption present');
|
||||
ok($target.is(':visible'), 'Caption visible');
|
||||
|
||||
if (value != null)
|
||||
equals($target.text(), value, 'Caption text');
|
||||
};
|
||||
|
||||
function ok_gutter($sh)
|
||||
{
|
||||
var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .gutter');
|
||||
ok($target.length > 0, 'Gutter present');
|
||||
ok($target.is(':visible'), 'Gutter visible');
|
||||
};
|
||||
|
||||
function ok_code($sh)
|
||||
{
|
||||
var $target = $sh.find('> .syntaxhighlighter > table > tbody > tr > .code');
|
||||
ok($target.length > 0, 'Code present');
|
||||
ok($target.is(':visible'), 'Code visible');
|
||||
};
|
||||
|
||||
function ok_collapsed($sh)
|
||||
{
|
||||
ok($sh.find('> .syntaxhighlighter.collapsed').length == 1, '.collapsed present');
|
||||
};
|
||||
|
||||
function loadTests(tests, addHtml)
|
||||
{
|
||||
var html = '';
|
||||
|
||||
$.each(tests, function(index)
|
||||
{
|
||||
var name = this;
|
||||
|
||||
if (addHtml != false)
|
||||
{
|
||||
html += '<div class="test-wrap">\n'
|
||||
html += '<h3>' + name + '</h3>\n';
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: 'cases/' + name + '.html',
|
||||
type: 'GET',
|
||||
dataType: 'text',
|
||||
async: false,
|
||||
success: function(data)
|
||||
{
|
||||
html += data;
|
||||
},
|
||||
error: function()
|
||||
{
|
||||
html += '<p>Not found...</p>';
|
||||
}
|
||||
});
|
||||
|
||||
if (addHtml != false)
|
||||
{
|
||||
html += '</div>\n';
|
||||
|
||||
if (index % 2 != 0)
|
||||
html += '<div style="clear:both"></div>\n';
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
// Looks like .html() is producing different results when it comes to
|
||||
// content that has <script /> which type is NOT "text/javascript".
|
||||
// $('#output').html(html);
|
||||
//
|
||||
$('#output')[0].innerHTML += html;
|
||||
|
||||
//
|
||||
// However, if HTML assigned to to .innerHTML container <script/> tags,
|
||||
// they are not executed, so we have to manually walk all of them and
|
||||
// eval() the content.
|
||||
//
|
||||
$('#output script[type="text/javascript"][class!="executed"]').each(function()
|
||||
{
|
||||
eval($(this).text() || $(this).html());
|
||||
$(this).addClass('executed')
|
||||
});
|
||||
};
|
||||
|
||||
function runTestQueue()
|
||||
{
|
||||
|
||||
$.each(testQueue, function()
|
||||
{
|
||||
this.apply(null);
|
||||
});
|
||||
|
||||
testQueue = [];
|
||||
};
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
loadTests(renderTests);
|
||||
SyntaxHighlighter.highlight();
|
||||
runTestQueue();
|
||||
|
||||
$('#interaction').click(function()
|
||||
{
|
||||
loadTests(interactionTests, false /* addHtml */);
|
||||
runTestQueue();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue