Diff for /bookmarktools/www/documentation.html between versions 1.18 and 1.19

version 1.18, 2009/02/28 07:41:45 version 1.19, 2009/02/28 07:49:16
Line 3 Line 3
   
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
         <head>          <head>
                   <title>Bookmark Tools</title>
                 <link rel="stylesheet" href="project.css" type="text/css" />                  <link rel="stylesheet" href="project.css" type="text/css" />
                                   
                 <meta http-equiv="Content-Type" content="text/html" />                  <meta http-equiv="Content-Type" content="text/html" />
Line 69 Line 70
                                                                                 <li><strong>USER GUIDE</strong></li>                                                                                  <li><strong>USER GUIDE</strong></li>
                                                                                 <li><strong>XPCOM</strong>                                                                                  <li><strong>XPCOM</strong>
                                                                                         <ul>                                                                                          <ul>
                                                                                                <li><a href="#HowToIndex">HowTo use the index component</a></li>                                                                                                <li><a class="simpleLink" href="#HowToIndex">HowTo use the index component</a></li>
                                                                                                <li><a href="#HowToTidy">HowTo use the tidy component</a></li>                                                                                                <li><a class="simpleLink" href="#HowToTidy">HowTo use the tidy component</a></li>
                                                                                         </ul>                                                                                          </ul>
                                                                                 </li>                                                                                  </li>
                                                                                 <li><strong>OTHER</strong></li>                                                                                  <li><strong>OTHER</strong></li>
Line 80 Line 81
   
                                                                 <div class="separator"></div>                                                                  <div class="separator"></div>
                                                                                                                                                   
                                                                        <br />                                                                <br />
 
                                                                        <h3><a href="#Content"><img src="./images/back.png" alt="back" title="back" /></a><a name="HowToIndex">HowTo use the index component (uses clucene-core-0.9.20)</a></h3> 
                                                                        <h4>Writing::</h4> 
                                                                        <pre class="brush: js font-size: 80%"> 
 
                                                                                //initialize file object (location: profile directory) 
                                                                                var file = Components.classes["@mozilla.org/file/directory_service;1"] 
                                                                                                        .getService(Components.interfaces.nsIProperties) 
                                                                                                        .get("ProfD", Components.interfaces.nsIFile); 
 
                                                                                file.append("index"); //folder named 'index' 
                                                                                 
                                                                                if(!file.exists() || !file.isDirectory())  
                                                                                        file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777); 
   
                                                                                //initialize xpcom                                                                <h3><a href="#Content"><img src="./images/back.png" alt="back" title="back" /></a><a name="HowToIndex">HowTo use the index component (uses clucene-core-0.9.20)</a></h3>
                                                                                var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();                                                                <h4>Writing::</h4>
                                                                                writer = writer.QueryInterface(Components.interfaces.ICLWriter);                                                                <pre class="brush: js font-size: 80%">
                                                                                
                                                                                //set path                                                                        //initialize file object (location: profile directory)
                                                                                writer.setPath(file.path);                                                                        var file = Components.classes["@mozilla.org/file/directory_service;1"]
                                                                                                                                                                                .getService(Components.interfaces.nsIProperties)
                                                                                //create index document                                                                                                .get("ProfD", Components.interfaces.nsIFile);
                                                                                var cl_document = new Object(); 
                                                                                cl_document.primaryKey = "key0";                                                //this shoud be a unique key 
                                                                                cl_document.name = "CLucene Indexer";                                   //document name 
                                                                                cl_document.lastModifiedDate = new Date().getTime(); //date in millis 
                                                                                cl_document.content = "Hello World!";                                   //some content 
                                                                                 
                                                                                //append document 
                                                                                writer.appendDocument( 
                                                                                        cl_document.primaryKey, 
                                                                                        cl_document.name, 
                                                                                        cl_document.lastModifiedDate, 
                                                                                        cl_document.content 
                                                                                ); 
                                                                                 
                                                                                //optimize data 
                                                                                writer.optimize(); 
                                                                                 
                                                                        </pre> 
   
                                                                        <h4>Searching::</h4>                                                                        file.append("index"); //folder named 'index'
                                                                        <pre class="brush: js font-size: 80%">                                                                        
                                                                         if(!file.exists() || !file.isDirectory()) 
                                                                                 file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
   
                                                                                //initialize xpcom                                                                        //initialize xpcom
                                                                                var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();                                                                        var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();
                                                                                reader = reader.QueryInterface(Components.interfaces.ICLReader);                                                                        writer = writer.QueryInterface(Components.interfaces.ICLWriter);
                                                                                                                                                        
                                                                                //set path                                                                        //set path
                                                                                reader.setPath(file.path); //see section 'Writing'                                                                        writer.setPath(file.path);
                                                                                                                                                        
                                                                                if(reader.exists()){ //check for index data                                                                        //create index document
                                                                                                                                                                var cl_document = new Object();
                                                                                        var query = "Hell*";                                                                        cl_document.primaryKey = "key0";                                               //this shoud be a unique key
                                                                                        var results = Components.classes["@mozilla.org/array;1"]                                                                        cl_document.name = "first document";                                    //document name
                                                                                                                        .createInstance(Components.interfaces.nsIMutableArray);                                                                        cl_document.content = "Hello World!";                                   //some content
                                                                                        reader.search(query, results);                                                                        
                                                                                                                                                                //append document
                                                                                        var e = results.enumerate();                                                                        writer.appendDocument(
                                                                                        while (e.hasMoreElements()) {                                                                                cl_document.primaryKey,
                                                                                                var resultNode = e.getNext().QueryInterface(Components.interfaces.IResultNode);                                                                                cl_document.name,
                                                                                                                                                                                cl_document.content
                                                                                                //Object: resultNode                                                                        );
                                                                                                //-> resultNode.primaryKey                                                                        
                                                                                                //-> resultNode.score                                                                        //optimize data
                                                                                                alert(resultNode.primaryKey + "\n" + resultNode.score);                                                                        writer.optimize();
                                                                                        }                                                                        
                                                                                                                                                        </pre>
                                                                                }else { 
                                                                                        //display message or do nothing 
                                                                                } 
                                                                                 
                                                                        </pre> 
   
                                                                        <h4>Lookup::</h4>                                                                <h4>Searching::</h4>
                                                                        <pre class="brush: js font-size: 80%">                                                                <pre class="brush: js font-size: 80%">
   
                                                                                //initialize xpcom                                                                        //initialize xpcom
                                                                                var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();                                                                        var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();
                                                                                reader = reader.QueryInterface(Components.interfaces.ICLReader);                                                                        reader = reader.QueryInterface(Components.interfaces.ICLReader);
                                                                                                                                                        
                                                                                //set path                                                                        //set path
                                                                                reader.setPath(file.path); //see section 'Writing'                                                                        reader.setPath(file.path); //see section 'Writing'
                                                                         
                                                                         if(reader.exists()){ //check for index data
                                                                                                                                                                   
                                                                                   var query = "Hell*";
                                                                                 var results = Components.classes["@mozilla.org/array;1"]                                                                                  var results = Components.classes["@mozilla.org/array;1"]
                                                                                                                 .createInstance(Components.interfaces.nsIMutableArray);                                                                                                                  .createInstance(Components.interfaces.nsIMutableArray);
                                                                                reader.lookup(results);                                                                                reader.search(query, results);
                                                                                                                                                                   
                                                                                 var e = results.enumerate();                                                                                  var e = results.enumerate();
                                                                                 while (e.hasMoreElements()) {                                                                                  while (e.hasMoreElements()) {
                                                                                        var lookupNode = e.getNext().QueryInterface(Components.interfaces.ILookupNode);                                                                                        var resultNode = e.getNext().QueryInterface(Components.interfaces.IResultNode);
                                                                                                                                                                                   
                                                                                        //Object: lookupNode                                                                                        //Object: resultNode
                                                                                        //-> lookupNode.primaryKey                                                                                        //-> resultNode.primaryKey
                                                                                        //-> lookupNode.name                                                                                        //-> resultNode.score
                                                                                        alert(lookupNode.primaryKey + "\n" + lookupNode.name);                                                                                        alert(resultNode.primaryKey + "\n" + resultNode.score);
                                                                                 }                                                                                  }
                                                                                   
                                                                           }else {
                                                                                   //display message or do nothing
                                                                           }
                                                                           
                                                                   </pre>
   
                                                                        </pre>                                                                <h4>Lookup::</h4>
                                                                <pre class="brush: js font-size: 80%">
                                                                        <h4>Delete documents::</h4> 
                                                                        <pre class="brush: js font-size: 80%"> 
   
                                                                                //initialize xpcom                                                                        //initialize xpcom
                                                                                var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();                                                                        var reader = Components.classes["@bookmarktools.mozdev.org/search/indexReader;1"].createInstance();
                                                                                writer = writer.QueryInterface(Components.interfaces.ICLWriter);                                                                        reader = reader.QueryInterface(Components.interfaces.ICLReader);
                                                                                                                                                        
                                                                                //set path                                                                        //set path
                                                                                writer.setPath(file.path); //see section 'Writing'                                                                        reader.setPath(file.path); //see section 'Writing'
                                                                                                                                                        
                                                                                //delete documents with index 0, 5 and 2                                                                        var results = Components.classes["@mozilla.org/array;1"]
                                                                                var docs = [0, 5, 2];                                                                                                        .createInstance(Components.interfaces.nsIMutableArray);
                                                                                writer.deleteDocument(docs, docs.length);                                                                        reader.lookup(results);
                                                                         
                                                                         var e = results.enumerate();
                                                                         while (e.hasMoreElements()) {
                                                                                 var lookupNode = e.getNext().QueryInterface(Components.interfaces.ILookupNode);
                                                                                 
                                                                                 //Object: lookupNode
                                                                                 //-> lookupNode.primaryKey
                                                                                 //-> lookupNode.name
                                                                                 alert(lookupNode.primaryKey + "\n" + lookupNode.name);
                                                                         }
 
                                                                 </pre>
 
                                                                 <h4>Delete documents::</h4>
                                                                 <pre class="brush: js font-size: 80%">
 
                                                                         //initialize xpcom
                                                                         var writer = Components.classes["@bookmarktools.mozdev.org/search/indexWriter;1"].createInstance();
                                                                         writer = writer.QueryInterface(Components.interfaces.ICLWriter);
                                                                         
                                                                         //set path
                                                                         writer.setPath(file.path); //see section 'Writing'
                                                                         
                                                                         //delete documents with index 0, 5 and 2
                                                                         var docs = [0, 5, 2];
                                                                         writer.deleteDocument(docs, docs.length);
   
                                                                        </pre>                                                                </pre>
   
                                                                        <br />                                                                <br />
   
                                                                        <div class="separator"></div>                                                                <div class="separator"></div>
                                                                         
                                                                        <h3><a href="#Content"><img src="./images/back.png" alt="back" title="back" /></a><a name="HowToTidy">HowTo use the tidy component (uses ctidy version 060405)</a></h3> 
                                                                        <h4>Cleanup::</h4> 
                                                                        <pre class="brush: js font-size: 80%"> 
 
                                                                                //initialize xpcom 
                                                                                var tidy = Components.classes["@bookmarktools.mozdev.org/repair/tidy;1"].createInstance(); 
                                                                                tidy = tidy.QueryInterface(Components.interfaces.ITidy); 
                                                                                 
                                                                                var src = " 
                                                                                &lt;html&gt; 
                                                                                        &lt;head&gt;&lt;/head&gt; 
                                                                                        &lt;body 
                                                                                                broken body tag & no entity 
                                                                                        &lt;/body&gt; 
                                                                                &lt;/html>"; 
                                                                                 
                                                                                //result contains the repaired html/xhtml/xml source 
                                                                                //otherwise a error message returned 
                                                                                var result = tidy.cleanup(src); 
                                                                                 
                                                                                if(result == "Tidy: no output"){ 
                                                                                        alert("error returned"); 
                                                                                }else { 
                                                                                        alert(src); 
                                                                                } 
                                                                                 
                                                                        </pre> 
                                                                </div> 
                                                                                                                                   
                                                                   <h3><a href="#Content"><img src="./images/back.png" alt="back" title="back" /></a><a name="HowToTidy">HowTo use the tidy component (uses ctidy version 060405)</a></h3>
                                                                   <h4>Cleanup::</h4>
                                                                   <pre class="brush: js font-size: 80%">
   
                                                                           //initialize xpcom
                                                                           var tidy = Components.classes["@bookmarktools.mozdev.org/repair/tidy;1"].createInstance();
                                                                           tidy = tidy.QueryInterface(Components.interfaces.ITidy);
                                                                           
                                                                           var src = "
                                                                           &lt;html&gt;
                                                                                   &lt;head&gt;&lt;/head&gt;
                                                                                   &lt;body
                                                                                           broken body tag &amp; no entity
                                                                                   &lt;/body&gt;
                                                                           &lt;/html>";
                                                                           
                                                                           //result contains the repaired html/xhtml/xml source
                                                                           //otherwise a error message returned
                                                                           var result = tidy.cleanup(src);
                                                                           
                                                                           if(result == "Tidy: no output"){
                                                                                   alert("error returned");
                                                                           }else {
                                                                                   alert(src);
                                                                           }
                                                                           
                                                                   </pre>
                                                   
                                                         </div>                                                          </div>
                                                 </div>                                                  </div>
                                         </td>                                          </td>

Removed from v.1.18  
changed lines
  Added in v.1.19


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