IETF RFC Draft for standardisation of the Wiki Syntax
|
Tiki Working Group Franck Martin
INTERNET-DRAFT The Wiki Community Expires in 6 month September 2004 Status of this MemoThis 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-Drafts are 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 use Internet-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 NoticeCopyright (C) The Internet Society (2004). All Rights Reserved. AbstractWiki 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 DocumentThe 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
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-SyntaxThe 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
3. Inline textA single character MUST NOT be used to mark a wiki tag. 3.1. Colored TextText 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 TextTwo stars (*) characters are used to make text Bold.Example: **This Text is Bold** 3.3. Italic TextTwo Single Quote (') characters are used to make text Italic.Example: ''This Text is Italic'' 3.4. Underlined TextTwo underline (_) characters are used to underline text.Example: __This Text is Underlined__ 3.5. Centered TextTwo 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 CodeMonospaced 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. LinksThere 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 textIt 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. ImagesImages 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 CharactersOf 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 text4.1. Horizontal RulerA Horizontal Ruler can be created with 3 Minus (-) characters. A Horizontal Ruler is usually on it's own line.Example: --- 4.2. Title BarThe 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. BoxesBoxes 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 BreaksPage 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. HeadlinesAre 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 AreaHeadlines 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. TablesTables 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 ListWith 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 ListWith 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 ListA 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 ListsAn 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 ContinuationText 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 text4.13.1. Block IndentA 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 IndentA 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 IndentA 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 ListA 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 extensionsPlugins and extensions to the Wiki syntax can be enclosed in double brackets ({{)Example: {{GRAPH()}}{{GRAPH}} Example: ~np~{{GRAPH(var1,var2)}}My graph instructions{{GRAPH}} 6. HTMLAny 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. MimeThe Mime type of a wiki document MUST be text/wikiA 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 addressesFranck MartinSOPAC Private Mail Bag GPO Suva, Fiji E-mail: Lee L. Bell 733 Cliffview #220 Dallas, Tx 75217 E-Mail: Philippe Cloutier 1391 Du Buisson G1T 2C5 Sillery, QC, CA E-mail: 10. Full Copyright StatementCopyright (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.
|
Shoutbox
|