inspect_format + meta
by ihope
HTML
<script src="http://sprintf.googlecode.com/files/sprintf-0.7-beta1.js"></script>
<p id="fun" class="cls2 cls3 cls4"></p>
<p id="fun" class="cls2 cls3 cls4"></p>
<p id="fun" class="h"></p>
CSS
.editbox {
margin: .4em;
padding: 0;
font-family: monospace;
font-size: 10pt;
color: black;
}
.editbox p {
margin: 0;
font-family:tahoma;
}
span.xml-tagname {
color: #A0B;
}
span.xpath {
font-family:monospace;
}
span.attribute {
color: #281;
font-size :1em;
}
span.xml-punctuation {
color: black;
}
span.xml-attname {
color: #00F;
}
span.xml-comment {
color: #A70;
}
span.xml-cdata {
color: #48A;
}
span.xml-processing {
color: #999;
}
span.xml-entity {
color: #A22;
}
span.xml-error {
color: #F00;
}
span.xml-text {
color: black;
}
JavaScript
var s = "";
var F_ = {
// [PROTECTED] don change my name
variableEsc: '%',
// [PROTECTED] don change my name
selfVariableEsc: '\$',
global: "xpath ",
/* remove space to be prefix to clasName */
tag: "tagname",
punct: "punc",
condition: "condition",
string: "string",
attribute: "attribute",
// [PROTECTED] don change my name
formatPatt: "<span class=\"$global$ %FormatType% \">$tag$ %s%</span>"
}
var DEFAULT_FORMAT;
/*
@param o input format Array
@param f input format rule
*/
function $F(lookup) {
/*if (!(f || DEFAULT_FORMAT)) {
return
}
if (f) {
DEFAULT_FORMAT = f;
}*/
var cb = function(g1, g2, g3,g4) {
console.log(g3);
if (g2 == DEFAULT_FORMAT.selfVariableEsc && g4 == DEFAULT_FORMAT.selfVariableEsc) {
if (DEFAULT_FORMAT[g3]) {
return DEFAULT_FORMAT[g3];
}
else {
return g3
};
} else {
if (g2 == DEFAULT_FORMAT.variableEsc && g4 == DEFAULT_FORMAT.variableEsc ) {
if (lookup[g3]) {
return lookup[g3];
}
else {
return g3
}
}
}
}
var ret = DEFAULT_FORMAT.formatPatt;
for (i in DEFAULT_FORMAT) {
ret = ret.replace(new RegExp("" + "([" + DEFAULT_FORMAT.selfVariableEsc + "])(" + i + ")([" + DEFAULT_FORMAT.variableEsc + "])", /i/), cb);
}
for (i in lookup) {
ret = ret.replace(new RegExp("" + "([" + DEFAULT_FORMAT.variableEsc + "])(" + i + ")([" + DEFAULT_FORMAT.variableEsc + "])", /i/), cb);
}
return ret;
}
//===================================
/*DEFAULT_FORMAT = F_;
alert($F(["jhjh", "jjj"], F_.attribute));*/
//===================================
DEFAULT_FORMAT = F_;
$$('#fun').each(function(v, i) {
if (v.id) {
s += ($F({
'FormatType': F_.attribute,
's':...