User blog comment:Dopp/Communicate Easily with Message Wall/@comment-13301-20110928201806

An alternative to this new system with nearly the same functionality and compatible with the existing one, so users could choose what system to use

I know that with the current implementation, it will be impossible to enable it only for oasis and not for Monobook, because each message will be stored in different pages, or something like this.

There's a solution for that: Change the implementation mechanics so it's 100% compatible with the actual MediaWiki page system and users may use talk pages with this new system or by editing the talk page as they're doing right now. Also, it would make possible to make old conversations compatible with this new system.

For doing this you can just see how the actual talk page system works:
 * New message threads start with a heading.
 * Additional messages (not on all wikis) usually are indented using one or more colons.

So, with a bit of server-side parsing one can make a current talk page look like this new system. This can actually be done with JavaScript, with the help of jQuery.

Existing conversations:

A level 2 heading is the start of a new conversation. The heading is the title, and the text between headings is the body. Ignore headings of other levels, or make them a new message, still child of the previous one.

If a definition list is encountered (produced by one or more colons), that's a reply to the previous message. If a definition list with a different level of indentation is encountered, it's a new separate message. Like the actual blog comment system, all sub-messages are childs of the main one.

Once the messages are tailored, it's easy to wrap them inside the necessary  s to add the extra mark-up.

New conversations:

With all the changes to the display of the conversations, you can put a reply link at the end of the last message. That will open a textarea like it's doing now. When you save, the content is appended at the end of the previous message with additional colons (":") at the start of each line, one more than the previous message.

You could also make existing messages editable, just removing the initial colons at the start of each line when loading the existing text to the user. When saving, you put the removed colons back at the start of each line (maybe removing existing ones if the user entered them).

It may be a problem if a user makes use of the   tags, since it may be used as a reply, and would contain any arbitrary text, including colons. The parser should consider the entire   section part of the previous message.

To post new messages (new section) it's just doing the same as it's being done now with a new section edit: the message title and the message body.

When posting new messages, the new system could append automatically the standard sign code ~ at the end of the message, so the sign is not forgotten. When editing an existing message don't add the signature automatically since it should already been posted. A user preference option may be done to allow users to prevent the automatic signature, if they want to place a custom one.

Limitations

Of course, this system has limitations:
 * People that don't use colons to indent replies to existing conversations would make the entire message as a single one instead of being split. That shouldn't be a problem, though, since it would be perfectly editable. People that don't use this system may change their habit so they use colons properly to reply to messages. Once people use the new system, that shouldn't be a problem.
 * A single message may be split into two or more parts if the indentation isn't inconsistent (blame the user). The parser should consider empty lines between messages of the same level as part of the same message. Once people use the new system, that shouldn't be a problem.
 * The possibilities of customizing messages based on the user who posted them is limited, you may not put an avatar because you cannot identify the original poster.

Advantages


 * The system is 100% compatible with the existing one. Monobook users don't need to be affected. This also assures Wikia is compatible with the current MediaWiki system, which means less problems when you need to upgrade to a new version.
 * You have the current benefits from a wiki page: you can edit the entire page in any way you want. Archive talk pages, edit messages from yours and others, delete comments, etc. And also actions with the entire page: Renaming the page, deleting, protecting, etc.
 * You have a consistent history of every change with diffs on the page. The current problem with blog comments is that you cannot see what new comments have been posted since the last time you visited the page, or since a defined date. Now you can, as always, using the history and seeing a diff with any arbitrary version.
 * Users are happy because they can use whatever system they want. Wikia is happy because they have the new system with almost the same functionality. N00bs are happy because they have the same functionality as the Wikia system has designed.

Any comments or concerns about this alternative? I honestly think my system is not so difficult to implement, they could use the same infrastructure to add and edit comments, just change the source of the comments. The most difficult part is to tailor the messages, but that's a simple parser issue.