Monday, November 08, 2010 at 12:03 AM.
system.verbs.builtins.html.runOutlineDirectives
on runOutlineDirectives (adroutline, adrPageTable=@websites.["#data"]) { <<4.2 <<The outline can contain #directives. <<Run all the #directives and return the outline with the directives deleted. <<Please send us a *COPY* of your outline. Thanks! if html.getPref ("useKernelCode", adrPageTable) { on kernelcall (adroutline, adrPageTable) { kernel (html.runOutlineDirectives)}; return (kernelcall (adroutline, adrPageTable))} else { local (oldtarget = target.get ()); target.set (adroutline); op.firstSummit (); loop { local (s = op.getLineText ()); if s beginsWith "#" { s = string.delete (s, 1, 1); <<pop off the # local (lastdirective = html.runDirective (s, adrPageTable)); local (newtype = nil); <<4.2 case lastdirective { <<4.2 "define" { newtype = outlinetype}; "definescript" { newtype = scripttype}}; if newtype != nil { local (theList); local (objectname = adrPageTable^.[lastdirective]); delete (@adrPageTable^.[lastdirective]); op.expand (1); if op.go (right, 1) { theList = op.outlineToList (adroutline)} else { scriptError ("Empty sub-outline in \"" + objectname + "\"#define directive.")}; local (adrnewoutline = @adrPageTable^.[objectname]); new (newtype, adrnewoutline); op.listToOutline (theList, adrnewoutline); target.set (adrnewoutline); op.firstsummit (); op.deleteline (); target.set (adroutline); op.go (left, 1)}; op.deleteline ()} else { if script.isComment () { <<new in 4.0b7 -- omit top-level comment lines op.deleteline ()} else { if not op.go (down, 1) { break}}}}; try {target.set (oldtarget)}}}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.