diff options
author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2012-05-09 13:42:58 +0000 |
---|---|---|
committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2012-05-09 13:42:58 +0000 |
commit | 5aa46e8d12bd92b7d541ddd22fa81a8164deb46f (patch) | |
tree | 3f6b49db491a209d70ca0107387ff8da0bacd98b /sandbox/code-block-directive/tools/pygments-enhanced-front-ends | |
parent | a37d1d928b4a49c118bb17c0d49b09f1fc1e685b (diff) | |
download | docutils-5aa46e8d12bd92b7d541ddd22fa81a8164deb46f.tar.gz |
Clean up code-block-directive sandbox project.
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@7430 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'sandbox/code-block-directive/tools/pygments-enhanced-front-ends')
8 files changed, 0 insertions, 728 deletions
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/README.txt b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/README.txt deleted file mode 100644 index aa68c3d11..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/README.txt +++ /dev/null @@ -1,69 +0,0 @@ -.. -*- rst-mode -*- - -Pygments enhanced docutils front-ends -------------------------------------- - -The example code in "`Using Pygments in ReST documents`_" defines a new -"sourcecode" directive. The directive takes one argument `language` and uses -the `Pygments`_ source highlighter to parse and render its content as a -colourful source code block. - -Combining the pygments_ example code with the standard docutils_ front-ends, -results in front-end scripts generating output documents with syntax colour. -For consistency with the majority of existing add-ons, the directive is -renamed to "code-block". - -`rst2html-pygments`_ - enhances the standard docutils ``rst2html`` front-end to - generate a HTML rendering with syntax highlight. - -`rst2latex-pygments`_ - enhances docutils' ``rst2latex`` to generate LaTeX with syntax highlight. - -Advantages: - + Easy implementation with no changes to the stock docutils_. - + Separation of code blocks and ordinary literal blocks. - -Disadvantages: - - "code-block" content is formatted by `pygments`_ and inserted in the - document tree as a "raw" node making the approach writer-dependant. - - documents are incompatible with the standard docutils because of the - locally defined directive. - - more "invasive" markup distracting from content - - no "minimal" code block marker -- three additional lines per code block - - -The disadvantages lead to the alternative implementation with the -demonstrator front ends `rst2html-highlight`_ and `rst2latex-highlight`_. - - -Example -""""""" - -Python script: - :text source: `for-else-test.py.txt`_ - :HTML: `for-else-test.py.htm`_ - :LaTeX: `for-else-test.py.tex`_ - :PDF: `for-else-test.py.pdf`_ - -Stylesheets: - :CSS stylesheet: `pygments-default.css`_ - :LaTeX style: `pygments-default.sty`_ - -.. References - -.. _pygments: http://pygments.org/ -.. _docutils: http://docutils.sourceforge.net/ -.. _Using Pygments in ReST documents: http://pygments.org/docs/rstdirective/ - -.. _rst2html-pygments: rst2html-pygments -.. _rst2latex-pygments: rst2latex-pygments -.. _rst2html-highlight: ../../rst2html-highlight -.. _rst2latex-highlight: ../../rst2latex-highlight -.. _for-else-test: -.. _for-else-test.py.htm: for-else-test.py.htm -.. _for-else-test.py.txt: for-else-test.py.txt -.. _for-else-test.py.tex: for-else-test.py.tex -.. _for-else-test.py.pdf: for-else-test.py.pdf -.. _pygments-default.css: ../../data/pygments-default.css -.. _pygments-default.sty: ../../data/pygments-default.sty diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py deleted file mode 100644 index 4bb941dd6..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py +++ /dev/null @@ -1,92 +0,0 @@ -# Example for syntax highlight with Pygments -# ========================================== -# -# Translate this document to HTML with a pygments enhanced frontend:: -# -# rst2html-pygments --stylesheet=pygments-default.css -# -# or to LaTeX with:: -# -# rst2latex-pygments --stylesheet=pygments-default.sty -# -# to gain syntax highlight in the output. -# -# Convert between text <-> code source formats with:: -# -# pylit --code-block-marker='.. code-block:: python' -# -# Run the doctests with:: -# -# pylit --doctest for-else-test.py -# -# -# for-else-test -# ------------- -# -# Test the flow in a `for` loop with `else` statement. -# -# First define a simple `for` loop. -# -# .. code-block:: python - -def loop1(iterable): - """simple for loop with `else` statement""" - for i in iterable: - print i - else: - print "iterable empty" - print "Ende" - -# Now test it: -# -# The first test runs as I expect: iterator empty -> else clause applies: -# -# .. code-block:: pycon -# -# >>> execfile('for-else-test.py') -# >>> loop1(range(0)) -# iterable empty -# Ende -# -# However, the else clause even runs if the iterator is not empty in the first -# place but after it is "spent": -# -# .. code-block:: pycon -# -# >>> loop1(range(3)) -# 0 -# 1 -# 2 -# iterable empty -# Ende -# -# It seems like the else clause can only be prevented, if we break out of -# the loop. Let's try -# -# .. code-block:: python - -def loop2(iterable): - """for loop with `break` and `else` statement""" - for i in iterable: - print i - break - else: - print "iterable empty" - print "Ende" - -# And indeed, the else clause is skipped after breaking out of the loop: -# -# .. code-block:: pycon -# -# >>> loop2(range(3)) -# 0 -# Ende -# -# The empty iterator runs as expected: -# -# .. code-block:: pycon -# -# >>> loop2(range(0)) -# iterable empty -# Ende -# diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm deleted file mode 100644 index 1e6057be1..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm +++ /dev/null @@ -1,185 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> -<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> -<title>Example for syntax highlight with Pygments</title> -<style type="text/css"> - -/* Stylesheet for pygments enhanced reStructured Text */ -/* ================================================== */ - -/* :Author: Guenter Milde */ -/* :Copyright: 2007 G. Milde */ -/* This stylesheet is released under the GPL v. 2 or later */ - -/* This stylesheet provides syntax highlight for documents generated with a */ -/* pygments_ enhanced reStructured Text -> html converter. */ - -/* Import the default docutils style sheet */ -/* --------------------------------------- */ -/* :: */ - -@import url("/stylesheets/html4css1.css"); - -/* Indent the code block */ -/* --------------------- */ - -/* Content copied from the `html4css1.css` rule for literal blocks. */ -/* Selector adapted to the output of Pygments_. :: */ - -div.highlight { - margin-left: 2em ; - margin-right: 2em ; - background-color: #eeeeee - } - - -/* Colour code blocks */ -/* ------------------ */ - -/* Pygments_ has an option to generate stylesheets for html and latex. */ -/* The following code is generated with the command */ -/* `pygmentize -S default -f html > pygments-default.css`:: */ - -.c { color: #008800; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #AA22FF; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.cm { color: #008800; font-style: italic } /* Comment.Multiline */ -.cp { color: #008800 } /* Comment.Preproc */ -.c1 { color: #008800; font-style: italic } /* Comment.Single */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #808080 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0040D0 } /* Generic.Traceback */ -.kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */ -.kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */ -.kp { color: #AA22FF } /* Keyword.Pseudo */ -.kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #AA22FF; font-weight: bold } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BB4444 } /* Literal.String */ -.na { color: #BB4444 } /* Name.Attribute */ -.nb { color: #AA22FF } /* Name.Builtin */ -.nc { color: #0000FF } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #00A000 } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #B8860B } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sb { color: #BB4444 } /* Literal.String.Backtick */ -.sc { color: #BB4444 } /* Literal.String.Char */ -.sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BB4444 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BB4444 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BB4444 } /* Literal.String.Single */ -.ss { color: #B8860B } /* Literal.String.Symbol */ -.bp { color: #AA22FF } /* Name.Builtin.Pseudo */ -.vc { color: #B8860B } /* Name.Variable.Class */ -.vg { color: #B8860B } /* Name.Variable.Global */ -.vi { color: #B8860B } /* Name.Variable.Instance */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ - -/* .. _pygments: http://pygments.org/ */ - -</style> -</head> -<body> -<div class="document" id="example-for-syntax-highlight-with-pygments"> -<h1 class="title">Example for syntax highlight with Pygments</h1> -<p>Translate this document to HTML with a pygments enhanced frontend:</p> -<pre class="literal-block"> -rst2html-pygments --stylesheet=pygments-default.css -</pre> -<p>or to LaTeX with:</p> -<pre class="literal-block"> -rst2latex-pygments --stylesheet=pygments-default.sty -</pre> -<p>to gain syntax highlight in the output.</p> -<p>Convert between text <-> code source formats with:</p> -<pre class="literal-block"> -pylit --code-block-marker='.. code-block:: python' -</pre> -<p>Run the doctests with:</p> -<pre class="literal-block"> -pylit --doctest for-else-test.py -</pre> -<div class="section"> -<h1><a id="for-else-test" name="for-else-test">for-else-test</a></h1> -<p>Test the flow in a <cite>for</cite> loop with <cite>else</cite> statement.</p> -<p>First define a simple <cite>for</cite> loop.</p> -<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop1</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span> - <span class="sd">"""simple for loop with `else` statement"""</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span> - <span class="k">print</span> <span class="n">i</span> - <span class="k">else</span><span class="p">:</span> - <span class="k">print</span> <span class="s">"iterable empty"</span> - <span class="k">print</span> <span class="s">"Ende"</span> -</pre></div> -<p>Now test it:</p> -<p>The first test runs as I expect: iterator empty -> else clause applies:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="nb">execfile</span><span class="p">(</span><span class="s">'for-else-test.py'</span><span class="p">)</span> -<span class="gp">>>> </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -<p>However, the else clause even runs if the iterator is not empty in the first -place but after it is "spent":</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span> -<span class="go">0</span> -<span class="go">1</span> -<span class="go">2</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -<p>It seems like the else clause can only be prevented, if we break out of -the loop. Let's try</p> -<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop2</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span> - <span class="sd">"""for loop with `break` and `else` statement"""</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span> - <span class="k">print</span> <span class="n">i</span> - <span class="k">break</span> - <span class="k">else</span><span class="p">:</span> - <span class="k">print</span> <span class="s">"iterable empty"</span> - <span class="k">print</span> <span class="s">"Ende"</span> -</pre></div> -<p>And indeed, the else clause is skipped after breaking out of the loop:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span> -<span class="go">0</span> -<span class="go">Ende</span> -</pre></div> -<p>The empty iterator runs as expected:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -</div> -</div> -<div class="footer"> -<hr class="footer" /> -Generated on: 2007-06-21. - -</div> -</body> -</html> diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf Binary files differdeleted file mode 100644 index fa39a5967..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.pdf +++ /dev/null diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex deleted file mode 100644 index e16a5dd71..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.tex +++ /dev/null @@ -1,170 +0,0 @@ -\documentclass[10pt,a4paper,english]{scrartcl} -\usepackage{babel} -\usepackage[T1]{fontenc} -\usepackage{shortvrb} -\usepackage{ucs} -\usepackage[utf8x]{inputenc} -\usepackage{tabularx} -\usepackage{longtable} -\usepackage{booktabs} -\setlength{\extrarowheight}{2pt} -\usepackage{amsmath} -\usepackage{graphicx} -\usepackage{color} -\usepackage{multirow} -\usepackage{ifthen} -\typearea{12} -% generated by Docutils <http://docutils.sourceforge.net/> -\newlength{\admonitionwidth} -\setlength{\admonitionwidth}{0.9\textwidth} -\newlength{\docinfowidth} -\setlength{\docinfowidth}{0.9\textwidth} -\newlength{\locallinewidth} -\newcommand{\optionlistlabel}[1]{\bf #1 \hfill} -\newenvironment{optionlist}[1] -{\begin{list}{} - {\setlength{\labelwidth}{#1} - \setlength{\rightmargin}{1cm} - \setlength{\leftmargin}{\rightmargin} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \renewcommand{\makelabel}{\optionlistlabel}} -}{\end{list}} -\newlength{\lineblockindentation} -\setlength{\lineblockindentation}{2.5em} -\newenvironment{lineblock}[1] -{\begin{list}{} - {\setlength{\partopsep}{\parskip} - \addtolength{\partopsep}{\baselineskip} - \topsep0pt\itemsep0.15\baselineskip\parsep0pt - \leftmargin#1} - \raggedright} -{\end{list}} -% begin: floats for footnotes tweaking. -\setlength{\floatsep}{0.5em} -\setlength{\textfloatsep}{\fill} -\addtolength{\textfloatsep}{3em} -\renewcommand{\textfraction}{0.5} -\renewcommand{\topfraction}{0.5} -\renewcommand{\bottomfraction}{0.5} -\setcounter{totalnumber}{50} -\setcounter{topnumber}{50} -\setcounter{bottomnumber}{50} -% end floats for footnotes -% some commands, that could be overwritten in the style file. -\newcommand{\rubric}[1]{\subsection*{~\hfill {\it #1} \hfill ~}} -\newcommand{\titlereference}[1]{\textsl{#1}} -% end of "some commands" -% user specified packages and stylesheets: -\usepackage{../../data/pygments-default} -\ifthenelse{\isundefined{\hypersetup}}{ -\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue]{hyperref} -}{} -\title{Example for syntax highlight with Pygments} -\author{} -\date{} -\hypersetup{ -pdftitle={Example for syntax highlight with Pygments} -} -\raggedbottom -\begin{document} -\maketitle - -\setlength{\locallinewidth}{\linewidth} - -Translate this document to HTML with a pygments enhanced frontend: -\begin{quote}\begin{verbatim} -rst2html-pygments --stylesheet=pygments-default.css -\end{verbatim} -\end{quote} - -or to LaTeX with: -\begin{quote}\begin{verbatim} -rst2latex-pygments --stylesheet=pygments-default.sty -\end{verbatim} -\end{quote} - -to gain syntax highlight in the output. - -Convert between text {\textless}-{\textgreater} code source formats with: -\begin{quote}\begin{verbatim} -pylit --code-block-marker='.. code-block:: python' -\end{verbatim} -\end{quote} - -Run the doctests with: -\begin{quote}\begin{verbatim} -pylit --doctest for-else-test.py -\end{verbatim} -\end{quote} - - -%___________________________________________________________________________ - -\hypertarget{for-else-test}{} -\pdfbookmark[0]{for-else-test}{for-else-test} -\section*{for-else-test} -\label{for-else-test} - -Test the flow in a \titlereference{for} loop with \titlereference{else} statement. - -First define a simple \titlereference{for} loop. -\begin{Verbatim}[commandchars=@\[\]] -@PYay[def] @PYaK[loop1](iterable): - @PYas["""simple for loop with `else` statement"""] - @PYay[for] i @PYan[in] iterable: - @PYay[print] i - @PYay[else]: - @PYay[print] @PYad["]@PYad[iterable empty]@PYad["] - @PYay[print] @PYad["]@PYad[Ende]@PYad["] -\end{Verbatim} - -Now test it: - -The first test runs as I expect: iterator empty -{\textgreater} else clause applies: -\begin{Verbatim}[commandchars=@\[\]] -@PYaO[>>> ]@PYaX[execfile](@PYad[']@PYad[for-else-test.py]@PYad[']) -@PYaO[>>> ]loop1(@PYaX[range](@PYaw[0])) -@PYaa[iterable empty] -@PYaa[Ende] -\end{Verbatim} - -However, the else clause even runs if the iterator is not empty in the first -place but after it is ``spent'': -\begin{Verbatim}[commandchars=@\[\]] -@PYaO[>>> ]loop1(@PYaX[range](@PYaw[3])) -@PYaa[0] -@PYaa[1] -@PYaa[2] -@PYaa[iterable empty] -@PYaa[Ende] -\end{Verbatim} - -It seems like the else clause can only be prevented, if we break out of -the loop. Let's try -\begin{Verbatim}[commandchars=@\[\]] -@PYay[def] @PYaK[loop2](iterable): - @PYas["""for loop with `break` and `else` statement"""] - @PYay[for] i @PYan[in] iterable: - @PYay[print] i - @PYay[break] - @PYay[else]: - @PYay[print] @PYad["]@PYad[iterable empty]@PYad["] - @PYay[print] @PYad["]@PYad[Ende]@PYad["] -\end{Verbatim} - -And indeed, the else clause is skipped after breaking out of the loop: -\begin{Verbatim}[commandchars=@\[\]] -@PYaO[>>> ]loop2(@PYaX[range](@PYaw[3])) -@PYaa[0] -@PYaa[Ende] -\end{Verbatim} - -The empty iterator runs as expected: -\begin{Verbatim}[commandchars=@\[\]] -@PYaO[>>> ]loop2(@PYaX[range](@PYaw[0])) -@PYaa[iterable empty] -@PYaa[Ende] -\end{Verbatim} - -\end{document} diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt deleted file mode 100644 index d9687ecd5..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.txt +++ /dev/null @@ -1,92 +0,0 @@ -Example for syntax highlight with Pygments -========================================== - -Translate this document to HTML with a pygments enhanced frontend:: - - rst2html-pygments --stylesheet=pygments-default.css - -or to LaTeX with:: - - rst2latex-pygments --stylesheet=pygments-default.sty - -to gain syntax highlight in the output. - -Convert between text <-> code source formats with:: - - pylit --code-block-marker='.. code-block:: python' - -Run the doctests with:: - - pylit --doctest for-else-test.py - - -for-else-test -------------- - -Test the flow in a `for` loop with `else` statement. - -First define a simple `for` loop. - -.. code-block:: python - - def loop1(iterable): - """simple for loop with `else` statement""" - for i in iterable: - print i - else: - print "iterable empty" - print "Ende" - -Now test it: - -The first test runs as I expect: iterator empty -> else clause applies: - -.. code-block:: pycon - - >>> execfile('for-else-test.py') - >>> loop1(range(0)) - iterable empty - Ende - -However, the else clause even runs if the iterator is not empty in the first -place but after it is "spent": - -.. code-block:: pycon - - >>> loop1(range(3)) - 0 - 1 - 2 - iterable empty - Ende - -It seems like the else clause can only be prevented, if we break out of -the loop. Let's try - -.. code-block:: python - - def loop2(iterable): - """for loop with `break` and `else` statement""" - for i in iterable: - print i - break - else: - print "iterable empty" - print "Ende" - -And indeed, the else clause is skipped after breaking out of the loop: - -.. code-block:: pycon - - >>> loop2(range(3)) - 0 - Ende - -The empty iterator runs as expected: - -.. code-block:: pycon - - >>> loop2(range(0)) - iterable empty - Ende - diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2html-pygments b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2html-pygments deleted file mode 100755 index 706b25980..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2html-pygments +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/python - -# :Author: David Goodger, the Pygments team, Guenter Milde -# :Date: $Date: $ -# :Copyright: This module has been placed in the public domain. - -# This is a merge of the docutils_ `rst2html` front end with an extension -# suggestion taken from the pygments_ documentation. - -""" -A front end to docutils, producing HTML with syntax colouring using pygments -""" - -try: - import locale - locale.setlocale(locale.LC_ALL, '') -except: - pass - -from docutils.core import publish_cmdline, default_description - -description = ('Generates (X)HTML documents from standalone reStructuredText ' - 'sources. Uses `pygments` to colorize the content of' - '"code-block" directives. Needs an adapted stylesheet' - + default_description) - -# Define a new directive `code-block` that uses the `pygments` source -# highlighter to render code in color. -# -# Code from the `pygments`_ documentation for `Using Pygments in ReST -# documents`_. - -from docutils import nodes -from docutils.parsers.rst import directives -from pygments import highlight -from pygments.lexers import get_lexer_by_name -from pygments.formatters import HtmlFormatter - -pygments_formatter = HtmlFormatter() - -def pygments_directive(name, arguments, options, content, lineno, - content_offset, block_text, state, state_machine): - try: - lexer = get_lexer_by_name(arguments[0]) - except ValueError: - # no lexer found - use the text one instead of an exception - lexer = get_lexer_by_name('text') - parsed = highlight(u'\n'.join(content), lexer, pygments_formatter) - return [nodes.raw('', parsed, format='html')] -pygments_directive.arguments = (1, 0, 1) -pygments_directive.content = 1 -directives.register_directive('code-block', pygments_directive) - -# Call the docutils publisher to render the input as html:: - -publish_cmdline(writer_name='html', description=description) - -# .. _doctutile: http://docutils.sf.net/ -# .. _pygments: http://pygments.org/ -# .. _Using Pygments in ReST documents: http://pygments.org/docs/rstdirective/ diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2latex-pygments b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2latex-pygments deleted file mode 100755 index c53c2aa74..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/rst2latex-pygments +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/python - -# Author: David Goodger, the Pygments team, Günter Milde -# Date: $Date: $ -# Copyright: This module has been placed in the public domain. - -# This is a merge of the docutils_ `rst2latex` front end with an extension -# suggestion taken from the pygments_ documentation. - -""" -A front end to docutils, producing LaTeX with syntax colouring using pygments -""" - -try: - import locale - locale.setlocale(locale.LC_ALL, '') -except: - pass - -from docutils.core import publish_cmdline, default_description - -description = ('Generates LaTeX documents from standalone reStructuredText ' - 'sources. Uses `pygments` to colorize the content of' - '"code-block" directives. Needs an adapted stylesheet' - + default_description) - -# Define a new directive `code-block` that uses the `pygments` source -# highlighter to render code in color. -# -# Code from the `pygments`_ documentation for `Using Pygments in ReST -# documents`_. - -from docutils import nodes -from docutils.parsers.rst import directives -from pygments import highlight -from pygments.lexers import get_lexer_by_name -from pygments.formatters import LatexFormatter - -pygments_formatter = LatexFormatter() - -def pygments_directive(name, arguments, options, content, lineno, - content_offset, block_text, state, state_machine): - try: - lexer = get_lexer_by_name(arguments[0]) - except ValueError: - # no lexer found - use the text one instead of an exception - lexer = get_lexer_by_name('text') - parsed = highlight(u'\n'.join(content), lexer, pygments_formatter) - return [nodes.raw('', parsed, format='latex')] -pygments_directive.arguments = (1, 0, 1) -pygments_directive.content = 1 -directives.register_directive('code-block', pygments_directive) - -# Call the docutils publisher to render the input as latex:: - -publish_cmdline(writer_name='latex', description=description) - -# .. _doctutile: http://docutils.sf.net/ -# .. _pygments: http://pygments.org/ -# .. _Using Pygments in ReST documents: http://pygments.org/docs/rstdirective/ |