hasRawText() tag case insensitivity & closure: note: Although xhtml calls for lower-case tag names with all tags closed (even on void elements), Textile doesn't care if xhtml in its input is well formed, it just has to output it verbatim. Therefore we use the more relaxed HTML5 rules (allowing for mixed case element names) for detecting 'raw' input text. In addition, xhtml allows void tags to be closed like normal tags (so
is valid in xhtml) and Textile should let these through untouched too. input: |














Hello World!

Hello World!

Hello World!

Hello World!

expect: |














Hello World!

Hello World!

Hello World!

Hello World!

Case insensitive p breaks: setup: setHtmlType: xhtml input : | I spoke. And none replied. I spoke.
And none replied. I spoke.
And none replied. I spoke.
And none replied. I spoke.
And none replied. I spoke.
And none replied. I spoke.
And none replied. expect: |

I spoke.
And none replied.

I spoke.
And none replied.

I spoke.
And none replied.

I spoke.
And none replied.

I spoke.
And none replied.

I spoke.
And none replied.

I spoke.
And none replied.

Mixed HTML & Textile: input : |

*foo*

*foo*[^2^]

expect: |

foo

foo2

Styled numbers: input : | _(class1 class2#id1)1_ *[en]2* **(#id)3** ??4?? __5__ %6% +7+ -(foobarbaz#boom bang)8- ~9~ ^10^ 1[^st^], 2[^nd^], 3[^rd^] expect: |

1 2 3 4 5 6 7 8 9 10

1st, 2nd, 3rd

Percentages...: input : | 0 %1% _2_ 45% 6.7% %89.0 expect: |

0 1 2 45% 6.7% %89.0

Some redding: input: | h2{color:red}. Some redding expect: |

Some redding

Basic glyphs: input : | "Textile(c)" is a registered(r) 'trademark' of Textpattern(tm) -- or TXP(That's textpattern!) -- at least it was - back in '88 when 2x4 was (+/-)5(o)C ... QED! p{font-size: 200%;}. 2(1/4) 3(1/2) 4(3/4) "." ".." "..." '.' '..' '...' Allow quoted periods. expect : |

“Textile©” is a registered® ‘trademark’ of Textpattern™ — or TXP — at least it was – back in ’88 when 2×4 was ±5°C … QED!

2¼ 3½ 4¾

“.” “..” “…” ‘.’ ‘..’ ‘…’ Allow quoted periods.

Classes and IDs: input : | p(c). Valid class p(#id). Valid ID p(c#id). Valid class and ID p(c9). Valid class p(c4.2). Valid class p(c1 c.2 c-3). Valid class expect : |

Valid class

Valid ID

Valid class and ID

Valid class

Valid class

Valid class

Dimensions : input: | [1/2] x [1/4] and (1/2)" x [1/4]" and (1/2)' x (1/4)' (2 x 10) X (3 / 4) x (200 + 64) 1 x 1 = 1 1 x1 = 1 1x 1 = 1 1x1 = 1 1 X 1 = 1 1 X1 = 1 1X 1 = 1 1X1 = 1 What is 1 x 1? What is 1x1? What is 1 X 1? What is 1X1? 1 x 2 x 3 = 6 1x2x3=6 1x2 x 1x3 = 6 2' x 2' = 4 sqft. 2'x 2' = 4 sqft. 2' x2' = 4 sqft. 2'x2' = 4 sqft. 2' X 2' = 4 sqft. 2'X 2' = 4 sqft. 2' X2' = 4 sqft. 2'X2' = 4 sqft. 2" x 2" = 4 sqin. 2"x 2" = 4 sqin. 2" x2" = 4 sqin. 2"x2" = 4 sqin. 2" X 2" = 4 sqin. 2"X 2" = 4 sqin. 2" X2" = 4 sqin. 2"X2" = 4in[^2^]. What is 1.2 x 3.5? What is .2 x .5? What is 1.2x3.5? What is .2x.5? What is 1.2' x3.5'? What is .2"x .5"? 1 x $10.00 x -£ 1.23 x ¥20,000 x -¤120.00 x ฿1,000,000 x -€110,00 expect: |

½ × ¼ and ½” × ¼” and ½’ × ¼’

(2 × 10) × (3 / 4) × (200 + 64)

1 × 1 = 1

1 ×1 = 1

1× 1 = 1

1×1 = 1

1 × 1 = 1

1 ×1 = 1

1× 1 = 1

1×1 = 1

What is 1 × 1?

What is 1×1?

What is 1 × 1?

What is 1×1?

1 × 2 × 3 = 6

1×2×3=6

1×2 × 1×3 = 6

2’ × 2’ = 4 sqft.

2’× 2’ = 4 sqft.

2’ ×2’ = 4 sqft.

2’×2’ = 4 sqft.

2’ × 2’ = 4 sqft.

2’× 2’ = 4 sqft.

2’ ×2’ = 4 sqft.

2’×2’ = 4 sqft.

2” × 2” = 4 sqin.

2”× 2” = 4 sqin.

2” ×2” = 4 sqin.

2”×2” = 4 sqin.

2” × 2” = 4 sqin.

2”× 2” = 4 sqin.

2” ×2” = 4 sqin.

2”×2” = 4in2.

What is 1.2 × 3.5?

What is .2 × .5?

What is 1.2×3.5?

What is .2×.5?

What is 1.2’ ×3.5’?

What is .2”× .5”?

1 × $10.00 × -£ 1.23 × ¥20,000 × -¤120.00 × ฿1,000,000 × -€110,00

Ruud's Improvements... : input: | ??*text*?? _person_'s *person*'s "text":http://url/" "text":http://url... *CAPS "text":http://url* "_text_" *- text -* text

person’s

person’s

text

text

CAPS text

text

– text –

<text text

Other Ruud stuff : input : | * ** * item1 expect : |

*

**

Punctuation: input : | Greengrocers' apostrophe's. '"I swear it was in '62, captain," replied I.' Dad said; "Mum said: 'It's a beautiful day viz-a-viz a picnic, isn't it?' -- _I think_." "'I swear it's true, captain,' replied I, 'Here's your list: 2 apples, a banana & a papaya.'" in '88. blah. In the '90s blah. He's in his '90s' now. Happened in '89. in '89 in '89\x20 Happened in '89. it did. File '1.png'. '1.' '1' '10m' '1.txt' NATO(North Atlantic Treaty Organisation)'s pretty big. ABC()'s poor knees. ABC('s poor knees. ABC)'s poor knees. Here is a %(example)'spanned'% word. The NHS(National Health Service)' charter states... expect : |

Greengrocers’ apostrophe’s.

‘“I swear it was in ’62, captain,” replied I.’

Dad said; “Mum said: ‘It’s a beautiful day viz-a-viz a picnic, isn’t it?’ — I think.”

“‘I swear it’s true, captain,’ replied I, ‘Here’s your list: 2 apples, a banana & a papaya.’”

in ’88. blah. In the ’90s blah. He’s in his ‘90s’ now.

Happened in ’89.

in ’89

in ’89

Happened in ’89. it did.

File ‘1.png’. ‘1.’ ‘1’ ‘10m’ ‘1.txt’

NATO’s pretty big.

ABC’s poor knees.

ABC(‘s poor knees.

ABC)’s poor knees.

Here is a ‘spanned’ word.

The NHS’ charter states…

Dashes and ellipsis : notes : | '--' should be replaced with em-dash, ' - ' with en-dash (but not inside another sequence of characters) and '...' with elipsis. input : | You know the Italian proverb -- Chi ha compagno ha padrone. You know the Italian proverb--Chi ha compagno ha padrone. You know the Italian proverb - Chi ha compagno ha padrone. You know the Italian proverb-Chi ha compagno ha padrone. You know the Italian proverb... Chi ha compagno ha padrone. You know the Italian proverb...Chi ha compagno ha padrone. expect : |

You know the Italian proverb — Chi ha compagno ha padrone.

You know the Italian proverb—Chi ha compagno ha padrone.

You know the Italian proverb – Chi ha compagno ha padrone.

You know the Italian proverb-Chi ha compagno ha padrone.

You know the Italian proverb… Chi ha compagno ha padrone.

You know the Italian proverb…Chi ha compagno ha padrone.

Notextile : input : | ==*no* textile== == This text should never, ever, ever, ever, ever be "textiled(tm)"! == But "this(tm)" should be whilst, yet again, >==this(tm)==< should _not_! notextile. * item 1 * item 2 notextile.. *long* *block* expect : |

*no* textile

This text should never, ever, ever, ever, ever be "textiled(tm)"!

But “this™” should be whilst, yet again, >this(tm)< should not!

* item 1 * item 2 *long* *block* Pre-formatted content: input : | pre. *This* _should_ not be parsed. pre.. * item 1 * item 2 * item 3 p. Paragraph.
sdada Link @code@ dadsada
expect : |
*This* _should_ not be parsed.
* item 1
    * item 2

    * item 3

Paragraph.

sdada <a href="link">Link</a> code dadsada
Tricky Open Quotes... : input : | citation ["(Berk.) Hilton"], see [Papers "blah blah."] Hello ("Mum")... Hello ["(mum) & dad"], see... Hello ("[mum] & dad"), see... Hello {"(mum) & dad"}, see... ["Well, well (well)"] ... citation ['(Berk.) Hilton'], see [Papers "blah blah."] Hello ('Mum')... Hello ['(mum) & dad'], see... Hello ('[mum] & dad'), see... Hello {'(mum) & dad'}, see... ['Well, well (well)'] ... expect: |

citation [“(Berk.) Hilton”], see
[Papers “blah blah.”]

Hello (“Mum”)…

Hello [“(mum) & dad”], see…

Hello (“[mum] & dad”), see…

Hello {“(mum) & dad”}, see…

[“Well, well (well)”] …

citation [‘(Berk.) Hilton’], see
[Papers “blah blah.”]

Hello (‘Mum’)…

Hello [‘(mum) & dad’], see…

Hello (‘[mum] & dad’), see…

Hello {‘(mum) & dad’}, see…

[‘Well, well (well)’] …

Headers 1-6 : input : | h1. Heading 1 h2. Heading 2. h3. Heading 3.. h4. Heading 4... h5. Heading 5.... h6. Heading 6..... h1. Two line with *strong* heading h1=. Centered headline expect : |

Heading 1

Heading 2.

Heading 3..

Heading 4…

Heading 5….
Heading 6…..

Two line with strong
heading

Centered headline

Paragraph text : notes : Paragraphs should be properly wrapped in

...

tags and newlines replaced with
tags. input : | A paragraph. Another paragraph. A paragraph with a line break. Here's some bold text. expect : |

A paragraph.

Another paragraph.

A paragraph with
a line break.

Here’s some bold text.

Paragraph with attributes: input : | p(class#id)[en-us]{color: blue;}. (also applied by default) expect : |

(also applied by default)

Paragraphs with alignment : input : | p<. Left-aligned paragraph. p>. Right-aligned paragraph. p<>. Forasmuch as many have taken in hand to set forth in order a declaration of those things which are most surely believed among us, even as they delivered them unto us, which from the beginning were eyewitnesses, and ministers of the word; it seemed good to me also, having had perfect understanding of all things from the very first, to write unto thee in order, most excellent Theophilus, that thou mightest know the certainty of those things, wherein thou hast been instructed. p=. Centered paragraph. p<. Not left-aligned. p>. Not right-aligned. p<>. Not justified. expect : |

Left-aligned paragraph.

Right-aligned paragraph.

Forasmuch as many have taken in hand to set forth in order a declaration of those things which are most surely believed among us, even as they delivered them unto us, which from the beginning were eyewitnesses, and ministers of the word; it seemed good to me also, having had perfect understanding of all things from the very first, to write unto thee in order, most excellent Theophilus, that thou mightest know the certainty of those things, wherein thou hast been instructed.

Centered paragraph.

p<. Not left-aligned.

p>. Not right-aligned.

p<>. Not justified.

Paragraphs with padding : input : | p((((((((((. Left pad 10em. p)). Right pad 2em. p((())). Left and right pad 3em. expect : |

Left pad 10em.

Right pad 2em.

Left and right pad 3em.

Nested block modifiers : input : | _*^Here^ -is a- +are two+ things.*_ A[*bold*]word. End-of-line __italic__. *_^Here^ -is a- +are two+ things._* _*em ^strong^*_ __**??&??**__ *_strong ~em~_* expect: |

Here is a are two things.

Aboldword. End-of-line italic.

Here is a are two things.

em strong & strong em

Spans in table cells : input: | | *strong* | | _em_ | | Inter-word -dashes- | ZIP-codes are 5- or 9-digit codes | Hello ??Github!?? | expect: |
strong
em
Inter-word dashes ZIP-codes are 5- or 9-digit codes Hello Github!
Parenthesised block modifiers : input : | Simple solutions (_*are* the_ best) [for _Komplex(tm)_ people]. Both (*strong*), and (_emphasis_) will be rendered with formatting. Both [[*strong*]], and [[_emphasis_]] will be rendered with formatting. expect : |

Simple solutions (are the best) [for Komplex™ people].

Both (strong), and (emphasis) will be rendered with formatting.

Both [strong], and [emphasis] will be rendered with formatting.

Well formed HTML : notes : Paragraphs that consist entirely of raw XHTML block tags will not be enclosed in

...

tags. input : |
blah
expect : |
blah
Partial XHTML spans : notes: XHTML tags that enclose only part of a block of text will be left intact, BUT the whole block itself will be treated normally. input: | bold and italic, the hard way. expect : |

bold and italic, the hard way.

HTML Comments : input: | Here is some text with a block. bc. expect: |

Here is some text with a block.

<!-- Here is a comment block in a code block. -->
HTML Comments (restricted): setup: setRestricted: true setLite: true setImages: false setLinkRelationShip: nofollow input: | Here is some text with a block. pre. expect: |

Here is some text with a <!— Commented out —> block.

<!— Here is a single <span>line</span> comment block —>

<!— Here is a whole
multiline
<span>HTML</span>
Comment
—>

pre. <!— Here is a comment block in a pre block. —>

URLs as non-links : notes : Straight URL text sequences should not be converted to a hyperlink. input : | http://cnn.com "http://cnn.com" "http://cnn.com(is a website)" expect : |

http://cnn.com

“http://cnn.com”

“http://cnn.com(is a website)”

URI-Schemes : input : | "link with no scheme":textileit.com "link with http":http://textileit.com "link with https":https://textileit.com "link with ftp":ftp://textileit.com "link with ftp alias":uri-alias4 "link with sftp":sftp://foobar@textileit.com "$":sftp://foobar@textileit.com "link with no scheme"://example.com Find it "here":http://github.com/netcarver/some+thing+completely+different on github. "link with sftp alias":uri-alias3 "link with file1":file://host.example.com/folder/file.ext "$":file://host.example.com/folder/file.ext "link with file2":file:///c:/folder/file.ext "link with file alias":uri-alias2 "$":file:///c:/folder/file.ext "link with tel":tel:123123123123123123-123 "$":tel:123123123123123123-123 "int tel":uri-alias1 "link with mailto":mailto:contact+alt@textileit.com "link with mailto alias":uri-alias6 "link with callto":callto:textileit.com "link with callto alias":uri-alias5 "$":callto:textileit.com [uri-alias1]tel:+123-0-123123123-123 [uri-alias2]file:///c:/folder/file.ext [uri-alias3]sftp://foo@bar.net [uri-alias4]ftp://foo@bar.net [uri-alias5]callto:textileit.com [uri-alias6]mailto:contact@textileit.com expect : |

link with no scheme

link with http

link with https

link with ftp

link with ftp alias

link with sftp

foobar@textileit.com

link with no scheme

Find it here on github.

link with sftp alias

link with file1

host.example.com/folder/file.ext

link with file2

link with file alias

/c:/folder/file.ext

link with tel

123123123123123123-123

int tel

link with mailto

link with mailto alias

link with callto

link with callto alias

textileit.com

Self-Hyperlink : notes : A new feature. input : | Relative link to "$":testit.php?testfilename=textile/basic. Relative link to "$":/testit.php?testfilename=textile/basic. Send spam to "$":mailto://blackhole@sun.comet please! An auto-hyperlink to "$":http://mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is -not- possible. An auto-hyperlink (with title) to "$(Comparison of Textile2 and Markdown)":http://mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is -not- possible. An auto-hyperlink (with atts) to "(class#id)[en-au]$(Comparison of Textile2 and Markdown)":http://mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is -not- possible. expect : |

Relative link to testit.php?testfilename=textile/basic.

Relative link to /testit.php?testfilename=textile/basic.

Send spam to blackhole@sun.comet please!

An auto-hyperlink to mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is not possible.

An auto-hyperlink (with title) to mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is not possible.

An auto-hyperlink (with atts) to mojomojo.org/documentation/textile_vs_markdown#Textile2_vs._MultiMarkdown is not possible.

Links : input : | "link text":http://example.com "link text":http://example.com. "link text":http://example.com, "link text":http://example.com? "link text":http://example.com: "link text":http://example.com:80 "link text":http://example.com; "link text":http://example.com| "link text":http://example.com* "link text":http://example.com/ "link text":http://example.com/. "link text":http://example.com/, "link text":http://example.com/? "link text":http://example.com/: "link text":http://example.com/:80 "link text":http://example.com/; "link text":http://example.com/| "link text":http://example.com/* ("link text":http://example.com) ("link text":http://example.com/) (Try "this link":http://example.com/) ("link text":http://example.com/ go go go!) "link text":/example "link text(with title)":http://example.com/ "(this is not a title)":http://example.com/ Here is "a link":0, and "another link":0 to a site. [0]http://thresholdstate.com/ Here is "a link":ts, and "another link":ts to the same site. [ts]http://thresholdstate.com/ "link text(with title)":https://example.com/ "link text(with title)":ftp://example.com/ "link text(with title)":mailto:contact@example.com "(class#id)[de-de]$(title)":http://textpattern.com "(class#id)[en-gb]{text-transform:uppercase}Try this link(Link title)":http://textile.sitemonks.com "(linkclass#linkid)[de-de]!(imgclass#imgid)imgurl(img/link text)!(Link Title)":linkurl "Tcl":../html/tcltk.html "(myclass) (just in case you were wondering)":http://slashdot.org/ "Participar (para) poder":http://www.unicef.org/argentina/spanish/cartilla_3(1).pdf expect : |

link text

link text.

link text,

link text?

link text:

link text

link text;

link text|

link text*

link text

link text.

link text,

link text?

link text:

link text

link text;

link text|

link text*

(link text)

(link text)

(Try this link)

(link text go go go!)

link text

link text

(this is not a title)

Here is a link, and another link to a site.

Here is a link, and another link to the same site.

link text

link text

link text

textpattern.com

Try this link

img/link text

Tcl

(just in case you were wondering)

Participar (para) poder

Unicode Links : input : | "Übermensch":https://de.wikipedia.org/wiki/Übermensch "$":https://de.wikipedia.org/wiki/Übermensch "福島駅":link5 this is a test -- no trailing slash. [link5]http://ja.wikipedia.org/wiki/福島駅_(大阪府) "äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ without trailing slash":link3 [link3]https://en.wikipedia.com/ä/öüÄÖÜßç/éáóúè/àòùÉÁÓÚ/ÈÀÒÙêÊôÔâÂû/ÛåÅœŒæÆøØëËïÏ "äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ without trailing slash":https://en.wikipedia.com/ä/öüÄÖÜßç/éáóúè/àòùÉÁÓÚ/ÈÀÒÙêÊôÔâÂû/ÛåÅœŒæÆøØëËïÏ "福島駅":link6 this is a test -- with a trailing slash. [link6]http://ja.wikipedia.org/wiki/福島駅_(大阪府)/ "äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ with trailing slash":link4 [link4]https://en.wikipedia.com/ä/öüÄÖÜßç/éáóúè/àòùÉÁÓÚ/ÈÀÒÙêÊôÔâÂû/ÛåÅœŒæÆøØëËïÏ/ "äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ with trailing slash":https://en.wikipedia.com/ä/öüÄÖÜßç/éáóúè/àòùÉÁÓÚ/ÈÀÒÙêÊôÔâÂû/ÛåÅœŒæÆøØëËïÏ/ "Google":link1 or "secure google":link2 [link1]http://google.com [link2]https://google.com expect : |

Übermensch

de.wikipedia.org/wiki/Übermensch

福島駅 this is a test — no trailing slash.

äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ without trailing slash

äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ without trailing slash

福島駅 this is a test — with a trailing slash.

äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ with trailing slash

äöüÄÖÜßçéáóúèàòùÉÁÓÚÈÀÒÙêÊôÔâÂûÛåÅœŒæÆøØëËïÏ with trailing slash

Google or secure google

Self-referencing link alias : input : | Here is "$":0, and "another link":0, to the ^["$":0]^ site. [0]http://thresholdstate.com/?q=true Please check on "$":4 for any updates. [4]https://de.wikipedia.org/wiki/Übermensch expect : |

Here is thresholdstate.com/?q=true, and another link, to the thresholdstate.com/?q=true site.

Please check on de.wikipedia.org/wiki/Übermensch for any updates.

Non-whitelisted link schemes : input : | "I'm a bad link":parp://parp.com expect : |

“I’m a bad link”:parp://parp.com

Mixed XHTML and Textile Links : assert : skip notes : > Reported here... http://forum.textpattern.com/viewtopic.php?pid=157506#p157506 input : | example.org _word_ abc expect : |

example.org word abc

Links with quoted text : notes : > Single quotes link text are fine, but double quotes break the link. Use " in this case. input : | "How free markets 'address' health care(title)":http://krugman.blogs.nytimes.com/2009/07/25/why-markets-cant-cure-healthcare/ "How free markets "address" health care(title)":http://krugman.blogs.nytimes.com/2009/07/25/why-markets-cant-cure-healthcare/ expect : |

How free markets ‘address’ health care

How free markets "address" health care

Image : input : | !http://textpattern.com/favicon.ico! !http://textpattern.com/favicon.ico! expect : |

Image in XHTML : setup: setHtmlType: xhtml input : | !http://textpattern.com/favicon.ico! !http://textpattern.com/favicon.ico! expect : |

Relative Images (default) : input : | !https://en.wikipedia.org/favicon.ico! expect : |

setup: setGettingImageSize: true Relative Images (responsive) : input : | !10x10.gif! expect : |

Unicode image src, alt and title : input : | !大阪府.png(大阪府)! expect : |

大阪府

Images with links : input : | Here's the favicon from the TXP(Textpattern) website... !http://textpattern.com/favicon.ico(title text)!:http://textpattern.com Again, this time left aligned. !<(class#id1)http://textpattern.com/favicon.ico(title text)!:http://textpattern.com And again, to the right! !>(class#id2)http://textpattern.com/favicon.ico(title text)!:http://textpattern.com expect : |

Here’s the favicon from the TXP website… title text

Again, this time left aligned. title text

And again, to the right! title text

Embedded acronym inside acronym: input : | Tell me, what is AJAX(Asynchronous Javascript and XML), please? expect : |

Tell me, what is AJAX, please?

Heading with class & id: input: | h2(heading#head). Hello! expect: | Issue 71 - Emphasis: notes : | Tests conversion to apostrophe-s at the end of block modifiers. http://code.google.com/p/textpattern/issues/detail?id=71 input : | _Newsweek_'s a problem. "_Newsweek_'s a problem." "_Newsweek_'s a problem." "_Newsweek_'s" a problem. *Newsweek*'s a problem. "*Newsweek*'s a problem." "*Newsweek*'s a problem." "*Newsweek*'s" a problem. "*Newsweek*'s" a problem. -Newsweek-'s a problem. expect: |

Newsweek’s a problem.

Newsweek’s a problem.”

Newsweek’s a problem.”

Newsweek’s” a problem.

Newsweek’s a problem.

Newsweek’s a problem.”

Newsweek’s a problem.”

Newsweek’s” a problem.

Newsweek’s”
a problem.

Newsweek’s a problem.

Single quotes 1: input : | 'Here is a quote!' 'Here is another quote!' expect: |

‘Here is a quote!’

‘Here is another
quote!’

Single quotes enclosing normal apostrophes 1: input : | 'Here's a quote!' 'Here's another quote!' expect: |

‘Here’s a quote!’

‘Here’s another
quote!’

Single quotes enclosing normal apostrophes + emphasis: input : | 'Here's a _quote_!' 'Here's a _quote_!' expect: |

‘Here’s a quote!’

‘Here’s a
quote!’

Single quotes enclosing italic apostrophes: input : | '__Here__'s a quote!' '__Here__'s a quote!' expect: |

Here’s a quote!’

Here’s
a quote!’

Link in quotes. : input : | "Here's a "(class#id)link(with a title)":http://cnn.com?a=b&c=d#end_of_page." expect : |

“Here’s a link.”

Double quotes enclosing spans: input : | "Here's another one" Well "%here's another one%" Well "%+here+'s another one%" Well "%*here*'s another one%" Well "%_here_'s another one%" Well "%(class#id)_here_'s another one%" Well "%(class#id)_here_'s -yet _**another**_ ^example^ ~of~- *one*'s% "results":http://cnn.com. Howzat!" With "some *^more^* results":http://cnn.com "Should _Newsweek_'s editor be spared?" expect: |

“Here’s another one”

Well “here’s another one

Well “here’s another one

Well “here’s another one

Well “here’s another one

Well “here’s another one

Well “here’s yet another example of one’s results. Howzat!” With some more results

“Should Newsweek’s editor be spared?”

Single quotes or apostrophe? : input : | 'should this quote start with an apostrophe?' '"s" is my favourite letter!' expect: |

‘should this quote start with an apostrophe?’

‘“s” is my favourite letter!’

Foreign character and quote support : input : | Ou est l'école, l'église s'il vous plâit? I like l'entrées. Do you? «Bonjour!» ecris Christophe. «Est-ce-que tu un petit café», he asked somewhat confusingly. SÆLGES d'être expect : |

Ou est l’école, l’église s’il vous plâit?

I like l’entrées. Do you?

«Bonjour!» ecris Christophe. «Est-ce-que tu un petit café», he asked somewhat confusingly.

SÆLGES d’être

Code blocks, pre and exclusions : input : | bc(input). You can't _*touch*_ *_this_*... Hammer time. And keep your @(expect)mitts _*off*_ *_me_*@ as well. About the @
@ tag. bc(block).. As for the stuff in my *bold*, _emphasised_ & __italic__ codeblock, I think you'll find these tags entertaining:
bc.. Code block with three empty lines p(regular#somestuff). _Aaaand_, *__relax__*. bc.. Paragraph 1 Paragraph 2 Paragraph 3 expect : |
You can't _*touch*_ *_this_*... Hammer time.

And keep your (expect)mitts _*off*_ *_me_* as well. About the <hr /> tag.

As for the stuff in my *bold*, _emphasised_ & __italic__ codeblock, I think you'll find these tags entertaining:
    <txp:linklist />
    <txp:image_list category="squid">
    <txp:image class="prawns" something="summat else" />
    <br />
    <txp:image_info type="caption" />
    </txp:category>
Code block



    with three empty lines

Aaaand, relax.

Paragraph 1

    Paragraph 2

    Paragraph 3
Basic span modifiers & glyphs: input: | This is the "start" and 'end'; and I'm stuck in '88!: With smd_g4llery's attributes where hëll_won't__fr33ze_over if I use apostrophes inside odd words and_underscores (Pah). expect: |

This is the “start” and ‘end’; and I’m stuck in ’88!: With smd_g4llery’s attributes where hëll_won’t__fr33ze_over if I use apostrophes inside odd words and_underscores (Pah).

In-line citations : input : | A ??(myclass#myid4){color:green}[de-de]complex?? phrase. expect : |

A complex phrase.

Square-brackets : input : | 1[^st^], 2[^nd^], 3[^rd^]. 2 log[~n~] A close[!http://textpattern.com/favicon.ico!]image. A tight["text":http://textpattern.com/]link. A ["footnoted link":http://textpattern.com/][182]. expect : |

1st, 2nd, 3rd. 2 logn

A closeimage.
A tighttextlink.
A footnoted link182.

Issue 50 Bust-a-quotes: assert: skip notes: > This is issue 50 in the code tracker. However, I don't think this is valid textile as it's a mix of XHTML and textile smartquotes. If this is fully XHMTL, character entities should be used at the start and end of the string. If it's textile, then it should be "%[en]test%" or %[en]"test"%. input: | "test" expect: |

test

Issue 50 Fixes: notes: > Here are the possible rewrites for issue 50 that give the results the issue author was expecting. input: | “test” "%[en]test%" expect: |

test

test

Issue 1 ... Bold it - it bold : input: | Some italic bold _*aaaa*_ text? Some bold italic *_bbbb_* text? expect: |

Some italic bold aaaa text? Some bold italic bbbb text?

Make sure these don't get turned into lists... : input: | *Here is a comment* Here is *(class)a comment* *(class)Here is a class* that is a little extended and is *followed* by a strong word! bc. ; Content-type: text/javascript ; Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0 ; Expires: Sat, 24 Jul 2003 05:00:00 GMT ; Last-Modified: Wed, 1 Jan 2025 05:00:00 GMT ; Pragma: no-cache *123 test* *test 123* **123 test** **test 123** expect: |

Here is a comment

Here is a comment

Here is a class that is a little extended and is
followed by a strong word!

; Content-type: text/javascript
    ; Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0
    ; Expires: Sat, 24 Jul 2003 05:00:00 GMT
    ; Last-Modified: Wed, 1 Jan 2025 05:00:00 GMT
    ; Pragma: no-cache

123 test

test 123

123 test

test 123

Basic Ordered List: setup: setHtmlType: xhtml input: | # Ordered # List # Live ## Including some newline ## And underlings # ... aaaaand back out p. And here we are with some _(alt)Other colours_ # red ## greeny browny pinkish ## black # blue expect: |
  1. Ordered
  2. List
  3. Live
    1. Including
      some newline
    2. And underlings
  4. … aaaaand back out

And here we are with some Other colours

  1. red
    1. greeny
      browny
      pinkish
    2. black
  2. blue
Ordered Lists: input: | test #_(first#list) one # two # three test #(ordered#list2). # one # two # three test #_(class_4). # four # five # six test #_ seven # eight # nine test # one # two # three test #22 22 # 23 # 24 expect: |

test

  1. one
  2. two
  3. three

test

  1. one
  2. two
  3. three

test

  1. four
  2. five
  3. six

test

  1. seven
  2. eight
  3. nine

test

  1. one
  2. two
  3. three

test

  1. 22
  2. 23
  3. 24
Multi-level ordered list with continuation: input: | test # one ##3 one.three ## one.four ## one.five # two test #_(continuation#section2). # three # four ##_ four.six ## four.seven # five test #21 twenty-one # twenty-two expect: |

test

  1. one
    1. one.three
    2. one.four
    3. one.five
  2. two

test

  1. three
  2. four
    1. four.six
    2. four.seven
  3. five

test

  1. twenty-one
  2. twenty-two
Basic Unordered lists: input: | h3. How about some unordered goodness? *(class) Bullet * List * Here ** With ** Subs * and regulars _colours_ * yellow * cyan expect: |

How about some unordered goodness?

  • Bullet
  • List
  • Here
    • With
    • Subs
  • and regulars

colours

  • yellow
  • cyan
Mixed lists: input : | test * bullet *# number *# number *#* bullet *# number *# number with a break * bullet ** okay expect : |

test

  • bullet
    1. number
    2. number
      • bullet
    3. number
    4. number with
      a break
  • bullet
    • okay
Issue 61... Spans in tables : input : | |_. Super |_. Fly |_. Table | | first | ICL | 3 | | second | IBM | 4 | | third | Ordinary | 5 | | fourth | Foreign EXPÓŅÉNTIAL | 6 | expect : |
Super Fly Table
first ICL 3
second IBM 4
third Ordinary 5
fourth Foreign EXPÓŅÉNTIAL 6
Table alignments: input: | |_. attribute list | |<. align left | |>. align right| |=. center | |<>. justify me| |^. valign top | |~. bottom | |_=. Grade |_=. Homeroom |_=. Type |_=. Tardy/Dismiss Time |_=. Student | |=. 6 | Bates | Absent |=. - | Jones, Jeanne | |=. 6 | O'Leary | Absent |=. - | Jones, Jackson | |=. 7 | Garran | Absent |=. - | Jones, Lauren | |=. 7 | Martin | Absent |=. - | Jones, Timothy | |=. 7 | Martin | Tardy |=. 10:00 | Jones, John-Paul | |=. 8 | Kast | Absent |=. - | Jones, Samuel | |=. 8 | Woods | Absent |=. - | Jones, Evelyn | expect: |
attribute list
align left
align right
center
justify me
valign top
bottom
Grade Homeroom Type Tardy/Dismiss Time Student
6 Bates Absent - Jones, Jeanne
6 O’Leary Absent - Jones, Jackson
7 Garran Absent - Jones, Lauren
7 Martin Absent - Jones, Timothy
7 Martin Tardy 10:00 Jones, John-Paul
8 Kast Absent - Jones, Samuel
8 Woods Absent - Jones, Evelyn
Table colgroups and captions: input : | |=. Testing colgroup and col syntax |:\5. 80 |a|b|c|d|e| |=. Testing colgroup and col syntax| |:\5. 80| |a|b|c|d|e| |=. Testing colgroup and col syntax\x20 |:\5. 80\x20 |a|b|c|d|e| |=. Testing colgroup and col syntax|\x20 |:\5. 80|\x20 |a|b|c|d|e| |=. Testing colgroup and col syntax |\x20 |:\5. 80 |\x20 |a|b|c|d|e|\x20 expect : |
Testing colgroup and col syntax
a b c d e
Testing colgroup and col syntax
a b c d e
Testing colgroup and col syntax
a b c d e
Testing colgroup and col syntax
a b c d e
Testing colgroup and col syntax
a b c d e
Complex table with row- and col-spans: input: | h4. A more complicated table table(tableclass#tableid){color:blue}. |_. table |_. more |_. badass | |\3. Horizontal span of 3| (firstrow). |first|HAL(open the pod bay doors)|1| |some|{color:green}. styled|content| |/2. spans 2 rows|this is|quite a| | deep test | don't you think?| (lastrow). |fifth|I'm a lumberjack|5| |sixth| _*bold italics*_ |6| expect : |

A more complicated table

table more badass
Horizontal span of 3
first HAL 1
some styled content
spans 2 rows this is quite a
deep test don’t you think?
fifth I’m a lumberjack 5
sixth bold italics 6
Lists in tables: input: | |* Foo[^2^] * _bar_ * ~baz~ | |#4 *Four* # __Five__ | |-(hot) coffee := Hot and black -(hot#tea) tea := Also hot, but a little less black -(cold) milk :=\x20 Nourishing beverage for baby cows. Cold drink that goes great with cookies. =: | |* bullet *# number *# number *#* bullet *# number *# number with a break * bullet ** okay | expect: |
  • Foo2
  • bar
  • baz
  1. Four
  2. Five
coffee
Hot and black
tea
Also hot, but a little less black
milk

Nourishing beverage for baby cows.
Cold drink that goes great with cookies.

  • bullet
    1. number
    2. number
      • bullet
    3. number
    4. number with
      a break
  • bullet
    • okay
Simple Definition lists: input: | ;(class#id) Term 1 : Def 1 : Def 2 : Def 3 expect: |
Term 1
Def 1
Def 2
Def 3
Redcloth Definition list: input: | -(hot) *coffee* := Hot _and_ black -(hot#tea) tea := Also hot, but a little less black -(cold) milk := Nourishing beverage for baby cows. Cold drink that goes great with cookies. =: -(hot) coffee := Hot and black -(hot#tea) tea := Also hot, but a little less black -(cold) milk :=\x20 Nourishing beverage for baby cows. Cold drink that goes great with cookies. =: - term := you can have line breaks just like other lists - line-spanning term := hey, slick! You can have multiple terms before a definition: - textile - fabric - cloth := woven threads expect: |
coffee
Hot and black
tea
Also hot, but a little less black
milk
Nourishing beverage for baby cows.
Cold drink that goes great with cookies.
coffee
Hot and black
tea
Also hot, but a little less black
milk

Nourishing beverage for baby cows.
Cold drink that goes great with cookies.

term
you can have line breaks
just like other lists
line-spanning
term
hey, slick!

You can have multiple terms before a definition:

textile
fabric
cloth
woven threads
Complex definition list: input: | h2. A definition list ;(class#id) Term 1 : Def 1 : Def 2 : Def 3 ;; Center ;; NATO(Why Em Cee Ayy) :: Subdef 1 :: Subdef 2 ;;; SubSub Term ::: SubSub Def 1 ::: SubSub Def 2 ::: Subsub Def 3 With newline ::: Subsub Def 4 :: Subdef 3 : DEF 4 ; Term 2 : Another def : And another : One more :: A def without a term :: More defness ; Third term for good measure : My definition of a boombastic jazz expect: |

A definition list

Term 1
Def 1
Def 2
Def 3
Center
NATO
Subdef 1
Subdef 2
SubSub Term
SubSub Def 1
SubSub Def 2
Subsub Def 3
With newline
Subsub Def 4
Subdef 3
DEF 4
Term 2
Another def
And another
One more
A def without a term
More defness
Third term for good measure
My definition of a boombastic jazz
1-line blockquote : input : | bq. Don't suck the brown stuff off of 2 pence coins; it ain't chocolate. expect : |

Don’t suck the brown stuff off of 2 pence coins; it ain’t chocolate.

1-line blockquote 2: input : | bq. Don't suck the **brown stuff(tm)** off of "2 pence":http://royalmint.gov.uk coins; it ain't chocolate. expect : |

Don’t suck the brown stuff™ off of 2 pence coins; it ain’t chocolate.

n-line blockquote: input : | bq.. Don't suck the **brown stuff(tm)** off of "2 pence":http://royalmint.gov.uk coins; it ain't chocolate. p. That's all. expect : |

Don’t suck the brown stuff™ off of 2 pence coins; it ain’t chocolate.

That’s all.

Blockquote with citation source : input : | bq.:http://textism.com/ Text... expect : |

Text…

All capitals comment post : input : | HELLO, I SEE YOU DON'T LIKE PEOPLE TO SHOUT. WHY? expect : |

HELLO, I SEE YOU DON’T LIKE PEOPLE TO SHOUT. WHY?

New tables : input : | |=(#captionola). My boombastic table caption. It must appear before the first thead/row |^. |_. thead-wrapped |_. column | |~(footjob). | tfoot-wrapped | column | |-. | tbody-wrapped | column | | some more | columny goodness | (colourful). | yet more | colourful rows | | nothing much | here | |-(nursery#rhyme). | if we go down |=. to the woods today | | we're sure of a | big surprise | expect : |
My boombastic table caption. It must appear before the first thead/row
thead-wrapped column
tfoot-wrapped column
tbody-wrapped column
some more columny goodness
yet more colourful rows
nothing much here
if we go down to the woods today
we’re sure of a big surprise
Simple table with newline in a cell: setup: setHtmlType: xhtml input: | |_. Attribute |_. Default Value |_. Description | | 'order' |=. 'cdo' | Optional: order of sections. Omit or leave blank for default copyright-date-owner order. Valid values: 'cdo', 'cod' | expect: |
Attribute Default Value Description
‘order’ ‘cdo’ Optional: order of sections. Omit or leave blank for default copyright-date-owner order.
Valid values: ‘cdo’, ‘cod’
Tables with styles: input: | table(#dvds){border-collapse:collapse}. Great films on DVD employing Textile summary, caption, thead, tfoot, two tbody elements and colgroups |={font-size:140%;margin-bottom:15px}. DVDs with two Textiled tbody elements |:\3. 100 |{background:#ddd}|250||50|300| |^(header). |_. Title |_. Starring |_. Director |_. Writer |_. Notes | |~(footer). |\5=. This is the tfoot, centred | |-(toplist){background:#c5f7f6}. | _The Usual Suspects_ | Benicio Del Toro, Gabriel Byrne, Stephen Baldwin, Kevin Spacey | Bryan Singer | Chris McQaurrie | One of the finest films ever made | | _Se7en_ | Morgan Freeman, Brad Pitt, Kevin Spacey | David Fincher | Andrew Kevin Walker | Great psychological thriller | | _Primer_ | David Sullivan, Shane Carruth | Shane Carruth | Shane Carruth | Amazing insight into trust and human psychology
rather than science fiction. Terrific! | | _District 9_ | Sharlto Copley, Jason Cope | Neill Blomkamp | Neill Blomkamp, Terri Tatchell | Social commentary layered on thick, but boy is it done well | |-(medlist){background:#e7e895;}. | _Arlington Road_ | Tim Robbins, Jeff Bridges | Mark Pellington | Ehren Kruger | Awesome study in neighbourly relations | | _Phone Booth_ | Colin Farrell, Kiefer Sutherland, Forest Whitaker | Joel Schumacher | Larry Cohen | Edge-of-the-seat stuff in this short but brilliantly executed thriller | expect: |
DVDs with two Textiled tbody elements
Title Starring Director Writer Notes
This is the tfoot, centred
The Usual Suspects Benicio Del Toro, Gabriel Byrne, Stephen Baldwin, Kevin Spacey Bryan Singer Chris McQaurrie One of the finest films ever made
Se7en Morgan Freeman, Brad Pitt, Kevin Spacey David Fincher Andrew Kevin Walker Great psychological thriller
Primer David Sullivan, Shane Carruth Shane Carruth Shane Carruth Amazing insight into trust and human psychology
rather than science fiction. Terrific!
District 9 Sharlto Copley, Jason Cope Neill Blomkamp Neill Blomkamp, Terri Tatchell Social commentary layered on thick,
but boy is it done well
Arlington Road Tim Robbins, Jeff Bridges Mark Pellington Ehren Kruger Awesome study in neighbourly relations
Phone Booth Colin Farrell, Kiefer Sutherland, Forest Whitaker Joel Schumacher Larry Cohen Edge-of-the-seat stuff in this
short but brilliantly executed thriller
Basic footref & footnote: notes: | Standard footrefs and footnotes from textile 2.0. The textile tester removes the random ID from the text returned by textile in this test. This allows the rest of the output to be tested. input: | See[1] for details -- or perhaps[100] at a push. fn1. Here are the details. fn100(footy#otherid). A totally unrelated footnote. expect : |

See1 for details — or perhaps100 at a push.

1 Here are the details.

100 A totally unrelated footnote.

Cross linked footref and footnote : notes : | Uses the '^' modifier on the footnote to turn on reverse linking to the *first* use of the corresponding reference The textile tester removes the random ID from the text returned by textile in this test. This allows the rest of the output to be tested. input : | See[2] for details, and later, reference it again[2]. fn2^(footy#otherid)[en]. Here are the details. expect : |

See2 for details, and later, reference it again2.

2 Here are the details.

Unlinked footref and footnote : notes : | Uses the '!' modifier on the footref to turn off linking to the footnote The textile tester removes the random ID from the text returned by textile in this test. This allows the rest of the output to be tested. input : | See[3!] for details. fn3. Here are the details. expect : |

See3 for details.

3 Here are the details.

Backlinked footref to footnote : notes : | Uses the '!' modifier on the footref to turn off linking to the footnote Uses the '^' modifier on the footnote to turn on reverse linking to the *first* use of the corresponding reference The textile tester removes the random ID from the text returned by textile in this test. This allows the rest of the output to be tested. input : | See[4!] for details. fn4^. Here are the details. expect : |

See4 for details.

4 Here are the details.

Simple Note Links: input: | Scientists say[#lavader] the moon is quite small. But I, for one, don't believe them. Others claim it to be made of cheese[#aardman]. If this proves true I suspect we are in for troubled times[#apollo13] as people argue over their "share" of the moon's cheese. In the end, its limited size[#lavader] may prove problematic. note#lavader(noteclass). "Proof of the small moon hypothesis":http://antwrp.gsfc.nasa.gov/apod/ap080801.html. Copyright(c) Laurent Laveder note#aardman(#noteid). "Proof of a cheese moon":http://www.imdb.com/title/tt0104361 note#apollo13. After all, things do go "wrong":http://en.wikipedia.org/wiki/Apollo_13#The_oxygen_tank_incident. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}:§^. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}:‡. notelist!. expect: |

Scientists say1 the moon is quite small. But I, for one, don’t believe them. Others claim it to be made of cheese2. If this proves true I suspect we are in for troubled times3 as people argue over their “share” of the moon’s cheese. In the end, its limited size1 may prove problematic.

  1. a b Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. a Proof of a cheese moon
  3. a After all, things do go wrong.
  1. § Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. § Proof of a cheese moon
  3. § After all, things do go wrong.
  1. Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. Proof of a cheese moon
  3. After all, things do go wrong.
  1. Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. Proof of a cheese moon
  3. After all, things do go wrong.
Links from already encoded URL: input: | French "Cheeses":https://en.wikipedia.org/wiki/Appellation_d%27Origine_Contr%C3%B4l%C3%A9e expect: |

French Cheeses

Note Links.: input: | Scientists say[#lavader] the moon is quite small. But I, for one, don't believe them. Others claim it to be made of cheese[#aardman]. If this proves true I suspect we are in for troubled times[#apollo13] as people argue over their "share" of the moon's cheese. In the end, its limited size[#lavader] may prove problematic. note#lavader. "Proof of the small moon hypothesis":http://antwrp.gsfc.nasa.gov/apod/ap080801.html. Copyright(c) Laurent Laveder note#aardman. "Proof of a cheese moon":http://www.imdb.com/title/tt0104361 note#apollo13. After all, things do go "wrong":http://en.wikipedia.org/wiki/Apollo_13#The_oxygen_tank_incident. h2. Here are my references. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}. expect: |

Scientists say1 the moon is quite small. But I, for one, don’t believe them. Others claim it to be made of cheese2. If this proves true I suspect we are in for troubled times3 as people argue over their “share” of the moon’s cheese. In the end, its limited size1 may prove problematic.

Here are my references.

  1. a b Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. a Proof of a cheese moon
  3. a After all, things do go wrong.
Unlinked Note References with backlinked and unreferenced defs.: input: | Scientists say[#lavader!] the moon is quite small. But I, for one, don't believe them. Others claim it to be made of cheese[#aardman!]. If this proves true I suspect we are in for troubled times[#apollo13!] as people argue over their "share" of the moon's cheese. In the end, its limited size[#lavader!] may prove problematic. note#unused. An unreferenced note. note#lavader^. "Proof of the small moon hypothesis":http://antwrp.gsfc.nasa.gov/apod/ap080801.html. Copyright(c) Laurent Laveder note#aardman^. "Proof of a cheese moon":http://www.imdb.com/title/tt0104361 note#apollo13^. After all, things do go "wrong":http://en.wikipedia.org/wiki/Apollo_13#The_oxygen_tank_incident. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}:α!+. expect: |

Scientists say1 the moon is quite small. But I, for one, don’t believe them. Others claim it to be made of cheese2. If this proves true I suspect we are in for troubled times3 as people argue over their “share” of the moon’s cheese. In the end, its limited size1 may prove problematic.

  1. α Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. α Proof of a cheese moon
  3. α After all, things do go wrong.
  4. An unreferenced note.
Malformed notelist : input: | Scientists say[#lavader] the moon is quite small. But I, for one, don't believe them. Others claim it to be made of cheese[#aardman]. If this proves true I suspect we are in for troubled times[#apollo13!] as people argue over their "share" of the moon's cheese. In the end, its limited size[#lavader] may prove problematic. note#unused An unreferenced note. note#lavader^ "Proof of the small moon hypothesis":http://antwrp.gsfc.nasa.gov/apod/ap080801.html. Copyright(c) Laurent Laveder note#aardman^ "Proof of a cheese moon":http://www.imdb.com/title/tt0104361 note#apollo13^ After all, things do go "wrong":http://en.wikipedia.org/wiki/Apollo_13#The_oxygen_tank_incident. notelist{padding:1em;margin:1em;border-bottom:1px solid gray}:α!+ expect: |

Scientists say1 the moon is quite small. But I, for one, don’t believe them. Others claim it to be made of cheese2. If this proves true I suspect we are in for troubled times3 as people argue over their “share” of the moon’s cheese. In the end, its limited size1 may prove problematic.

  1. α Proof of the small moon hypothesis. Copyright© Laurent Laveder
  2. α Proof of a cheese moon
  3. α After all, things do go wrong.
  4. An unreferenced note.
Empty notelist : input : | There should be nothing below. notelist. expect : |

There should be nothing below.

Undefined note : input : | Paragraph with a note[#note] and more, but no definition. notelist. expect : |

Paragraph with a note1 and more, but no definition.

  1. a Undefined Note [#note].
Issue 72 - spans around foreign chars : input : | *W skład zestawu wchodzą*: *W skład zestawu wchodzą*:\x20 expect : |

W skład zestawu wchodzą:

W skład zestawu wchodzą:

Textile comments : input : | ###. Here's a comment. h3. Hello ###. And another one. Goodbye. expect : |

Hello

Goodbye.

Smileys still smileys? : setup: setHtmlType: xhtml notes : Make sure smileys don't get recognised as a definition list. input : | :( :) :(\x20 :(\x20 :(\x20 :)\x20 Pinocchio! :^) Baboon! :=) Wink! ;) :[\x20 :] ;( something dark side :)\x20 ;(c)[de] Item expect : |

:(

:)

:(
:(
:(
:)

Pinocchio!
:^)

Baboon!
:=)

Wink!
;)

:[
:]

;(
something
dark side
:)

Item
Styles on phrase modifiers : input: | ~{text-align:right;}My text~ %{text-align:right;}My text% ^{text-align:right;}My text^ ??{text-align:right;}My text?? *{text-align:right;}My text* **{text-align:right;}My text** -{text-align:right;}My text- +{text-align:right;}My text+ _{text-align:right;}My text_ __{text-align:right;}My text__ @{text-align:right;}My text@ _{content:大阪府;}Unicode style_ expect: |

My text

My text

My text

My text

My text

My text

My text

My text

My text

My text

{text-align:right;}My text

Unicode style

Classes/ids/langs on phrase modifiers : input: | ~(c#id)[en]My text~ %(c#id)[En]My text% ^(c#id)[EN]My text^ ??(c#id)[en-gb]My text?? *(c#id)[en-GB]My text* **(c#id)[en-Gb]My text** -(c#id)[ENG]My text- +(c#id)[eng]My text+ _(c#id)[kjwwef89]My text_ __(c#id)[12]My text__ @(c#id)[Whatever]My text@ expect: |

My text

My text

My text

My text

My text

My text

My text

My text

My text

My text

(c#id)[Whatever]My text

Classes/ids/langs on phrase modifiers (restricted) : setup: setRestricted: true setLite: true setImages: false setLinkRelationShip: nofollow input: | ~(c#id)[en]My text~ %(c#id)[En]My text% ^(c#id)[EN]My text^ ??(c#id)[en-gb]My text?? *(c#id)[en-GB]My text* **(c#id)[en-Gb]My text** -(c#id)[ENG]My text- +(c#id)[eng]My text+ _(c#id)[kjwwef89]My text_ __(c#id)[12]My text__ @(c#id)[Whatever]My text@ expect: |

My text

My text

My text

My text

My text

My text

My text

My text

My text

My text

@(c#id)[Whatever]My text@

Github Issue 50 (en-dash & strike) : setup: setHtmlType: xhtml input: | fjfhfjhf fhfhfh xyz - fjfhfjhf - fhfhfh - xyz a -b- a -b-\x20 a - b a -b a- b a-b -b a- b a - b a -\x20 b expect: |

fjfhfjhf
fhfhfh
xyz

- fjfhfjhf
- fhfhfh
- xyz

a b
a b
a – b
a -b
a- b
a-b
-b
a-
b
a -
b
a –
b

Tight tables... : input: | Tables containing other textile elements. |.244 x -.123 = ?| |@Don't _touch_ this!@| @Don't _touch_ this!@ | |==Don't _touch_ this!==| ==Don't _touch_ this!== | |You _can_ touch this!| You _can_ touch this! | |_touch_ this!| _touch_ this! | |^superscripted^| ^superscripted^ | |~subscripted~| ~subscripted~ | |*strong*| *strong* | |!http://tester.local/logo.png!| !http://tester.local/logo.png! | |"$":https://github.com/netcarver/textile| "$":https://github.com/netcarver/textile | | This | is | a | row | * with a list * inside it | |This|is|a|row|* with a list * inside it| expect: |

Tables containing other textile elements.

.244 × -.123 = ?
Don't _touch_ this! Don't _touch_ this!
Don't _touch_ this! Don't _touch_ this!
You can touch this! You can touch this!
touch this! touch this!
superscripted superscripted
subscripted subscripted
strong strong
github.com/netcarver/textile github.com/netcarver/textile
This is a row
  • with a list
  • inside it
This is a row
  • with a list
  • inside it
Empty things... : input: | '' "" %% ^^ && ** __ -- ++ ~~ {} [] () <> \\ // ?? == @@ ## $$ !! :: ;; .. ,, || ` ` ' ' " " % % ^ ^ & & * * _ _ - - + + ~ ~ { } [ ] ( ) < > \ \ / / ? ? = = @ @ # # $ $ ! ! : : ; ; . . , , expect: |

‘’

“”

%%

^^

&&

**

__

++

~~

{}

[]

()

<>

\\

//

??

==

##

$$

!!

::

;;

..

,,

` `

‘ ‘

“ “

% %

^ ^

& &

  • *

_ _

- -

+ +

~ ~

{ }

[ ]

( )

< >

\ \

/ /

? ?

= =

  1. #

$ $

! !

:
;

. .

, ,

Restricted mode security filtering mode with default options : setup: setRestricted: true setLite: true setImages: false setLinkRelationShip: nofollow input : | !10x10.gif! "bad protocol":file://local/file "javascript link":javacript:window.alert() "nofollow":http://example.com notextile. <{> !http://example.com/.png! "test":link1 [link1]http://example.com/ expect : |

!10×10.gif!

“bad protocol”:file://local/file

“javascript link”:javacript:window.alert()

nofollow

notextile. <iframe src=“xss/attempt”></iframe><&#123><script>window.alert(‘success’)</script>

!http://example.com/<script>window.alert(“Hello World!”);</script>.png!

test

<!— <a href=”#”>HTTML comment</a> —>

Token references : input : | Hello textileopentag0000000001z World! Try looking up textileRef:0000:84712874324. expect : |

Hello textileopentag0000000001z World!

Try looking up textileRef:0000:84712874324.

Link and image encoding : input : | !http://example.com/?size=60&file=image.png! !http://example.com/needs<&"encoding.png! "Requires encoding":http://example.com/?foo&bar "Entity is merely part of text":http://example.com/?foo&bar "In path component":http://example.com/&.html expect : |

Requires encoding

Entity is merely part of text

In path component