Wiki source for RyeBread

Show raw source

===== RyeBread =====


First off, thanks to the team for creating such an excellent wiki. I spent a lot of time sampling different programs and I chose this one because it seemed to be a great all-around tool plus easily extensible... which leads me to my next point. :)

After pushing for months, I finally convinced my office to use a wiki for design and documentation collaboration. After 24 hours of setting it up, 50+ pages were created by various members of the team. Not bad, if I do say so myself. Nevertheless, already I have gotten feedback on some things that they wish could be implemented in order to make their lives easier and to help increase the enthusiasm across the office.

I haven't really looked too deep yet into these issues. I would like to work on these and contribute code but in the meantime, I just want to jot the notes down here and make them public while I am at work doing paid labor. :) I'll formalize them into the SuggestionBox or plugin requests later.


====System Setup:====

- Wikka Wakka Wiki (with extensions)
- Uniform Server
~~- Apache 2.0.54
~~- PHP 4.3.11
~~- MySQL 4.1.12a
- Windows XP SP2

====Open Issues:====
~& Rye, I hope you won't mind if I add inline comments to your suggestions -- DarTar

- **Smart Plural Parsing** --- Both designers and engineers would like to be able to have the wikiwords "" "UserWidget" "" and "" "UserWidgets" "" refer to the same page when discussed without needing to add extra syntax. It breaks the flow of typing if they have to mentally stop to add "" "[[ | ]]" "" everytime they cognitively process a plural noun. ---
~& This feature, already discussed somewhere, only make sense for languages like English, which have a somewhat regular rule ("add an //-s// suffix") for plural formation. This is obviously not the case for most natural languages: French, German and Italian, just to give some examples, have a lot of different (and morphologically unpredictable) rules for plural formation. But even in [[ | English]], how would you handle irregular cases, like //witch,witches//, //wolf,wolves// and the like? These are the reasons why we were(and still are) so reluctant to implement this feature.

Thank you for pointing out my cultural insensitivity. :-) You're right, the issue of plurals is language specific, however, why not implement aliases instead?
{{table columns="2" cellpadding="1" cells="PAGE NAME;ALIASES;OldWitch;OldWitches,EvilWitch,EvilWitches;GreyWolf;GreyWolves,GrayWolf,GrayWolves,DarkWolf,DarkWolves" }}
Anytime one of the WikiWords in the right column is used, it points to the page specified by the WikiWord in the left column? ---

- ** Namespaces** --- I almost went with [[ | FitNesse]] because of this feature (but didn't like their interface or markup). Rather than have separate pages like "" "WidgetDesign1_0" "", "" "WidgetDesign1_5" "" and "" "WidgetDesign2_0" "" we could have "" "ver1_0/WidgetDesign" "", "" "ver1_5/WidgetDesign" "" and "" "ver2_0/WidgetDesign". A page that linked to "" "WidgetDesign" "" would actually link to the page with the same namespace as itself. --- In other words, this wiki is great because it tracks //revisions// like CVS but doesn't provide the ability to //branch// a document into a different //version//.
~& Yes namespaces is a nice addition, although as far as I know most namespaces use a reverse order, e.g. ##Mainpage/Subpage## etc. - see for instance what [[ | Wacko]] does.

I'm sorry, the order LargeDomain/SmallDomain/Page is what I was trying to express. Wacko is doing exactly what I want.

It seems like this should be pretty easy to implement in Wikka. You keep the page table the same except add a column that stores a namespace string. Then you set up Mod_Rewrite to break up the url into three parts:
{{table columns="3" cellpadding="1" cells="SERVER;NAMESPACE;PAGE;http://localhost;/cluster/subdomain1/subsubdomain2;/WikiWord" }}
You use regexp to get the domain and the page and whatever is left becomes the namespace string. Then you query for the page that has that name except also has that specific namespace string.

The only problem with this is that I don't know what current functionality this would break i.e. Handlers. ---

- **Wikiword Override Rule Sets** --- The ability for an admin to provide say a simple text file that, whenever Wikka parses a Wikiword, it will check the list to see if it should substitute a different link rather issue the default behavior.
~& Interesting, can you give an example of possible use?

I'm using Wikka in the office primarily as a design doc system. However, since we develop software, often times we need to refer to classes of code we write in our design docs. Right now, we are using Doxygen for our CPlusPlus code. Now say for example we have the following CPlusPlus classes:


As you can see, the moment I type those words, Wikka turns them into WikiWords and tries to reference them as pages // from within the wiki.// What I would like to do is specify a list of //reserved// WikiWords into Wikka which means that whenever that WikiWord is found, it won't build a link to a page within the Wiki. It may instead link to another domain, specifically, the url of the Doxygen page for the documenation for that class. I want to avoid having to use the syntax for building outside links or InterWiki links because //I don't want that specific page to exist in Wikka//. I want to override the default behavior of some WikiWords to point to something else. Does that make sense? ---

- ** Mass Page Import ** --- The ability to import or mass create/edit pages into the wiki without actually being inside. For example, import pages generated from Doxygen during our nightly build process. (I assume this is probably just a php/mysql script on the wikka database.) Or, if easier, just use a Wikiword Override Rule Set to force certain doc links to point to a different web.
~& Ideas for mass page importing are welcome, although I think what most users would like to see is an import feature, similar to [[ | HTML2Wiki]]
- ** Visio Support? ** --- I haven't played around with FreeMind very deeply, but immediately engineers asked me how they could import Visio diagrams and include links to them in the pages.
~& See ShowVisioAction (shown in my page at NickDamoulakis)
- ** Forced Template Usage ** --- The ability to force users that want to create new pages to use a template. Also, once editing a templated page, users shouldn't be able to directly change the templated elements contained within but can use, say, actions, to fill in some content. Example: can't reposition or reformat the page title header but can use an action to specify what should be rendered as the page title header.
~& This would be a highly appreciated feature, and it has already been suggested by many users in the mailing list. I think Wikka would benefit from forcing templates on new page creations in many cases (userpages, documentation pages, development pages etc.).
~& Dario, would Smarty be any good for this? NickDamoulakis

I actually have an idea for this but I want to finish my other extension so that I don't have too many open issues. I don't think there is need for an external template system, Nick, as after all, Wikka is basically rendering every page according to certain rules. We would just need to create a subset of that. ---

- ** Note Recollection ** --- If I add a chunk of content to a page, and record a little note about it, store it, and then within my little window of opportunity I reedit to fix a typo, the same note should appear as a default.
~& I don't get this
~~&I have a "post it note" feature that allows a user to write an annotation for/on each page using a handler link placed in the header.php (so it appears on the top line). I can post the code for this if you want. You have to add a table to the database as well. And there's an ancillary action that allows you to see a list of all of your annotations. Let me know. --GmBowen

You know how when you are editing a page, at the bottom, it asks you to "Please add a note on your edit."? Say I spend 10 minutes writing up a major section to a page, when I am finished, I add the note "added Widget X to Documentation" and store the page. 30 seconds later, because I was dumb and didn't preview, I notice a typo and re-edit the page in order to fix it. When I look at the bottom, the "Please add a note on your edit" box is blank. If I just hit the submit button, then the page gets stored and when I go to RecentChanges, the original edit note is gone. This should have a memory feature so I don't have to rewrite the note "added Widget X to Documentation" just because I needed to fix a typo 30 seconds later. Does that make sense? ---

- ** Feature Log ** --- If the wiki admin adds a plugin, the a description of the system change as well as a timestamp will show up for all users to be informed that some new functionality has been implemented. Something in the style of the RecentChanges page. I could do this manually, but I am trying to imagine if there is something that could be done to make it feel more integrated with the wiki itself.
~& This could go together with an interface allowing admins to enable/disable specific plugins. DennyShimkoski has posted some interesting [[InstallableActions | code]] in this sense, I'd love to see further development on this.
- ** Email Notification of Comments ** --- See my thoughts on the subject: [[RyeBreadDraftsEventNotification | Event Notification System Draft]]
- ** Revision-in-progress ** --- Similiar to "recently edited social awareness functionality", a little icon that would appear on a page informing the user that someone has opened it up for editing in the past //x// minutes. (This seems really easy to do.)

====Annoyances To-do:====
- The WikiEdit toolbar is not rendering appropriately in the Opera browser.
- How do I link to a specific category page without having the source page belong to that category?
- When I edit a page and try to add another bullet to an existing bulleted list and hit enter, the page editing box shifts back up and I lose my cursor position.


Key: **{{color c="blue" text="Blue"}}** indicates extensions deployed, **{{color c="red" text="Red"}}** indicates extensions I want to use but with different behavior, **{{color c="green" text="Green"}}** indicates extensions I've created.

- {{color c="blue" text="WikiBreadcrumb"}}
- {{color c="blue" text="Recently edited social awareness functionality"}}

- {{color c="red" text="AcronymFormatter"}} --- Needs its list definable through a wiki page rather than hard-coded.

Valid XHTML :: Valid CSS: :: Powered by WikkaWiki