pandoc/tests/writer.context
fiddlosopher f11360f50e Added new rule for enhanced markdown ordered lists: if the list marker
is a capital letter followed by a period (including a single-letter
capital roman numeral), then it must be followed by at least two spaces.
The point of this is to avoid accidentally treating people's initials as
list markers: a paragraph may begin:

    B. Russell was an English philosopher.

and this shouldn't be treated as a list.

Modified Markdown reader and README documentation.
Added a test case.


git-svn-id: https://pandoc.googlecode.com/svn/trunk@880 788f1e2b-df1e-0410-8736-df70ead52e1b
2007-08-23 04:25:09 +00:00

770 lines
13 KiB
Text

\enableregime[utf] % use UTF-8
\setupcolors[state=start]
\setupinteraction[state=start, color=middlered] % needed for hyperlinks
\setuppapersize[letter][letter] % use letter paper
\setuplayout[width=middle, backspace=1.5in, cutspace=1.5in,
height=middle, header=0.75in, footer=0.75in] % page layout
\setuppagenumbering[location={footer,center}] % number pages
\setupbodyfont[11pt] % 11pt font
\setupwhitespace[medium] % inter-paragraph spacing
\setuphead[section][style=\tfc]
\setuphead[subsection][style=\tfb]
\setuphead[subsubsection][style=\bf]
% define title block commands
\unprotect
\def\doctitle#1{\gdef\@title{#1}}
\def\author#1{\gdef\@author{#1}}
\def\date#1{\gdef\@date{#1}}
\date{\currentdate} % Default to today unless specified otherwise.
\def\maketitle{%
\startalignment[center]
\blank[2*big]
{\tfd \@title}
\blank[3*medium]
{\tfa \@author}
\blank[2*medium]
{\tfa \@date}
\blank[3*medium]
\stopalignment}
\protect
% define descr (for definition lists)
\definedescription[descr][
headstyle=bold,style=normal,align=left,location=hanging,
width=broad,margin=1cm]
% define ltxitem (for bulleted lists)
\defineitemgroup[ltxitem][levels=4]
\setupitemgroup[ltxitem][1][1]
\setupitemgroup[ltxitem][2][2]
\setupitemgroup[ltxitem][3][3]
\setupitemgroup[ltxitem][4][4,packed]
% define ltxenum (for enumerated lists)
\defineitemgroup[ltxenum][levels=4]
\setupitemgroup[ltxenum][1][n]
\setupitemgroup[ltxenum][2][a]
\setupitemgroup[ltxenum][3][r]
\setupitemgroup[ltxenum][4][A,packed]
\setupthinrules[width=15em] % width of horizontal rules
% for block quotations
\definestartstop [blockquote]
[before={\startnarrower\switchtobodyfont[11pt]
\whitespace\setupindenting[no]},
after={\stopnarrower\whitespace}]
\setupheads[sectionnumber=no, style=\bf]
\doctitle{Pandoc Test Suite}
\author{John MacFarlane \& Anonymous}
\date{July 17, 2006}
\starttext
\maketitle
This is a set of tests for pandoc. Most of them are adapted from John Gruber's markdown test suite.
\thinrule
\section{Headers}
\subsection{Level 2 with an \useurl[1][/url][][embedded link]\from[1]}
\subsubsection{Level 3 with {\em emphasis}}
Level 4
Level 5
\section{Level 1}
\subsection{Level 2 with {\em emphasis}}
\subsubsection{Level 3}
with no blank line
\subsection{Level 2}
with no blank line
\thinrule
\section{Paragraphs}
Here's a regular paragraph.
In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.
Here's one with a bullet. * criminey.
There should be a hard line break\crlf
here.
\thinrule
\section{Block Quotes}
E-mail style:
\startblockquote
This is a block quote. It is pretty short.
\stopblockquote
\startblockquote
Code in a block quote:
\starttyping
sub status {
print "working";
}
\stoptyping
A list:
\startitemize
\sym{1.} item one
\sym{2.} item two
\stopitemize
Nested block quotes:
\startblockquote
nested
\stopblockquote
\startblockquote
nested
\stopblockquote
\stopblockquote
This should not be a block quote: 2 \lettermore{} 1.
Box-style:
\startblockquote
Example:
\starttyping
sub status {
print "working";
}
\stoptyping
\stopblockquote
\startblockquote
\startitemize
\sym{1.} do laundry
\sym{2.} take out the trash
\stopitemize
\stopblockquote
Here's a nested one:
\startblockquote
Joe said:
\startblockquote
Don't quote me.
\stopblockquote
\stopblockquote
And a following paragraph.
\thinrule
\section{Code Blocks}
Code:
\starttyping
---- (should be four hyphens)
sub status {
print "working";
}
this code block is indented by one tab
\stoptyping
And:
\starttyping
this code block is indented by two tabs
These should not be escaped: \$ \\ \> \[ \{
\stoptyping
\thinrule
\section{Lists}
\subsection{Unordered}
Asterisks tight:
\startltxitem
\item asterisk 1
\item asterisk 2
\item asterisk 3
\stopltxitem
Asterisks loose:
\startltxitem
\item asterisk 1
\item asterisk 2
\item asterisk 3
\stopltxitem
Pluses tight:
\startltxitem
\item Plus 1
\item Plus 2
\item Plus 3
\stopltxitem
Pluses loose:
\startltxitem
\item Plus 1
\item Plus 2
\item Plus 3
\stopltxitem
Minuses tight:
\startltxitem
\item Minus 1
\item Minus 2
\item Minus 3
\stopltxitem
Minuses loose:
\startltxitem
\item Minus 1
\item Minus 2
\item Minus 3
\stopltxitem
\subsection{Ordered}
Tight:
\startitemize
\sym{1.} First
\sym{2.} Second
\sym{3.} Third
\stopitemize
and:
\startitemize
\sym{1.} One
\sym{2.} Two
\sym{3.} Three
\stopitemize
Loose using tabs:
\startitemize
\sym{1.} First
\sym{2.} Second
\sym{3.} Third
\stopitemize
and using spaces:
\startitemize
\sym{1.} One
\sym{2.} Two
\sym{3.} Three
\stopitemize
Multiple paragraphs:
\startitemize
\sym{1.} Item 1, graf one.
Item 1. graf two. The quick brown fox jumped over the lazy dog's back.
\sym{2.} Item 2.
\sym{3.} Item 3.
\stopitemize
\subsection{Nested}
\startltxitem
\item Tab
\startltxitem
\item Tab
\startltxitem
\item Tab
\stopltxitem
\stopltxitem
\stopltxitem
Here's another:
\startitemize
\sym{1.} First
\sym{2.} Second:
\startltxitem
\item Fee
\item Fie
\item Foe
\stopltxitem
\sym{3.} Third
\stopitemize
Same thing but with paragraphs:
\startitemize
\sym{1.} First
\sym{2.} Second:
\startltxitem
\item Fee
\item Fie
\item Foe
\stopltxitem
\sym{3.} Third
\stopitemize
\subsection{Tabs and spaces}
\startltxitem
\item this is a list item indented with tabs
\item this is a list item indented with spaces
\startltxitem
\item this is an example list item indented with tabs
\item this is an example list item indented with spaces
\stopltxitem
\stopltxitem
\subsection{Fancy list markers}
\startitemize[width=2em]
\sym{(2)} begins with 2
\sym{(3)} and now 3
with a continuation
\startitemize[width=2em]
\sym{iv.} sublist with roman numerals, starting with 4
\sym{v.} more items
\startitemize[width=2em]
\sym{(A)} a subsublist
\sym{(B)} a subsublist
\stopitemize
\stopitemize
\stopitemize
Nesting:
\startitemize
\sym{A.} Upper Alpha
\startitemize
\sym{I.} Upper Roman.
\startitemize[width=2em]
\sym{(6)} Decimal start with 6
\startitemize
\sym{c)} Lower alpha with paren
\stopitemize
\stopitemize
\stopitemize
\stopitemize
Autonumbering:
\startltxenum
\item Autonumber.
\item More.
\startltxenum
\item Nested.
\stopltxenum
\stopltxenum
Should not be a list item:
M.A. 2007
B. Williams
\thinrule
\section{Definition Lists}
Tight using spaces:
\startdescr{apple}
red fruit
\stopdescr
\startdescr{orange}
orange fruit
\stopdescr
\startdescr{banana}
yellow fruit
\stopdescr
Tight using tabs:
\startdescr{apple}
red fruit
\stopdescr
\startdescr{orange}
orange fruit
\stopdescr
\startdescr{banana}
yellow fruit
\stopdescr
Loose:
\startdescr{apple}
red fruit
\stopdescr
\startdescr{orange}
orange fruit
\stopdescr
\startdescr{banana}
yellow fruit
\stopdescr
Multiple blocks with italics:
\startdescr{{\em apple}}
red fruit
contains seeds, crisp, pleasant to taste
\stopdescr
\startdescr{{\em orange}}
orange fruit
\starttyping
{ orange code block }
\stoptyping
\startblockquote
orange block quote
\stopblockquote
\stopdescr
\section{HTML Blocks}
Simple block on one line:
foo
And nested without indentation:
foo
bar
Interpreted markdown in a table:
This is {\em emphasized}
And this is {\bf strong}
Here's a simple block:
foo
This should be a code block, though:
\starttyping
<div>
foo
</div>
\stoptyping
As should this:
\starttyping
<div>foo</div>
\stoptyping
Now, nested:
foo
This should just be an HTML comment:
Multiline:
Code block:
\starttyping
<!-- Comment -->
\stoptyping
Just plain comment, with trailing spaces on the line:
Code:
\starttyping
<hr />
\stoptyping
Hr's:
\thinrule
\section{Inline Markup}
This is {\em emphasized}, and so {\em is this}.
This is {\bf strong}, and so {\bf is this}.
An {\em \useurl[2][/url][][emphasized link]\from[2]}.
{\bf {\em This is strong and em.}}
So is {\bf {\em this}} word.
{\bf {\em This is strong and em.}}
So is {\bf {\em this}} word.
This is code: \type{>}, \type{$}, \type{\}, \type{\$}, \type{<html>}.
\overstrikes{This is {\em strikeout}.}
Superscripts: a\high{bc}d a\high{{\em hello}} a\high{hello there}.
Subscripts: H\low{2}O, H\low{23}O, H\low{many of them}O.
These should not be superscripts or subscripts, because of the unescaped spaces: a\letterhat{}b c\letterhat{}d, a\lettertilde{}b c\lettertilde{}d.
\thinrule
\section{Smart quotes, ellipses, dashes}
\quotation{Hello,} said the spider. \quotation{\quote{Shelob} is my name.}
\quote{A}, \quote{B}, and \quote{C} are letters.
\quote{Oak,} \quote{elm,} and \quote{beech} are names of trees. So is \quote{pine.}
\quote{He said, \quotation{I want to go.}} Were you alive in the 70's?
Here is some quoted \quote{\type{code}} and a \quotation{\useurl[3][http://example.com/?foo=1&bar=2][][quoted link]\from[3]}.
Some dashes: one---two---three---four---five.
Dashes between numbers: 5--7, 255--66, 1987--1999.
Ellipses\ldots{}and\ldots{}and\ldots{}.
\thinrule
\section{Special Characters}
Here is some unicode:
\startltxitem
\item I hat: Î
\item o umlaut: ö
\item section: §
\item set membership: ∈
\item copyright: ©
\stopltxitem
AT\&T has an ampersand in their name.
AT\&T is another way to write it.
This \& that.
4 \letterless{} 5.
6 \lettermore{} 5.
Backslash: \letterbackslash{}
Backtick: `
Asterisk: *
Underscore: \letterunderscore{}
Left brace: \letteropenbrace{}
Right brace: \letterclosebrace{}
Left bracket: [
Right bracket: ]
Left paren: (
Right paren: )
Greater-than: \lettermore{}
Hash: \#
Period: .
Bang: !
Plus: +
Minus: -
\thinrule
\section{Links}
\subsection{Explicit}
Just a \useurl[4][/url/][][URL]\from[4].
\useurl[5][/url/][][URL and title]\from[5].
\useurl[6][/url/][][URL and title]\from[6].
\useurl[7][/url/][][URL and title]\from[7].
\useurl[8][/url/][][URL and title]\from[8]
\useurl[9][/url/][][URL and title]\from[9]
\useurl[10][/url/with_underscore][][with\letterunderscore{}underscore]\from[10]
\useurl[11][mailto:nobody@nowhere.net][][Email link]\from[11]
\useurl[12][][][Empty]\from[12].
\subsection{Reference}
Foo \useurl[13][/url/][][bar]\from[13].
Foo \useurl[14][/url/][][bar]\from[14].
Foo \useurl[15][/url/][][bar]\from[15].
With \useurl[16][/url/][][embedded [brackets]]\from[16].
\useurl[17][/url/][][b]\from[17] by itself should be a link.
Indented \useurl[18][/url][][once]\from[18].
Indented \useurl[19][/url][][twice]\from[19].
Indented \useurl[20][/url][][thrice]\from[20].
This should [not][] be a link.
\starttyping
[not]: /url
\stoptyping
Foo \useurl[21][/url/][][bar]\from[21].
Foo \useurl[22][/url/][][biz]\from[22].
\subsection{With ampersands}
Here's a \useurl[23][http://example.com/?foo=1&bar=2][][link with an ampersand in the URL]\from[23].
Here's a link with an amersand in the link text: \useurl[24][http://att.com/][][AT\&T]\from[24].
Here's an \useurl[25][/script?foo=1&bar=2][][inline link]\from[25].
Here's an \useurl[26][/script?foo=1&bar=2][][inline link in pointy braces]\from[26].
\subsection{Autolinks}
With an ampersand: \useurl[27][http://example.com/?foo=1&bar=2][][http://example.com/?foo=1\&bar=2]\from[27]
\startltxitem
\item In a list?
\item \useurl[28][http://example.com/][][http://example.com/]\from[28]
\item It should.
\stopltxitem
An e-mail address: \useurl[29][mailto:nobody@nowhere.net][][nobody@nowhere.net]\from[29]
\startblockquote
Blockquoted: \useurl[30][http://example.com/][][http://example.com/]\from[30]
\stopblockquote
Auto-links should not occur here: \type{<http://example.com/>}
\starttyping
or here: <http://example.com/>
\stoptyping
\thinrule
\section{Images}
From \quotation{Voyage dans la Lune} by Georges Melies (1902):
\placefigure
[]
[fig:lalune]
{Voyage dans la Lune}
{\externalfigure[lalune.jpg]}
Here is a movie \placefigure
[]
[fig:movie]
{}
{\externalfigure[movie.jpg]} icon.
\thinrule
\section{Footnotes}
Here is a footnote reference,\footnote{Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.
} and another.\footnote{Here's the long note. This one contains multiple blocks.
Subsequent blocks are indented to show that they belong to the footnote (as with list items).
\starttyping
{ <code> }
\stoptyping
If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.
} This should {\em not} be a footnote reference, because it contains a space.[\letterhat{}my note] Here is an inline note.\footnote{This is {\em easier} to type. Inline notes may contain \useurl[31][http://google.com][][links]\from[31] and \type{]} verbatim characters, as well as [bracketed text].
}
\startblockquote
Notes can go in quotes.\footnote{In quote.
}
\stopblockquote
\startitemize
\sym{1.} And in list items.\footnote{In list.
}
\stopitemize
This paragraph should not be part of the note, as it is not indented.
\stoptext