User:Crazycomputers/WikiBench

WikiBench
Original author(s)Chris Howie
Operating systemCross-platform
PlatformCLI (Mono / MS.NET)

WikiBench is a web browser I'm writing that specifically targets Wikipedia editors. It started as a rewrite of VandalSniper but it has become clear that it will be able to support far more features.

It's build around the idea of extensibility and customization. Pieces of functionality ("addins") can be created and dynamically added to or removed from WikiBench while it is running. There will be a set of addins for RC patrollers, for example, and these will contain most of VandalSniper's features. It's possible that someone might write an addin that adds most of AWB's feature set to WikiBench. Who knows what's possible!

While I was writing VandalSniper it was obvious that many of its features could be useful to editors who don't exclusively do RC patrol. For example, the Watchlist tab could be used by anyone. It reports changes to articles on the user's watchlist in real time. This will be a separate addin; people who want it can turn it on, and people who don't can disable it.

I guess the idea is that right now we have all these separate tools for different uses, but why don't we have one tool that does them all? Having different tools means that you either need to run multiple tools if you want to do different things, or that you only use one tool and miss out on the features of others. WikiBench is an effort to bring all of these different tools together in a meaningful, cohesive way.

Right now there are five components, and I expect this list to grow rapidly.

  • WikiBench.Core: The core provides the user interface, and three extension points that addins can use:
    • Pads: Pads are widgets that are displayed below the browser. Each pad gets a tab. If you've used VandalSniper, the four tabs below the browser could be implemented as tabs.
    • PreferencesPanes: These widgets show up in the preferences dialog. Each pane gets an entry in the list, and is displayed when its corresponding item is selected. In this way, addins can present configuration settings to the user in a centralized location.
    • AddinEntries: An AddinEntry is an entry/exit point for an addin, and provides hooks for addins to write information to the configuration file.
  • WikipediaChangeStream: This addin provides an object that streams changes on Wikimedia projects to interested addins. It also provides a PreferencesPane that configures which projects and languages it should stream changes from.
  • WikiBench.Citations: A simple pad for generating {{ref}}-style citations by filling out fields.
  • WikiBench.RecentChanges: This addin provides two pads: Recent Changes and Blacklist. They are similar to the Recent Changes and Sniper tabs in VandalSniper. WikipediaChangeStream is required by this addin. (Eventually the Watchlist pad will be provided by this addin as well.)
  • WikiBench.MediaWikiIntegration: The goal of this addin is to integrate with MediaWiki-based wikis and provide extension points that other addins can hook into. For example, it will annotate user links with another link like VandalSniper does, and will provide an extension point that will let other addins add menu items to the user menu that pops up.

Development notes can be found on my blog.