{"id":121,"date":"2007-10-04T12:29:00","date_gmt":"2007-10-04T20:29:00","guid":{"rendered":"http:\/\/www.robinstewart.com\/blog\/?p=121"},"modified":"2007-10-04T12:29:00","modified_gmt":"2007-10-04T20:29:00","slug":"features-and-wikis","status":"publish","type":"post","link":"https:\/\/www.robinstewart.com\/blog\/2007\/10\/features-and-wikis\/","title":{"rendered":"Features and Wikis"},"content":{"rendered":"<p>It&#8217;s much easier to add new features to programming languages and command-line interfaces than it is to add new features to graphical user interfaces.<\/p>\n<p>I think that is profound, but I&#8217;ll have to muse it over to be sure.<\/p>\n<p>For example, to add a new editing command (say, superscript) to emacs, just choose a name or keyboard shortcut for the command.  But to add it to a graphical text editor, you need a new button or menu item.  It has to be worked into the layout of the graphical interface.  Other interface components might have to get moved or kicked out.  If you&#8217;re Microsoft, you just add it onto the end of a quickly growing toolbar or menu or preference window.<\/p>\n<p>Maybe this helps to explain why wikis are still based on wiki-text rather than WYSIWYG editing.  If you want to add a new feature to a wiki (say, superscript), just define some new language tag for the wiki-text, e.g.: &#8220;<sup><\/sup>&#8220;.  But if you want to add that to a WYSIWYG wiki (let&#8217;s call it a wizziwiki), you have to <span style=\"font-style: italic;\">design<\/span>.  Put the button somewhere.  Decide which features are most important.  This is hard!  And it is especially hard for open source communities where a vocal minority will get upset at the removal of a feature that they particularly like (or programmed).  That&#8217;s probably part of why brand new open source projects have to continually get started.<\/p>\n<p>Here&#8217;s one solution.  A wiki which lets you do the most basic editing (bold, italic, lists, links) as WYSIWYG, but has an &#8220;advanced editing&#8221; mode which is text-based and allows all those other features.  The problem with adding this to current wikis lies in getting a &#8220;handle&#8221; on the text entry point; that is, mapping back from the graphics into the source.  Right now it&#8217;s a one-way street: wiki-text to html\/DOM.  It&#8217;s hard to go in the other direction.  (The same is true for <span style=\"font-style: italic;\">LaTex<\/span>.)  So maybe we need a completely html-based wiki.  Is someone working on this?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s much easier to add new features to programming languages and command-line interfaces than it is to add new features to graphical user interfaces. I think that is profound, but I&#8217;ll have to muse it over to be sure. For example, to add a new editing command (say, superscript) to emacs, just choose a name &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.robinstewart.com\/blog\/2007\/10\/features-and-wikis\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Features and Wikis&#8221;<\/span><\/a><\/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":[],"_links":{"self":[{"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/posts\/121"}],"collection":[{"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":0,"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/posts\/121\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/media?parent=121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/categories?post=121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robinstewart.com\/blog\/wp-json\/wp\/v2\/tags?post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}