Date: Tue, 10 Jan 2006 20:24:55+00:00
Mime-Version: 1.0 (Produced by Tiki)
Content-Type: multipart/mixed;
  boundary="=_multipart_boundary_2"

--=_multipart_boundary_2
Content-Type: application/x-tikiwiki;
  pagename=testPage;
  flags="";
  author=xxxxxxxx;
  version=2;
  lastmodified=1168026094;
  author_id=xxx.xxx.xxx.xxx;
  summary="";
  hits=22;
  description="";
  charset=iso-8859-1
Content-Transfer-Encoding: binary

There will be a file here...

Monospace 
 mono

No wiki formatting
~np~__No__ formatting~/np~

Italicise text
''italic''

Bold text
__bold__

Bold and italic
__''bold & italic''__

Internal link (within Wikipedia)
((name of page))
((name of page|display text))
{ALINK(aname=section in this page)}label in this page{ALINK}

External link (to other websites)
[http://www.example.com]
[http://www.example.com|display text]
[http://www.example.com|display text|nocache]
[https://security.com|Secure]

Applies only at the beginning of the line
Headings
of different sizes

! Level 1
!! Level 2
!!! Level 3
!!!! Level 4

Bullet list

* one
* two
** two point one
* three

Numbered list

# one
# two
## two point one
# three

Thumbnail image

{img src="img/wiki_up/hobbespounce.gif" width="200"}
{img src=show_image.php?name=Wiki.png }

^{maketoc}^

Tables

|| __Header1__ | __Header2__ | __Header3__ || r1c1 | r1c2 | r1c3 || r2c1 | r2c2 | r2c3 ||

|| __Header1__ | __Header2__ | __Header3__ || __Row1 Header__ | r1c2 | r1c3 || __Row2 Header__ | r2c2 | r2c3 ||


No headers:

||r1c1|r1c2||r2c1|r2c2||

Row and Col spans:

||row1-column1|row1-column2|row1-column3||row2-columns123||row3-column1|row3-columns23||

Preformatted:
~pp~This __might__ have some ((Wiki syntax)). That's ignored.~/pp~

Code:
{CODE()}System.out.println("This is code");{CODE}


^
 And what does this white-space starting line mean?
 Is this like a pre tag?
 How does it treat ((Wiki syntax))?
^

Colored text:
~~#FFEE33:some text~~

Underlined:
===underlined===

Title bar:
-=title=-

Centered text
::Centered::

^
Just a panel?
^

{ANAME()}section in this page{ANAME}

Mostly from [http://tikiwiki.org/tiki-index.php?page=WikiSyntax|WikiSyntax]

----
Attachments

{img src=&quot;img/wiki_up/hobbespounce.gif&quot; width=&quot;200&quot;}
{img src=show_image.php?name=Wiki.png }
{img src=show_image.php?id=1 }

Importance of quotes
{img src=img/wiki_up/hobbespounce.gif}
{img src="show_image.php?name=Wiki.png" }

Importance of space
{img src="img/wiki_up/hobbespounce.gif"}
{img src="img/wiki_up/hobbespounce.gif" }
{img src=show_image.php?name=Wiki.png}

[http://www.mysql.com|MySQL] is an open-source RDBMS that's very easy to set up and use.  We sometimes use MySQL in the development phase of projects when we need a database we can administer ourselves because of frequent schema changes.  ((Hypersonic)) is another nice RDBMS for this purpose.  Recently, getting an ((Oracle)) instance made and administering it ourselves has become easier, so we're relying less on MySQL.

----
-=Reference=-

Here's a quick list of common MySQL commands (most of these are just plain SQL, actually).

List of databases:
   SHOW DATABASES;
Switch to database:
   USE dbname;
List of tables in database:
   SHOW TABLES;
Table details:
   DESCRIBE tblname;
Create database:
   CREATE DATABASE dbname;
Grant privileges on database:
   GRANT ALL ON dbname.* TO username;

Add table:
   CREATE TABLE tblname (colname type, colname type, ...);
Remove table:
   DROP TABLE tblname;

Add column:
   ALTER TABLE tblname ADD colname type [[NOT NULL] [[DEFAULT value];
Remove column:
   ALTER TABLE tblname DROP colname;
Rename column:
   ALTER TABLE tblname CHANGE colname newcolname (same type);

Insert row:
   INSERT tblname (colname,...) VALUES (expr,...);
Update rows:
   UPDATE tblname SET colname=expr, ... [[WHERE where_expr];
Remove rows:
   DELETE FROM tblname [[WHERE where_expr];

Compare with NULL:
   colname IS [[NOT] NULL


----
Alternate Monospace Syntax:

-+Should Be Monospace+-


----
CamelCase Not a Link Syntax:

))NotALink((

This ((should be a link)) but ))this needs to be cleaned((


----
Enforce List Whitespace

*listitem
**listitem

#numbereditem
##numbereditem
###numbereditem

* already has the whitespace
** already has the whitespace
# already has the whitespace
## already has the whitespace
### already has the whitespace

----
This is to test converting and attaching image syntax that uses URLs

This image is located on my local apache server

{img src="http://localhost:8081/tikiwiki-1.9.5/img/wiki_up/hobbespounce.gif"}

Does it convert and attach?

----
This is to test Code blocks bug uwc-97 (maybe this is a list context issue?)

Before
*Listone
**{CODE()}
This is a code block
{CODE}
**Some stuff
**{CODE()}
Another code block!
{CODE}

Another possibility is that this stuff is getting munged by the panel:

^
Starting a panel here

{CODE()}
Non list context code block
{CODE}
Something else
{CODE()}
This is different?
{CODE}

*list context!
**{CODE()}
Something
{CODE}
**still list
**{CODE()}
Something else
{CODE}

About to end the panel
^

download syntax: (this is a local test - change the url to your tikiwiki location)
{img src=tiki-download_file.php?fileId=1 }
{img src=http://localhost:8081/tikiwiki-1.9.5/tiki-download_file.php?fileId=1}

Color
~~#FF0000:Should be red~~
~~red:Should be red~~
~~red:Should be red
multiline
coloration
~~

Tables with dashes
||r1c1|-||r2c1|r2c2||

Tables with newline delimiters

||
A|B|C|D|E
abc|def|ghi|jkl|-
abc|def|ghi|jkl|
abc|def|ghi| |
||

Multiple Tables with Newline Delimiters

^
Pre text: ABC, DEFs.
||__ABC__|__DEF__|__GHI JKL__|__MNO PQR__
http://www.google.com/|Ac|11/29/2005|11/29/2005
http://www.google.com/|Ac|1/6/2006|1/6/2006
||
^


__header__
^
Home Site:[http://www.google-google.com/|http://www.google-google.com/]
Download Link:[http://www.google-google.com/download.shtml|http://www.google-google.com/download.shtml]

||Date:|1/4/2006
Version:|1.0
Purchase URL:|http://www.google-google.com/buynow.shtml
Purchase Price:|$19.99
Functionality:|Time Limit (15 day trial version)
Rabc:|ABC
Common Components:|
To Adds:|installer
Notes:|
||

^

Tables Back to Back (uwc-115)
||A|B
a|b
||
||C|D
c|d
||

Tables with Colspans that can be pruned (uwc-133)
||A|B
a|b| |
||

Tables starting with an empty cell (uwc-118)
||A|B
|b
||

Horizontal Rules:
---

Getting out of List Context
* item 1
* item 2
Should not be indented like a list item.

This is for testing the stripping away of unnecessary newlines between nested list items

* item a
** item a1

** item a2 (this should only have the inner bullet, not both bullets)


But! These should be considered seperate lists:
* item c

* item d

This is for testing adding empty cells to pad out shorter rows that would otherwise have been colspans

| A | B |
| a | b | c |

File Gallery Images with whitespace in the filename
{img src="tiki-download_file.php?fileId=4"}

Code blocks that might be interfered with by uwc-106 (illegal name handling)
{CODE()} blah [[blah]] blah {CODE}

----
XXX Add more conversions here.


--=_multipart_boundary_2
Content-Type: application/x-tikiwiki;
  pagename=testPage;
  flags="";
  author=xxxxxxxx;
  version=1;
  lastmodified=1168015749;
  author_id=xxxxxxxxxxxxx;
  summary="";
  hits=15;
  description="";
  charset=iso-8859-1
Content-Transfer-Encoding: binary

Currently, this page history is __deleted__ because it's an earlier version
Add new syntaxes about this.

--=_multipart_boundary_2--
