Wiki module maintainership

Events happening in the community are now at Drupal community events on www.drupal.org.
add1sun's picture

Hey there all,

I have been doing a bit of research about setting up wiki sites. The two big "central" modules for wikis are wikitools (by rotzi) and liquid wiki (by sorenp.) Neither module is being actively maintained (no commits since March.) I've spoken to Soren and he said he doesn't have time to maintain Liquid Wiki anymore and it would be better if someone in the community took it over. I never heard back from Julian but through the grapevine I heard that theoretically he had a project which would bring him back to work on wikitools, at least for a while, but probably not permanently (if at all) is my guess.

I think that wiki functionality is something that a lot of people in the community are interested in and it behooves us to have a regularly maintained module/suite of modules that "gets it done." I'd like to proposed that we 1) decide on one wiki module to support and move forward with, 2) deprecate the other, 3) get at least two people who are willing to be co-maintainers and keep the module alive and healthy. The upgrade to 6 will be coming soon and having patches sit in the queue for 3 months waiting for an inactive maintainer to review and commit will be nasty. There are also a number of other related modules and we should check the health of those as well and work as a community to make sure they don't go by the wayside.

So basically this post is just to start of a discussion about the health of wiki modules and future maintenance to see what others think, determine the best course of action for the community and see who is interested in stepping forward.

I'm also posting a link to this to both modules' issue queues.

Comments

smaller pieces instead of monolithic modules

gábor hojtsy's picture

I tried to look into liquid wiki, but there was no feature list I could find. So maybe I am a bit off, but I'd rather see a good wiki "package" (possibly install profile, but at least modules tacked together) then a monolithic wiki module. I presented a 5 minute wiki demo at Drupal Conference Hungary back in October with the setup used here on groups.drupal.org (a bit tweaked and shortened of course). This includes:

  • use markdown (with smartypants) module for input filtering
  • freelinking module for wiki style links
  • diff module for diffing revisions
  • filter by node type module for wiki filtering exclusively for wiki types

Setup:

  • enable all the above modules
  • add an input format with markdown, freelinking and newline filters, name it Wiki format
  • add a content type, name it wiki page
  • set the wiki format to be the sole format usable on the wiki page with filterbynodetype module

Icing:

  • pathauto for nice links, can have special wiki links as we have its content type setup

Admittedly this is a very simple wiki, but it works for groups.drupal.org. Of course some people would need permissions, discussion pages and so on. But these are possible to get from other modules or are good targets for smaller enhancement modules.

There already is a wiki installation profile

cwgordon7's picture

There already is a wiki installation profile. What features do you want to see added to it?

not too friendly

gábor hojtsy's picture

I read through the install profile readme (http://cvs.drupal.org/viewvc.py/drupal/contributions/profiles/drupal_wik...) and noticed that it requires patching of one of the modules, which is not exactly nice. Otherwise it does not look bad (although I imagine the cvs command would not work for most people with FTP access to their hosts, so a filter without the PEAR requirement would work better with the masses - or an alternate download method for the PEAR stuff at least).

Also there is this floating idea around the community for some time now that install profiles only solve your problem if you want to build specific sites. If you'd like to add a wiki to a successful community forum for example, you still need to go through your hoops. So that's where monolithic modules would be good, although we hate them because of them being so unmaintainable and ugly. That's where packages would come into the picture, but such concepts (to be built from independent modules) are not workable yet. So for now, better documentation of how one builds these pieces together (which requires a list of requirements up front) seems to be a good idea.

Interesting timing

cwgordon7's picture

As I mentioned in this issue, I am interested in actively maintaining/co-maintaining the wikitools module. I think that wiki functionality is something that many people want for their Drupal-based sites, and adding more wiki-like features would greatly expand the power of Drupal.

As for getting two people to work on it/actively maintain it, I'd be perfectly happy to co-maintain it with anyone else who is willing to help; however, at the moment, the issue queue is not too long to deal with, nor are the features of the module too extensive: I think it would be possible for me to maintain it by myself.

So, I'm asking you, the Drupal community... what features do you want to see added to the wikitools module? There are some basic bug fixes that need to be dealt with, but beyond that, does anyone have any expansion ideas? Where should this module (wikitools) be going?

Thanks,
cwgordon7

This is interesting timing

bonobo's picture

I've been wondering what direction to go wrt wiki functionality and DrupalEd -- I've actually been contemplating dropping it in favor of a focused mediawiki integration.

The two biggest needs I see:

  1. Theme comments as a discussion page (ie, like with Mediawiki)
  2. An error message presented to users when they are attempting a simultaneous edit (as a first step); with a method of handling simultaneous edits as an eventual goal.

Thanks for stepping up and asking about this -- really, the wiki functionality is close, and if I had to prioritize the two items above I'd say simultaneous editing is more needed than the discussion page (as that could also be handled via nodereferences/etc).

BTW, I'm getting wiki functionality from wikitools, diff, and freelinking.

Cheers,

Bill


FunnyMonkey
Tools for Teachers

Any progress on simultaneous editing?

Shai's picture

Hi Bill or others,

Any movement on a solution for simultaneous editing -- or at least an error message on edit (as opposed to on submit) if someone is trying to edit a node that is currently being edited?

Thanks,

Shai

Shai Gluskin
Content2zero

hi

rötzi's picture

hi everyone

I am actually planning on resuming my work in the next time (i.e. the next month). My studies keep me quite busy but I planned to update the modules to the new drupal version and start bugfixing. I would be happy to have someone co-maintaining my modules (wikitools / pearwiki_filter), so I guess I have to talk to cwgordon7 for that.

Sorry that I was so quiet lately, but I hope we can continue the effort to integrate wiki functionality in drupal.

Julian

I'd be happy to co-maintain

cwgordon7's picture

I'd be happy to co-maintain the wikitools module with you. I don't know much about the pearwiki_filter module, haven't really used it, but I'll look into it.

-cwgordon7

good to hear from you!

bonobo's picture

Hello, Julian,

Glad to hear you chime in on this thread -- your work brought us to this point, and I'm glad to hear you will be getting back into the code --

And no need to apologize for being quiet on this -- we all have things to do, and as Moshe points out, the work you have done gets us pretty far along -- with you moving this forward, and working with co-maintainers, I'm looking forward to seeing what develops.

Cheers,

Bill


FunnyMonkey
Tools for Teachers

I found a drupal "talk"

mfb's picture

I found a drupal "talk" (moving comments to a separate tab) module available for download on a third-party site (not drupal.org), and hacked it a bit to make links to comments work better. e.g. http://crocodyl.com/ http://hackmeet.org/node/6/talk Is anyone maintaining this module or something like it on drupal.org? (if not I'd contribute it)

Wow!

cwgordon7's picture

Wow! This sounds great! I've never seen anything like this contributed on drupal.org: is it under the correct license to be posted there? If it is, I look forward to using it! Thank you so much!

-cwgordon7

I believe it's this module,

mfb's picture

I believe it's this module, with a couple tweaks: http://cvs.drupal.org/viewvc.py/drupal/contributions/sandbox/toemaz/talk/

talk module

toemaz's picture

Feel free to check it out and make an official release of it.

One outstanding issue with this module: http://groups.drupal.org/node/2931#comment-8839 Thx to the rewrite patch this issue should be resolved but this module still needs to be adjusted for it.

Organization

cwgordon7's picture

The problem that I think people are having (correct me if I'm wrong) is that all of the modules used to create a wiki-like system are scattered across Drupal in an uncoordinated, difficult-to-find manner. There should be a massive reorganization of these modules. Here is a hierarchical structure of how the wiki system should be (as I view it):

Entire Drupal Wiki Functionality

  • Wiki tools
    • Basic wiki framework
      • Display a link to create content on page not found
      • Automatic redirect to moved pages
      • Unique title enforcement
      • Search when title typed in is not found
      • Protection from deletion and moving
      • Treating certain characters in titles as spaces
    • Wiki blocks
      • Mediawiki style search box with a "go" button
      • Mediawiki style "toolbox" for each wiki node
    • Wiki revisions
      • Force revisions for those without "administer nodes" permissions (without having to edit the cck fields for a node type).
      • "View changes" (diff module)
  • Wiki filters
    • Basic wiki filters
      • Configurable wiki filters, choosing from several standards
    • Mediawiki style filters
      • Basic mediawiki syntax
      • "Category" links link to taxonomy pages
      • Integration with image modules
  • Wiki display
    • Basic wiki display
      • Table of Contents w/ clickable links
      • "Edit" links next to each "section" which, when clicked on, bring the user to a page to edit only that section
    • Wikimedia style talk page
      • Comments on separate page
      • Link to "talk page" as a tab

How should we divide all this up into modules, packages of modules, installation profiles, etc.?

toughen up

moshe weitzman's picture

it isn't ideal, but this is not rocket science either. one great documentation page or video can pretty much solve the problem of not knowing which modules to use and how to configure them. wikitools already has a fine demo site, and some nice docs. we are not starting from scratch.

wikitools is the way forward, friends. glad to have julian working on it again.

where is the wikitools doc and site?

misterphil's picture

I've been trying to access the wikitools site for ages - the demo site has generated sql errors for months now, the demo site is down for maintenance since before summer and the screenshots are generating sql errors too ...

I'm using drupaled and what looks like a standard implementation of wikitools - What I'd like to be able to do is create a wiki that is hierarchical - at the moment, the only way that we ahve found to acess wiki pages is via the group's recent activity links ... there doesn't seem any way to be able to create a menu structure for the wiki that would make it useable ...

Any ideas or pointers as to how to solve this would be good.

I had also looked at bitweaver, but opted for drupal because of the ability to have user created groups etc - however, the wiki functionality (as I have found so far) is far less effective in drupal

thanks

What if you specified

cwgordon7's picture

What if, instead of creating a "Wiki page" type content, you used the drupal core "Book page" as wiki-type content? Then, you could use the book's hierarchical categorization system to categorize the content?

books and wikis

misterphil's picture

I remember looking at books a while ago - would it be possible to integrate wiki style page creation etc into this? Sorry if these are obvious questions, but , as someone pointed out a few posts up, all the different modules are very scattered around

thanks

*IS* Julian working on it?

add1sun's picture

There still seems to be no activity in the issue queues for any of Julian's modules and his demo site is not really working anymore. If his wiki modules are the road we want to go down then we need to get the upgrades to 6 and issue queues addressed sooner rather than later. cwgordon7 has offered to step up and I think we should go ahead and at least get a co-maintainer that is active and will start moving forward. If Julian wants to be involved, that's awesome, but I don't think the community wants to sit around waiting for him anymore.

Learn Drupal online at Drupalize.me

Liquid

SamRose's picture

at least for Liquid, the modules I've used are:

  • Liquid
  • Diff
  • filter by nodetype set to Wiki input filter for wiki pages (using media wiki markup)
  • views to create a recent changes specific to wiki

This actually creates a fully functional wiki. I happen to like Liquid wiki over Wikitools because of the option to move content into and out of the "wiki".

I have wikis hosted on more traditional wiki engines (like http://socialsynergyweb.net/cgi-bin/wiki/HiveChanges) so I have some experience with totally open wiki sites.

I hope if we concentrate on WikiTools, that we can incorporate the vital function of moving pages to and from wiki. Beyond that, I actually couldn't see much difference between WikiTools and Liquid, other than that Liquid separates "Wiki" content up front. I also liked that, actually.

Maybe Wiktools could become a "glue" module, that would allow optional sub-modules for wiki, like the Liquid options?

Sam Rose
Social Synergy
Blog

Any content type as wiki pages

ChrisBryant's picture

It's nice to see this discussion and the work being done to progress the wiki and related modules. Sam, I would suggest that it's best to be able to have any of your content types be a wiki page which is something that can set Drupal apart and even make it more useful in that regard. Having an open site with many people editing structured data types can be really useful.

--
Gravitek Labs

Chris, I agree with you,

SamRose's picture

Chris, I agree with you, although in practice there are times when people that I am working with would prefer that some content not be co-editable.

Since I wrote the comment above, I have switched over to WikiTools, and have come up with new ways to manage wiki content, that don't require the ability to move content into and out of "wiki".

I have yet to work with a community of people who are ready to embrace all Drupal content as wiki content.

Yet, I also am looking at using Drupal as the basis for a new "wiki", or in place of a wiki engine. This wiki would be a place-based wiki, similar to http://arborwiki.org, but using many different content types. Also, it would incorporate a democratic process for the implementation of new content types, new features, etc.

So, ChrisB, I think I am going to be trying out your idea in the near future, and I'll report back here about how this works out in practice. There are some issues to work out with anti-spam, and other admin issues, too.

Sam Rose
Social Synergy
Open Source Ecology
P2P Foundation

any update on this?

liquidcms's picture

Pretty old thread; but thought i'd see if any update in past 2 years.

I have an OG site and was hoping to allow users to add Wikis. I see OG lets me set node type to be "wiki like" as far as being able to be accessed by anyone in the group. But beyond that i am not sure there is much available to me.

I see Wikitools; but unclear what that does. I think it provides for a single Wiki for entire site - is that correct? Not sure that has any value in an OG site. Liquid seems to be a dead project. Is there anything else available?

Same problem

David Latapie's picture

I also want to create a wiki but 2010-way. I worked several days to find what would really be working and noticed a lot of modules are outdated or buggy, then unusable.

  • Take the reductionnist route and disassemble wikis. Define what a wiki is. This is not trivial
  • Compile a list of usable modules

What is a wiki? Well, I do think a wiki is a bundle. Drupal's strenght (and with the present lack of usable profile/distribution, also weakness) is that it can emulate only a part of a wiki's components.

  • A lightweight markup language. This is not juste HTML for dummies: footnotes are much better implemented in lightweight languages (like Markdown Extra) than in raw HTML (before X/HTML 5 with the aside element). With the right configuration (which Drupal permits in part), it is possible to restrict writing to presentation only (this is not perfect though, because present-day use forbids as much span xml:lang than span style)
  • Easy page creation and navigation (wikitools/node creation), bidirectional links (any working module ? This is for backlinks and red links), significant URL (pathauto, possibly with translitteration)
  • Versionning (diff and recent changes modules)

Optionnaly, talk pages are a possibility. This is very common in MediaWiki, but non-public-oriented wiki may find splitting content and comment annoying (at least my collaborators do). File upload (including images) may be considered optionnal too (although recommanded)


So far, my incomplete implementation uses :

  • Drupal 6 (wikitools has no Drupal 7 version
  • Better Formats
  • Diff
  • HTML Purifier
  • Pathauto
  • Recent changes
  • Talk (which doesn't behave exactly as expected URI-wise, in relation with Pathauto)
  • Token
  • Wikitools
  • Content
  • Content Profile User Registration
  • Freelinking (doesn't work)
  • Freelinking Prepopulate (ditto)
  • Translitteration (not necessary if you plan to mostly write in English)

Not required for wiki but pretty useful:

  • BUEditor (WYSIWYG modules create more problems than they solved are cannot be customised enough)
  • Live (a bit slugggish but OK)

Voilà ! I hope this could be used as a starting point.

a start.. but OG?

liquidcms's picture

Thanks Dave, certainly a list worth going over. But my first issue is "what does wikitools do for me?" From what i can tell it seems to add a "single" wiki to your site by defining a starting "path" as the home page for the wiki. But unless i am mistaken, this can't help me in an OG environment.

Without that, not sure i have much of anything resembling a wiki except for the basic access privileges that OG gives me.

OG?

David Latapie's picture

Hi Peter,

What does OG stands for?

I use wikitools for node creation. Enter yoursite.com/wiki/foo and, with the proper configuation, you may get "this page does not exist. Do you want to create it?" It has other uses, but this is the only one I use

If you check the "hijack freelinking (and installed the said module, of course), it will allow you to create new links with double square brackets.

Organic Groups

liquidcms's picture

OG = Organic Groups

it is a set of modules which allows you to maintain groups and therefore content owned by groups. See the big banner at the top of this page that says Groups.Drupal.. :).. this entire site is based around that set of modules.

groups

liquidcms's picture

OG is organic groups (check out URL of this thread; this is a Group and uses OG for this). Site is made of up numerous communities; each with their own section of the site and their own content. So a url like /wiki can't really work unless it could handle something like /wiki/foo?gids[]=132 but maybe.

i'll take a look and check out the freelinking as well.. i think the [ [my new node] ] is part of what i was missing - but again, needs to created within the group.

thanks for all your input.

Oh I see

David Latapie's picture

Well, maybe token may be used for this. Worth taking a look at.

BTW, I am wondering how OG differs from the blog module (which is for multi-blog). Is it kind of blog.module on steroids?

that worked

liquidcms's picture

nope...og is much more than that.

this: /wiki/foo?gids[]=132 actually does work (i.e. wikitools wants to create a new wiki node and it has added in the title and tagged with correct group id).. so that's cool. i think i need to sort out with my client exactly what they think makes up a wiki.

i would think something like:

groupA (gid = 123)
- wiki1
- wiki2
- wiki3

groupB
- wiki4
- wiki5
- wiki6

then under a wiki (for example under wiki1) user enters text and could include a link like [ [subpage1.1] ] (didn't realize that freelinking was enabled here) which would have the link /wiki/subpage1.1?gids[]=123 if the page does not exist.. and simply /wiki/subpage1.1 if it did already exist.

we need to have the gids[] part as this ensures the wiki post belongs to group the user is "in" and this is required as this content may not be visible to users not in that group

maybe flexifilter is what i need for this part. not sure what other features are required here.

freelinking

liquidcms's picture

Although i see the freelinking module could be used for my needs to create the links (as it is used in this group forum) - this doesn't automatically assign the current group id.

to fix this i used the Custom Filter module to do:

replace [ [page2] ] (no spaces; only added so as to not get filtered)

with wiki/page2?gids[]=142

Flexifilter does not work that well

David Latapie's picture

I could not make flexifilter work on D6 - and someone else noticied this too, but I can't remember the webpage right now.

I remember I tried to used earler, but its syntax was much too complex - but that must be me.

not flexi

liquidcms's picture

Didn't use flexifilter i am using Custom Filter module... and this rule:

convert this pattern:

/[(.*)]/i

to this PHP replacement:

$gid = $_SESSION['og_last'];
$title = $matches[1];

$result = l($title, "wiki/" . $title, array('query' => array('gids[]' => $gid)));

3 sq brackets around "page2" gives /wiki/page2?gids[]=[gid] (whatever [gid] is for last group)

hmm.. thinking about this now.. not a reliable way to grab GID (never use SESSION vars for anything.. lol). i think if you get to the new add page form via the link this creates in the parent page - this will work. But if you just entered the new url in address bar it wouldn't know the last group correctly. maybe needs to be something in wikitools to simply go to access denied in that case.

Wiki

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: