{
  "attachments": [],
  "comments_archived": true,
  "date": "2005-07-12T21:56:34.000Z",
  "layout": "post",
  "title": "In-browser XOXO Outliner Experiment",
  "wordpress_id": 667,
  "wordpress_slug": "xoxo-outliner-experiment",
  "wordpress_url": "http://www.decafbad.com/blog/?p=667",
  "year": "2005",
  "month": "07",
  "day": "12",
  "isDir": false,
  "slug": "xoxo-outliner-experiment",
  "type": "entry",
  "postName": "2005-07-12-xoxo-outliner-experiment",
  "html": "<p>Testing, testing--is this thing on?  Well, I do have to say that I've recovered rather well from <a href=\"http://www.decafbad.com/blog/2005/07/05/exocortex_stroke\">the \"stroke\"</a> last week.  Things have been pretty busy since then, so I haven't had much of a chance to blather any more around these parts.</p>\n<p>However, in the spirit of a few <a href=\"http://www.decafbad.com/blog/2005/07/02/drag_the_boxes_stretch_the_lines\">recent</a> <a href=\"http://www.decafbad.com/blog/2005/07/02/css_treemaps\">experiments</a>, I have another demo for you.  Here's the URL of the latest work in progress / proof of concept:</p>\n<ul>\n<li><a href=\"http://www.decafbad.com/2005/07/map-test/tree2.html\">http://www.decafbad.com/2005/07/map-test/tree2.html</a></li>\n</ul>\n<p>What is it, you might ask before clicking a strange URL?  It's an outliner, in Javascript.  Or, rather, a first rough stab at one anyway.  It's got a long way to go, and there are indeed <a href=\"http://www.google.com/url?sa=U&amp;start=1&amp;q=http://sproutliner.com/&amp;e=912\">better options out there already</a>, but I wanted to try making one myself.</p>\n<p>A quick summary of controls:  No mouse drag of items yet, but you can click on them to edit.  Use the up and down cursor keys to navigate through the outline.  Use shift along with the cursor keys to <em>shift</em> items around.  Use the control key along with the cursor keys to <em>control</em> visibility of child items.</p>\n<p><em>Update</em>: There're a few more things I didn't mention, as well as a few bug half-fixes.  Hitting return when the editor is on an existing item will insert a new blank item right after it.  Hitting shift-return will append a new child item to the current item.  Tab and shift-tab, as well as shift-right and shift-left, are supposed to indent and outdent items.  Unfortunately, they're not quite working yet and of course they semi-clobber other useful keyboard functions, so I'm still feeling around for a good way to support these.</p>\n<p>The idea is that I want to unobtrusively drop some CSS and JavaScript into an HTML page with one or more <a href=\"http://developers.technorati.com/wiki/XOXO\">XOXO-style outlines</a>, magically turning them into in-browser outline editors.</p>\n<p>But, like I said, there's still lots of work to be done here, and I'm pretty sure I've riddled this thing with circular references that will make your <a href=\"http://jibbering.com/faq/faq_notes/closures.html#clMem\">IE/Win combination leak like crazy</a>.  I just wanted to see if I could make something like this work, though.  And, roughly, it seems to do so in Safari and Firefox.</p>\n<p>The next part of this equation will be coming up soon, I think.  And that is: Okay, now that I've created / edited an outline in my browser--how can I save it?  </p>\n<!--more-->\n\n\n<p>shortname=xoxo_outliner_experiment</p>\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-221084038\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://rasterweb.net/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=db0fab74bcb564ebb09295498b892fb6&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://rasterweb.net/\">Pete Prodoehl</a>\n</div>\n\n\n<p><a href=\"#comment-221084038\" class=\"permalink\"><time datetime=\"2005-07-12T19:22:24\">2005-07-12T19:22:24</time></a></p>\n</div>\n\n\n<div class=\"content\">Damn that is cool!</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084039\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=f1d479db750c7e73e6f77a546e71432c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Charlie Wallace</a>\n</div>\n\n\n<p><a href=\"#comment-221084039\" class=\"permalink\"><time datetime=\"2005-07-12T21:03:36\">2005-07-12T21:03:36</time></a></p>\n</div>\n\n\n<div class=\"content\">Way cool!  Your demo just got mentioned on the TiddlyWikiDev group in Google Groups, under the 'Outlining!' topic.\nIf you're not familiar with TiddlyWiki, you might enjoy a look at www.tiddlywiki.com. It's an all-javascript personal wiki, all in one file.  There's an active community producing variations on the original version.\nAnd I'd lovvvvve to see an adaptation that would use your outliner!!!!\nThere are some interesting issues with trying to combine heirarchical outlines with non-heirarchical wikis, but seems like it would work if kept inside one wiki page...\nAlso, a question - did you implement a way to add new items to the outline?\nTHanks,\nCharlie Wallace</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084040\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://theryanking.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=c846b78a4a4c978fd34ef965320a13b0&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://theryanking.com\">ryan king</a>\n</div>\n\n\n<p><a href=\"#comment-221084040\" class=\"permalink\"><time datetime=\"2005-07-12T21:21:52\">2005-07-12T21:21:52</time></a></p>\n</div>\n\n\n<div class=\"content\">Very cool.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084041\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://dean.edwards.name/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=b33181b8e12bd10dfa373acc8af37cbb&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://dean.edwards.name/\">Dean Edwards</a>\n</div>\n\n\n<p><a href=\"#comment-221084041\" class=\"permalink\"><time datetime=\"2005-07-12T22:15:16\">2005-07-12T22:15:16</time></a></p>\n</div>\n\n\n<div class=\"content\">It depends what you mean by \"save\" it. But I think the way TiddlyWikki save its state is pretty cool.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084042\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=eb7f2a3ba74af37415ab7df101a86c75&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">l.m. orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221084042\" class=\"permalink\"><time datetime=\"2005-07-12T22:26:30\">2005-07-12T22:26:30</time></a></p>\n</div>\n\n\n<div class=\"content\">Dean:  Huh, that's interesting... I vaguely remembered that TiddlyWiki saved changes, but it appears to actually save to the local filesystem.  I didn't know that.\nAs for my stuff, though, I've got a slightly more REST/\"AJAXy\" way in mind.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084043\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=f1d479db750c7e73e6f77a546e71432c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Charlie Wallace</a>\n</div>\n\n\n<p><a href=\"#comment-221084043\" class=\"permalink\"><time datetime=\"2005-07-13T03:22:16\">2005-07-13T03:22:16</time></a></p>\n</div>\n\n\n<div class=\"content\">To answer my own question above, and add another:\nThere are 2 ways to create a new line. Enter creates one at the same level, and shift-enter creates one that's indented.\nThe new question - any plans to allow more than one line of text in an item? \nAnd another: any plans to support \"body\" text for each line?  Or, alternately, if more than one line is entered, the first line could serve as the heading?\nUsability note: I think you'll need to allow items to be shift-arrow dragged from one containing heading to a different one, I can't seem to do this currently.\nNice work!\n-- Charlie</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084044\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://webseitz.fluxent.com/wiki\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8157a5907b244071cda98ba5aa7a9635&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://webseitz.fluxent.com/wiki\">Bill Seitz</a>\n</div>\n\n\n<p><a href=\"#comment-221084044\" class=\"permalink\"><time datetime=\"2005-07-13T11:05:01\">2005-07-13T11:05:01</time></a></p>\n</div>\n\n\n<div class=\"content\">Very excellent.\n(The wrapping of multi-line items isn't ideal.)\nHave you thought about saving in some smart-ascii/wiki format instead of XOXO? Any tags at all seem like overkill for something that could be expressed as a bullet-list... (you could *render* to XOXO at appropriate times, just like DaveW renders from OPML to HTML/RSS...)</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084045\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8a5273f79cfe7579ad46023f93377aa8&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">l.m. orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221084045\" class=\"permalink\"><time datetime=\"2005-07-13T11:16:27\">2005-07-13T11:16:27</time></a></p>\n</div>\n\n\n<div class=\"content\">Bill:  Well, what I was thinking is that the machine components (browser and server) would deal in XML/HTML as much as possible.  XOXO would be the on-disk storage and transport format for outlines.  \nBut, alongside the DHTML/JS editors, I'd like to throw in some filters that speak wiki-text for human convenience in HTML forms.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084046\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8a5273f79cfe7579ad46023f93377aa8&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">l.m. orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221084046\" class=\"permalink\"><time datetime=\"2005-07-13T11:19:54\">2005-07-13T11:19:54</time></a></p>\n</div>\n\n\n<div class=\"content\">Oh, and I guess something that might make XML-on-disk make more sense is that I'd like this thing to do more than just outlines.  I want to include other microformats and HTML semantics,</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084047\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=75e48a7020624657e5da6033590030ee&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Dan G</a>\n</div>\n\n\n<p><a href=\"#comment-221084047\" class=\"permalink\"><time datetime=\"2005-07-13T17:52:49\">2005-07-13T17:52:49</time></a></p>\n</div>\n\n\n<div class=\"content\">Excellent.  This is really nice.\nBTW: If they're interested, you might want to submit this to the Dojo project which, among other things, is trying to build a standard widget set for Javascript.  If there was an outliner as part of that library, I bet you'd see it used in a lot more places...</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084050\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://disqus.com/api/users/avatars/cth.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">cth</a>\n</div>\n\n\n<p><a href=\"#comment-221084050\" class=\"permalink\"><time datetime=\"2005-07-14T18:16:25\">2005-07-14T18:16:25</time></a></p>\n</div>\n\n\n<div class=\"content\">Very cool!!! :)\ni'd started a proof of concept like that a while back ( http://homepage.mac.com/ctholland/thelab/outlines/ ) which Kevin Marks linked into the XOXO wiki: http://developers.technorati.com/wiki/XOXO . mine isn't nearly as feature-rich and objected-oriented as yours.\ncongrats, and keep-up the good work!</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084052\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.connectedtosource.net\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=18e6cc1c6e0cff14fe04507be6e51abf&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.connectedtosource.net\">Aldo CastaÃ±eda</a>\n</div>\n\n\n<p><a href=\"#comment-221084052\" class=\"permalink\"><time datetime=\"2005-07-15T06:22:58\">2005-07-15T06:22:58</time></a></p>\n</div>\n\n\n<div class=\"content\">I want to Dave Winer's demo at Berkman last night and asked him for this exact type of functionality. In my opinion, web editable OPML is key to adoption for \"regular\" users like me.\nFantastic work!</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084053\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://blog.kesor.net\"><img src=\"http://disqus.com/api/users/avatars/kesor.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://blog.kesor.net\">Evgeny Zislis</a>\n</div>\n\n\n<p><a href=\"#comment-221084053\" class=\"permalink\"><time datetime=\"2005-08-23T19:22:35\">2005-08-23T19:22:35</time></a></p>\n</div>\n\n\n<div class=\"content\">I've started working on an AJAX editor for XOXO (aka outliner). It got most of the basic stuff working already, and just needs a small last push to get it going. Anyone wants to help out finishing it and make it public? Drop me an email if you do.\n[evgeny.zislis gmail]</div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": "Testing, testing--is this thing on?  Well, I do have to say that I've recovered rather well from [the \"stroke\"][stroke] last week.  Things have been pretty busy since then, so I haven't had much of a chance to blather any more around these parts.\r\n\r\nHowever, in the spirit of a few [recent][graphs] [experiments][treemaps], I have another demo for you.  Here's the URL of the latest work in progress / proof of concept:\r\n\r\n* [http://www.decafbad.com/2005/07/map-test/tree2.html](http://www.decafbad.com/2005/07/map-test/tree2.html)\r\n\r\nWhat is it, you might ask before clicking a strange URL?  It's an outliner, in Javascript.  Or, rather, a first rough stab at one anyway.  It's got a long way to go, and there are indeed [better options out there already][sprout], but I wanted to try making one myself.\r\n\r\nA quick summary of controls:  No mouse drag of items yet, but you can click on them to edit.  Use the up and down cursor keys to navigate through the outline.  Use shift along with the cursor keys to *shift* items around.  Use the control key along with the cursor keys to *control* visibility of child items.\r\n\r\n*Update*: There're a few more things I didn't mention, as well as a few bug half-fixes.  Hitting return when the editor is on an existing item will insert a new blank item right after it.  Hitting shift-return will append a new child item to the current item.  Tab and shift-tab, as well as shift-right and shift-left, are supposed to indent and outdent items.  Unfortunately, they're not quite working yet and of course they semi-clobber other useful keyboard functions, so I'm still feeling around for a good way to support these.\r\n\r\nThe idea is that I want to unobtrusively drop some CSS and JavaScript into an HTML page with one or more [XOXO-style outlines][xoxo], magically turning them into in-browser outline editors.\r\n\r\nBut, like I said, there's still lots of work to be done here, and I'm pretty sure I've riddled this thing with circular references that will make your [IE/Win combination leak like crazy][leak].  I just wanted to see if I could make something like this work, though.  And, roughly, it seems to do so in Safari and Firefox.\r\n\r\nThe next part of this equation will be coming up soon, I think.  And that is: Okay, now that I've created / edited an outline in my browser--how can I save it?  \r\n\r\n[leak]: http://jibbering.com/faq/faq_notes/closures.html#clMem\r\n[xoxo]: http://developers.technorati.com/wiki/XOXO\r\n[sprout]: http://www.google.com/url?sa=U&start=1&q=http://sproutliner.com/&e=912\r\n[stroke]: http://www.decafbad.com/blog/2005/07/05/exocortex_stroke\r\n[treemaps]: http://www.decafbad.com/blog/2005/07/02/css_treemaps\r\n[graphs]: http://www.decafbad.com/blog/2005/07/02/drag_the_boxes_stretch_the_lines\r\n<!--more-->\r\nshortname=xoxo_outliner_experiment\r\n\r\n<div id=\"comments\" class=\"comments archived-comments\">\r\n            <h3>Archived Comments</h3>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-221084038\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://rasterweb.net/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=db0fab74bcb564ebb09295498b892fb6&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://rasterweb.net/\">Pete Prodoehl</a>\r\n                </div>\r\n                <a href=\"#comment-221084038\" class=\"permalink\"><time datetime=\"2005-07-12T19:22:24\">2005-07-12T19:22:24</time></a>\r\n            </div>\r\n            <div class=\"content\">Damn that is cool!</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084039\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=f1d479db750c7e73e6f77a546e71432c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Charlie Wallace</a>\r\n                </div>\r\n                <a href=\"#comment-221084039\" class=\"permalink\"><time datetime=\"2005-07-12T21:03:36\">2005-07-12T21:03:36</time></a>\r\n            </div>\r\n            <div class=\"content\">Way cool!  Your demo just got mentioned on the TiddlyWikiDev group in Google Groups, under the 'Outlining!' topic.\r\n\r\nIf you're not familiar with TiddlyWiki, you might enjoy a look at www.tiddlywiki.com. It's an all-javascript personal wiki, all in one file.  There's an active community producing variations on the original version.\r\n\r\nAnd I'd lovvvvve to see an adaptation that would use your outliner!!!!\r\n\r\nThere are some interesting issues with trying to combine heirarchical outlines with non-heirarchical wikis, but seems like it would work if kept inside one wiki page...\r\n\r\nAlso, a question - did you implement a way to add new items to the outline?\r\n\r\nTHanks,\r\n  Charlie Wallace</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084040\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://theryanking.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=c846b78a4a4c978fd34ef965320a13b0&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://theryanking.com\">ryan king</a>\r\n                </div>\r\n                <a href=\"#comment-221084040\" class=\"permalink\"><time datetime=\"2005-07-12T21:21:52\">2005-07-12T21:21:52</time></a>\r\n            </div>\r\n            <div class=\"content\">Very cool.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084041\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://dean.edwards.name/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=b33181b8e12bd10dfa373acc8af37cbb&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://dean.edwards.name/\">Dean Edwards</a>\r\n                </div>\r\n                <a href=\"#comment-221084041\" class=\"permalink\"><time datetime=\"2005-07-12T22:15:16\">2005-07-12T22:15:16</time></a>\r\n            </div>\r\n            <div class=\"content\">It depends what you mean by \"save\" it. But I think the way TiddlyWikki save its state is pretty cool.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084042\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=eb7f2a3ba74af37415ab7df101a86c75&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">l.m. orchard</a>\r\n                </div>\r\n                <a href=\"#comment-221084042\" class=\"permalink\"><time datetime=\"2005-07-12T22:26:30\">2005-07-12T22:26:30</time></a>\r\n            </div>\r\n            <div class=\"content\">Dean:  Huh, that's interesting... I vaguely remembered that TiddlyWiki saved changes, but it appears to actually save to the local filesystem.  I didn't know that.\r\n\r\nAs for my stuff, though, I've got a slightly more REST/\"AJAXy\" way in mind.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084043\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=f1d479db750c7e73e6f77a546e71432c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Charlie Wallace</a>\r\n                </div>\r\n                <a href=\"#comment-221084043\" class=\"permalink\"><time datetime=\"2005-07-13T03:22:16\">2005-07-13T03:22:16</time></a>\r\n            </div>\r\n            <div class=\"content\">To answer my own question above, and add another:\r\nThere are 2 ways to create a new line. Enter creates one at the same level, and shift-enter creates one that's indented.\r\n\r\nThe new question - any plans to allow more than one line of text in an item? \r\n\r\nAnd another: any plans to support \"body\" text for each line?  Or, alternately, if more than one line is entered, the first line could serve as the heading?\r\n\r\nUsability note: I think you'll need to allow items to be shift-arrow dragged from one containing heading to a different one, I can't seem to do this currently.\r\n\r\nNice work!\r\n\r\n-- Charlie</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084044\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://webseitz.fluxent.com/wiki\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8157a5907b244071cda98ba5aa7a9635&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://webseitz.fluxent.com/wiki\">Bill Seitz</a>\r\n                </div>\r\n                <a href=\"#comment-221084044\" class=\"permalink\"><time datetime=\"2005-07-13T11:05:01\">2005-07-13T11:05:01</time></a>\r\n            </div>\r\n            <div class=\"content\">Very excellent.\r\n\r\n(The wrapping of multi-line items isn't ideal.)\r\n\r\nHave you thought about saving in some smart-ascii/wiki format instead of XOXO? Any tags at all seem like overkill for something that could be expressed as a bullet-list... (you could *render* to XOXO at appropriate times, just like DaveW renders from OPML to HTML/RSS...)</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084045\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8a5273f79cfe7579ad46023f93377aa8&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">l.m. orchard</a>\r\n                </div>\r\n                <a href=\"#comment-221084045\" class=\"permalink\"><time datetime=\"2005-07-13T11:16:27\">2005-07-13T11:16:27</time></a>\r\n            </div>\r\n            <div class=\"content\">Bill:  Well, what I was thinking is that the machine components (browser and server) would deal in XML/HTML as much as possible.  XOXO would be the on-disk storage and transport format for outlines.  \r\n\r\nBut, alongside the DHTML/JS editors, I'd like to throw in some filters that speak wiki-text for human convenience in HTML forms.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084046\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=8a5273f79cfe7579ad46023f93377aa8&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">l.m. orchard</a>\r\n                </div>\r\n                <a href=\"#comment-221084046\" class=\"permalink\"><time datetime=\"2005-07-13T11:19:54\">2005-07-13T11:19:54</time></a>\r\n            </div>\r\n            <div class=\"content\">Oh, and I guess something that might make XML-on-disk make more sense is that I'd like this thing to do more than just outlines.  I want to include other microformats and HTML semantics,</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084047\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=75e48a7020624657e5da6033590030ee&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Dan G</a>\r\n                </div>\r\n                <a href=\"#comment-221084047\" class=\"permalink\"><time datetime=\"2005-07-13T17:52:49\">2005-07-13T17:52:49</time></a>\r\n            </div>\r\n            <div class=\"content\">Excellent.  This is really nice.\r\n\r\nBTW: If they're interested, you might want to submit this to the Dojo project which, among other things, is trying to build a standard widget set for Javascript.  If there was an outliner as part of that library, I bet you'd see it used in a lot more places...</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084050\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://disqus.com/api/users/avatars/cth.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">cth</a>\r\n                </div>\r\n                <a href=\"#comment-221084050\" class=\"permalink\"><time datetime=\"2005-07-14T18:16:25\">2005-07-14T18:16:25</time></a>\r\n            </div>\r\n            <div class=\"content\">Very cool!!! :)\r\n\r\ni'd started a proof of concept like that a while back ( http://homepage.mac.com/ctholland/thelab/outlines/ ) which Kevin Marks linked into the XOXO wiki: http://developers.technorati.com/wiki/XOXO . mine isn't nearly as feature-rich and objected-oriented as yours.\r\n\r\ncongrats, and keep-up the good work!</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084052\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.connectedtosource.net\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=18e6cc1c6e0cff14fe04507be6e51abf&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.connectedtosource.net\">Aldo CastaÃ±eda</a>\r\n                </div>\r\n                <a href=\"#comment-221084052\" class=\"permalink\"><time datetime=\"2005-07-15T06:22:58\">2005-07-15T06:22:58</time></a>\r\n            </div>\r\n            <div class=\"content\">I want to Dave Winer's demo at Berkman last night and asked him for this exact type of functionality. In my opinion, web editable OPML is key to adoption for \"regular\" users like me.\r\n\r\nFantastic work!</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084053\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://blog.kesor.net\"><img src=\"http://disqus.com/api/users/avatars/kesor.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://blog.kesor.net\">Evgeny Zislis</a>\r\n                </div>\r\n                <a href=\"#comment-221084053\" class=\"permalink\"><time datetime=\"2005-08-23T19:22:35\">2005-08-23T19:22:35</time></a>\r\n            </div>\r\n            <div class=\"content\">I've started working on an AJAX editor for XOXO (aka outliner). It got most of the basic stuff working already, and just needs a small last push to get it going. Anyone wants to help out finishing it and make it public? Drop me an email if you do.\r\n[evgeny.zislis gmail]</div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </div>\r\n    ",
  "parentPath": "./content/posts/archives/2005",
  "path": "2005/07/12/xoxo-outliner-experiment",
  "summary": "Testing, testing--is this thing on?  Well, I do have to say that I've recovered rather well from the \"stroke\" last week.  Things have been pretty busy since then, so I haven't had much of a chance to blather any more around these parts.\nHowever, in the spirit of a few recent experiments, I have another demo for you.  Here's the URL of the latest work in progress / proof of concept:\n\nhttp://www.decafbad.com/2005/07/map-test/tree2.html\n\nWhat is it, you might ask before clicking a strange URL?  It's an outliner, in Javascript.  Or, rather, a first rough stab at one anyway.  It's got a long way to go, and there are indeed better options out there already, but I wanted to try making one myself.\nA quick summary of controls:  No mouse drag of items yet, but you can click on them to edit.  Use the up and down cursor keys to navigate through the outline.  Use shift along with the cursor keys to shift items around.  Use the control key along with the cursor keys to control visibility of child items.\nUpdate: There're a few more things I didn't mention, as well as a few bug half-fixes.  Hitting return when the editor is on an existing item will insert a new blank item right after it.  Hitting shift-return will append a new child item to the current item.  Tab and shift-tab, as well as shift-right and shift-left, are supposed to indent and outdent items.  Unfortunately, they're not quite working yet and of course they semi-clobber other useful keyboard functions, so I'm still feeling around for a good way to support these.\nThe idea is that I want to unobtrusively drop some CSS and JavaScript into an HTML page with one or more XOXO-style outlines, magically turning them into in-browser outline editors.\nBut, like I said, there's still lots of work to be done here, and I'm pretty sure I've riddled this thing with circular references that will make your IE/Win combination leak like crazy.  I just wanted to see if I could make something like this work, though.  And, roughly, it seems to do so in Safari and Firefox.\nThe next part of this equation will be coming up soon, I think.  And that is: Okay, now that I've created / edited an outline in my browser--how can I save it?",
  "needsBuild": true,
  "prevPostPath": "2005/07/05/exocortex-stroke",
  "prevPostTitle": "Suffered a Stroke in my Exocortex",
  "nextPostPath": "2005/07/12/an-experiment-in-rest-and-xml",
  "nextPostTitle": "An Experiment in REST and XML"
}