on opmlRender ( url, cssName = "l", flExpand = false, depth = 0, length = 0 ) { local ( urlList ); local ( opmlText ); urlList = string.urlSplit (url); if string.lower ( urlList[1] ) beginsWith "file:" { opmlText = file.readWholeFile ( file.urlToFile ( url ) ); } else { opmlText = string.httpResultSplit ( tcp.httpClient ( server:urlList [2], path:urlList [3], flAcceptOpml:true ) ); }; if system.environment.isMac { opmlText = latinToMac.convert ( opmlText ); }; local ( ol ); op.xmlToOutline ( opmlText, @ol, true ); target.set ( @ol ); op.firstSummit (); if flExpand { op.fullExpand (); }; local ( level = 0 ); local ( node = 0 ); on visit () { loop { local ( s = "" ); local ( u = "" ); local ( hassubs = op.countSubs ( 1 ) > 0 ); local ( hasurl = op.attributes.getOne ( "url", @u ) ); s = s + "
"; if hasurl { s = s + ""; }; s = s + op.getLineText (); if hasurl { s = s + ""; }; s = s + "
"; if ( ( depth > 0 ) and ( level >= depth ) ) or ( ( length > 0 ) and ( node >= length ) ) { op.deleteLine (); hassubs = false; } else { op.setLineText ( s ); }; if hassubs { if op.go ( right, 1 ) { level++; visit (); level--; op.go ( left, 1 ); } else { op.deleteSubs (); }; }; if not op.go ( down, 1 ) { break; } else { if level == 0 { node++; }; }; }; }; visit (); local ( s = string ( ol ) + " " ); return ( s ); };