Tiki Working Group Franck Martin
INTERNET-DRAFT The Wiki Community
Expires in 6 month September 2004
Status of this Memo
This document is an ))Internet-Draft(( and is subject to all provisions of Section 10 of RFC2026.
))Internet-Drafts(( are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
))Internet-Draftsare draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to useInternet-Drafts(( as reference material or to cite them other than as "work in progress."
The list of current ))Internet-Drafts(( can be accessed at [http://www.ietf.org/1id-abstracts.html]
The list of ))Internet-Draft(( Shadow Directories can be accessed at [http://www.ietf.org/shadow.html]
Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract
Wiki is a simplified language to allow the display of pages on the web. Its format is easier than HTML and has been created to simplify the creation and update of web pages over the web. With no rendered a Wiki page is still easily readable.
Conventions used in this Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1].
Table of Contents
Table of contents
- Status of this Memo
- Copyright Notice
- Abstract
- Conventions used in this Document
- 1. What is Wiki?
- 2. ))Wiki-Syntax((
- 3. Inline text
- 4. Paragraph text
- 5. Plug-ins and extensions
- 6. HTML
- 7. Mime
- 8. References
- 9 Authors addresses
- 10. Full Copyright Statement
1. What is Wiki?
Wiki is concept to allow the fast creation of web sites using only a web browser and with a fast formatting language. Wiki allows the user to focus on content not on formatting. Wiki in Hawaiian means fast. The purpose of wiki is to simplify the formatting of text for web pages for non-HTML experts. HTML can be sometimes confusing for non-initiated people. A raw HTML page is not easily human readable, it needs to be interpreted and displayed.
Wiki offers the possibility of formatting a page using character only formatting. A simple example is to display something in bold. Two underlines before and after the text will be interpreted as the text should be displayed as bold. If the system in use does not understand wiki the format is still readable and understandable by any human user.
The main goal of Wiki is to provide a formatting that is still readable to humans without a wiki renderer, but with it the text can be enhanced without requiring complex HTML tags.
At the moment Wiki is used mainly in web pages, but could be used in e-mail messages and any other type of messaging, like IRC or Instant Messaging. Anywhere text is used, wiki can be used to keep with legacy applications while providing enhancements.
In e-mail messages it would suppress the need of multi-part messages containing text and html versions of the same document.
An interactive copy of this document is on [http://tikiwiki.org/RFCWiki]
2. ))Wiki-Syntax((
The ))Wiki-Syntax(( given in this section can be located anywhere in the text so that specific characters, words, or sentences can be emphasized.
The use of english language or any other language MUST be avoided in Wiki syntax.
2.1. Quick Reference - Basic Text Formatting
Formatting Reason | Characters Used | Example
|
Bold Text | 2 stars "*" | **text**
|
Centered Text | 2 Colons ":" | ::text::
|
Colored Text | 2 Tildes "~" | ~~blue:text~~ |
Italic Text | 2 Single Quotes "'" | ''text''
|
MonoSpaced Text | Minus & Plus "-" & "+" | -+text+-
|
Underlined Text | 2 underlines "_" | __text__ |
3. Inline text
A single character MUST NOT be used to mark a wiki tag.
3.1. Colored Text
Text can be any color you want it to be. Two Tildes (~) are used followed by the name of a color and a Colon (:) to specify the start of the Colored Text. Two additional Tildes (~) are used to end the Colored Text.
Example: ~~red:This is text is Red~~
Colored Text can also be specified using HTML colors. HTML colors use 3 pairs of Hex numbers; one for Red, Blue, & Green so that 00 00 00 would produce white. The syntax is two Tildes (~) followed by the Pound (#) character and the Hex Numbers with a Colon (:) followed by the text to be colored. Two Tildes (~) mark the end of the Colored Text.
Example: ~~#ff00ff:This is text is the color Magenta ~~
Note: Not all Color Names are valid in all Browsers, so to be on the safe side, it is usually best to use the HTML number by default. Also the renderer SHOULD pass to the browser the color code even if a name is define in the wiki.
3.2. Bold Text
Two stars (*) characters are used to make text Bold.
Example: **This Text is Bold**
3.3. Italic Text
Two Single Quote (') characters are used to make text Italic.
Example: ''This Text is Italic''
3.4. Underlined Text
Two underline (_) characters are used to underline text.
Example: __This Text is Underlined__
3.5. Centered Text
Two Colon (:) characters are used to Center text. The Centered Text can be centered within a Box, a Table, or almost anything else.
Example: ::This Text is Centered::
3.6. Monospaced Text for Code
Monospaced Text is useful when displaying Code and can be created in two ways. The easiest is to start a new line with one or more spaces. The Minus (-) and Plus (+) character combination can also be used to specify a Monospaced Text.
Example: -+This Text uses a Monospaced Font+-
Note: If using a Monospaced Font, be sure to keep the line length short. If the lines are too long, they will push the right column out of the browser display area.
Note: The Leading Space Monospaced Font is disabled on many sites.
3.7. Links
There are 2 types of links; links to a wiki page and links to an external page.
Links to a wiki page on the same server or default server requires two open brackets ((() before the page name and two close brackets ())) at the end of the page name.
Example: ((new page))
Wiki will also create a link to a wiki page for any word with more than one capitalized letter.
Example: NewPage
UserPagemarclaporte: what special characters if any generate also a link? For example: Jean-Paul is a Wiki word in Tiki but not in some other wikis... What about underscore (_)? What about numbers?
If a multi-capitalized word needs to be used without a link to a wiki page then double brackets can be used but the closed ones before the opened ones.
Example: ))NotAWikiPage((
A different description than the page name can be used using the bar separator (|).
Example: ((New Page|Description of my new page))
External links are enclosed in double square brackets ([[) and (]])
Example: [[http://tikiwiki.org/]]
Example: [[mailto:someone@somewhere.com]]
The bar separator (|) can also be used to change the description
Example: [[http://tikiwiki.org/|The Tikiwiki Site]]
3.8. Non-parsed text
It may be needed in some instances to avoid wiki to interpret any text. The use of three tildes (~) can be used to enclose a non parsed text.
Example: ~~~ non parsed text ~~~
3.9. Images
Images can be used in text using a syntax similar to the HTML sysntax but using ({{) and (}}) to enclose the image.
{src|desc|height|width|align|valign}
Example: {{http://www.phpwiki.org/images/logo.png|My Logo}}
Example: {{http://www.phpwiki.org/images/logo.png|My Logo|10|20|center|top}}
The application MUST check that the image is in fact an image and process it accordingly.
3.10. Special Characters
Of course - any of the characters in the ASCII table can be added to a wiki page by enclosing it's number within a pair of Tildies. Unicode can also be used by using the character (U) followed by the column (:).
Example: ~169~
Example: ~U:450373~
4. Paragraph text
4.1. Horizontal Ruler
A Horizontal Ruler can be created with 3 Minus (-) characters. A Horizontal Ruler is usually on it's own line.
Example: ---
4.2. Title Bar
The Title Bar is similar to a Horizontal Ruler in several ways. It produces a line that stretches across the page with text on it. A Title Bar needs to be on it's own line and is created with the Minus (-) and Equal (=) characters.
Example: -= This is a Title Bar =-
Note: The text on a Title Bar can be centered and/or colored.
Example: -=~~red:::A Red Centered Title Bar:: ~~ =-
4.3. Boxes
Boxes are added with the Caret () character. This character can be located anywhere on a line but it should be the first character. The first Caret indicates where the Box will starts and a second Caret (on this or another line) indicates where the Box is to end.
Example: This is a Box .
4.4. Page Breaks
Page breaks allow you to control the length of a page for easy reading. A new page can be added anywhere but should start at the beginning of a line. A page break uses 3 underscores (___)
Example: ___
4.5. Headlines
Are added with an Exclamation Mark (!) at the beginning of a line. The number of Exclamation Marks used controls both the size of the text and indentation level that a headline will have in a table of contents. The headline of the following paragraph uses 3 exclamation marks.
4.6 Headlines with Expandable Area
Headlines can also have Expandable Area. An Expandable Area is created by adding a Plus (+) or Minus (-) character after the Exclamation Marks. The Plus (+) and Minus (-) characters define what the default value is for the expandable area as shown below.
Example: !!!+ and !!!- are used to create an expanded Headline and a non expanded headline.
In either case, the Expandable Area extends to the next headline. When used, a [+] or [-] button is created that, when clicked, will expand or contract the area.
4.7. Tables
Tables can be rendered using the tripe bar separator (|||) to mark the begining and end of a table, the bar separator (|) to define cells limits and double bar sperator (||) to define the end of the row. The rendered MUST NOT rely on newline or line breaks to define cells, rows or tables end.
Example:
|||
::Color Name:: | :: Color HEX :: | :: - Colored Text - :: ||
AliceBlue| ::#F0F8FF:: | ~~#F0F8FF:Colored Text~~ ||
AntiqueWhite| ::#FAEBD7:: | ~~#FAEBD7:Colored Text~~ ||
|||
4.8. Bulleted List
With an asterisk (*) at the beginning of a line, Wiki places a bullet (a black dot) at the beginning of the line. The line is indented and formatted with a hanging indent, so that second and subsequent lines are indented and aligned with the first line. Two asterisks will create a level 2 bulleted list.
Example: * my first item
4.9. Numbered List
With a hash mark (#) at the beginning of a line, Wiki numbers the line and indents it from the left margin. The item's text is formatted with a hanging indent, so that second and subsequent lines are indented and aligned with the first line. Two hash mark will create a level 2 numbered list.
Example: # My first item
Placing more than one numbered list in a page, the items are separately numbered.
4.10. Nested List
A nested list is a bulleted or numbered list that has more than one level — that is, some items have "sub-items," as in the following example:
To create a nested list, type two or more asterisks (bulleted lists) or hash marks (numbered lists) at the beginning of the line, as shown in the following examples:
*Level 1 (bulleted list)
**Level 2 (bulleted list)
***Level 3 (bulleted list)
#Level 1 (numbered list)
##Level 2 (numbered list)
###Level 3 (numbered list)
4.11. Adding Hidden Details in Lists
An expandable area allows you to display the major items in your list by default. Every item is still there, but it needs to be expanded to become visible. An expandable area is created by adding a minus (-) character after the star (*) characters.
Example:
*This is a Level 1 item.
*+This Level 1 item has Hidden Details. Click the Plus [+] to open it.
**-This is a Level 2 item. Clicking the Minus [-] will close it.
**This Level 2 item did not need the minus character.
*Back to Level 1.
Expandable areas work with Bulleted and Numbered lists.
4.12. Text Continuation
Text can be forced to continue at the same indentation level in a list without having a bullet or a Number assigned to it. This is accomplished by having a Plus (+) character start each line. The number of Plus characters controls the indentation level.
Example:
*This is a Level 1 item.
+This line begins with a single Plus character
**This is a Level 2 item.
++This line begins with a 2 Plus characters
*Back to Level 1.
Expandable areas work with Bulleted and Numbered lists.
4.13. Indenting text
4.13.1. Block Indent
A block indent is created by using the minus (-) with the greater character (>) at the beginning of the line. The number of minus characters defines the indentation.
Example:
-> Block indent level 1
--> Block indent level 2
4.13.2. First Line Indent
A first line indent is created by using the minus (-) with the pipe character (|) at the beginning of the line. The number of minus characters defines the indentation. In a first line indent only the first line of the paragraph is indented.
Example:
-| First Line indent level 1
--| First Line indent level 2
4.13.3. Hanging Line Indent
A hanging line indent is created by using the minus (-) with the inverse divide character (\) at the beginning of the line. The number of minus characters defines the indentation. In a hanging line indent the first line of the paragraph is not indented while the rest of the paragraph is.
Example:
-\ Hanging Line indent level 1
--\ Hanging Line indent level 2
4.14. Definition List
A definition list displays a term that is aligned flush left; the term's definition is positioned on the subsequent line and indented. It uses the semi column (;) at the beginning of the line and the column(:) to separate the term from its definition.
Example: ;unordered list:A list in which the order of the items is unimportant; also called a bulleted list.
Example: ;term:definition
5. Plug-ins and extensions
Plugins and extensions to the Wiki syntax can be enclosed in double brackets ({{)
Example: {{GRAPH()}} Example: ~np~{{GRAPH(var1,var2)}}My graph instructions
6. HTML
Any HTML syntax can be used but MUST NOT be rendered by default displaying HTML as normal text unless the user or administrator authorize the rendering of HTML syntax in the application. In that way any application is by default exempt of any scripting, embedded object or HTML vulnerability.
HTML rendering is discouraged.
HTML code is enclosed in brackets ({[)
Example: {[<b>some text in bold</b>]}
7. Mime
The Mime type of a wiki document MUST be text/wiki
A wiki document MAY contain only on the first line the word WIKI followed optionally by this RFC number.
8. References
[1] Bradner, S., "Key words for use in RFCs to indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
9 Authors addresses
Franck Martin
SOPAC
Private Mail Bag GPO
Suva, Fiji
E-mail: franck at sopac.org
Lee L. Bell
733 Cliffview #220
Dallas, Tx 75217
E-Mail: StarRider at SolidWizards.com
Philippe Cloutier
1391 Du Buisson
G1T 2C5
Sillery, QC, CA
E-mail: chealer9 at tikiwiki.org
10. Full Copyright Statement
Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78 and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at [http://www.ietf.org/ipr].
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at [ietf-ipr@ietf.org].
Acknowledgement
Funding for the RFC Editor function is currently provided by the Internet Society.