diff options
author | 2008-11-13 09:49:11 +0000 | |
---|---|---|
committer | 2008-11-13 09:49:11 +0000 | |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/highlight/tests/test_highlight.html | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | scuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz scuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.zip |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/highlight/tests/test_highlight.html')
-rw-r--r-- | includes/js/dojox/highlight/tests/test_highlight.html | 327 |
1 files changed, 327 insertions, 0 deletions
diff --git a/includes/js/dojox/highlight/tests/test_highlight.html b/includes/js/dojox/highlight/tests/test_highlight.html new file mode 100644 index 0000000..93b1534 --- /dev/null +++ b/includes/js/dojox/highlight/tests/test_highlight.html @@ -0,0 +1,327 @@ +<!DOCTYPE html> +<head> + <title>dojox.highlight - syntax highlighting | The Dojo Toolkit</title> + <style type="text/css"> + @import "../../../dijit/tests/css/dijitTests.css"; + + /* a sample set of definitions to use as a foundation to color your code */ + @import "../resources/highlight.css"; + + /* additional styling for this test case */ + pre code[class]:after { + content: 'highlight: ' attr(class); + display: block; text-align: right; + font-size: smaller; + color: #CCC; background: white; + border-top: solid 1px; + padding-top: 0.5em; + } + + pre code { + display: block; + } + + code { + background: #F0F0F0; + } + + pre code, + .ruby .subst { + color: black; + } + </style> + + <script type="text/javascript" djConfig="parseOnLoad: true, isDebug: true" src="../../../dojo/dojo.js"></script> + <script type="text/javascript" src="../_base.js"></script> + + <script type="text/javascript"> + // initHighlightOnLoad is deprecated. + // if parseOnLoad==true, the onLoad init stuff is run. + // if parseOnLoad==false, you can call dojox.highlight.init(domNode) + // + // utilizing the dojo build system, the dojox.highlight engine + // will "do it's best" based on the language maps available + // at the time of construction. + // + dojo.require("dojox.highlight"); + + // several layer-like files have been provided grouping + // similar langauges, and a catch all language module + // dojox.highlight.languages._all is available for "best results" + + // we need some language definitions: + dojo.require("dojox.highlight.languages._all"); + //dojo.require("dojox.highlight.languages._static"); + //dojo.require("dojox.highlight.languages._dynamic"); + //dojo.require("dojox.highlight.languages._www"); + + var lazyCode = function(){ + + dojo.query("code").forEach(dojox.highlight.init); + + dojo.xhrGet({ + url: "../../../dojo/_base.js", + load: function(data){ + var n = dojo.byId("foobar"), + c = document.createElement('div'), + e = n.parentNode.parentNode; + c.innerHTML = '<pre><code class="javascript">' + data.replace(/\</gi,"<") + '</code></pre>'; + e.replaceChild(c.firstChild, n.parentNode); + dojo.query("pre > code", e).forEach(dojox.highlight.init); + } + }); + }; + dojo.addOnLoad(lazyCode); + + </script> +</head> +<body> + +<h1 class="testTitle">dojox.highlight</h1> + +<p>client-side syntax highlighting for a number of languages.</p> + +<p><em>NOTE:</em> All languages listed here have working language definitions, though +not all exist in the release or dojo subversion. The missing packs are not publically available. +<span style="display:none">based on</span> +</p> + +<h2>Examples:</h2> + +<p>Some Python code:</p> + +<pre><code>@requires_authorization +def somefunc(param1, param2): + '''A docstring''' + if param1 > param2: # interesting + print 'Gre\'ater' + print '' + return param2 - param1 + 1 + +class SomeClass:<br> pass +</code></pre> +<!-- + +<p>Short sample of Ruby:</p> + FIXME: example needed +--> + +<!-- + + <p>A bit of Perl:</p> + FIXME: example needed +--> + +<p>A chunk of PHP: </p> + +<pre><code class="php"> +$opAr = array ( "-a|--append", // a or append toggle, nothing extra + "-i|--input:", // i or input with next input being needed + "-l|--list:", // l with input needed + //"--foo", // broken + "-f:", // f with no input + "--wot:" // wot with input, no short + ); + + +$op = bgetop($opAr); +if (is_array($op)) { print_r($op); } + +/* here is the code: */ + +function bgetop($opAr=array(),$unknown=true) { + +$argv = $_SERVER['argv']; +$argc = $_SERVER['argc']; +$argPos = 1; // zero is program running + +// foreach arg +while ($argPos<$argc) { + $arg = $argv[$argPos]; + if ($arg{0}=="-") { + if ($arg{1}=="-") { + $var = substr($arg,2,strlen($arg)); + } else { $var = $arg{1}; } + foreach ($opAr as $opk => $opv) { + if (!isset($return[$var])) { + if (strpos($opv,$arg) !== FALSE) { + // this is where the -f -foo fix needs to be, + // the partial string exists in this record, + // but we need to determine if it's accurate + // somehow (i'm thinking: eregi?) + if ($accurate=1) { + // we foudn the key + if (strpos($opv,':') !== FALSE) { + // next value is the one to use, + // then skip it in the parser. + if (isset($argv[$argPos+1])) { + $return[$var] = $argv[++$argPos]; + } else { + $return[$var] = FALSE; + } + } else { + // just set the toggle + $return[$var] = TRUE; + } + // don't check this opAr value again + unset($opAr[$opk]); + } + } // if accurate + } // !isset already + } // foreach opAr + } else { // we weren't expecting a non-hyphened argument, possibly just a filename, or whatnot + if ($unknown) { $return['unknown'][]=$arg; } + } + $argPos++; +} // while argPos < argc + +if (is_array($return)) { +return $return; +} else { return 0; } + +} // end function bgetop + +</code></pre> + +<p>A custom XML document:</p> + +<pre><code><?xml version="1.0"?> +<response value="ok"> + <text>Ok</text> + <comment/> + <ns:description><![CDATA[ + CDATA is <not> magical. + ]]></ns:description> +</response> +</code></pre> + +<p>Some HTML code:</p> + +<pre><code><head> + <title>Title</title> +<body> + <p class="something">Something</p> + <p class=something>Something</p> + <!-- comment --> + <p class>Something</p> + <p class="something" title="p">Something</p> +</body> +</code></pre> + +<p>HTML with Django templates:</p> + +<pre><code>{% if articles|length %} +{% for article in articles %} + +{# Striped table #} +<tr class="{% cycle odd,even %}"> + <td>{{ article|default:"Hi... "|escape }}</td> + <td>{{ article.date|date:"d.m.Y" }}</td> +</tr> + +{% endfor %} +{% endif %} + +{% comment %} +Comments may be long and +multiline. +{% endcomment %} +</code></pre> + +<p>Some CSS code:</p> + +<pre><code>body, +html { + font: Tahoma, Arial, san-serif; +} + +#content { + width: 100%; /* css comment */ + height: 100% +} + +p[lang=ru] { + color: red; +} +</pre></code> + +<p>Explicit Python highlight:</p> + +<pre><code class="python">for x in [1, 2, 3]: + count(x) +</code></pre> + +<p>Disabled highlighting:</p> + +<pre><code class="no-highlight"><div id="contents"> + <p>Hello, World! +</div> +</code></pre> + +<p>Normal dojo-looking code</p> + +<pre><code> +dojo.provide("some.object"); +dojo.declare("some.object",null,{ + param: "value", + _myMethod: function(/* Event */e){ + this.inherited(arguments); + }, + // comments + _another: function(){ + dojo.addClass("foo","hovered"); + } +}); +dojo.addOnLoad(function(){ + // + // comments with <HTML> inline + var d = dojo; + d.mixin(d,{ + foo: function(e){ + d.bar(e); + }, + bar: function(e){ + alert(e); + } + }); +}); +</code></pre> + +<p>Lazy, xhr'd code:</p> + +<pre><code id="foobar"></code></pre> + +<hr> + +<p>Text with inlined JavaScript code: <code class="javascript">dojo.forEach(a, function(x){ console.log(x); });</code> — that was the inlined sample.</p> + +<hr> + +<p>Markuped code (python), no language was specified:</p> + +<pre><code dojoType="dojo.highlight.Code">@requires_authorization +def somefunc(param1, param2): + '''A docstring''' + if param1 > param2: # interesting + print 'Gre\'ater' + print '' + return param2 - param1 + 1 + +class SomeClass:<br> pass +</code></pre> + +<p>Markuped code, "python" was specified:</p> + +<pre><code dojoType="dojo.highlight.Code" class="python">@requires_authorization +def somefunc(param1, param2): + '''A docstring''' + if param1 > param2: # interesting + print 'Gre\'ater' + print '' + return param2 - param1 + 1 + +class SomeClass:<br> pass +</code></pre> + + +</body><html> |