I suggest starting by looking at
Markdown,
Textile and
Grutatxt. But there are many:
List of plain-text markup and tools
- AFT written in Perl. Outputs html, latex, lout, RTF
- APTconvert no longer available? See Doxia below
- APT
- ASCIIDoc Outputs DocBook
- BBcode (alt)
- BHL An add-on for the EMACS editor
- Bobcat
- Creole
- Crossmark
- Deplate Written in Ruby. Outputs LaTex, HTML, DocBook
- Docfrac
- Doxia reads APT and others
- epydoc Mainly for Python API documentation
- etText Written in Perl. Outputs HTML
- gema Macro processor with templates for markup conversion
- Groff
- Grutatxt
- Highlight 160 programming languages to HTML, XHTML, RTF, TeX, LaTeX, SVG, BBCode and XML
- Lout similar to LaTex, outputs PS
- Markdown Written in Perl. Outputs HTML only. Used on SuperUser.com
- MultiMarkdown Extends Markdown with tables etc
- o7acode Outputs HTML only?
- otl Very configurable
- Pandoc Written in Haskell
- Pod Written in Perl
- Proletext Uses spaces and tabs as markup :(
- Regexxer Search/Replacer
- ReST Written in Python. Outputs only HTML?
- rdoc Written in Ruby
- setext
- sisu (alt)
- skribe
- spip More of a CMS?
- stx2any Converts structured text (stx) into other formats
- texy
- Textile
- text2html Written in Perl?
- txt2html
- txt2tags Not customizable
- Yodl
- Xilize Similar to textile markup
- Zoem Used to generate HTML or troff.
Other lists
Grutatxt
I like Grutatxt because it seems to me to be nearest to unadorned plain text and so the plain text is very readable.
I use GrutaTxt to generate HTML and PDF (via LaTeX) It handles tables quite well which Markdown doesn't so far as I know. I have a Perl script to add a table of contents and plug in a CSS stylesheet. I use recode to convert character encodings to UTF8. I have all this in a simple makefile so I can just edit the text file and type make to publish it as a web page (and PDF simultaneously).
Comparison of markup for GrutaTxt, ASCIIDOC and APT
NL = new line, SP = space character(s)
Title
Markdown Title NL =====
Grutatxt Title NL =====
ASCIIDOC Title NL =====
APT --- NL Title NL --- NL Author NL --- NL Date
H1
Markdown Head NL ==== or # Head #
Grutatxt Head NL ====
ASCIIDOC Head NL ---- or == Head
APT * Head
H2
Markdown Head NL ---- or ## Head ##
Grutatxt Head NL ----
ASCIIDOC Head NL ~~~~ or === Head
APT ** Head
H3
Markdown ### Head ###
Grutatxt Head NL ~~~~
ASCIIDOC head NL ^^^^ or ==== Head
APT *** Head
H4
Markdown -
Grutatxt -
ASCIIDOC Head NL ++++ or ===== Head
APT **** Head
Bold
Markdown **word**
Grutatxt *word*
ASCIIDOC .word
APT <<word>>
Italic
Markdown *word*
Grutatxt _word_
ASCIIDOC -
APT <word>
Code
Markdown `words`
Grutatxt `words'
ASCIIDOC `words`
APT <<<words>>>
Line Break
Markdown words SP SP NL
Grutatxt -
ASCIIDOC -
APT words \ NL words
Non breaking space
Markdown -
Grutatxt -
ASCIIDOC -
APT word\ word
Comment
Markdown -
Grutatxt -
ASCIIDOC -
APT ~~ comments
HyperLink
Markdown [name](http://a.b.c)
Grutatxt http://a.b.c(name)
ASCIIDOC <<a.b.c, name>>
APT http://a.b.c
{{{http://a.b.c}name}}
Anchor
Markdown -
Grutatxt -
ASCIIDOC [[name]]
APT {name}
Unordered List
Markdown SP SP - words
Grutatxt SP * words
ASCIIDOC SP - words
APT SP * words
Ordered List
Markdown SP SP 1. words
Grutatxt SP # words
ASCIIDOC -
APT [[1]] words
Definition
Markdown -
Grutatxt SP * term: definition
ASCIIDOC term:: NL definition
APT [term] definition
Table
Markdown -
Grutatxt +---+---+
| a | b |
+---+---+
ASCIIDOC ~~~~~
h,h,h
~~~~~
a,b,c
d,e,f
~~~~~
APT *---*---+---:
|ctr|lft|rgt|
*---*---+---:
caption
Image
Markdown 
Grutatxt << NL <img src="cow.jpg" /> NL >>
ASCIIDOC -
APT [cow.jpg] caption
Preformatted
Markdown SP SP SP SP words or <pre> NL words NL </pre>
Grutatxt SP words
ASCIIDOC SP words
APT --- NL words NL ---
Horizontal Rule
Markdown NL ------ NL
Grutatxt ____
ASCIIDOC -
APT ====
Citation
Markdown -
Grutatxt ``words
ASCIIDOC -
APT -