Immutable Page History Attachments

WikiCourseHandOut

What is a wiki?

A wiki (also called WikiWiki or WikiWikiWeb) is a collection of websites, which not only can be read, but can also be edited by the users directly and simply. wikiwiki is Hawaiian and means "fast".

The first WikiWikiWeb was developed and put into operation by Ward Cunningham in 1995. The idea of editable content in the World Wide Web dates from the original ideas of the inventor of the World Wide Web, Tim Berners-Lee.

The wiki-way

  • open and cooperative: on many sites, everyone may change everything.
  • simple and fast: you can enter and save any content, which is available at once. Content is more important than design.
  • safe: MoinMoin remembers all old page versions.

  • cross-linked: the information in the wiki is highly linked.
  • accessible: you only need a browser and a network connection to access the wiki.
  • flexible: in a wiki you can save many kinds of information, e. g. training courses, transparency lectures and brainstorming.

What is MoinMoin?

MoinMoin is software to run a wiki.

It is available under the GPL and implemented in the programming language Python. Contributions can be made by also using the GPL and Python.

Finding information

MoinMoin has many ways to find information in the wiki:

Searching

  • Search field in the navigation area on the top of the page

    • For a title search, type in the search keywords and hit "Enter" (or click on Titles).

    • For a full-text search, type in the search keywords and click on Text.

  • Menu item FindPage

    • Includes indexes of all pages sorted by page names and words in the page name.
    • Advanced search functions.

(!) The title search can also be used to quickly navigate to pages that you only roughly know the title of.

You can find further information on the help page HelpOnSearching.

Navigation in the wiki

Staying up to date

In a wiki, lots of things can change in a short time, since anyone can edit, add, or remove pages at any time.

For this reason you can easily follow these changes on the page RecentChanges.

Listed for every change is:

  • a link to a page showing differences.
  • a link to the changed page (as well as the information for this page).
  • when the change was made.
  • who made the change.
  • a comment made for the change.

(!) If you are logged in to the wiki, you can set a temporal bookmark using this page. In that case, the wiki will remember which changes you have already seen and will only display the new ones after that.

Creating a wiki account

Using a wiki is often possible without creating an account (this depends on the security preferences).

However, using the wiki with an account is easier and better, because you can:

  • set a temporal bookmark on RecentChanges.

  • customize and personalize the navigation.
  • set your time zone.
  • subscribe to pages and get informed when a change is made.
  • do much more.

To create an account, use the link you can create one now on login page. Then you will have to enter:

  • a name (it is a good idea to use FirstnameLastname).

  • a password (not too simple!).
  • the password again (to avoid typing errors).
  • an e-mail address (for notifications or if you forgot your password)

/!\ Then click on Create Profile. /!\

The account will be created and you can log in to the wiki using your user name and password.

(!) You are logged in if you see the user name in the navigation area.

User preferences

After account creation and login, you can change your user preferences and settings (click on the link Settings at the top of the page).

The default values should be fine for most of the preferences, but you might want to change:

  • the time zone (to convert the UTC time to your current time).
  • the size of the editor input box (depends on your screen resolution and font preferences).
  • maybe the preferred language (not necessary with a correctly configured browser).

Then click on the Save button at the bottom of the page.

Your own wiki homepage

After creating an account you can see your own name in the navigation area, which is linked to a page of the same title: your personal homepage!

If you click on this link, you can see one of the unique characteristics of wikis for the first time: instead of getting a 404 not found error when a non-existent page is called, the wiki helps you create the page.

After following the instructions displayed, the wiki will display a template of your own homepage in a form.

You can change this template, give an optional comment, and then save the page by clicking Save Changes.

The text editor

We just met it while creating your own homepage: the text-based editor of MoinMoin. You are, of course, not limited to only using it for that, because you can also use it to change any other page in the wiki.

You can do that simply by clicking on edit or edit (text) in the navigation area and MoinMoin will bring you to the text editor for the current page.

(!) You can't mess anything up, because the previous version of the page is always saved and can be restored if needed.

It is important to frequently use the preview function while editing a page, since using it will tell MoinMoin to create a backup of the editor's current content.

When you're done, you should enter an appropriate comment (which will then appear on RecentChanges and in the history of the page) and click save.

Should there be two people editing a page at the same time, the first person can save without problems. The second person will get a warning and should merge the first person's changes with his own. If you want to edit a page on your own, you should state that on the top of the page, so other people will read it.

(!) You should not go back to the editor page with the "back" button of the browser after editing, because this can lead to strange editing conflicts. Just use MoinMoin's edit button again.

If you do not want to save, but instead discard the changes, you should click cancel, so that MoinMoin knows that you are done editing the page.

Further information can be found at HelpOnEditing.

Hot keys

The usual hot keys work in the editor:

  • Shift + arrow for select

  • Ctrl + C for copy

  • Ctrl + X for cut

  • Ctrl + V for insert

  • Ctrl + Z for undo

  • Ctrl + Y for repeat (available only in case of no other edits occur since last undo)

Mouse

Of course you can also select with the mouse and use your browser's editing features.

  • (!) Linux and other UNIX OSes / X11: A left doubleclick selects and copies a word, and a click on the middle mouse key is insert.

Text layout with wiki markup

MoinMoin does not simply use HTML (the HyperText Markup Language usually used for websites), but its own, simplified MoinMoin Wiki Markup Language, MoinMoin's convention for the input of content1.

HTML

<h1>Headline</h1>
<p>This is a link to my own homepage: <a href="/FirstnameLastname">FirstnameLastname</a></p>
<p>A list:
<ul>
 <li>foo</li>
 <li>bar</li>
</ul>
</p>

MoinMoin wiki

= Headline =
This is a link to my own homepage: FirstnameLastname

A list:
 * foo
 * bar

(!) The MoinMoin wiki markup will be explained in more detail on the following pages.


Paragraphs

The simplest way to enter text into a wiki is similar to doing so in a a word processor.

You just start writing. :)

The only anomaly is that you have to hit "enter" twice for a paragraph:

Input in the editor form

First paragraph.
Still first paragraph.

Second paragraph.

Third paragraph.

Display

First paragraph. Still first paragraph.

Second paragraph.

Third paragraph.

Dividing rules

Input

First part.
----
Second part.

Display

First part.


Second part.

Headlines

Input

= First headline level with =-character =
== Second ==
=== Third ===
... (up to "Fifth")

Display

First headline level with =-character

Second

Third

... (up to "Fifth")

(!) If a headline isn't displayed correctly, it is usually because:

  • there are invisible (whitespace) spaces after the concluding =-character (they can be deleted manually or with "Remove trailing whitespace from each line" edit option).

  • the number of =-characters at the front and at the back doesn't match.

Lists

Bulleted

Input

My pets:
 * Dog
 * Cat
  * Mouse

Display

My pets:

  • Dog
  • Cat
    • Mouse

Numbered

Input

To do:
 1. Feed dog
 1. Feed cat
  1. Let out mouse

Display

To do:

  1. Feed dog
  2. Feed cat
    1. Let out mouse

(!) MoinMoin can count on its own!

(!) The number of leading spaces defines the hierarchical level of the list.

There are more examples of lists at HelpOnLists.

Text styles

Wiki markup input

Display

''accentuated (italics)''

accentuated (italics)

'''strongly accentuated (bold)'''

strongly accentuated (bold)

'''''bold italics'''''

bold italics

__underlined__

underlined

--(crossed out)--

crossed out

`monospace`

monospace

(!) More at HelpOnEditing.

Tables

Simplest table

 || one || two || three ||
 || four || five || six ||
  • one

    two

    three

    four

    five

    six

General table layout

 ||||||<tablewidth="80%">'''Headline'''||
 ||Cell 1||Cell 2||Cell 3||
 ||<rowspan=2> Two lines||||<bgcolor="#AAAAFF"> Two columns||
 ||<rowbgcolor="#FFFFAA">Cell 2||Cell 3||
  • Headline

    Cell 1

    Cell 2

    Cell 3

    Two lines

    Two columns

    Cell 2

    Cell 3

Cell width

 || Narrow ||<:99%> Broad ||
  • Narrow

    Broad

Spanning rows and columns

 ||<|2> 2 lines || line 1 ||
 || line 2 ||
 ||<-2> line 3, 2 columns broad ||
  • 2 lines

    line 1

    line 2

    line 3, 2 columns broad

Alignment

 ||<(50%> left ||<^|3> up ||<v|3> down ||
 ||<:> mid ||
 ||<)> right ||
  • left

    up

    down

    mid

    right

Colors

 ||<#FF0000> red ||<#00FF00> green ||<#0000FF> blue ||
  • red

    green

    blue

Wiki internal links

One of the most important features of the wiki is the internal linking to other wiki pages, therefore it is quite simple.

WikiNames ("CamelCase")

If you WriteWordsTogether like FistnameLastname or CamelCase or MoinMoin, so that there are at least two changes between capital letters and lower case letters, MoinMoin will automatically link this word to the page of the same name.

This is quite simple, because wiki markup isn't necessary. But the unusual syntax isn't everyone's cup of tea, so there is one more alternative, the so-called "free link".

Input

CamelCase !CamelCaseButNotLinked

Display

CamelCase CamelCaseButNotLinked

If you want to link pages, which aren't in CamelCase or if you just don't like CamelCase, you can also link this way:

Input

A [[free link]] and [[other page|another page]].

Display

A free link and another page.

Tracing backwards from links

If you click on the page name in the navigation area, the wiki looks for pages which link to this page name.

This can be used for so-called wiki badges. You just write somewhere:

ToDo: Call costumer foobar regarding ...

ToDo is CamelCase, so it links to a homonymous page, which isn't very exciting. :)

(!) But you can click on the page name on the page ToDo and lo and behold, you find every page that also includes a ToDo.

External links

You can, of course, also link to external content on the internet.

Input

http://example.net/

[[http://moinmoin.in/|MoinMoin Wiki]]

ftp://example.org/pub/

{{http://static.moinmo.in/logos/moinmoin.png}}

Display

http://example.net/

MoinMoin Wiki

ftp://example.org/pub/

http://static.moinmo.in/logos/moinmoin.png

(!) As you can see, [[...]] sets a link to the target, {{...}} embeds the target, which is especially useful for pictures.

Attachments

With MoinMoin you can directly append files to a wiki page.

Input

[[attachment:letter.txt]]

{{attachment:foto.jpg}}

Display

letter.txt

[ATTACH]

(!) As long as the files aren't uploaded:

  • the links are grey (like links to non-existent wiki pages).
  • an alternate image, like a paper clip, is displayed for non-existent embedded pictures.

You can click on it and upload the file from your computer's file system to the wiki using your browser. Then the design is regular and:

  • links are blue.
  • the image appears.

Further informations on HelpOnActions/AttachFile

Symbols

MoinMoin also supports some graphical symbols, like the so called smileys that frequently appear in e-mails and chats:

Markup Display Markup Display Markup Display Markup Display
X-( X-( :D :D <:( <:( :o :o
:( :( :) :) B) B) :)) :))
;) ;) /!\ /!\ <!> <!> (!) (!)
:-? :-? :\ :\ >:> >:> |) |)
:-( :-( :-) :-) B-) B-) :-)) :-))
;-) ;-) |-) |-) (./) (./) {OK} {OK}
{X} {X} {i} {i} {1} {1} {2} {2}
{3} {3} {*} {*} {o} {o}    

For more see HelpOnSmileys.

(!) The following four chapters are about advanced details. If you don't care about this, you can just skip them.

Dynamic content

MoinMoin is built in a quite modular way, so its functions are expandable by using plug-ins. Macros, parsers, actions, etc. can either be built-in, included, or installed as a plug-in.

Macros

A macro is entered as wiki markup and it processes a few parameters to generate an output, which is displayed in the content area.

Parsers

A parser is entered as wiki markup and it processes a few parameters and a multiline block of text data to generate an output, which is displayed in the content area.

Actions

An action is mostly called using the menu (or a macro) and generates a complete HTML page on its own.

Macros

A macro is called using "<<macroname(parameter)>>". Parameters vary from macro to macro and are sometimes not used.

Input

<<TableOfContents>>
----
Some text with a footnote.<<FootNote(This is the footnote.)>>

|| <<MonthCalendar>> || <<MonthCalendar(,2000,1)>> ||
----
A certain moment - world wide: <<DateTime(2006-01-26T23:03:25Z)>>

Display


Some text with a footnote.2

<< <  2024 / 11 >  >>
Mon Tue Wed Thu Fri Sat Sun
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

<< <  2000 / 1 >  >>
Mon Tue Wed Thu Fri Sat Sun
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            


A certain moment - world wide: 2006-01-27 00:03:25

Parsers

Input

 {{{#!highlight python
 def hello(name):
     print "Hello %s" % name
 }}}

Display

   1 def hello(name):
   2     print "Hello %s" % name

Actions

Some examples of built-in actions:

  • the info action (in the navigation area).

  • a part of the search function.
  • file attachments (action "AttachFile").

  • anything in the action menu.

The graphical editor

As an alternative to the input of wiki markup using the simple text editor, MoinMoin also offers a graphical WYSIWYG (what you see is what you get) editor, which is similar to usual word processing.

Technical requirements: an up-to-date version of Mozilla/Firefox/Netscape or Internet Explorer with JavaScript activated.

You can set the preferred editor in your user preferences, but you can also switch to the other editor while editing.

Advantages of the GUI editor are that it is:

  • prettier.
  • simpler.

Disadvantages of the GUI editor are that it:

  • takes longer to load.
  • is less flexible.
  • is not yet error free.

Creating more pages

The easiest and best way to create more pages is to:

  • think of a good page name.

  • edit an appropriate page, add a link to the new page, and save it.
  • click on the link to the new page
  • prepare to edit using:
    • an empty page.
    • a page template (a list of templates is displayed on the left).
    • (!) the list of similar page names shown to ensure that there isn't any slightly different named page on the same topic.

  • start editing, fill the page with content, and save it.

(!) This method makes sure that new pages are always accessible from links on already existing pages.

Wiki etiquette

It is important that in public wikis, where many people work together (that often don't know each other), you always act benevolently to others, as long as no one has acted in the opposite way to you.

So, if someone deletes a sentence you wrote yourself, it might be that it was simply wrong or should not have been on that page.

In the same way, you should, of course, also exhibit benevolent behaviour yourself, and not do things like falsifying other's opinions. You should not change or delete anything unless you are sure about it.

The personal homepage should normally be considered as "property" of the particular user and should not be changed, apart from things like messages to the user.

Applications

A wiki is usable for number of applications. There are few requirements to use it and the content can be anything. You can use it for everything that can be displayed by linked text pages.

Examples

  • personal notes (instead of wasting paper)
  • conference protocols
  • to-do lists
  • news on wiki homepage, asynchronous communication
  • community creation of documentation
  • brainstorming
  • personal or collective link lists
  • efficient alternative to e-mail or phone
  • much more

Structure in the wiki

Hierarchy levels

Many conventional websites use very branched structures with many hierarchy levels.

In wikis linking is heavily used. A simpler structure is often used to simplify matters:

  • all important topics are located in main pages.
  • only if a topic has many subtopics (which aren't main topics), subpages are used.

    (!) Sub pages are named as MainPage/SubPage

Conventions

A wiki gives much freedom to the users; there aren't input masks like in database applications, but you can, in principle, do whatever you want and do it however you want.

Of course, you should avoid that to prevent complete chaos. B-)

That's why it's usual for new wikis to think about structures and conventions, such as the:

  • creation of a basic structure of pages.
  • definitions of name conventions for page names.
  • decision to use CamelCase or free links?.

  • definitions of important categories.

It's usual for older wikis to simply carry on using existing structures.

  1. MoinMoin also supports other markup languages, such as creole, HTML and many others, see HelpOnParsers (1)

  2. This is the footnote. (2)