<div dir="ltr"><div class="gmail_extra"><div class="gmail_extra">Michael, regarding the Konqueror rendering, I posted this on the Lazaurs forums:</div><div class="gmail_extra"><br></div><div class="gmail_extra">`I can only do so much given the source material of "table tbody tr td td td p span code &nbsp span p td td td tr tr td td td &nbsp p ... "`So yeah, table layout is bad but I'll deal with it the best I can.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regarding the search, I have my own framework for websites that's been in github for a while. It's C# but I think it's really great. In a nutshell ...</div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="http://pastebin.com/sjFCNpxb">http://pastebin.com/sjFCNpxb</a></div><div class="gmail_extra"><br></div><div class="gmail_extra">Everything is pretty much optional, you can have:</div><div class="gmail_extra"><br></div><div class="gmail_extra">[DefaultPage("home.html")] class HomePage : PageHandler {}</div><div class="gmail_extra"><br></div><div class="gmail_extra">And that loads home.html. You can add programability with methods:</div><div class="gmail_extra"><br></div><div class="gmail_extra">[MethodPage("hello")] public void Hello() { Write("Hello World"); }</div><div class="gmail_extra"><br></div><div class="gmail_extra">And if you load <a href="http://yoursite.com/?method=hello">http://yoursite.com/?method=hello</a>, then the result is "Hello World". In reality you would use MethodPage for ajax calls, or stuff invoked dynamically on your webpage from javascript.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In this case I have a codesearch method, or in javascript ajax with jquery ... $.ajax('/?method=codesearch'). See <a href="http://docs.getlazarus.org/scripts/home.js">http://docs.getlazarus.org/scripts/home.js</a>, in particular execute() and searchExecute().</div><div class="gmail_extra"><br></div><div class="gmail_extra">Then there are templates, which look like this:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><a href="http://pastebin.com/vy1eKWbu">http://pastebin.com/vy1eKWbu</a><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">The magic there is the anonymous type built from SQL result rows and columns. Because it's an actual type, it can be used with my template system:</div><div class="gmail_extra"><br></div><div class="gmail_extra">SearchItems = TemplateString.FormatObject(searchItems);</div><div class="gmail_extra"><br></div><div class="gmail_extra">Where template string is simply:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra"><a class="searchResult" href="{Source}" target="main" onclick="searchSelect('{Path}')"></div><div class="gmail_extra"><span class="resultPath">{Bolden}</span></div><div class="gmail_extra"><span class="resultKind">{Kind}</span></div><div class="gmail_extra"><span class="resultDescription">{Description}</span></div><div class="gmail_extra"></a></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">And you can nest templates (causes the above inserted as a child):</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div id="searchResults">{SearchItems}</div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Further, you can add format specifiers in my template engine. i.e. {Bolden:10} to pad with spaces. You can use any type and any format specifiers, as long as they work with the actual type in C# (you can add your own format specifiers to C#).</div><div class="gmail_extra"><br></div><div class="gmail_extra">Soon I'll post the whole project online and if anyone want to make improvements they can have at it.</div><div><br></div></div></div>