{"id":538,"date":"2005-06-20T23:26:00","date_gmt":"2005-06-20T23:26:00","guid":{"rendered":"http:\/\/sdi.thoughtstorms.info\/?p=538"},"modified":"2005-06-20T23:26:00","modified_gmt":"2005-06-20T23:26:00","slug":"538","status":"publish","type":"post","link":"https:\/\/sdi.thoughtstorms.info\/?p=538","title":{"rendered":""},"content":{"rendered":"<p>Bill Seitz <a href=\"http:\/\/webseitz.fluxent.com\/wiki\/z2005-06-17-PhilJonesWikiOutlining\">agrees<\/a> about the importance of smart-ascii as fundamental. He says the  <em>trick is finding a &#8220;style&#8221; of plaintext editing that can be rendered to a format that can then provide an outliner-ish view (collapsing hierarchies, etc.) (I&#8217;m pretty sure that can still just be HTML v4). And then Transclusion comes next&#8230; or an [Outlin Ing] editor that gives you more capability in restructuring the page, but still saves in that Smart Ascii format so you can still get work done in a plain browser window&#8230;<\/em><\/p>\n<p>I think I like all of this. Today I had a series of small brain-quakes which might have reconfigured the geography of SdiDesk dramatically. <\/p>\n<p>Here&#8217;s a list of random thoughts. <\/p>\n<ul><\/p>\n<li>Yep, pages won&#8217;t change from being smart-ascii underneath.<\/li>\n<p><\/p>\n<li>But maybe <em>internally<\/em> I can represent them as a more tree-shaped structure.<\/li>\n<li><\/li>\n<li>A page can be a sequence of PageSections. Each of which can be either a paragraph, or a table or a bullet-list (sub-tree)<\/li>\n<p><\/p>\n<li>In fact, in the last refactoring, I experimented with the <a href=\"http:\/\/www.exciton.cs.rice.edu\/JavaResources\/DesignPatterns\/DecoratorPattern.htm\">decorator pattern<\/a>. Networks are actually decorators for ordinary pages. They implement the &#8220;Page&#8221; interface, have an inner component which is a MemoryResidentPage, but offer extra functionality. I&#8217;ve been thinking of doing the same for Tables. <\/li>\n<p><\/p>\n<li>Now I am wondering if I can define a standard interface called &#8220;PageSection&#8221; or something : make each object : Page, Network, Table, BulletList etc. implement it. And use it as the basic component of a tree-shaped document.<\/li>\n<p><\/p>\n<li>At the moment I have some rather confusingly (clunkily) named function which serialize Tables and Networks into Smart Ascii and parse them back again. (I was calling these serializations the <em>Pretty Persist<\/em>. And so there were functions like SpitAsPrettyPersist etc.)  <\/li>\n<p><\/p>\n<li>But the cleaner, more logical thing would be that <em>raw<\/em> should be a public, string property of <em>any<\/em> PageSection. And setting it would automatically update the object, and getting it would also get the most up-to-date version. <\/li>\n<p><\/p>\n<li>Same could be true of Pages themselves, of course. I would then have a common interface convention for &#8230;<\/li>\n<p><\/ul>\n<p>KLUUUUNNKKKK!!!!<\/p>\n<p>This is where it gets awkward. I&#8217;d like a fully generic, nestable, recursive structure. That&#8217;s easy to do internally, but I&#8217;m quite a long way from that with my particular markup implementation. Can you do fully recursive in Smart Ascii? How? And how do you stop that becoming as awkward as XML?<\/p>\n<p>I guess that&#8217;s what Bill means by &#8220;<em>a &#8220;style&#8221; of plaintext &#8230; that can be rendered to a format that can then provide an outliner-ish view<\/em>&#8220;<\/p>\n<p>Hmmm. That was fairly stream of consciousness. I hope it made sense. It helped me anyway. And comments on this, welcome as usual. <\/p>\n<p>ps : Transclusion I already have, of course. (Or at least, including the body of one document in another.) If I could only solve how to embed a network in an ordinary HTML page, then I could make that general as well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bill Seitz agrees about the importance of smart-ascii as fundamental. He says the trick is finding a &#8220;style&#8221; of plaintext editing that can be rendered to a format that can then provide an outliner-ish view (collapsing hierarchies, etc.) (I&#8217;m pretty sure that can still just be HTML v4). And then Transclusion comes next&#8230; or an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[473],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-uncategorized"],"_links":{"self":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=538"}],"version-history":[{"count":0,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=\/wp\/v2\/posts\/538\/revisions"}],"wp:attachment":[{"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdi.thoughtstorms.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}