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':...