From bca06f1ec361537c4c7f1368ca8838be2940dafe Mon Sep 17 00:00:00 2001
From: murphy A) string(single) string(paragraph. Followed) string(by) string(another. A single paragraph. Followed by another. I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant. I saw a ship. It ate my elephant. I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant. When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you… I saw a ship. It ate my elephant. When the elephant comes to take a p. you… I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant. I saw a ship. It ate my elephant. I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant. When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you… I saw a ship. It ate my elephant. When the elephant comes to take a p. you… I) string(am) string(very) string(serious. I am very serious. I) string(spoke. I spoke. I) string(spoke.)
- string(And) string(none) string(replied. I spoke.)
+ string(And none replied. “Observe!” “I) string(first) string(learned) string(about) string(this) string(thing) string(called) variable(“Redcloth”) string(several) string(years) string(ago. “It’s) string(wonderful.” “I first learned about this thing called “Redcloth” several years ago. “It’s wonderful.” Observe—very nice! Observe — very nice! An emdash indicates a parenthetical thought—like this one—which is set apart from the rest of a sentence.)
- string(
)
-tag(---)
+head
key(name)operator(:) string(extended blockquote containing block start)
key(in)operator(:) string(|-)
- string(bq..) string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(bq.. I saw a ship. It ate my elephant.)
- string(When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you...)
+ string(When the elephant comes to take a p. you...)
key(html)operator(:) string(|-)
string()
- string(
)
-tag(---)
+head
key(name)operator(:) string(notextile block containing block start)
key(in)operator(:) string(|-)
- string(notextile.) string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(notextile. I saw a ship. It ate my elephant.)
key(html)operator(:) string(|-)
- string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(I saw a ship. It ate my elephant.)
key(valid_html)operator(:) string(false)
-tag(---)
+head
key(name)operator(:) string(extended notextile block containing block start)
key(in)operator(:) string(|-)
- string(notextile..) string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(notextile.. I saw a ship. It ate my elephant.)
- string(When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you...)
+ string(When the elephant comes to take a p. you...)
key(html)operator(:) string(|-)
- string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(I saw a ship. It ate my elephant.)
- string(When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you...)
+ string(When the elephant comes to take a p. you...)
key(valid_html)operator(:) string(false)
-tag(---)
+head
key(name)operator(:) string(pre block containing block start)
key(in)operator(:) string(|-)
- string(pre.) string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(pre. I saw a ship. It ate my elephant.)
key(html)operator(:) string(|-)
- string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.
)
-tag(---)
+ string(I saw a ship. It ate my elephant.
)
+head
key(name)operator(:) string(extended pre block containing block start)
key(in)operator(:) string(|-)
- string(pre..) string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.)
+ string(pre.. I saw a ship. It ate my elephant.)
- string(When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you...)
+ string(When the elephant comes to take a p. you...)
key(html)operator(:) string(|-)
- string(I) string(saw) string(a) string(ship.) string(It) string(ate) string(my) string(elephant.
)
+ string(I saw a ship. It ate my elephant.
)
- string(When) string(the) string(elephant) string(comes) string(to) string(take) string(a) string(p.) string(you…
)
- string(---)
+ string(When the elephant comes to take a p. you…
)
+ string(--- )
key(name)operator(:) string(html tags)
key(desc)operator(:) string(You can certainly use HTML tags inside your Textile documents. HTML will only be escaped if it’s found in a pre or code block.)
key(in)operator(:) string(|-)
- string(I) string(am) string(very) string(serious.)
+ string(I am very serious.)
string()
- string(I) string(am) string(very) string(serious.)
+ string(I am very serious.)
string(
)
key(html)operator(:) string(|-)
- string()
- string(I) string(am) variable(<b>very</b>) string(serious.)
+ string(I am <b>very</b> serious.)
string(
)
-tag(---)
+head
key(name)operator(:) string(line breaks)
key(desc)operator(:) string(Line breaks are converted to HTML breaks.)
key(in)operator(:) string(|-)
- string(I) string(spoke.)
- string(And) string(none) string(replied.)
+ string(I spoke.)
+ string(And none replied.)
key(html)operator(:) string(|-)
- string(
)
- string(And) string(none) string(replied.
)
+ string(And none replied.
)
- string(And) string(none) string(replied.)
-tag(---)
+ string(I spoke.
)
+ string(And none replied.)
+head
key(name)operator(:) string(curly quotes)
key(desc)operator(:) string(Single- and double-quotes around words or phrases are converted to curly quotations, much easier on the eye.)
-key(in)operator(:) string("\\"Observe!\\"")
+key(in)operator(:) string
An emdash indicates a parenthetical thought — like this one — which is set apart from the rest of a sentence.
") -key(latex)operator(:) string("An emdash indicates a parenthetical thought --- like this one --- which is set apart from the rest of a sentence.\\n\\n") -tag(---) +key(html)operator(:) stringObserve – tiny and brief.
) -key(latex)operator(:) string("Observe--tiny and brief.\\n\\n") -tag(---) +key(latex)operator(:) stringObserve the nicely-done hyphen.
) -tag(---) +head key(name)operator(:) string(ellipses) key(desc)operator(:) string(Triplets of periods become an ellipsis.) key(in)operator(:) string(Observe...) key(html)operator(:) string(Observe…
) key(lite_mode_html)operator(:) string(Observe…) -tag(---) +head key(name)operator(:) string(dimension sign) key(desc)operator(:) string(The letter 'x' becomes a dimension sign when used between digits.) -key(in)operator(:) string("Observe: 2x3.") -key(html)operator(:) string("Observe: 2×3.
") -tag(---) +key(in)operator(:) stringThe room is 2×3 inches big.
") -tag(---) +key(in)operator(:) stringObserve: 2 × 4.
") -tag(---) +key(in)operator(:) stringObserve: 2×3×4.
") -key(lite_mode_html)operator(:) string("Observe: 2×3×4.") -tag(---) +key(in)operator(:) stringMy mouse: 2.5″ × 4″.
') -tag(---) +head key(name)operator(:) string(dimension signs with single primes) -key(in)operator(:) string("My office: 5' x 4.5'.") -key(html)operator(:) string("My office: 5′ × 4.5′.
") -tag(---) +key(in)operator(:) stringone™, two®, three©.
) key(lite_mode_html)operator(:) string(one™, two®, three©.) -tag(---) +head key(name)operator(:) string(headers) key(desc)operator(:) string(To make an entire paragraph into a Header, place “hn.” at its beginning, where n is a number from 1-6.) key(in)operator(:) string(h3. Header 3) key(html)operator(:) string(Any) string(old) string(text
) + string(Any old text
) string() - string() - string(A) string(block) string(quotation.
) + string(A block quotation.
) string(
Any) string(old) string(text
) -tag(---) + string(Any old text
) +head key(name)operator(:) string(footnote reference) key(desc)operator(:) string(Numeric references within text to footnotes appear between square brackets.) key(in)operator(:) string(This is covered elsewhere[1].) key(html)operator(:) string(This is covered elsewhere1.
) -tag(---) +head key(name)operator(:) string(footnote) key(desc)operator(:) string(To create the footnote that corresponds to its reference within the text, begin a new paragraph with fn and the footnote’s number, followed by a dot and a space.) key(in)operator(:) string(fn1. Down here, in fact.) key(html)operator(:) string(1 Down here, in fact.
) -tag(---) +head key(name)operator(:) string(em) key(desc)operator(:) string(Emphasis to text is added by surrounding a phrase with underscores. In HTML, this often appears as italics.) key(in)operator(:) string(I _believe_ every word.) key(html)operator(:) string(I believe every word.
) -key(lite_mode_html)operator(:) string("I believe every word.") -tag(---) +key(lite_mode_html)operator(:) stringAnd then? She fell!
) -key(lite_mode_html)operator(:) string("And then? She fell!") -tag(---) +key(lite_mode_html)operator(:) string10 times as many
") -tag(---) +key(in)operator(:) stringI) string(know.
)
- string(I) string(really) string(know.
I know.
)
+ string(I really know.
Cat’s Cradle by Vonnegut
) -tag(---) +head key(name)operator(:) string(code phrases) key(desc)operator(:) string(Code phrases can be surrounded by at-symbols.) key(in)operator(:) string(Convert with @r.to_html@) key(html)operator(:) string(Convert with r.to_html
r.to_html)
-tag(---)
+head
key(name)operator(:) string(code phrases not created with multiple email addresses)
key(in)operator(:) string(Please email why@domain.com or jason@domain.com.)
key(html)operator(:) string(Please email why@domain.com or jason@domain.com.
) -tag(---) +head key(name)operator(:) string(del) key(desc)operator(:) string(To indicate a passage which has been deleted, surround the passage with hypens.) key(in)operator(:) string(I'm -sure- not sure.) key(html)operator(:) string(I’m sure not sure.
You are a pleasant child.
) -tag(---) +head key(name)operator(:) string(superscript) key(desc)operator(:) string(To superscript a phrase, surround with carets.) key(in)operator(:) string(a ^2^ + b ^2^ = c ^2^) key(html)operator(:) string(a 2 + b 2 = c 2
) -tag(---) +head key(name)operator(:) string(parenthetical superscript phrase) key(in)operator(:) string('^(image courtesy NASA\)^') key(html)operator(:) string('(image courtesy NASA\)
') -tag(---) +head key(name)operator(:) string(subscript) key(desc)operator(:) string(To subscript, surround with tildes.) key(in)operator(:) string(log ~2~ x) key(html)operator(:) string(log 2 x
) -tag(---) +head key(name)operator(:) string(parenthetical subscript phrase) key(in)operator(:) string('~(image courtesy NASA\)~') key(html)operator(:) string('(image courtesy NASA\)
') -tag(---) +head key(name)operator(:) string(tight superscript and subscript) key(desc)operator(:) string(if you want your superscript or subscript to not be surrounded by spaces, you must use square brackets) key(in)operator(:) string(f(x, n\) = log[~4~]x[^n^]) key(html)operator(:) string('f(x, n\) = log4xn
') -tag(---) +head key(name)operator(:) string(span) key(desc)operator(:) string(Lastly, if you find yourself needing to customize the style of a passage, use percent symbols to translate the passage as an HTML span.) key(in)operator(:) string(I'm %unaware% of most soft drinks.) key(html)operator(:) string(I’m unaware of most soft drinks.
) -tag(---) +head key(name)operator(:) string(style span) key(desc)operator(:) string(This way, you can apply style settings, as described in the next section to arbitrary phrases.) key(in)operator(:) string(|-) - string(I'm) string(%{color)symbol(:red)operator(})string(unaware%) - string(of) string(most) string(soft) string(drinks.) + string(I'm %{color:red}unaware%) + string(of most soft drinks.) key(html)operator(:) string(|-) - string(I’m) string(unaware
)
- string(of) string(most) string(soft) string(drinks.
I’m unaware
)
+ string(of most soft drinks.
http)error(:)string(//blah.com/one%20two%20three
)
+ string(
http://blah.com/one%20two%20three
)
string((min\)5%-95%(max\)
An example
) -tag(---) +head key(name)operator(:) string(css id) key(desc)operator(:) string(An element ID can be given by prefixing the ID with a pound symbol and using it in place of the class.) key(in)operator(:) string(p(#big-red\). Red here) key(html)operator(:) string(Red here
) -tag(---) +head key(name)operator(:) string(class and id combined) key(desc)operator(:) string(Class and ID can be combined by placing the class first.) key(in)operator(:) string(p(example1#big-red2\). Red here) key(html)operator(:) string(Red here
) -tag(---) +head key(name)operator(:) string(css style) key(desc)operator(:) string(Style settings can be provided directly by surrounding them in curly braces.) key(in)operator(:) string(p{color:blue;margin:30px}. Spacey blue) key(html)operator(:) string(Spacey blue
) -tag(---) +head key(name)operator(:) string(language designations) key(desc)operator(:) string(Language designations can be given between angel brackets.) key(in)operator(:) string(p[fr]. rouge) key(html)operator(:) string(rouge
) -tag(---) +head key(name)operator(:) string(block attributes on phrase modifiers) key(desc)operator(:) string(All block attributes can be applied to phrases as well by placing them just inside the opening modifier.) key(in)operator(:) string(|-) - string(I) string(seriously) string(*{color)symbol(:red)operator(})string(blushed*) - string(when) string(I) string(_(big\)sprouted_) string(that) - string(corn) string(stalk) string(from) string(my) + string(I seriously *{color:red}blushed*) + string(when I _(big\)sprouted_ that) + string(corn stalk from my) string(%[es]cabeza%.) key(html)operator(:) string(|-) - string(I) string(seriously) string(blushed
)
- string(when) string(I) string(sprouted) string(that
)
- string(corn) string(stalk) string(from) string(my
)
- string(cabeza.
I seriously blushed
)
+ string(when I sprouted that
)
+ string(corn stalk from my
)
+ string(cabeza.
I) string(seriously) operator({)key(color)symbol(:red)operator(})string(blushed
)
- string(when) string(I) string(first) string((big\)sprouted) string(that
)
- string(corn) string(stalk) string(from) string(my
)
- string(grande) operator([)string(es]cabeza.
I seriously {color:red}blushed
)
+ string(when I first (big\)sprouted that
)
+ string(corn stalk from my
)
+ string(grande [es]cabeza.
justified
) -tag(---) +head key(name)operator(:) string(indentation) key(desc)operator(:) string(Indentation can also be specified by provide a single left paren for every 1em to the left. A single right paren for every 1em to the right.) key(in)operator(:) string(p\)\)\). right ident 3em) key(html)operator(:) string(right ident 3em
) -tag(---) +head key(name)operator(:) string(indentation and alignment) key(desc)operator(:) string(Identation may be coupled with alignment.) key(in)operator(:) string(h2(\)>. Bingo.) key(html)operator(:) string(pre and code tags. Please also indent your code inside the tags to be sure that all Textile processors out there will ignore the contents.)
key(in)operator(:) string(|)
string()
string()
- string(a.gsub!() string(/,) string('') string(\))
+ string(a.gsub!( /, '' \))
string()
string()
key(html)operator(:) string(|-)
string()
string()
- string(a.gsub!() string(/</,) string('') string(\))
+ string(a.gsub!( /</, '' \))
string()
string()
-tag(---)
+head
key(name)operator(:) string(div tags)
key(desc)operator(:) string(You may also choose to surround sections with div tags to separate your document into sections. Instiki uses this technique to float a sidebar to the right.)
key(in)operator(:) string(|)
- string(The) string(main) string(text) string(of) string(the) string(page) string(goes) string(here) string(and) string(will) string(stay) string(to) string(the) string(left) string(of) string(the) string(sidebar.
) -tag(---) + string(The main text of the page goes here and will stay to the left of the sidebar.
) +head key(name)operator(:) string(numbered list) key(desc)operator(:) string(To make a numbered list, place each item in its own paragraph, preceded by ”#”.) key(in)operator(:) string(|-) @@ -438,11 +438,11 @@ key(in)operator(:) string(|-) comment(# A third) key(html)operator(:) string(|-) string(I searched Google.
) key(lite_mode_html)operator(:) string(I searched Google.) -tag(---) +head key(name)operator(:) string(link aliases) key(desc)operator(:) string(If you are using the same link several times in your document, or you’d just like to be a tad more organized, you can use a link alias. Place the URL anywhere in your document, beginning with its alias in square brackets. Then, use the alias in place of the URL, using the link format above.) key(in)operator(:) string(|-) - string(I) string(am) string(crazy) string(about) keyI) string(am) string(crazy) string(about) string(Hobix
)
- string(and) string(it’s) string(all) string(I) string(ever
)
- string(link) string(to!
I am crazy about Hobix
)
+ string(and it’s all I ever
)
+ string(link to!

)
-tag(---)
+head
key(name)operator(:) string(image title)
key(desc)operator(:) string(A title for the image can also be provided in parens, just before the closing exclamation.)
-key(in)operator(:) string("!openwindow1.gif(Bunny.\)!")
+key(in)operator(:) string
And) string(others) string(sat) string(all) string(round) string(the) string(small
)
- string(machine) string(and) string(paid) string(it) string(to) string(sing) string(to) string(them.

And others sat all round the small
)
+ string(machine and paid it to sing to them.
We use CSS.
) key(lite_mode_html)operator(:) string(We use CSS.) key(no_span_caps_html)operator(:) string(We use CSS.
) -tag(---) +head key(name)operator(:) string(tables) key(desc)operator(:) string(Simple tables can be built by separating fields with pipe characters) key(in)operator(:) string(|-) - string(|) string(name) string(|) string(age) string(|) string(sex) string(|) - string(|) string(joan) string(|) string(24) string(|) string(f) string(|) - string(|) string(archie) string(|) string(29) string(|) string(m) string(|) - string(|) string(bella) string(|) string(45) string(|) string(f) string(|) + string(| name | age | sex |) + string(| joan | 24 | f |) + string(| archie | 29 | m |) + string(| bella | 45 | f |) key(html)operator(:) string(|-) string(| ) string(name) string( | ) - string() string(age) string( | ) - string() string(sex) string( | ) + string(name | ) + string(age | ) + string(sex | ) string(
| ) string(joan) string( | ) - string() string(24) string( | ) - string() string(f) string( | ) + string(joan | ) + string(24 | ) + string(f | ) string(
| ) string(archie) string( | ) - string() string(29) string( | ) - string() string(m) string( | ) + string(archie | ) + string(29 | ) + string(m | ) string(
| ) string(bella) string( | ) - string() string(45) string( | ) - string() string(f) string( | ) + string(bella | ) + string(45 | ) + string(f | ) string(
| name) string( | ) - string(age) string( | ) - string(sex) string( | ) + string(name | ) + string(age | ) + string(sex | ) string(
|---|---|---|---|---|---|
| ) string(joan) string( | ) - string() string(24) string( | ) - string() string(f) string( | ) + string(joan | ) + string(24 | ) + string(f | ) string(
| ) string(archie) string( | ) - string() string(29) string( | ) - string() string(m) string( | ) + string(archie | ) + string(29 | ) + string(m | ) string(
| ) string(bella) string( | ) - string() string(45) string( | ) - string() string(f) string( | ) + string(bella | ) + string(45 | ) + string(f | ) string(
| attribute) string(list) string( | ) + string(attribute list | ) string(
|---|---|
| align) string(left) string( | ) + string(align left | ) string(
| align) string(right | ) + string(align right | ) string(
| center) string( | ) + string(center | ) string(
| justify) string( | ) + string(justify | ) string(
| valign) string(top) string( | ) + string(valign top | ) string(
| bottom) string( | ) + string(bottom | ) string(
| spans) string(two) string(cols) string( | ) + string(spans two cols | ) string(||
| ) string(col) string(1) string( | ) - string() string(col) string(2) string( | ) + string(col 1 | ) + string(col 2 | ) string(
| spans) string(3) string(rows) string( | ) - string() string(a) string( | ) + string(spans 3 rows | ) + string(a | ) string(
| ) string(b) string( | ) + string(b | ) string(||
| ) string(c) string( | ) + string(c | ) string(
| Grey cell | ) + string(Grey cell | ) string(
| This | ) string(is | ) @@ -724,12 +724,12 @@ key(html)operator(:) string(|-) string(row | ) string(
table modifier and following it by a period.)
key(in)operator(:) string(|-)
string(|This|is|a|row|)
- operator({)key(background)error(:)comment(#ddd}. |This|is|grey|row|)
+ operator({)string(background:#ddd}. |This|is|grey|row|)
key(html)operator(:) string(|-)
string(| a | ) string(row | ) string(||
| This | ) string(is | ) string(grey | ) string(row | ) string(
A) string(pre) string(block) string(ends) string(it.) -tag(---) + string(
A pre block ends it.) +head key(name)operator(:) string(extended block followed by blockquote) key(in)operator(:) string(|-) - string(div..) string(Just) string(a) string(test.) + string(div.. Just a test.) - string(Second) string(div.) + string(Second div.) - string(bq.) string(A) string(blockquote) string(ends) string(it.) + string(bq. A blockquote ends it.) key(html)operator(:) string(|-) - string(
) - string() -tag(---) +head key(name)operator(:) string(extended block followed by block code) key(in)operator(:) string(|-) - string(div..) string(Just) string(a) string(test.) + string(div.. Just a test.) - string(Second) string(div.) + string(Second div.) - string(bc.) string(A) string(blockcode) string(ends) string(it.) + string(bc. A blockcode ends it.) key(html)operator(:) string(|-) - string(A) string(blockquote) string(ends) string(it.
) + string(A blockquote ends it.
) string(
A) string(blockcode) string(ends) string(it.)
-tag(---)
+ string(A blockcode ends it.)
+head
key(name)operator(:) string(extended block followed by notextile block)
key(in)operator(:) string(|-)
- string(div..) string(Just) string(a) string(test.)
+ string(div.. Just a test.)
- string(Second) string(div.)
+ string(Second div.)
- string(notextile.) string(A) string(notextile) string(block) string(ends) string(it.)
+ string(notextile. A notextile block ends it.)
key(html)operator(:) string(|-)
- string(before) string((in) string(parens\)) string(after
) -tag(---) + string(before (in parens\) after
) +head key(name)operator(:) string(parentheses in underscores) key(in)operator(:) string(|-) - string(before) string(_(in) string(parens\)_) string(after) + string(before _(in parens\)_ after) key(html)operator(:) string(|-) - string(before) string((in) string(parens\)) string(after
) -tag(---) + string(before (in parens\) after
) +head key(name)operator(:) string(parentheses in asterisks) key(in)operator(:) string(|-) - string(before) string(*(in) string(parens\)*) string(after) + string(before *(in parens\)* after) key(html)operator(:) string(|-) - string(before) string((in) string(parens\)) string(after
) -tag(---) + string(before (in parens\) after
) +head key(name)operator(:) string(parentheses in underscores in quotes) key(in)operator(:) string(|-) - string("before) string(_(in) string(parens\)_) string(after") + string("before _(in parens\)_ after") key(html)operator(:) string(|-) - string(“before) string((in) string(parens\)) string(after”
) -tag(---) + string(“before (in parens\) after”
) +head key(name)operator(:) string(underscores in parentheses) key(in)operator(:) string(|-) - string(one) string(_two) string(three_) string((four) string(_five) string(six_\)) string(seven) + string(one _two three_ (four _five six_\) seven) key(html)operator(:) string(|-) - string(one) string(two) string(three) string((four) string(five) string(six\)) string(seven
) -tag(---) + string(one two three (four five six\) seven
) +head key(name)operator(:) string(underscores in parentheses in quotes) key(in)operator(:) string(|-) - string("one) string(_two) string(three_) string((four) string(_five) string(six_\)) string(seven") + string("one _two three_ (four _five six_\) seven") key(html)operator(:) string(|-) - string(“one) string(two) string(three) string((four) string(five) string(six\)) string(seven”
) -tag(---) + string(“one two three (four five six\) seven”
) +head key(name)operator(:) string(underscores in parentheses 2) key(in)operator(:) string(|-) - string(one) string((two) string(_three) string(four_\)) string(five) + string(one (two _three four_\) five) key(html)operator(:) string(|-) - string(one) string((two) string(three) string(four\)) string(five
) -tag(---) + string(one (two three four\) five
) +head key(name)operator(:) string(underscores in parentheses in quotes 2) key(in)operator(:) string(|-) - string("one) string((two) string(_three) string(four_\)) string(five") + string("one (two _three four_\) five") key(html)operator(:) string(|-) - string(“one) string((two) string(three) string(four\)) string(five”
) -tag(---) + string(“one (two three four\) five”
) +head key(name)operator(:) string(caps in parentheses) key(desc)operator(:) string(Uppercase words of three or more characters that are in parentheses should be recognized as well as those not in parentheses.) key(in)operator(:) string(IBM or (HAL\)) key(html)operator(:) string(IBM or (HAL\)
) key(no_span_caps_html)operator(:) string(IBM or (HAL\)
) -tag(---) +head key(name)operator(:) string(phrase modifiers in parentheses) key(desc)operator(:) string(Inline modifiers are expected to work in parentheses as well.) key(in)operator(:) string(|-) - string(__Amanita__s) string(are) string(mushrooms.) - string(Lungworts) string((__Lobaria__\)) string(are) string(lichens.) - string(Blah) string(blah) string((normal) string(text) string(**bold**\)) string(blah.) + string(__Amanita__s are mushrooms.) + string(Lungworts (__Lobaria__\) are lichens.) + string(Blah blah (normal text **bold**\) blah.) key(html)operator(:) string(|-) - string(__Amanita__s) string(are) string(mushrooms.
)
- string(Lungworts) string((Lobaria\)) string(are) string(lichens.
)
- string(Blah) string(blah) string((normal) string(text) string(bold\)) string(blah.
__Amanita__s are mushrooms.
)
+ string(Lungworts (Lobaria\) are lichens.
)
+ string(Blah blah (normal text bold\) blah.
citation) operator([)variable(“(Berk.\)) string(Hilton”],) string(see
)
- operator([)string(Papers) variable(“blah) string(blah.”]
citation [“(Berk.\) Hilton”], see
)
+ operator([)string(Papers “blah blah.”]
)
- string(reg) string(=) key(Needle)error(:)symbol(:Registry)string(.new)
+ string(reg = Needle::Registry.new)
string()
- string(This) string(will) string(create) string(a) string(new) string(Registry) string(instance.) string(You) string(can) string(also) string(send) string(a) string(block) string(to)
+ string(This will create a new Registry instance. You can also send a block to)
comment(#new, in which case the new registry will be yielded to it:)
string()
- string(reg) string(=) key(Needle)error(:)symbol(:Registry)string(.new) string(do) string(|r|)
+ string(reg = Needle::Registry.new do |r|)
string(...)
string(end)
string()
- string(There) string(are) string(two) string(other) string(factory) string(methods) string(you) string(can) string(use) string(for) string(creating) string(a) string(Registry)
- string(instance.) string(Both) string(require) string(a) string(block.)
+ string(There are two other factory methods you can use for creating a Registry)
+ string(instance. Both require a block.)
string()
- string(r1) string(=) key(Needle)error(:)symbol(:Registry)string(.define) string(do) string(|builder|)
+ string(r1 = Needle::Registry.define do |builder|)
string(...)
string(end)
- string(r2) string(=) key(Needle)error(:)symbol(:Registry)string(.define!) string(do)
+ string(r2 = Needle::Registry.define! do)
string(...)
string(end)
string()
- string(Registry#define) string(creates) string(a) string("builder") string(object) string(that) string(you) string(can) string(use) string(define)
- string(services) string(more) string(conveniently.) string(Register#define!) string((with) string(a) string(bang\)) string(does) string(the) string(same)
- string(thing,) string(but) string(evaluates) string(the) string(block) string(within) string(the) string(context) string(of) string(the) string(builder.)
+ string(Registry#define creates a "builder" object that you can use define)
+ string(services more conveniently. Register#define! (with a bang\) does the same)
+ string(thing, but evaluates the block within the context of the builder.)
operator(-) key)
- string(reg.register() symbol(:foo) string(\)) operator({) string(Foo.new) operator(})
+ string(reg.register( :foo \) { Foo.new })
string()
- string(The) string((first\)) string(parameter) string(to) comment(#register is the name of the service, and the)
- string(block) string(should) string(return) string(the) string(implementation) string(of) string(the) string(service.) string(If) string(needed,) string(the)
- string(block) string(can) string(accept) string(two) string(parameters--the) string(container) string(that) string(the) string(service) string(is) string(being)
- string(registered) string(with,) string(and) string(an) string(object) string(that) string(represents) string(the) string(service) string(being) string(defined)
- string((called) string(a) string("service) string(point"\))error(:)
+ string(The (first\) parameter to #register is the name of the service, and the)
+ string(block should return the implementation of the service. If needed, the)
+ string(block can accept two parameters--the container that the service is being)
+ string(registered with, and an object that represents the service being defined)
+ string((called a "service point"\):)
string()
- string(reg.register() symbol(:foo) string(\)) string(do) string(|container,point|)
- string(Foo.new() string(container[)symbol(:bar)operator(])operator(,) string(point.fullname) string(\))
+ string(reg.register( :foo \) do |container,point|)
+ string(Foo.new( container[:bar], point.fullname \))
string(end)
string()
- string(You) string(can) string(also) string(use) string(Container#define) string(and) string(Container#define!) string(to) string(register)
- string(services.) string(These) string(approaches) string(are) string(friendlier) string(if) string(you) string(are) string(needing) string(to) string(register)
- string(several) string(services) string(at) string(once.)
+ string(You can also use Container#define and Container#define! to register)
+ string(services. These approaches are friendlier if you are needing to register)
+ string(several services at once.)
string()
- string(reg.define) string(do) string(|builder|)
- string(builder.foo) operator({) string(Foo.new) operator(})
- string(builder.bar) operator({) string(|c,p|) string(Bar.new() string(c[)symbol(:foo)operator(])operator(,) string(p.name) string(\)) operator(})
+ string(reg.define do |builder|)
+ string(builder.foo { Foo.new })
+ string(builder.bar { |c,p| Bar.new( c[:foo], p.name \) })
string(end)
- string(reg.define!) string(do)
- string(baz) operator({) string(|c,p|) string(Baz.new() string(c[)symbol(:bar)operator(])operator(,) string(p.name) string(\)) operator(})
- string(zoom) operator({) string(Buggy.new) operator(})
+ string(reg.define! do)
+ string(baz { |c,p| Baz.new( c[:bar], p.name \) })
+ string(zoom { Buggy.new })
string(end)
string()
- string(Container#define) string(yields) string(a) string(new) string("builder") string(object) string(to) string(the) string(block.) string(Messages)
- string(sent) string(to) string(the) string(builder) string(are) string(interpreted) string(as) string(service) string(names,) string(and) string(if) string(a) string(block) string(is)
- string(sent) string(with) string(the) string(message,) string(a) string(new) string(service) string(is) string(registered) string(under) string(that) string(name.)
+ string(Container#define yields a new "builder" object to the block. Messages)
+ string(sent to the builder are interpreted as service names, and if a block is)
+ string(sent with the message, a new service is registered under that name.)
- string(Container#define!) string(does) string(likewise,) string(except) string(it) string(evaluates) string(the) string(block) string(within) string(the)
- string(context) string(of) string(the) string(builder) string(object.)
+ string(Container#define! does likewise, except it evaluates the block within the)
+ string(context of the builder object.)
- string(If) string(you) string(do) string(not) string(pass) string(a) string(block) string(to) comment(#define, it will return the builder object,)
- string(so) string(you) string(could) string(do) string(something) string(like) string(the) string(following) string(if) string(you) string(only) string(need) string(to) string(define)
- string(one) string(or) string(two) key(services)error(:)
+ string(If you do not pass a block to #define, it will return the builder object,)
+ string(so you could do something like the following if you only need to define)
+ key(one or two services)operator(:)
string()
- string(reg.define.foo) operator({) string(...) operator(})
+ string(reg.define.foo { ... })
string()
- string(Lastly,) string(you) string(can) string(get) string(the) string(builder) string(directly) string(and) string(add) string(services) string(using) key(it)error(:)
+ string(Lastly, you can get the builder directly and add services using it:)
string()
- string(builder) string(=) string(reg.builder)
- string(builder.baz) operator({) string(...) operator(})
- string(builder.bar) operator({) string(...) operator(})
+ string(builder = reg.builder)
+ string(builder.baz { ... })
+ string(builder.bar { ... })
string()
- string((This) string(last) string(is) string(the) string(same) string(as) string(calling) comment(#define without arguments, but is more)
- string(readable) string(if) string(you) string(intend) string(to) string(use) string(the) string(builder) string(object) string(multiple) string(times.\))
+ string((This last is the same as calling #define without arguments, but is more)
+ string(readable if you intend to use the builder object multiple times.\))
operator(-) key)
- string(svc) string(=) string(registry[)symbol(:foo)operator(])
+ string(svc = registry[:foo])
string(svc.do_something_interesting)
string()
- string(A) string(more) string(convenient) string((but) string(slightly) string(more) string(peril-fraught\)) string(approach) string(is) string(to) string(send)
- string(the) string(name) string(of) string(the) string(method) string(to) string(the) string(registry) string(as) string(a) key(message)error(:)
+ string(A more convenient (but slightly more peril-fraught\) approach is to send)
+ key(the name of the method to the registry as a message)operator(:)
string()
- string(svc) string(=) string(registry.foo)
+ string(svc = registry.foo)
string()
- string(Be) string(aware) string(that) string(this) string(latter) string(approach) string(will) string(only) string(work) string(when) string(the) string(service) string(name)
- string(does) string(not) string(conflict) string(with) string(the) string(name) string(of) string(an) string(existing) string(method) string(on) string(the) string(container.)
- string(For) string(example,) string(if) string(you) string(were) string(to) key(do)error(:)
+ string(Be aware that this latter approach will only work when the service name)
+ string(does not conflict with the name of an existing method on the container.)
+ string(For example, if you were to do:)
string()
- string(registry.register() symbol(:hash) string(\)) operator({) string("hello,) string(world") operator(})
- string(p) string(registry.hash)
+ string(registry.register( :hash \) { "hello, world" })
+ string(p registry.hash)
string()
- string(You) string(would) string(get) string(the) string(hash) string(value) string(of) string(the) string(registry) string(object,) string(instead) string(of) string(the) string(value)
- string(value) string(of) string(the) string(service) string((which) string(would) string(be) string("hello,) string(world"\).)
+ string(You would get the hash value of the registry object, instead of the value)
+ string(value of the service (which would be "hello, world"\).)
operator(-) key)
- string(registry.register() symbol(:foo)operator(,) symbol(:model) string(=>) symbol(:prototype) string(\)) operator({)string(...})
- string(registry.define.bar() symbol(:model) string(=>) symbol(:threaded) string(\)) operator({)string(...})
- string(registry.define!) string(do)
- string(baz() symbol(:model) string(=>) symbol(:singleton_deferred) string(\)) operator({)string(...})
+ string(registry.register( :foo, :model => :prototype \) {...})
+ string(registry.define.bar( :model => :threaded \) {...})
+ string(registry.define! do)
+ string(baz( :model => :singleton_deferred \) {...})
string(...)
string(end)
string(...)
string()
operator(-) key)
- string(registry.namespace() symbol(:stuff) string(\))
+ string(registry.namespace( :stuff \))
string()
- string(This) string(will) string(create) string(a) string(namespace) string(in) string(the) string(registry,) string(called) string(stuff.) string(If) string(you) string(send) string(a)
- string(block) string(as) string(well,) string(the) string(block) string(will) string(be) string(invoked) string((with) string(the) string(new) string(namespace) string(yielded)
- string(to) string(it\)) string(the) string(first) string(time) string(the) string(namespace) string(is) key(requested)error(:)
+ string(This will create a namespace in the registry, called stuff. If you send a)
+ string(block as well, the block will be invoked (with the new namespace yielded)
+ key(to it\) the first time the namespace is requested)operator(:)
string()
- string(registry.namespace() symbol(:stuff) string(\)) string(do) string(|ns|)
- string(ns.register() symbol(:foo) string(\)) operator({)string(...})
- string(ns.define.bar) operator({)string(...})
- string(ns.define!) string(do)
- string(baz) operator({)string(...})
- string(buf) operator({)string(...})
+ string(registry.namespace( :stuff \) do |ns|)
+ string(ns.register( :foo \) {...})
+ string(ns.define.bar {...})
+ string(ns.define! do)
+ string(baz {...})
+ string(buf {...})
string(end)
string(end)
string()
- string(Because) string(it) string(is) string(so) string(common) string(to) string(immediately) string(define) string(services) string(on) string(the) string(new)
- string(namespace,) string(there) string(are) string(some) string(convenience) string(methods) string(to) string(make) string(this) string(more...)
+ string(Because it is so common to immediately define services on the new)
+ string(namespace, there are some convenience methods to make this more...)
string(convenient.)
string()
- string(registry.namespace_define!() symbol(:stuff) string(\)) string(do)
- string(foo) operator({)string(...})
- string(bar) operator({)string(...})
- string(baz) operator({)string(...})
+ string(registry.namespace_define!( :stuff \) do)
+ string(foo {...})
+ string(bar {...})
+ string(baz {...})
string(end)
- string(registry.namespace_define() symbol(:more_stuff) string(\)) string(do) string(|b|)
- string(b.blah) operator({)string(...})
- string(b.argh) operator({)string(...})
- string(b.hack) operator({)string(...})
+ string(registry.namespace_define( :more_stuff \) do |b|)
+ string(b.blah {...})
+ string(b.argh {...})
+ string(b.hack {...})
string(end)
string()
- string(The) string(first) string(one,) string(above,) string(creates) string(the) string(namespace) string(and) string(calls) string(Container#define!.)
- string(The) string(second) string(creates) string(the) string(namespace) string(and) string(calls) string(Container#define.) string(In) string(both)
- string(cases,) string(_the) string(namespace) string(is) string(created) string(immediately_,) string(unlike) string(Container#namespace)
- string(which) string(only) string(creates) string(the) string(namespace) string(when) string(it) string(is) string(first) string(requested.)
+ string(The first one, above, creates the namespace and calls Container#define!.)
+ string(The second creates the namespace and calls Container#define. In both)
+ string(cases, _the namespace is created immediately_, unlike Container#namespace)
+ string(which only creates the namespace when it is first requested.)
- string(Lastly,) string(note) string(that) string(namespace's) string(are) string(just) string(special) string(services.) string(Thus,) string(you) string(can)
- string(pass) string(options) string(to) string(the) string(namespace) string(methods) string(just) string(as) string(you) string(can) string(with)
- string(Container#register) string(and) string(friends.)
+ string(Lastly, note that namespace's are just special services. Thus, you can)
+ string(pass options to the namespace methods just as you can with)
+ string(Container#register and friends.)
operator(-) key)
- string(logger) string(=) string(registry.logs.get() string("a) string(name) string(for) string(my) string(logger") string(\))
- string(logger.debug) string("This) string(is) string(a) string(debug) string(message")
- string(logger.info) string("This) string(is) string(an) string(informational) string(message")
+ string(logger = registry.logs.get( "a name for my logger" \))
+ string(logger.debug "This is a debug message")
+ string(logger.info "This is an informational message")
string(...)
- string(logger2) string(=) string(registry.log_for() string("another) string(logger) string(name") string(\))
+ string(logger2 = registry.log_for( "another logger name" \))
string(...)
string()
- string(The) string(two) string(approaches) string(shown) string(above) string(are) string(identical--the) string(second) string(approach) string((using)
- string(the) string(@log_for@) string(service\)) string(is) string(just) string(a) string(convenience) string(for) string(@logs.get@.)
+ string(The two approaches shown above are identical--the second approach (using)
+ string(the @log_for@ service\) is just a convenience for @logs.get@.)
- string(Log) string(messages) string(are) string(written,) string(by) string(default,) string(to) string(a) string(file) string(called) string("needle.log",) string(in)
- string(the) string(same) string(directory) string(that) string(the) string(application) string(was) string(invoked) string(from.)
+ string(Log messages are written, by default, to a file called "needle.log", in)
+ string(the same directory that the application was invoked from.)
- string(You) string(can) string(also) string(use) string(a) string(logging) string(interceptor) string(to) string(automatically) string(log) string(all) string(external)
- string(method) string(invocations) string(on) string(a) string(service.) string(This) string(includes) string(method) string(entry) string(and) string(exit,) string(as)
- string(well) string(as) string(any) string(exceptions) string(that) string(are) string(raised) string(inside) string(the) string(method.)
+ string(You can also use a logging interceptor to automatically log all external)
+ string(method invocations on a service. This includes method entry and exit, as)
+ string(well as any exceptions that are raised inside the method.)
string()
- string(registry.register() symbol(:foo) string(\)) operator({) string(...) operator(})
- string(registry.intercept() symbol(:foo) string(\).with) operator({) string(|r|) string(r.logging_interceptor) operator(})
+ string(registry.register( :foo \) { ... })
+ string(registry.intercept( :foo \).with { |r| r.logging_interceptor })
string(foo.something)
- string(foo.another_method() string(1,) string(2,) string(3) string(\))
+ string(foo.another_method( 1, 2, 3 \))
string()
- string(See) string(the) string(chapter) string(in) string(the) key)
- string(registry.register() symbol(:foo) string(\)) operator({) string(...) operator(})
- string(registry.intercept() symbol(:foo) string(\).)
- string(with) operator({) string(|r|) string(r.logging_interceptor) operator(})string(.)
- string(with_options) symbol(:exclude) string(=>) operator([) string('foo',) string('bar(>4\)',) string('*(<2\)') operator(])
+ string(registry.register( :foo \) { ... })
+ string(registry.intercept( :foo \).)
+ string(with { |r| r.logging_interceptor }.)
+ string(with_options :exclude => [ 'foo', 'bar(>4\)', '*(<2\)' ])
string()
- string(The) string(above) string(will) string(exclude) string(from) string(interception) string(any) string(method) string(named) string('foo',) string(or) string(any)
- string(invocation) string(of) string('bar') string(with) string(more) string(than) string(4) string(arguments,) string(or) string(any) string(method) string(invocation)
- string(with) string(fewer) string(than) string(two) string(arguments.)
+ string(The above will exclude from interception any method named 'foo', or any)
+ string(invocation of 'bar' with more than 4 arguments, or any method invocation)
+ string(with fewer than two arguments.)
- string(You) string(can) string(also) string(give) string(an) string(array) string(of) string(patterns) string(to) string(_include_.) string(These) string(cause) string(methods)
- string(to) string(be) string(explicitly) string(intercepted) string(even) string(if) string(they) string(match) string(an) string(exclude) key(pattern)error(:)
+ string(You can also give an array of patterns to _include_. These cause methods)
+ key(to be explicitly intercepted even if they match an exclude pattern)operator(:)
string()
- string(registry.register() symbol(:foo) string(\)) operator({) string(...) operator(})
- string(registry.intercept() symbol(:foo) string(\).)
- string(with) operator({) string(|r|) string(r.logging_interceptor) operator(})string(.)
- string(with_options) symbol(:exclude) string(=>) operator([) string('foo',) string('bar(>4\)',) string('*(<2\)') operator(])operator(,)
- symbol(:include) string(=>) operator([) string('baz') operator(])
+ string(registry.register( :foo \) { ... })
+ string(registry.intercept( :foo \).)
+ string(with { |r| r.logging_interceptor }.)
+ string(with_options :exclude => [ 'foo', 'bar(>4\)', '*(<2\)' ],)
+ symbol(:include) string(=> [ 'baz' ])
- string(foo) string(=) string(registry.foo)
+ string(foo = registry.foo)
string(foo.baz)
string()
- string(This) string(would) string(result) string(in) string(the) string(call) string(to) comment(#baz being intercepted, even though it)
- string(matches) string(an) string(exclude) string(pattern) string((@*(<2\)@\).)
+ string(This would result in the call to #baz being intercepted, even though it)
+ string(matches an exclude pattern (@*(<2\)@\).)
operator(-) key)
- string(module) string(A)
- string(module) string(B)
- string(def) string(register_services() string(container) string(\))
+ string(module A)
+ string(module B)
+ string(def register_services( container \))
string(...)
string(end)
- string(module_function) symbol(:register_services)
+ string(module_function :register_services)
string(end)
string(end)
string()
- string(If) string(the) string(library) string(has) string(been) string(implemented) string(in) string(this) string(way,) string(you) string(can) string(simply) string(do) string(a)
- string(require) string(of) string(the) string(library) string(and) string(then) string(invoke) string(the) string(@register_services@) string(method.)
+ string(If the library has been implemented in this way, you can simply do a)
+ string(require of the library and then invoke the @register_services@ method.)
- string(There) string(is) string(a) string(convenience) string(method) string(in) string(Container) string(for) string(doing) string(this.) string(Just) string(call)
- string(Container#require,) string(passing) string(the) string(file) string(to) string(require) string(and) string(a) string(string) string((or) string(symbol\))
- string(identifying) string(the) string(name) string(of) string(the) string(module) string(that) string(contains) string(the) string(registration) string(method.)
- string(You) string(can) string(also) string(pass) string(a) string(symbol) string(as) string(the) string(third) string(parameter) string(naming) string(the) string(registration)
- string(method,) string(but) string(it) string(defaults) string(to) string(@)symbol(:register_services)string(@.)
+ string(There is a convenience method in Container for doing this. Just call)
+ string(Container#require, passing the file to require and a string (or symbol\))
+ string(identifying the name of the module that contains the registration method.)
+ string(You can also pass a symbol as the third parameter naming the registration)
+ string(method, but it defaults to @:register_services@.)
string()
- string(require) string('a/b')
- key(A)error(:)symbol(:B)string(.register_services() string(container) string(\))
+ string(require 'a/b')
+ string(A::B.register_services( container \))
comment(# or)
- string(container.require() string('a/b',) string("A)error(:)symbol(:B)string(") string(\))
+ string(container.require( 'a/b', "A::B" \))
string()
- string(The) string(definition) string(context) string((i.e.,) string(the) string("builder") string(object\)) string(also) string(supports) string(the)
- string(require) string(method,) string(so) string(you) string(can) key(do)error(:)
+ string(The definition context (i.e., the "builder" object\) also supports the)
+ string(require method, so you can do:)
string()
- string(container.define) string(do) string(|b|)
- string(b.require) string("a/b",) string("A)error(:)symbol(:B)string(")
- string(b.foo) operator({) string(...) operator(})
+ string(container.define do |b|)
+ string(b.require "a/b", "A::B")
+ string(b.foo { ... })
string(...)
string(end)
string()
-operator(-) keyparagraph block.) key(in)operator(:) string(|-) - string(A) string(paragraph.) + string(A paragraph.) - string(Another) string(paragraph.) + string(Another paragraph.) key(html)operator(:) string(|-) - string(
A) string(paragraph.
) - string(Another) string(paragraph.
) -tag(---) + string(A paragraph.
) + string(Another paragraph.
) +head key(name)operator(:) string(line breaks) key(desc)operator(:) string(Line breaks within paragraphs are transformed into XHTML line breaks.) key(in)operator(:) string(|-) - string(A) string(paragraph) string(with) - string(a) string(line) string(break.) + string(A paragraph with) + string(a line break.) key(html)operator(:) string(|-) - string(A) string(paragraph) string(with
)
- string(a) string(line) string(break.
A paragraph with
)
+ string(a line break.
Here’s some bold text.
) -tag(---) +head key(name)operator(:) string(no paragraph tags) key(desc)operator(:) string(A line beginning with a space will be left untouched, and not wrapped in tags.)
-key(in)operator(:) string(" No paragraph tags here.")
-key(html)operator(:) string("No paragraph tags here.")
+key(in)operator(:) string “Proceed!” said he to the host. ‘Proceed!’ said he to the host.
“‘I) string(swear,) string(captain,’) string(replied) string(I.”
) -tag(---) + string(“‘I swear, captain,’ replied I.”
) +head key(name)operator(:) string(nested quotation marks 2) key(in)operator(:) string(|-) - string('"I) string(swear,) string(captain,") string(replied) string(I.') + string('"I swear, captain," replied I.') key(html)operator(:) string(|-) - string(‘“I) string(swear,) string(captain,”) string(replied) string(I.’
) -tag(---) + string(‘“I swear, captain,” replied I.’
) +head key(name)operator(:) string(apostrophe glyphs) key(desc)operator(:) string(Single quotation marks ' will be turned into apostrophe glyphs when used as such.) key(in)operator(:) string(Greengrocers' apostrophe's.) key(html)operator(:) string(Greengrocers’ apostrophe’s.
) -tag(---) +head key(name)operator(:) string(em-dash glyphs) key(desc)operator(:) string(Double -- dashes become an em-dash glyph.) key(in)operator(:) string(You know the Italian proverb -- Chi ha compagno ha padrone.) key(html)operator(:) string(You know the Italian proverb — Chi ha compagno ha padrone.
) -tag(---) +head key(name)operator(:) string(em-dash glyphs 2) key(in)operator(:) string(You know the Italian proverb--Chi ha compagno ha padrone.) key(html)operator(:) string(You know the Italian proverb—Chi ha compagno ha padrone.
) -tag(---) +head key(name)operator(:) string(en-dash glyphs) key(desc)operator(:) string(Single - dashes are replaced with en-dashes.) key(in)operator(:) string(You know the Italian proverb - Chi ha compagno ha padrone.) key(html)operator(:) string(You know the Italian proverb – Chi ha compagno ha padrone.
) -tag(---) +head key(name)operator(:) string(ellipsis character) key(desc)operator(:) string(Three period marks become an ellipsis character.) key(in)operator(:) string(Meanwhile...) key(html)operator(:) string(Meanwhile…
) -tag(---) +head key(name)operator(:) string(dimension character) key(desc)operator(:) string(An “x” is replaced with the dimension character when used between numbers.) key(in)operator(:) string(1 x 2 x 3 = 6) key(html)operator(:) string(1 × 2 × 3 = 6
) -tag(---) +head key(name)operator(:) string(dimension character 2) key(in)operator(:) string(1x2x3 = 6) key(html)operator(:) string(1×2×3 = 6
) -tag(---) +head key(name)operator(:) string(trademark register copyright) key(desc)operator(:) string(Trademark, Registered and Copyright symbols are represented by their common plain text equivalents.) key(in)operator(:) string(Registered(r\) Trademark(tm\) Copyright (c\).) key(html)operator(:) string(Registered® Trademark™ Copyright ©.
) -tag(---) +head key(name)operator(:) string(acronyms) key(desc)operator(:) string(Acronyms consist of three or more uppercase characters, followed immediately by words in parentheses.) key(in)operator(:) string(ABC(Always Be Closing\)) key(html)operator(:) string(ABC
) key(no_span_caps_html)operator(:) string(ABC
) -tag(---) +head key(name)operator(:) string(uppercase) key(desc)operator(:) string(Uppercase words of three or more characters are enclosed with a special span element.) key(in)operator(:) string(IBM or HAL) key(html)operator(:) string(IBM or HAL
) key(no_span_caps_html)operator(:) string(IBM or HAL
) -tag(---) +head key(name)operator(:) string(emphasis) key(desc)operator(:) string(Emphasis is added with _ underscores.) key(in)operator(:) string(The _underlying_ cause.) key(html)operator(:) string(The underlying cause.
) -tag(---) +head key(name)operator(:) string(strong text) key(desc)operator(:) string(Strong text is indicated by * asterisks.) key(in)operator(:) string(The *underlying* cause.) key(html)operator(:) string(The underlying cause.
) -tag(---) +head key(name)operator(:) string(italic text) key(desc)operator(:) string(em is a semantic tag, usually represented by browsers as italic text. To produce italic tags instead, use double underscores.) key(in)operator(:) string(The __underlying__ cause.) key(html)operator(:) string(The underlying cause.
) -tag(---) +head key(name)operator(:) string(bold text) key(desc)operator(:) string(strong is a semantic tag, usually represented by browsers as bold text. To produce bold tags instead, use double asterisks.) key(in)operator(:) string(The **underlying** cause.) key(html)operator(:) string(The underlying cause.
) -tag(---) +head key(name)operator(:) string(citation) key(desc)operator(:) string(Double question marks represent a citation, like the title of a book.) key(in)operator(:) string(??The Count of Monte Cristo??, by Dumas.) key(html)operator(:) string(The Count of Monte Cristo, by Dumas.
) -tag(---) +head key(name)operator(:) string(inserted and deleted text) key(desc)operator(:) string(Inserted and deleted text is represented by + plus and - minus symbols.) key(in)operator(:) string(Scratch -that-, replace with +this+.) key(html)operator(:) string(Scratch that, replace with this.
log 2 n
) -tag(---) +head key(name)operator(:) string(superscript) key(desc)operator(:) string(Superscript text is indicated by ^ caret characters.) key(in)operator(:) string(2 ^x^) key(html)operator(:) string(2 x
) -tag(---) +head key(name)operator(:) string(span tag) key(desc)operator(:) string(Percentage marks will enclose text with a XHTML span tag.) key(in)operator(:) string(The %underlying% cause.) key(html)operator(:) string(The underlying cause.
) -tag(---) +head key(name)operator(:) string(code) key(desc)operator(:) string(To include a short snippet of code such as XHTML or Javascript, surround it with @ “at” symbols. XHTML significant characters within a code phrase will be escaped for display to the reader.) key(in)operator(:) string(About the @About the <hr /> tag.
Here’s) string(a) string(link,) string(and
)
- string(another) string(link) string(to) string(the) string(same) string(site.
Here’s a link, and
)
+ string(another link to the same site.



A) string(paragraph.
)
+ string(
A paragraph.
)
string(Continued.
Also) string(a) string(paragraph.
) -tag(---) + string(Also a paragraph.
) +head key(name)operator(:) string(block quote) key(desc)operator(:) string(bq. indicates a quoted block of text.) key(in)operator(:) string(|-) - string(bq.) string(A) string(quotation.) + string(bq. A quotation.) string(Continued.) - string(Regular) string(paragraph.) + string(Regular paragraph.) key(html)operator(:) string(|-) string() - string() - string(A) string(quotation.
) + string(A quotation.
) string(
) string(Continued.
Regular) string(paragraph.
) -tag(---) + string(Regular paragraph.
) +head key(name)operator(:) string(block quote citation) key(desc)operator(:) string(Block quotes may include a citation URL immediately following the period.) key(in)operator(:) string(bq.:http://thresholdstate.com/ A cited quotation.) key(html)operator(:) string(|-) - string() - string(A) string(cited) string(quotation.
) + string() + string() -tag(---) +head key(name)operator(:) string(footnotes) key(desc)operator(:) string(Footnotes are represented by the fn1., fn2., … block modifiers.) key(in)operator(:) string(|-) - string(A) string(footnote) string(reference[1].) + string(A footnote reference[1].) - string(fn1.) string(The) string(footnote.) + string(fn1. The footnote.) key(html)operator(:) string(|-) - string(A cited quotation.
) string(A) string(footnote) string(reference1.
) - string(1) string(The) string(footnote.
) + string(A footnote reference1.
) + string(1 The footnote.
) comment(# html: |-) comment(#A footnote reference1.
) comment(#1 The footnote.
) -tag(---) +head key(name)operator(:) string(block code) key(desc)operator(:) string(Code such as XHTML, Javascript or PHP may be displayed using the bc. “block code” modifier. XHTML significant characters such as < and > will be escaped within code blocks – bc is used for displaying code to the reader, not for executing it.) key(note)operator(:) string(Note that Textile will interpret any blank lines within the code as indicating the end of the code block. See Extended Blocks below for an explanation of how to display longer blocks of code.) key(in)operator(:) string(|-) - string(bc.) string() key(html)operator(:) string(|-) string() -tag(---) +head key(name)operator(:) string(preformatted text) key(desc)operator(:) string(Use the pre. block modifier for pre-formatted text. XHTML significant characters within the block will be escaped.) key(note)operator(:) string(pre. is almost identical to bc., with the exception that<script>) - string(//) string(a) string(Javascript) string(example) - string(alert("Hello) string(World"\);) + string(// a Javascript example) + string(alert("Hello World"\);) variable(</script>...tags are not used within theblock.) key(in)operator(:) string(|-) - string(pre.) string(Pre-formatted) + string(pre. Pre-formatted) string(text) key(html)operator(:) string(|-) string(Pre-formatted) string(text) -tag(---) +head key(name)operator(:) string(notextile) key(desc)operator(:) string(The notextile. block modifier applies no Textile processing at all to a block. Raw XHTML characters are passed through untouched, so this may be used to insert explicit XHTML markup, or execute Javascript or PHP code.) key(in)operator(:) string(|-) - string(notextile.) string() - string() + string() key(html)operator(:) string(|-) - string() - string() + string() key(valid_html)operator(:) string(false) -tag(---) +head key(name)operator(:) string(class attribute) key(desc)operator(:) string(CSS classes are specified with (\) parentheses.) key(in)operator(:) string(p(myclass\). My classy paragraph.) key(html)operator(:) string(My classy paragraph.
) -tag(---) +head key(name)operator(:) string(id attribute) key(desc)operator(:) string(CSS IDs are specified with (\) parentheses.) key(in)operator(:) string(p(#myid\). My ID paragraph.) key(html)operator(:) string(My ID paragraph.
) -tag(---) +head key(name)operator(:) string(style attribute) key(desc)operator(:) string(CSS styles are specified with {} braces.) key(in)operator(:) string(p{color:red}. Red rum.) key(html)operator(:) string(Red rum.
) -tag(---) +head key(name)operator(:) string(lang attribute) key(desc)operator(:) string(Languages are specified with [] brackets.) key(in)operator(:) string(p[fr-fr]. En français.) key(html)operator(:) string(En français.
) -tag(---) +head key(name)operator(:) string(phrase modifiers) key(desc)operator(:) string(The same syntax may be applied to phrase modifiers.) key(in)operator(:) string(A *(myclass\)classy* phrase.) key(html)operator(:) string(A classy phrase.
) -tag(---) +head key(name)operator(:) string(phrase modifiers 2) key(in)operator(:) string(An _(#myid2\)ID_ phrase.) key(html)operator(:) string(An ID phrase.
) -tag(---) +head key(name)operator(:) string(phrase modifiers 3) key(in)operator(:) string(The %{color:blue}blue% room.) key(html)operator(:) string(The blue room.
) -tag(---) +head key(name)operator(:) string(block and phrase attributes combined) key(desc)operator(:) string(Block and phrase attributes may be combined.) key(in)operator(:) string(p(myclass#myid3\){color:green}[de-de]. A complex paragraph.) key(html)operator(:) string(A complex paragraph.
) -tag(---) +head key(name)operator(:) string(block and phrase attributes combined 2) key(in)operator(:) string(A ??(myclass#myid4\){color:green}[de-de]complex?? phrase.) key(html)operator(:) string(A complex phrase.
) -tag(---) +head key(name)operator(:) string(extended blocks) key(desc)operator(:) string(Normally a block modifier covers a single block of text, and ends at the first blank line. To extend a block over multiple paragraphs that include blank lines, use a block modifier with two period marks instead of one. To close the extended block, use a different block modifier on the next paragraph.) key(in)operator(:) string(|-) - string(bq..) string(A) string(quote.) + string(bq.. A quote.) - string(The) string(quote) string(continued.) + string(The quote continued.) - string(p.) string(Back) string(to) string(paragraph) string(text.) + string(p. Back to paragraph text.) key(html)operator(:) string(|-) string() - string() - string(A) string(quote.
) - string(The) string(quote) string(continued.
) + string(A quote.
) + string(The quote continued.
) string(Back) string(to) string(paragraph) string(text.
) -tag(---) + string(Back to paragraph text.
) +head key(name)operator(:) string(extended block code) key(desc)operator(:) string(Extended blocks are useful for displaying longer examples of code that contain blank lines.) key(in)operator(:) string(|-) - string(A) string(PHP) string(code) string(example.) + string(A PHP code example.) - string(bc..) string() - string(p.) string(Following) string(paragraph.) + string(p. Following paragraph.) key(html)operator(:) string(|-) - string(A) string(PHP) string(code) string(example.
) + string(A PHP code example.
) string() - string(<?php) - string(function) string(hello(\)) operator({) - string(//) string(display) string(a) string(hello) string(message) + string(function hello(\) {) + string(// display a hello message) - string(print) string("Hello,) string(World";) + string(print "Hello, World";) operator(}) string(?>) string(Following) string(paragraph.
) -tag(---) + string(Following paragraph.
) +head key(name)operator(:) string(extended block attributes) key(desc)operator(:) string(Any block attributes on an extended block will be included on each following block.) key(in)operator(:) string(|-) - string(p(myclass\)..) string(A) string(classy) string(paragraph.) + string(p(myclass\).. A classy paragraph.) - string(Another) string(classy) string(paragraph.) + string(Another classy paragraph.) - string(p.) string(Not) string(so) string(classy.) + string(p. Not so classy.) key(html)operator(:) string(|-) - string(A) string(classy) string(paragraph.
) - string(Another) string(classy) string(paragraph.
) - string(Not) string(so) string(classy.
) -tag(---) + string(A classy paragraph.
) + string(Another classy paragraph.
) + string(Not so classy.
) +head key(name)operator(:) string(extended block quote attributes) key(desc)operator(:) string(Attributes on bq.. extended blocks will be included on both the inner and outer blocks.) key(in)operator(:) string(|-) - string(bq(myclass\)..) string(Quote) string(paragraph) string(1.) + string(bq(myclass\).. Quote paragraph 1.) - string(Paragraph) string(2.) + string(Paragraph 2.) key(html)operator(:) string(|-) - string() - string(Quote) string(paragraph) string(1.
) - string(Paragraph) string(2.
) + string() + string() -tag(---) +head key(name)operator(:) string(extended block code attributes) key(desc)operator(:) string(Attributes on bc.. extended blocks will be included on both the inner and outer blocks.) key(in)operator(:) string(|-) - string(bc(myclass\)..) string(Code) string(block) string(1.) + string(bc(myclass\).. Code block 1.) - string(Code) string(block) string(2.) + string(Code block 2.) key(html)operator(:) string(|-) - string(Quote paragraph 1.
) + string(Paragraph 2.
) string() +head key(name)operator(:) string(raw xhtml left in tact) key(desc)operator(:) string(Raw XHTML tags are generally left untouched by Textile. Span tags that enclose only part of a block of text will be left intact, while the block itself is treated normally.) key(in)operator(:) string(bold and italic, the hard way.) key(html)operator(:) string(Code) string(block) string(1.) + string() -tag(---) + string(Code block 1.) - string(Code) string(block) string(2.Code block 2.bold and italic, the hard way.
) -tag(---) +head key(name)operator(:) string(paragraphs entirely raw xhtml) key(desc)operator(:) string(Paragraphs that consist entirely of raw XHTML block tags will not be enclosed in...
tags.) key(in)operator(:) string(My div) key(html)operator(:) string(My div) -tag(---) +head key(name)operator(:) string(paragraphs with inline xhtml) key(desc)operator(:) string(Paragraphs that consist only of inline XHTML tags, will be enclosed in...
tags.) key(in)operator(:) string() key(html)operator(:) string(
) -tag(---) +head key(name)operator(:) string(paragraphs with inline xhtml 2) key(in)operator(:) string(I'll make my own way.) key(html)operator(:) string('
I’ll make my own way.
') -tag(---) +head key(name)operator(:) string(paragraphs partly enclosed in xhtml block tags) key(desc)operator(:) string(Paragraphs that are only partly enclosed in block tags will be enclosed in...
tags.) key(in)operator(:) string(insideand outside.) key(html)operator(:) string(insideand outside.
) comment(# html:insideand outside.) -tag(---) +head key(name)operator(:) string(complex xhtml blocks) key(desc)operator(:) string(Textile can’t always identify the beginning and end of long or complex blocks of XHTML. To prevent Textile from enclosing complex XHTML blocks in paragraph tags, either use a space at the beginning of each line...) -key(in)operator(:) string("\\n My div\\n") -key(html)operator(:) string("\\nMy div\\n") -tag(---) +key(in)operator(:) string\\n My div\\n )delimiter(")> +key(html)operator(:) string \\nMy div\\n)delimiter(")> +head key(name)operator(:) string(complex xhtml blocks 2) key(desc)operator(:) string(...or a notexile.. extended block.) key(in)operator(:) string(|-) - string(notextile..) string( ) + string(notextile..)delimiter(")> +key(html)operator(:) string) - string(My) string(div) + string(My div) string() key(html)operator(:) string(|-) string() - string(My) string(div) + string(My div) string() -tag(---) +head key(name)operator(:) string(complex xhtml blocks with inline formatting) key(desc)operator(:) string(Textile will not wrap lines that start with a space in paragraph tags, but it should parse inline signatures) -key(in)operator(:) string("\\n My *div*\\n") -key(html)operator(:) string("\\nMy div\\n") -tag(---) +key(in)operator(:) string\\n My *div*\\n \\nMy div\\n)delimiter(")> +head key(name)operator(:) string(explicit pre escapement) key(desc)operator(:) string(The contents of explicit ...tags are escaped for display. ) key(in)operator(:) string(|-) string() - string(A) string(HTML) string(example) + string(A HTML example) string() key(html)operator(:) string(|-) string() - string(A) string(HTML) variable(<b>example</b>) + string(A HTML <b>example</b>) string() key(note)operator(:) string(This syntax is supported for backwards compatibility only, and doesn’t always work as expected. The block modifier pre. should be used instead.) -tag(---) +head key(name)operator(:) string(explicit code escapement) key(desc)operator(:) string(The contents of explicit...tags are escaped for display.) key(in)operator(:) string(|-) string() - string(Another) string(HTML) string(example) + string(Another HTML example) string() key(html)operator(:) string(|-) string() key(note)operator(:) string(This syntax is supported for backwards compatibility only, and doesn’t always work as expected. The block modifier bc. should be used instead.) -tag(---) +head key(name)operator(:) string(notextile tags) key(desc)operator(:) string(Blocks enclosed by the pseudo tag
) - string(Another) string(HTML) variable(<b>example</b>) + string(Another HTML <b>example</b>) string(... will be left untouched.) key(in)operator(:) string(|-) string() - string(p.) string(Leave) string(me) string(alone) + string(p. Leave me alone) string( ) key(html)operator(:) string(|-) - string(p.) string(Leave) string(me) string(alone) + string(p. Leave me alone) comment(# html: |-) comment(#) comment(# p. Leave me alone) comment(#
) key(note)operator(:) string(This syntax is supported for backwards compatibility only, and doesn’t always work as expected. The block modifier notextile. should be used instead.) key(valid_html)operator(:) string(false) -tag(---) +head key(name)operator(:) string(left aligned text) key(desc)operator(:) string(Left alignment is specified with a < less than symbol.) key(in)operator(:) string(p<. Left-aligned paragraph.) key(html)operator(:) string(Left-aligned paragraph.
) -tag(---) +head key(name)operator(:) string(right aligned text) key(desc)operator(:) string(Right alignment is specified with a > greater than symbol.) key(in)operator(:) string(h3>. Right-aligned heading.) key(html)operator(:) string(Right-aligned heading.
) -tag(---) +head key(name)operator(:) string(justified text) key(desc)operator(:) string(Use both <> symbols for justified text.) key(in)operator(:) string(p<>. Justified paragraph.) key(html)operator(:) string(Justified paragraph.
) -tag(---) +head key(name)operator(:) string(centered text) key(desc)operator(:) string(An = equals symbol represents centered text.) key(in)operator(:) string(h3=. Centered heading.) key(html)operator(:) string(Centered heading.
) -tag(---) +head key(name)operator(:) string(padding) key(desc)operator(:) string(Use empty ( and \) parentheses to add padding to blocks, in multiples of 1 em.) key(in)operator(:) string(p(. Left pad 1em.) key(html)operator(:) string(Left pad 1em.
) -tag(---) +head key(name)operator(:) string(padding 2) key(in)operator(:) string(p\)\). Right pad 2em.) key(html)operator(:) string(Right pad 2em.
) -tag(---) +head key(name)operator(:) string(padding 3) key(in)operator(:) string(p(\). Left and right pad 1em.) key(html)operator(:) string(Left and right pad 1em.
) -tag(---) +head key(name)operator(:) string(numeric lists) -key(desc)operator(:) string(Numeric lists are represented by lines beginning with #.) +key(desc)operator(:) string(Numeric lists are represented by lines beginning with) comment(#.) key(in)operator(:) string(|-) comment(# Item one) comment(# Item two) comment(# Item three) key(html)operator(:) string(|-) string() - string(
) -tag(---) +head key(name)operator(:) string(bulleted lists) key(desc)operator(:) string(Bulleted lists are represented by lines beginning with *.) key(in)operator(:) string(|-) - string(*) string(Item) string(A) - string(*) string(Item) string(B) - string(*) string(Item) string(C) + string(* Item A) + string(* Item B) + string(* Item C) key(html)operator(:) string(|-) string(- Item) string(one
) - string(- Item) string(two
) - string(- Item) string(three
) + string(- Item one
) + string(- Item two
) + string(- Item three
) string() - string(
) -tag(---) +head key(name)operator(:) string(list attributes) key(desc)operator(:) string(Attributes applied to the first list item will apply to the list itself.) key(in)operator(:) string(|-) - string(*{color)symbol(:red)operator(}) string(Item) string(one) - string(*) string(Item) string(two) - string(*) string(Item) string(three) -key(html)operator(:) string(|-) - string(- Item) string(A
) - string(- Item) string(B
) - string(- Item) string(C
) + string(- Item A
) + string(- Item B
) + string(- Item C
) string() - string(
- Item) string(one
) - string(- Item) string(two
) - string(- Item) string(three
) + string(*{color:red} Item one) + string(* Item two) + string(* Item three) +key(html)operator(:) string(|-) + string() + string(
) -tag(---) +head key(name)operator(:) string(nested lists) -key(desc)operator(:) string(Use multiple # or * symbols to create nested lists.) +key(desc)operator(:) string(Use multiple) comment(# or * symbols to create nested lists.) key(in)operator(:) string(|-) comment(# Item one) comment(## Item one-A) @@ -585,17 +585,17 @@ key(in)operator(:) string(|-) comment(# Item two) key(html)operator(:) string(|-) string(- Item one
) + string(- Item two
) + string(- Item three
) string() - string(
) -tag(---) +head key(name)operator(:) string(tables) key(desc)operator(:) string(Tables can be constructed using | “pipe” symbols to separate cells.) key(in)operator(:) string(|a|simple|table|) @@ -607,11 +607,11 @@ key(html)operator(:) string(|-) string(- Item) string(one) + string(
- Item one) string(
) - string() - string(
- Item) string(one-A
) - string(- Item) string(one-B) + string(
- Item one-A
) + string(- Item one-B) string(
) string() - string(
- Item) string(one-B-a
) + string(- Item one-B-a
) string(- Item) string(two
) + string(- Item two
) string(table ) string() string(
| row | ) string() string(
| a | ) - string(styled | ) + string(styled | ) string(cell | ) string(
| a | ) string(classy | ) string(row | ) string(
| a | ) string(classy | ) @@ -670,102 +670,102 @@ key(html)operator(:) string(|-) string(table | ) string(
| top) string(alignment | ) + string(top alignment | ) string(
| middle) string(alignment | ) + string(middle alignment | ) string(
| bottom) string(alignment | ) + string(bottom alignment | ) string(
| spans) string(two) string(cols) string( | ) + string(spans two cols | ) string(||
| ) string(col) string(1) string( | ) - string() string(col) string(2) string( | ) + string(col 1 | ) + string(col 2 | ) string(
| spans) string(3) string(rows) string( | ) - string() string(row) string(a) string( | ) + string(spans 3 rows | ) + string(row a | ) string(
| ) string(row) string(b) string( | ) + string(row b | ) string(||
| ) string(row) string(c) string( | ) + string(row c | ) string(
this*won’t*work
) -tag(---) +head key(name)operator(:) string(modifier without whitespace) key(desc)operator(:) string(To use these without whitespace, surround the modifier with [] square brackets.) key(in)operator(:) string(this[*will*]work) key(html)operator(:) string(thiswillwork
) -tag(---) +head key(name)operator(:) string(modifier without whitespace 2) key(desc)operator(:) string(This is particularly useful in conjunction with superscript and subscript.) key(in)operator(:) string(1[^st^], 2[^nd^], 3[^rd^].) key(html)operator(:) string(1st, 2nd, 3rd.
) -tag(---) +head key(name)operator(:) string(modifier without whitespace 3) key(in)operator(:) string(2 log[~n~]) key(html)operator(:) string(2 logn
) -tag(---) +head key(name)operator(:) string(modifier without whitespace 4) key(desc)operator(:) string(It can also be used to include links and images without surrounding whitespace.) key(in)operator(:) string(|-) - string(A) string(close[!/img.gif!]image.) - string(A) string(tight["text")symbol(:http)error(:)string(//thresholdstate.com/]link.) - string(A) operator([)keyA) string(closeimage.
)
- string(A) string(tighttextlink.
)
- string(A) string(footnoted) string(link1.
A close
image.
)
+ string(A tighttextlink.
)
+ string(A footnoted link1.
A close
image.
)
comment(# A tighttextlink.
)
diff --git a/test/scanners/yaml/website.expected.raydebug b/test/scanners/yaml/website.expected.raydebug
new file mode 100644
index 0000000..171afa3
--- /dev/null
+++ b/test/scanners/yaml/website.expected.raydebug
@@ -0,0 +1,70 @@
+string(%YAML 1.2)
+head