`X kaF 9FFFF000000060001001777AA00000000005B0000000010017101804904218000006000600323200-1032321FFFFF010AF0000100000035000000010AF84032321F5D038C000133231D300002000000B400000000AF,A simple tool that renders outlines edited in Radio as a sequence of HTML slides. Useful for presentations, or just brainstorming and visualizing your ideas as a presentation.000400000009000000020B10000500000009000000020B10000600000031000000010D30FFFF0A00000 20 000700000019000000010201800008000000B10000000140,Arial40,404E44000321040008010100009000000170000000201092690109269000A000000150000000232321F32321F000B00000005000000020000C0000001700000001AF5281EB11D00000F0000005200000000400 10 4,4,4,4,4,4,77A4,77A00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAI 9%!VkaG  !6 BN Z G author Dave Winer authorEmaildave@userland.com description homePageUrl)http://radio.outliners.com/radioPointToolnameRadioPoint Presentation Tool releaseDateversion1.0% mArial kc@QNXLANDwinon build () local (adroutline = window.frontmost ()) radioPointSuite.init () local (fname) bundle //set fname local (adrparent = parentof (adroutline^)) local (adratts = @adrparent^.["/atts"]) if not file.exists (adratts^.f) scriptError ("Can't build the presentation because the outline has not been saved.") fname = file.filefrompath (adratts^.f) local (folder) bundle //set the folder local (foldername = fname) if string.lower (foldername) endswith ".opml" foldername = string.mid (foldername, 1, sizeof (foldername) - 5) foldername = string.innercasename (foldername) folder = user.radioPoint.prefs.htmlFolder + foldername + file.getpathchar () file.surefolder (folder) local (xmltext = op.outlinetoxml (adroutline)) bundle //copy the outline, if XML button is enabled if user.radioPoint.prefs.flXmlIcon try {file.writetextfile (user.radioPoint.prefs.outlineFolder + fname, xmltext)} xml.compile (xmltext, @xstruct) on getfname (slidenum, ext) return ("slide" + string.padwithzeros (slidenum, 4) + ext) local (adropml = xml.getAddress (@xstruct, "opml")) local (adrbody = xml.getAddress (adropml, "body")) local (ctslides = sizeof (adrbody^), slidenum, adrslide, t) local (renderedFileExtension = ".html") bundle //set extension, patterned after code in radio.upstream.getUpstreamText local (atts) radio.webServer.gatherAttributes (folder, @atts) if defined (atts.renderedFileExtension) renderedFileExtension = atts.renderedFileExtension for slidenum = 1 to ctslides msg ("Building slide #" + slidenum + " of " + ctslides + ".") local (htmltext = "", indentlevel = 0) on add (s) htmltext = htmltext + (string.filledstring ("\t", indentlevel) + s + "\r\n"); adrslide = @adrbody^ [slidenum] add ("#title \"" + xml.entityDecode (adrslide^.["/atts"].text, true) + "\"") add ("#outlineFileName \"" + fname + "\"") bundle //set prevUrl local (prevnum) if slidenum == 1 prevnum = ctslides else prevnum = slidenum - 1 add ("#prevUrl \"" + getfname (prevnum, renderedFileExtension) + "\"") bundle //set nextUrl local (nextnum) if slidenum == ctslides nextnum = 1 else nextnum = slidenum + 1 add ("#nextUrl \"" + getfname (nextnum, renderedFileExtension) + "\"") add ("#homeUrl \"" + getfname (1, renderedFileExtension) + "\"") add ("#slideNum \"" + slidenum + "\"") add ("#ctSlides \"" + ctslides + "\"") add ("#xmlIcon radioPointSuite.getXmlIcon (\"" + fname + "\")") on addlevel (adrsuboutline) local (i, adrline) for i = 1 to sizeof (adrsuboutline^) adrline = @adrsuboutline^ [i] if nameof (adrline^) contains "outline" local (itemtext = xml.getattributevalue (adrline, "text")) add ("
" + xml.entityDecode (itemtext, true) + "
") local (outlinelist = xml.getAddressList (adrline, "outline")) if sizeof (outlinelist) > 0 add ("
"); indentlevel++ addlevel (adrline) add ("
"); indentlevel-- addlevel (adrslide) file.writetextfile (folder + getfname (slidenum, ".txt"), htmltext) radio.thread.wake () msg ("") bundle //test code build (true) q`Arial ?'V[7aLANDwinChanges 5/30/02; 1:03:11 PM by DW Runs on the user's machine, when refreshing. local (adrtable = @system.temp.radioPointSnapshot) radioPointInfo = adrtable^.info radioPointSuite = adrtable^.suite radioPointWebsite = adrtable^.website filemenu.savemyroot (@radioPointSuite) local (x = string.parseAddress (@radioPointSuite), f = x [1]) frontier.tools.install (f) dialog.notify ("Thanks for updating.") qsBArial ?ӘH4LANDwin5/30/02; 1:03:20 PM by DW This is the Refresh menu command. local (url = "http://radio.weblogs.com/0001015/userland/publicTools/radioPoint/codeFreshener.fttb") local (urllist = string.urlsplit (url)) local (s = tcp.httpclient (server:urllist [2], path:urllist [3])) local (f = frontier.pathstring + "codeFreshener.fttb") file.writewholefile (f, s) fatpages.importfatfile (f) thread.callscript (@system.temp.radioPointSnapshot.loader, {}) sArial =(KANLANDwinChanges 5/30/02; 1:01:40 PM by DW Created. radioPointInfo.releaseDate = clock.now () local (adrtable = @system.temp.radioPointSnapshot) new (tabletype, adrtable) adrtable^.info = radioPointInfo adrtable^.suite = radioPointSuite adrtable^.website = radioPointWebsite adrtable^.loader = radioPointSuite.codeFreshener.loadNewCode local (f = "C:\\Program Files\\Radio UserLand\\www\\userland\\publicTools\\radioPoint\\codeFreshener.fttb") file.surefilepath (f) export.sendobject (adrtable, f) f = "C:\\Program Files\\Radio UserLand\\www\\userland\\publicTools\\radioPoint\\radioPoint.root" target.set (this) fileMenu.saveCopy (f) radio.thread.wake () dialog.alert (file.filefrompath (f) + " is " + string.megabytestring (file.size (f))) }.R?RG  $0 ? loadNewCode refreshCodeNreleaseNewCodeVArial 3x1 ](Arial wv]LANDwin <%title%>


Prev Next Home
Slide <%slideNum%> of <%ctSlides%>
<%title%>
<%bodytext%>





<%xmlIcon%>
]=9wm^ virginTemplate=Nlj Arial 2kLANDwinon getRenderingSubfolder (adrwindow) local (foutline) bundle //set foutline local (adrparent = parentof (adrwindow^)) local (adratts = @adrparent^.["/atts"]) foutline = adratts^.f local (folder) bundle //set the folder local (fname = file.filefrompath (foutline)) if string.lower (fname) endswith ".opml" fname = string.mid (fname, 1, sizeof (fname) - 5) fname = string.innercasename (fname) folder = user.radioPoint.prefs.renderingFolder + fname + file.getpathchar () file.surefolder (folder) return (folder) bundle //test code file.openfolder (getRenderingSubfolder (window.frontmost ())) NO0Arial dKpLANDwinon getXmlIcon (fname) if user.radioPoint.prefs.flXmlIcon try local (f = user.radioPoint.prefs.outlineFolder + fname) return ("\"Click") return ("") bundle //test code dialog.alert (getXmlIcon ("blah.opml")) OArial wdڻ<wLANDwinif not defined (user.radioPoint) new (tabletype, @user.radioPoint) bundle //prefs if not defined (user.radioPoint.prefs) new (tabletype, @user.radioPoint.prefs) if not defined (user.radioPoint.prefs.flXmlIcon) user.radioPoint.prefs.flXmlIcon = true if not defined (user.radioPoint.prefs.htmlFolder) user.radioPoint.prefs.htmlFolder = user.radio.prefs.wwwfolder + "slides" + file.getpathchar () if not file.exists (user.radioPoint.prefs.htmlFolder) file.newfolder (user.radioPoint.prefs.htmlFolder) if not defined (user.radioPoint.prefs.outlineFolder) user.radioPoint.prefs.outlineFolder = user.radioPoint.prefs.htmlFolder + "outlines" + file.getpathchar () if not file.exists (user.radioPoint.prefs.outlineFolder) file.newfolder (user.radioPoint.prefs.outlineFolder) bundle //make sure #prefs.txt with #flRender false exists in the outline folder local (prefsFile = user.radioPoint.prefs.outlineFolder + "#prefs.txt") if not file.exists (prefsFile) file.sureFilePath (prefsFile) file.writeTextFile (prefsFile, "#flRender false") bundle //make sure the template exists local (f = user.radioPoint.prefs.htmlFolder + "#template.txt") if not file.exists (f) file.surefilepath (f) file.writetextfile (f, string (radioPointSuite.data.virginTemplate))  Arial hy1Lv?sLANDwinon main () local (pta = html.getpagetableaddress ()) local (adrdata = radioPointSuite.init ()) pta^.title = radioPointInfo.name local (htmltext = "\r", indentlevel = 0) on add (s) htmltext = htmltext + string.filledstring ("\t", indentlevel) + s + "\r\n" add ("

The RadioPoint Tool turns the built-in outliner into a presentation authoring program. When you choose the Build Presentation command from the RadioPoint tool menu, the pages are rendered in the HTML rendering folder, below. A copy of the outline is placed in the outline folder, and linked into the white-on-orange XML button. The complete docs for the RadioPoint tool are here.

") if pta^.method == "POST" local (args = pta^.radioresponder.postargs) user.radioPoint.prefs.flXmlIcon = defined (args.xmliconenabled) user.radioPoint.prefs.htmlFolder = args.htmlFolder user.radioPoint.prefs.outlineFolder = args.outlineFolder scratchpad.postargs = pta^.radioresponder.postargs; edit (@scratchpad.postargs) add ("
"); indentlevel++ add (""); indentlevel++ on addrow (label, adrvalue, type="text") add ("") addrow ("HTML rendering folder", @user.radioPoint.prefs.htmlFolder) addrow ("Outline folder", @user.radioPoint.prefs.outlineFolder) bundle //add checkbox local (checked) if user.radioPoint.prefs.flXmlIcon checked = "xxx checked" else checked = "xxx" add ("") add ("
" + label + ":

 Check this box to enable the white-on-orange XML button on your presentation. This allows people to read your presentation as an outline, in addition to reading it in HTML.

"); indentlevel-- add ("
") add ("
"); indentlevel-- return (htmltext) bundle //test code html.setpagetableaddress (@scratchpad.params) webbrowser.displaytext (main ()) 2Arial ka_'-LANDwinradioPointSuite.menuCommands.buildPresentation () -Arial T̗̟J&LANDwinradioPointSuite.menuCommands.editTemplate () 0Arial T00J&LANDwinradioPointSuite.menuCommands.viewPreferences () -Arial TҲJ&LANDwinradioPointSuite.codeFreshener.refreshCode () 2Arial T00J&LANDwinradioPointSuite.menuCommands.viewDocumentation () PhpArial kaұ_'-LANDwinRadioPoint Build Presentation.. - Edit Template.. View Preferences.. - Refresh Code.. - Documentation.. @" @ A BO CPpCj6Arial ppAArial Pz }`sLANDwinon buildPresentation () local (title = window.gettitle (window.frontmost ())) if dialog.confirm ("Generate a presentation from \"" + title + "\"?") radioPointSuite.build () AHArial ̯G MLANDwinChanges 5/30/02; 7:43:33 PM by DW Added special code for Mac OS users, per Sam DeVore's recommendation. radioPointSuite.init () local (adreditor = @user.radio.prefs.editors.["text/plain"]) local (f = user.radioPoint.prefs.htmlFolder + "#template.txt") launch.appWithDocument (adreditor^, f) if system.environment.isMac local (appID = file.creator (adreditor^)) if sys.appIsRunning (appID) required.openDocument (appID, f) sys.bringAppToFront (appID) 'Arial MAVLANDwinradioPointSuite.build (flpreview:true) AArial 0 0wLANDwinwebbrowser.openurl ("http://radio.outliners.com/radioPointTool") 9Arial J LANDwinwebbrowser.openurl ("http://127.0.0.1:5335/radioPoint/") B [̯  +7 KW iu buildPresentationE editTemplateFpreviewPresentationI~viewDocumentationJ/viewPreferencesJ'Arial d domLANDwinnew (tabletype, @radioPointData.prefs) Arial ka0_LANDwinreturn ("I'm a cool Tool!") w~kaҕ  , 1= S_ jv { build codeFreshenerdata* getRenderingSubfolder*U getXmlIcon-init0 main6$menuE menuCommandsKshipItLstatusCenterMessageMUVArial XHx(tArial FF2LANDwinon finalFilter (pta) pta^.renderedText = string.replace (pta^.renderedText, "[[title]]", "") return (true) ����������������������������� ���-���� MS Sans Serif��������������������� ��������������Eu`Q�������2LAND�������win������������on firstFilter (adrPageTable) return (true) �����������������������*��[���� MS Sans Serif��������������������� ��������������Eu7a���m���L�3*lLAND�������win������������on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "<title>", "[[title]]") html.addPageToGlossary (pta) return (true) �����������������������������������������������y���.���EF�������� ���� ��� ����$���0 ����; finalFilter�������O firstFilter�������P pagefilter�������Q��V MS Sans Serif��������������������� �����������P�E��$����������������������������F�������B������7ka�������� ����url���http://127.0.0.1/radioPoint/���F���O�������K���$���11�������� ���� ��� ����linetext���Homepath��� index.wsf���O����������/����������1�������� ����Home�������T��VArial����������������������������� ����������������������������������������������������������W����������������������space���/GIFfGIF89a�������!����,�������D�;��VArial����������������������������� ������������������������������������������������������������V��������������� ������� �������"�������+ ����0���: ����C���L ����Q���[ ����aalink���008000bgcolor���FFFFFFflRenderlink���0000FFspaceGif���spacetext���000000vlink���800080��VArial����������������������������� ��������������������������������������������������n�����������������8>������VArial����������������������������� ������������������������������������������������n��������������!����Arial����������������������������� �������������� �����JLAND�������win������������return (radioPointSuite.main ()) ����������@����������V���7 �������� ���� ��� �������* ����4���@ ����H���T ����[���g ����n���z ����#filters�������S#ftpSite�������T #glossary�������U4#images�������U#prefs�������V#tools�������Windex�������X+��VVerdana��������������������������� ������������??8������������������������@������������8���kaG�������� ������� ����*���6 ����F���R ����dradioPointData��������XradioPointInfo�������radioPointSuite�������MradioPointWebsite�������X��V�����������������������������������������������`��b�����������������������������Arial����������������������������� ������������ka��S��_'-LAND�������win������������radioPointData radioPointInfo author authorEmail description homePageUrl name releaseDate version radioPointSuite build codeFreshener loadNewCode refreshCode releaseNewCode data virginTemplate getRenderingSubfolder getXmlIcon init main menu menuCommands buildPresentation editTemplate previewPresentation viewDocumentation viewPreferences shipIt statusCenterMessage radioPointWebsite �����0@������������������0@�������������������0P��������������������0P��������������������0P��������������������0P��������������������0P��������������������0P��������������������0P�������������������0@�������������������0�������������������0�������������������0���������������������0���������������������0��������������������0�������������������0(e��������������������0��������������������0��������������������0��������������������0��������������������0�������������������0�������������������0��������������������0��������������������0��������������������0��������������������0��������������������0��������������������0�������������������0@������������������������Z"x4Arial���������������������������� �� ���������������� MS Sans Serif�������������������� �� ����������������7�yTimes New Roman�������������������� ����������������/Arial���������������������������� �� ����������������>Arial���������������������������� �� ���������������� MS Sans Serif�������������������� �� ��������������������������������������������������������������������������������