[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

samizdat wiki stuff vs mediawiki

From: boud
Subject: samizdat wiki stuff vs mediawiki
Date: Mon, 16 Oct 2006 03:56:16 +0200 (CEST)

hi samizdat-devel,

This is just elaborating on my comment on the samizdat summary on the
wiki of the samizdat wiki function being not yet as good as the mediawiki

i see three elements:

(1) add html split by "\n"

 since i experimented mostly with html formatted articles, i didn't
realise that there was a differences in doing diffs depending on the format.
The problem with the present version of template.rb is, as is commented
as: "# todo: html diff", that this has not been done yet.

My feeling is that dividing the source text by "\n" is much better than
not dividing it up at all. It's true that this can force some line breaks
in the rendered text which are not otherwise present. But is this a problem?
Someone looking at differences is most likely someone who has or may or will
edit the text, so s/he is going to see the structure of the source anyway.

i can imagine that there could be reasons to do something more intelligent,
but i think that until we think of that something more intelligent, we should include 'text/html' for the "\n" split. i've put a formal patch
below :P.

(2) radio buttons in order to compare arbitrary versions.

In the present version, anyone who is a little bit techie will notice the id numbers of the articles and realise that s/he can simply replace
arbitrary id numbers into XX and YY in the URL:   old=XX&new=YY.

However, the numbering is slightly counterintuitive (it took me a
minute or so to realise why it is how it is) - since the most recent
version of the article retains the same id number after editing - only
old versions get new numbers. While this makes sense for general
management of articles and having stable URIs, it is nevertheless
counterintuitive for the newest version of an article to have the
oldest id number.

i'm not suggesting to change this numbering method, since having to type
numbers in is already forcing the user to be more techie than s/he would
like to be. Let's use graphics whenever that's possible and easy.

My ideal would be to have radio buttons like on mediawiki, e.g.:

Try clicking on the radio buttons for selecting versions and you'll see
how intuitive it is:
- only buttons which are valid either as "older" or "newer" are visible
- the two clicked versions are subtly highlighted
- "compare selected versions" then uses the id numbers without the user
  having to type anything

From my wikipedia experience, this function is quite important in order
for people to really sort out the history of a page - e.g. work out who
is vandalising a page or who made some particular change among the last
50 changes (using successive division by two).

(3) revert option - or at least "view source"

As long as a message is editable, there's a chance that it will be vandalised and that people should be able to revert to an old version
(but they also should be warned of the danger - as is the case on the
present version of mediawiki used on the wikipedia). Meaning you click
on the old version, click on edit, and then you can edit as normal but
you have a very obvious, red colour etc, warning.

A minimum should be that the same type of user who can edit can at
least view the source (in fact, any anonymous user should probably be
authorised to view the source), so that s/he can revert manually with
a copy/paste like on the Cairo version of twiki (twiki 3).

IMHO revert should probably be enabled by default, but maybe a config
option could be added in case admins want to turn it off.

So these are the three things i thought of which are good in mediawiki and not quite implemented in samizdat_20060924 wiki. i've only
done a patch for one of them.


(1) wiki patch for html diffs

--- /usr/lib/ruby/1.8/samizdat/engine/template.rb_20060924_deb  2006-09-24 
15:59:12.000000000 +0200
+++ /usr/lib/ruby/1.8/samizdat/engine/template.rb       2006-10-16 
03:02:52.107878256 +0200
@@ -608,7 +608,7 @@
       case msg[:format]
       when nil
         msg[:content].split("\n\n").collect {|s| s << "\n\n" }
-      when 'text/plain', 'text/textile'
+      when 'text/plain', 'text/textile', 'text/html'
         msg[:content].split("\n").collect {|s| s << "\n" }
         [msg[:content]]   # todo: html diff

reply via email to

[Prev in Thread] Current Thread [Next in Thread]