Support for "..code-block" directive in RST reader.

Not core RST, but used in Sphinx for code blocks annotated with
syntax information.  Thanks to Luke Plant for the patch.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1619 788f1e2b-df1e-0410-8736-df70ead52e1b
This commit is contained in:
fiddlosopher 2009-11-17 03:36:04 +00:00
parent fce48c392a
commit 9d20eeb019
3 changed files with 20 additions and 0 deletions

View file

@ -122,6 +122,7 @@ block = choice [ codeBlock
, fieldList , fieldList
, blockQuote , blockQuote
, imageBlock , imageBlock
, customCodeBlock
, unknownDirective , unknownDirective
, header , header
, hrule , hrule
@ -331,6 +332,16 @@ codeBlock = try $ do
result <- indentedBlock result <- indentedBlock
return $ CodeBlock ("",[],[]) $ stripTrailingNewlines result return $ CodeBlock ("",[],[]) $ stripTrailingNewlines result
-- | The 'code-block' directive (from Sphinx) that allows a language to be
-- specified.
customCodeBlock :: GenParser Char st Block
customCodeBlock = try $ do
string ".. code-block:: "
language <- manyTill anyChar newline
blanklines
result <- indentedBlock
return $ CodeBlock ("", ["sourceCode", language], []) $ stripTrailingNewlines result
lhsCodeBlock :: GenParser Char ParserState Block lhsCodeBlock :: GenParser Char ParserState Block
lhsCodeBlock = try $ do lhsCodeBlock = try $ do
failUnlessLHS failUnlessLHS

View file

@ -43,6 +43,8 @@ Pandoc (Meta [Str "Pandoc",Space,Str "Test",Space,Str "Suite",Str ":",Space,Str
, CodeBlock ("",[],[]) "this code block is indented by one tab" , CodeBlock ("",[],[]) "this code block is indented by one tab"
, Para [Str "And",Str ":"] , Para [Str "And",Str ":"]
, CodeBlock ("",[],[]) "this block is indented by two tabs\n\nThese should not be escaped: \\$ \\\\ \\> \\[ \\{" , CodeBlock ("",[],[]) "this block is indented by two tabs\n\nThese should not be escaped: \\$ \\\\ \\> \\[ \\{"
, Para [Str "And",Str ":"]
, CodeBlock ("",["sourceCode","python"],[]) "def my_function(x):\n return x + 1"
, Header 1 [Str "Lists"] , Header 1 [Str "Lists"]
, Header 2 [Str "Unordered"] , Header 2 [Str "Unordered"]
, Para [Str "Asterisks",Space,Str "tight",Str ":"] , Para [Str "Asterisks",Space,Str "tight",Str ":"]

View file

@ -101,6 +101,13 @@ And::
These should not be escaped: \$ \\ \> \[ \{ These should not be escaped: \$ \\ \> \[ \{
And:
.. code-block:: python
def my_function(x):
return x + 1
Lists Lists
===== =====