1 function is_constant(s
) {
2 return s
.length
> 3 && s
.toUpperCase(s
) === s
;
5 function is_variable(s
) {
6 return s
.substring(0,1) === "$";
13 if (!s
.match(/[a-zA-Z]/)) {
49 if (-1 !== (i
= s
.indexOf("::"))) {
51 if (!is_constant(t
) && !is_variable(t
)) {
53 return "<a href=\"/" + s
.replace(/::|\\/g, "/") + "\">";
56 if (-1 !== (j = s.indexOf("\\"))) {
57 return "<a href
=\"/" + s.replace(/\\/g, "/").replace(/::|$/, "#") + "\">";
60 switch (s.toLowerCase()) {
63 if (!is_variable(s)) {
70 return "<span
class=\"var\">";
75 return "<span
class=\"constant
\">";
79 //console.log("node
", s);
86 return document.createTextNode(s);
92 $n.text().split(/([^a-zA-Z_\\\$:]+)/).forEach(function(v) {
98 //console.log("walk
", i, e);
100 e && $.each(e.childNodes, function(i, n) {
101 //console.log(n.nodeName);
102 switch (n.nodeName) {
114 function hashchange() {
115 if (location.hash.length > 1) {
116 var hash = location.hash.substring(1);
118 $(is_variable(hash) ? ".var" : ".constant
").each(function(i, c) {
120 if (c.textContent === hash) {
123 $(window).scrollTop($c.offset().top - 100);
124 $c.fadeOut("slow
").queue(function(next) {
125 this.style.color = "red
";
127 }).fadeIn("fast
").fadeOut("fast
").queue(function(next) {
128 this.style.color = "";
138 $("h1
,h2
,h3
,h4
,h5
,h6
,p
,li
,code
").each(walk);
139 $(window).on("hashchange
", hashchange);