wiki-projects

From IndieWeb


wiki projects are IndieWeb projects related to wiki-page hosting/creation/editing on your own site.

Existing Projects

Smallest Federated Wiki

Smallest Federated Wiki was conceived/created/developed/launched at IndieWebCamp 2011

MediaWiki

Main article: MediaWiki

MediaWiki runs indiewebcamp.com, microformats.org/wiki, and is used by IndieWebCamp community members like Tom Morris on http://wiki.tommorris.org/

ikiwiki

Main article: ikiwiki

ikiwiki is another independent site wiki, and is used by IndieWebCamp community members like Philip Durbin on http://wiki.greptilian.com/

TiddlyWiki

Main article: TiddlyWiki

TiddlyWiki is another independent site wiki that can be self-hosted and used as a personal website. See TiddlyWiki for examples.

WikiSuite

  • WikiSuite — no known IndieWeb community users

Wikijs

Main article: Wiki.js
  • Wiki.js - no known IndieWeb community users

Massive Wiki

Main article: Massive Wiki

Project Comparison Sites

Brainstorming

Thoughts on how an IndieWeb wiki could be implemented

Features for migrating from PBWiki

There was a discussion on 2021-253 in chat between Tantek Çelik & Ryan Barrett about wiki / topic / evergreen pages on a personal site (in particular, prompted by Ryan Barrett asking Tantek Çelik how his own personal wiki implementation was going as a follow-up from citing his PBWorks wiki), and which features were important / interesting. Needs extraction from logs at:

Static Pages Plus HTTP Headers

This is a brainstorm by Tantek Çelik, originally discussed in IRC 2013-091, captured here for potential iteration.

[1:21pm] tantek: I'm actually thinking of, how do I just use a static HTML page itself as the storage for a "wiki" page.

  • static HTML files as their own storage of their current/latest version
  • previous versions stored elsewhere (e.g. the filesystem)
    • use a h-feed to list keep track of previous versions so that one can easily subscribe to changes made
    • date-time-stamp filename suffixing convention
      • this places a content requirement on the otherwise unrestricted HTML files.
      • alternatively if this information (what is the previous version) is kept in a database cache, it can be sent with the server as an HTTP LINK Header with rel value.
    • the combination would satisfy essential qualities 2,3,4 listed above.
    • new link rel to link to the previous historical version
    • each version linking explicitly (via invisible <link> or visible hyperlink) to the previous version, and current version.
    • security: as always, when using HTML files for static storage, one must ensure that their project is not vulnerable to directory traversal where a malicious actor can use manipulated URLs to access private content.
  • for editability, it might be a neat trick to write software that made any static HTML page on your site automatically "editable" if you happened to be signed in with Web Sign-in / IndieAuth.
    • similar to revisions/versions, a page could link to its editing interface/version/query parameter with a rel link as well, e.g. rel=edit, which has been previously proposed as part of Universal Edit Button: links for AJAX-driven edits but could be used for server-based editing state as well. E.g. href="?edit=1". Again this might be best sent as an HTTP Link Header.
    • goal: make a page editable without putting any meta/link in the page itself.
      • should be possible to use HTTP LINK rel=edit to an editing script (for browser plugin discovery)
      • perhaps an HTTP LINK rel=script to execute an editing script (for browsers that don't know about rel=edit).

Interface - there are many ways personal wiki software could provide editing / version browsing features, here are a few:

UI for browsing previous versions:

  • slider in Etherpad
  • what archive.org puts up in the header on archived page results
  • That ins/del slider demo I made may be of interest/use --Waterpigs.co.uk 06:40, 2 April 2013 (PDT)

Brainstorm summary:

  1. static HTML page as its own storage
  2. *-date-time suffixed versions of said page in the file system (or perhaps in the YYYY/ directories), linking to latest version and previous versions with rel values
  3. HTTP LINK headers for browser-editing-plugin discovery and javascript-based fallback
  4. Access UIs via query parameters e.g. ?edit=1, ?history

Related project:

Features for a personal wiki

There was a discussion in chat about what features a "personal wiki" should have. A personal wiki is a wiki written by one person for themselves or for a select audience. A select audience may be enabled to read the wiki using capability URLs or by signing in to view specific pages.

capjamesg's brainstorm

James likes the idea of having a personal wiki for documenting his thoughts on concepts as opposed to writing full blog posts on a particular topic. For instance, James might want to create stubs for topics he is thinking about and add links, quotes, and notes as he learns more about the topic. This would create a useful point of reference for a particular topic.

James is interested in a personal wiki separate from his site. This would help achieve a clear context separation between long-form and short-form content. With that said, the nature of a personal wiki is to serve one's self: it is a personal wiki. Thus, a self-hosted, private wiki may be preferable.

The key features such a wiki would need are:

  • create a post
  • update a post
  • delete a post
  • search through posts
  • view revisions to posts
  • find recently updated pages

Others

Other projects that may be of help with designing/creating/building a wiki content system.

  • MementoWeb
    • -1 memento seems horribly overdesigned, e.g. has way too many rels, none of them actually useful: original, timegate, timemap. - Tantek 16:49, 1 April 2013 (PDT)

See Also

  • wiki
  • wiki-page
  • edit
  • projects
  • Use-case: sharing & finding actually useful text restaurant menus instead of spam links to online ordering intermediaries (Google Maps), or at best out of date PDFs. How to: Create a wiki page on your personal site with name-of-restaurant-city-menu and simple semantic HTML table(s) with the menu items, name, description, price, etc. extra points for including an h-card of the restaurant at the top