1 function is_constant(s
) {
2 return s
.length
> 1 && s
.toUpperCase(s
) === s
;
5 function is_variable(s
) {
6 return s
.substring(0,1) === "$";
9 var is_in_string
= false;
13 console
.log("type", s
);
15 if (!s
.match(/[a-zA-Z]/)) {
53 if (-1 !== (i
= s
.indexOf("::"))) {
55 if (!is_constant(t
) && !is_variable(t
)) {
57 return "<a href=\"/" + s
.replace(/::|\\/g, "/") + "\">";
60 if (-1 !== (j = s.indexOf("\\"))) {
61 return "<a href
=\"/" + s.replace(/\\/g, "/").replace(/::|$/, "#") + "\">";
64 switch (s.toLowerCase()) {
67 if (!is_variable(s)) {
74 return "<span
class=\"var\">";
79 return "<span
class=\"constant
\">";
84 //console.log("node
", s);
91 return document.createTextNode(s);
97 $n.text().split(/([^a-zA-Z0-9_\\\$:]+)/).forEach(function(v) {
102 function walk(i, e) {
103 console.log("walk
", i, e);
105 $.each($.makeArray(e.childNodes), function(i, n) {
106 switch (n.nodeName) {
124 $c.fadeOut("slow
").queue(function(next) {
125 this.style.color = "red
";
127 }).fadeIn("fast
").fadeOut("fast
").queue(function(next) {
128 this.style.color = "";
133 function hashchange() {
134 if (location.hash.length > 1) {
135 var hash = location.hash.substring(1);
136 var name = is_variable(hash) ? ".var" : ".constant
";
137 var scrolled = false;
139 $(name).each(hash.substring(hash.length-1) === "_
" ? function(i, c) {
140 if (c.textContent.substring(0, hash.length) === hash) {
142 $(window).scrollTop($(c).offset().top - 100);
148 if (c.textContent === hash) {
149 $(window).scrollTop($(c).offset().top - 100);
158 $("h1
,h2
,h3
,h4
,h5
,h6
,p
,li
,code
").each(walk);
159 $(window).on("hashchange
", hashchange);