Notebook @ Functorial
Instiki content structure

By David A. Tanzer


Instiki is a no-fluff multiweb wiki designed for mathematical content sharing, with support for Markdown, Itex, SVG and TikZ.

Structure of Instiki

An Instiki wiki is an installation that consists of a collection of webs.

Each web is a set of pages, organized into a namespace. Informally, think of a web as a collection of pages that work together for a specific project, purpose or context.

All the pages in a web share the following structure:

  • Home page

  • Category schema for pages

  • Color and styling of pages

  • Menu bar functions

    • Home link
    • All pages
    • Recently revised
    • Search bar
  • Password, which if specified is required to view or modify pages

  • Publication web. A published web is a public, read-only view of a password protected web.


Suppose that we have webs AA and BB, with respective pages a 0,a 1,a 2,a 3a_0,a_1,a_2,a_3 and b 0,b 1,b 2,b 3b_0,b_1,b_2,b_3, where a 0a_0 is the home page for AA and b 0b_0 is the home page for BB.

Suppose these pages are categorized as follows:

  • a 1,a 2:wa_1, a_2: w
  • a 3:xa_3: x
  • b 1,b 2:yb_1, b_2: y
  • b 3:zb_3: z

Note: multiple categorizations may be applied to one page.

Home button: for pages a 1,a 2,a 3a_1,a_2,a_3, the home button points to a 0a_0, and for similarly for b 1,b 2,b 3,b 0b_1,b_2,b_3,b_0.

All pages: for pages in AA, all pages presents a listing with hyperlinks for all pages in AA. In addition, category links are shown for ww and xx. Clicking on these filters down the list presented. Similarly for BB, with categories yy and zz.

Recently revised: for pages in AA, this shows the list of revisions to AA, with the most recent changes on top. This is a very useful way to quickly find pages that you are actively working on.

Search bar: for pages in AA, the search bar only returns pages in AA, and similarly for BB.

Page creation: new pages created in the context of AA will always get added to web AA.

Note: the page creation mechanism is somewhat indirect, and doesn’t appear as an explicit option on the menu. For details see this note.


As the above example shows, in the default state of the wiki, AA and BB are each “connected” sets of pages, which are totally disconnected from each other. Once a link leads to you the home page for AA, all operations that you will then perform will keep you to pages in AA - you would have no idea of the existence of the pages in BB.

Category tags are written ad hoc. However, because the category links in All-Pages show only the categories used in that web, this implies that the categories used in a web can be meaningfully considered to be part of the “virtual schema” for the web.

For an example of a web with lots of categorized pages, here is the all pages listing for the Azimuth wiki.

Linking mechanisms

Although each webs is a separate page space, the pages can still be connected using an interweb syntax:

  • [[webname:pagename]] produces a page link.

  • [[!include webname:pagename]] includes one page within another.

If webname is omitted, it defaults to the current web.

Interweb inclusions create new possibilities, particularly when the included page comes from a read-only web:

  • For public-access webs, a companion read-only web can be created to hold administrator controlled pages. A prime example of this is the home page. The home page can be created maintained in the administrator’s web, and the home page of the public web can just contain the line [[!include adminweb:HomePage]].

  • For multi-author situations where authors want to maintain control of articles, written in their voice, a password-protected web can be created for each author. Then in the public wiki, pages can be included from various author webs, individually and as needed.

Note: for locking down the home page, there still remains a loophole, which is that an unfriendly agent could still change the homepage to something other than the interweb inclusion statement. This can be remedied by totally locking down the home page, after the interweb include has been saved to it. A page can be totally locked down using .htaccess to block access to the URL used to save it.

One add a navigation panel to pages, which shows up at the top-right. This can contain links to key pages in the web, as well as links to the home pages of other webs.