Annotation of bookmarktools/www/documentation.html, revision 1.2

1.1       maik        1: <!-- MAIN CONTENT -->
                      2: 
                      3: <h2>Content:</h2>
                      4: <ul>
                      5:        <li><a href="#HowToIndex">HowTo use the index component</a></li>
                      6:        <li><a href="#HowToTidy">HowTo use the tidy component</a></li>
                      7: </ul>
                      8: 
                      9: <br />
                     10: 
                     11: <h2><a name="HowToIndex">HowTo use the index component (uses clucene-core-0.9.20)</a></h2>
                     12: <h3>Writing::</h3>
                     13: <pre class="brush: js">
                     14: 
                     15:        //initialize file object (location: profile directory)
                     16:        var file = Components.classes["@mozilla.org/file/directory_service;1"]
                     17:                                .getService(Components.interfaces.nsIProperties)
                     18:                                .get("ProfD", Components.interfaces.nsIFile);
                     19: 
                     20:        file.append("index"); //folder named 'index'
                     21:        
                     22:        if(!file.exists() || !file.isDirectory()) 
                     23:                file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
                     24: 
                     25:        //initialize xpcom
                     26:        var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();
                     27:        writer = writer.QueryInterface(Components.interfaces.ICLWriter);
                     28:        
                     29:        //set path
                     30:        writer.setPath(file.path);
                     31:        
                     32:        //create index document
                     33:        var cl_document = new Object();
                     34:        cl_document.primaryKey = "key0";                                                //this shoud be a unique key
                     35:        cl_document.name = "CLucene Indexer";                                   //document name
                     36:        cl_document.lastModifiedDate = new Date().getTime();    //date in millis
                     37:        cl_document.content = "Hello World!";                                   //some content
                     38:        
                     39:        //append document
                     40:        writer.appendDocument(
                     41:                cl_document.primaryKey,
                     42:                cl_document.name,
                     43:                cl_document.lastModifiedDate,
                     44:                cl_document.content
                     45:        );
                     46:        
                     47:        //optimize data
                     48:        writer.optimize();
                     49:        
                     50: </pre>
                     51: 
                     52: <h3>Searching::</h3>
                     53: <pre class="brush: js">
                     54: 
                     55:        //initialize xpcom
                     56:        var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();
                     57:        reader = reader.QueryInterface(Components.interfaces.ICLReader);
                     58:        
                     59:        //set path
                     60:        reader.setPath(file.path); //see section 'Writing'
                     61:        
                     62:        if(reader.exists()){ //check for index data
                     63:                
                     64:                var query = "Hell*";
                     65:                var results = Components.classes["@mozilla.org/array;1"]
                     66:                                                .createInstance(Components.interfaces.nsIMutableArray);
                     67:                reader.search(query, results);
                     68:                
                     69:                var e = results.enumerate();
                     70:                while (e.hasMoreElements()) {
                     71:                        var resultNode = e.getNext().QueryInterface(Components.interfaces.IResultNode);
                     72:                        
                     73:                        //Object: resultNode
                     74:                        //-> resultNode.primaryKey
                     75:                        //-> resultNode.score
                     76:                        alert(resultNode.primaryKey + "\n" + resultNode.score);
                     77:                }
                     78:                
                     79:        }else {
                     80:                //display message or do nothing
                     81:        }
                     82:        
                     83: </pre>
                     84: 
                     85: <h3>Lookup::</h3>
                     86: <pre class="brush: js">
                     87: 
                     88:        //initialize xpcom
                     89:        var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();
                     90:        reader = reader.QueryInterface(Components.interfaces.ICLReader);
                     91:        
                     92:        //set path
                     93:        reader.setPath(file.path); //see section 'Writing'
                     94:        
                     95:        var results = Components.classes["@mozilla.org/array;1"]
                     96:                                        .createInstance(Components.interfaces.nsIMutableArray);
                     97:        reader.lookup(results);
                     98:        
                     99:        var e = results.enumerate();
                    100:        while (e.hasMoreElements()) {
                    101:                var lookupNode = e.getNext().QueryInterface(Components.interfaces.ILookupNode);
                    102:                
                    103:                //Object: lookupNode
                    104:                //-> lookupNode.primaryKey
                    105:                //-> lookupNode.name
                    106:                alert(lookupNode.primaryKey + "\n" + lookupNode.name);
                    107:        }
                    108: 
                    109: </pre>
                    110: 
                    111: <h3>Delete documents::</h3>
                    112: <pre class="brush: js">
                    113: 
                    114:        //initialize xpcom
                    115:        var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();
                    116:        writer = writer.QueryInterface(Components.interfaces.ICLWriter);
                    117:        
                    118:        //set path
                    119:        writer.setPath(file.path); //see section 'Writing'
                    120:        
                    121:        //delete documents with index 0, 5 and 2
                    122:        var docs = [0, 5, 2];
                    123:        writer.deleteDocument(docs, docs.length);
                    124: 
                    125: </pre>
                    126: 
                    127: <br />
                    128: 
                    129: <h2><a name="HowToTidy">HowTo use the tidy component (uses ctidy version 060405)</a></h2>
                    130: <h3>Cleanup::</h3>
                    131: <pre class="brush: js">
                    132: 
                    133:        //initialize xpcom
                    134:        var tidy = Components.classes["@bookmarktools.mozdev.org/repair/tidy;1"].createInstance();
                    135:        tidy = tidy.QueryInterface(Components.interfaces.ITidy);
                    136:        
                    137:        var src = "
                    138:        &lt;html&gt;
                    139:                &lt;head&gt;&lt;/head&gt;
                    140:                &lt;body
                    141:                        broken body tag & no entity
                    142:                &lt;/body&gt;
                    143:        &lt;/html>";
                    144:        
                    145:        //result contains the repaired html/xhtml/xml source
                    146:        //otherwise a error message returned
                    147:        var result = tidy.cleanup(src);
                    148:        
                    149:        if(result == "Tidy: no output"){
                    150:                alert("error returned");
                    151:        }else {
                    152:                alert(src);
                    153:        }
                    154:        
                    155: </pre>
                    156: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>