Crabgrass uses a lightweight markup language called GreenCloth. There are many such markup languages, all with the same purpose: convert plain text into formatted HTML. In the example source text, the symbol is used to indicate where returns are.
Paragraphs and line breaks
Paragraphs
===========

Paragraphs are separated by a blank line. This is the first paragraph. Only put returns (enter key) in a paragraph if you want to force a line break.

Here is another paragraph, but shorter than the first.

Line breaks
-----------

Paragraphs will
contain line breaks
everywhere you type return.

Paragraphs

Paragraphs are separated by a blank line. This is the first paragraph. Only put returns (enter key) in a paragraph if you want to force a line break.

Here is another paragraph, but shorter than the first.

Line breaks

Paragraphs will
contain line breaks
everywhere you type return.

Lists
* rainbows
** are difficult to touch
** make me happy
* ninjas are cool
* crows are smart

# first, be the change you want to see in the world.
# then, relax.

# or perhaps take a nap instead.
  • rainbows
    • are difficult to touch
    • make me happy
  • ninjas are cool
  • crows are smart
  1. first, be the change you want to see in the world.
  2. then, relax.
  1. or perhaps take a nap instead.
Blockquotes
Blockquotes are used to inset a block of quoted text.

bq. This is a blockquote.

> this is also a blockquote
> in 'email' style.

You can extend blockquotes for multiple paragraphs by using bq.. (note the double dots):

bq.. "There's a time when the operation of the machine becomes so odious, makes you so sick at heart, that you can't take part, you can't even passively take part, and you've got to put your bodies upon the gears and upon the wheels, upon the levers, upon all the apparatus, and you've got to make it stop!

And you've got to indicate to the people who run it, to the people who own it, that unless you're free, the machine will be prevented from working at all!"

p. Multiple paragraph blockquotes are ended with p.

Blockquotes are used to inset a block of quoted text.

This is a blockquote.

this is also a blockquote
in ‘email’ style.

You can extend blockquotes for multiple paragraphs by using bq.. (note the double dots):

“There’s a time when the operation of the machine becomes so odious, makes you so sick at heart, that you can’t take part, you can’t even passively take part, and you’ve got to put your bodies upon the gears and upon the wheels, upon the levers, upon all the apparatus, and you’ve got to make it stop!

And you’ve got to indicate to the people who run it, to the people who own it, that unless you’re free, the machine will be prevented from working at all!"

Multiple paragraph blockquotes are ended with p.

Formatting
_emphasis_, __italicized__, *strong*, **bold**, ??citation??, -deleted text-, +inserted text+, ^superscript^, ~subscript~, @code@, %(classname)span%

[_emphasis_], [__italicized__], [*strong*], [**bold**], [??citation??], [-deleted text-], [+inserted text+], [^superscript^], [~subscript~], [@code@]

emphasis, italicized, strong, bold, citation, deleted text, inserted text, superscript, subscript, code, span

emphasis_], [_italicized__], strong, bold, citation, deleted text, inserted text, superscript, subscript, code

Links
# URLs become links http://riseup.net
# Text [in brackets] is assumed to be a page name.
# You can also point to a [different page -> trees].
# Or to another [site->http://riseup.net].
# To specify a different group:
** [fruit/orange] is different from [colors/orange]
** [my orange -> fruit/orange] is different
   from [my orange -> colors/orange]
# Instead of the page name, you can use the page id number: [oranges -> +342]. It is always safe to link to a page id: it will never change.
# If you want a square bracket in your text, you can disable linking \[like so\].
  1. URLs become links riseup.net
  2. Text in brackets is assumed to be a page name.
  3. You can also point to a different page.
  4. Or to another site.
  5. To specify a different group:
  6. Instead of the page name, you can use the page id number: oranges. It is always safe to link to a page id: it will never change.
  7. If you want a square bracket in your text, you can disable linking [like so].
Anchors
You can create anchors in text:

* a flock of crows is a [# murder #]
* but a flock of ravens is [# called a congress -> congress #]

And also link to these anchors:

* jump to [ crows -> do/static/greencloth #murder]
* or, more simply: [#congress]

You can create anchors in text:

And also link to these anchors:

Headings
h1. Top level

h2. Second level

h3. Third level

Top level

Second level

Third level

Top Level
=========

Second Level
------------

Top Level

Second Level

Tables
| bird      | color  | locomotion  |
| macaw     | red    | fly  |
| kakapo    | green  | walk |
| penguin   | black  | swim |
bird color locomotion
macaw red fly
kakapo green walk
penguin black swim
Tables can be built with tabs instead of "|" and they can have headers:

_. bird_. color_. locomotion
macawredfly
kakapogreenwalk
penguinblackswim

Tables can be built with tabs instead of “|” and they can have headers:

_. bird _. color _. locomotion
macaw red fly
kakapo green walk
penguin black swim

Preformatted Code
Here is some @inline code that is *not* processed@ for formatting.

<pre>
this paragraph is
    preformatted
         with some really impressive text.
</pre>

<code>
def fibonacci(max)
  i1, i2 = 1, 1
  while i1 <= max
    yield i1
    i1, i2 = i2, i1+i2
  end
end
</code>

/-- another way to
   make code blocks
\--

@@ a single code block line

Here is some inline code that is *not* processed for formatting.

this paragraph is
    preformatted
         with some really impressive text.
def fibonacci(max)
  i1, i2 = 1, 1
  while i1 <= max
    yield i1
    i1, i2 = i2, i1+i2
  end
end

codetitle. another way to

   make code blocks
a single code block line
Macros
There are a few macros which generate special content:

Table of Contents:

[[toc]]

h3. squirrels

h4. grey

h4. black

There are a few macros which generate special content:

Table of Contents:

squirrels

grey

black

For more details, see the official RedCloth textile reference. Not all RedCloth options work with GreenCloth.