summaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
authorZach Smith <zd@zdsmith.com>2018-05-02 10:00:18 -0400
committerZach Smith <zd@zdsmith.com>2018-05-02 10:00:18 -0400
commitef2c72a6d69200b8bb806957cf68cd17e26504b1 (patch)
treec36baf58b6db0aca7feb18cb66436139857d27c5 /index.html
parent77a012aa8d197d2955ee5d18560e3fb991afc73d (diff)
downloadpycco-ef2c72a6d69200b8bb806957cf68cd17e26504b1.tar.gz
Update index
Diffstat (limited to 'index.html')
-rw-r--r--index.html714
1 files changed, 376 insertions, 338 deletions
diff --git a/index.html b/index.html
index 679b667..288d597 100644
--- a/index.html
+++ b/index.html
@@ -17,14 +17,61 @@
<div class='octowrap'>
<a class='octothorpe' href='#section-0'>#</a>
</div>
- <p>"<strong>Pycco</strong>" is a Python port of <a href="http://jashkenas.github.com/docco/">Docco</a>:
+
+ </div>
+ <div class='code'>
+ <div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">print_function</span></pre></div>
+ </div>
+ </div>
+ <div class='clearall'></div>
+ <div class='section' id='section-1'>
+ <div class='docs'>
+ <div class='octowrap'>
+ <a class='octothorpe' href='#section-1'>#</a>
+ </div>
+ <p>Import our external dependencies.</p>
+ </div>
+ <div class='code'>
+ <div class="highlight"><pre><span class="kn">import</span> <span class="nn">argparse</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">re</span>
+<span class="kn">import</span> <span class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">time</span>
+<span class="kn">from</span> <span class="nn">os</span> <span class="kn">import</span> <span class="n">path</span>
+
+<span class="kn">import</span> <span class="nn">pygments</span>
+<span class="kn">from</span> <span class="nn">markdown</span> <span class="kn">import</span> <span class="n">markdown</span>
+<span class="kn">from</span> <span class="nn">pycco.generate_index</span> <span class="kn">import</span> <span class="n">generate_index</span>
+<span class="kn">from</span> <span class="nn">pycco.languages</span> <span class="kn">import</span> <span class="n">supported_languages</span>
+<span class="kn">from</span> <span class="nn">pycco_resources</span> <span class="kn">import</span> <span class="n">css</span> <span class="k">as</span> <span class="n">pycco_css</span></pre></div>
+ </div>
+ </div>
+ <div class='clearall'></div>
+ <div class='section' id='section-2'>
+ <div class='docs'>
+ <div class='octowrap'>
+ <a class='octothorpe' href='#section-2'>#</a>
+ </div>
+ <p>This module contains all of our static resources.</p>
+ </div>
+ <div class='code'>
+ <div class="highlight"><pre><span class="kn">from</span> <span class="nn">pycco_resources</span> <span class="kn">import</span> <span class="n">pycco_template</span>
+<span class="kn">from</span> <span class="nn">pygments</span> <span class="kn">import</span> <span class="n">formatters</span><span class="p">,</span> <span class="n">lexers</span></pre></div>
+ </div>
+ </div>
+ <div class='clearall'></div>
+ <div class='section' id='section-3'>
+ <div class='docs'>
+ <div class='octowrap'>
+ <a class='octothorpe' href='#section-3'>#</a>
+ </div>
+ <p>&ldquo;<strong>Pycco</strong>&rdquo; is a Python port of <a href="http://jashkenas.github.com/docco/">Docco</a>:
the original quick-and-dirty, hundred-line-long, literate-programming-style
-documentation generator. It produces HTML that displays your comments
-alongside your code. Comments are passed through
-<a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> and
-<a href="http://daringfireball.net/projects/smartypants">SmartyPants</a>, while code is
-passed through <a href="http://pygments.org/">Pygments</a> for syntax highlighting.
-This page is the result of running Pycco against its own source file.</p>
+documentation generator. It produces HTML that displays your comments alongside
+your code. Comments are passed through <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> and
+<a href="https://python-markdown.github.io/extensions/footnotes/">SmartyPants</a><sup id="fnref:extensions"><a class="footnote-ref" href="#fn:extensions" rel="footnote">1</a></sup>, while code is passed through
+<a href="http://pygments.org/">Pygments</a> for syntax highlighting.</p>
+<p>This page is the result of running Pycco against its own source file.</p>
<p>If you install Pycco, you can run it from the command-line:</p>
<pre><code>pycco src/*.py
</code></pre>
@@ -40,28 +87,30 @@ and released under the MIT license.</p>
cd pycco
python setup.py install
</code></pre>
- </div>
- <div class='code'>
- <div class="highlight"><pre><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">print_function</span></pre></div>
- </div>
- </div>
- <div class='clearall'></div>
- <div class='section' id='section-1'>
- <div class='docs'>
- <div class='octowrap'>
- <a class='octothorpe' href='#section-1'>#</a>
- </div>
-
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:extensions">
+<p>Three extensions to Markdown are available:</p>
+<ol>
+<li><a href="https://python-markdown.github.io/extensions/smarty/">SmartyPants</a></li>
+<li><a href="https://python-markdown.github.io/extensions/fenced_code_blocks/">Fenced code blocks</a></li>
+<li><a href="https://python-markdown.github.io/extensions/footnotes/">Footnotes</a></li>
+</ol>
+<p><a class="footnote-backref" href="#fnref:extensions" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
</div>
<div class='code'>
<div class="highlight"><pre></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-2'>
+ <div class='section' id='section-4'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-2'>#</a>
+ <a class='octothorpe' href='#section-4'>#</a>
</div>
<h3><span id="main-documentation-generation-functions" href="main-documentation-generation-functions"> Main Documentation Generation Functions </span></h3>
</div>
@@ -70,10 +119,10 @@ python setup.py install
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-3'>
+ <div class='section' id='section-5'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-3'>#</a>
+ <a class='octothorpe' href='#section-5'>#</a>
</div>
<p>Generate the documentation for a source file by reading it in, splitting it
up into comment/code sections, highlighting them for the appropriate
@@ -81,29 +130,29 @@ language, and merging them into an HTML template.</p>
</div>
<div class='code'>
<div class="highlight"><pre><span class="k">def</span> <span class="nf">generate_documentation</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
- <span class="n">language</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf8&quot;</span><span class="p">):</span></pre></div>
+ <span class="n">language</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf8&quot;</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-4'>
+ <div class='section' id='section-6'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-4'>#</a>
+ <a class='octothorpe' href='#section-6'>#</a>
</div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
- <span class="n">code</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="s">&quot;rb&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">encoding</span><span class="p">)</span>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
+ <span class="n">code</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">encoding</span><span class="p">)</span>
<span class="k">return</span> <span class="n">_generate_documentation</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">outdir</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="p">,</span> <span class="n">language</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-5'>
+ <div class='section' id='section-7'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-5'>#</a>
+ <a class='octothorpe' href='#section-7'>#</a>
</div>
<p>Helper function to allow documentation generation without file handling.</p>
</div>
@@ -112,25 +161,25 @@ language, and merging them into an HTML template.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-6'>
+ <div class='section' id='section-8'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-6'>#</a>
+ <a class='octothorpe' href='#section-8'>#</a>
</div>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">language</span> <span class="o">=</span> <span class="n">get_language</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="n">language</span><span class="p">)</span>
+ <div class="highlight"><pre> <span class="n">language</span> <span class="o">=</span> <span class="n">get_language</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">language_name</span><span class="o">=</span><span class="n">language</span><span class="p">)</span>
<span class="n">sections</span> <span class="o">=</span> <span class="n">parse</span><span class="p">(</span><span class="n">code</span><span class="p">,</span> <span class="n">language</span><span class="p">)</span>
<span class="n">highlight</span><span class="p">(</span><span class="n">sections</span><span class="p">,</span> <span class="n">language</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)</span>
<span class="k">return</span> <span class="n">generate_html</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">sections</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-7'>
+ <div class='section' id='section-9'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-7'>#</a>
+ <a class='octothorpe' href='#section-9'>#</a>
</div>
<p>Given a string of source code, parse out each comment and the code that
follows it, and create an individual <strong>section</strong> for it.
@@ -148,33 +197,33 @@ Sections take the form:</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-8'>
+ <div class='section' id='section-10'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-8'>#</a>
+ <a class='octothorpe' href='#section-10'>#</a>
</div>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">lines</span> <span class="o">=</span> <span class="n">code</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">)</span>
+ <div class="highlight"><pre> <span class="n">lines</span> <span class="o">=</span> <span class="n">code</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">sections</span> <span class="o">=</span> <span class="p">[]</span>
- <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="n">code_text</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
+ <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="n">code_text</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
- <span class="k">if</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&quot;#!&quot;</span><span class="p">):</span>
+ <span class="k">if</span> <span class="n">lines</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;#!&quot;</span><span class="p">):</span>
<span class="n">lines</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
- <span class="k">if</span> <span class="n">language</span><span class="p">[</span><span class="s">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s">&quot;python&quot;</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">language</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;python&quot;</span><span class="p">:</span>
<span class="k">for</span> <span class="n">linenum</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">[:</span><span class="mi">2</span><span class="p">]):</span>
- <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="s">r&#39;coding[:=]\s*([-\w.]+)&#39;</span><span class="p">,</span> <span class="n">lines</span><span class="p">[</span><span class="n">linenum</span><span class="p">]):</span>
+ <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;coding[:=]\s*([-\w.]+)&#39;</span><span class="p">,</span> <span class="n">lines</span><span class="p">[</span><span class="n">linenum</span><span class="p">]):</span>
<span class="n">lines</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">linenum</span><span class="p">)</span>
<span class="k">break</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-9'>
+ <div class='section' id='section-11'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-9'>#</a>
+ <a class='octothorpe' href='#section-11'>#</a>
</div>
</div>
@@ -182,34 +231,34 @@ Sections take the form:</p>
<div class="highlight"><pre> <span class="k">def</span> <span class="nf">save</span><span class="p">(</span><span class="n">docs</span><span class="p">,</span> <span class="n">code</span><span class="p">):</span>
<span class="k">if</span> <span class="n">docs</span> <span class="ow">or</span> <span class="n">code</span><span class="p">:</span>
<span class="n">sections</span><span class="o">.</span><span class="n">append</span><span class="p">({</span>
- <span class="s">&quot;docs_text&quot;</span><span class="p">:</span> <span class="n">docs</span><span class="p">,</span>
- <span class="s">&quot;code_text&quot;</span><span class="p">:</span> <span class="n">code</span>
+ <span class="s2">&quot;docs_text&quot;</span><span class="p">:</span> <span class="n">docs</span><span class="p">,</span>
+ <span class="s2">&quot;code_text&quot;</span><span class="p">:</span> <span class="n">code</span>
<span class="p">})</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-10'>
+ <div class='section' id='section-12'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-10'>#</a>
+ <a class='octothorpe' href='#section-12'>#</a>
</div>
<p>Setup the variables to get ready to check for multiline comments</p>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="n">multi_line</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">multi_string</span> <span class="o">=</span> <span class="bp">False</span>
- <span class="n">multistart</span><span class="p">,</span> <span class="n">multiend</span> <span class="o">=</span> <span class="n">language</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;multistart&quot;</span><span class="p">),</span> <span class="n">language</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&quot;multiend&quot;</span><span class="p">)</span>
- <span class="n">comment_matcher</span> <span class="o">=</span> <span class="n">language</span><span class="p">[</span><span class="s">&#39;comment_matcher&#39;</span><span class="p">]</span>
+ <span class="n">multistart</span><span class="p">,</span> <span class="n">multiend</span> <span class="o">=</span> <span class="n">language</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;multistart&quot;</span><span class="p">),</span> <span class="n">language</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;multiend&quot;</span><span class="p">)</span>
+ <span class="n">comment_matcher</span> <span class="o">=</span> <span class="n">language</span><span class="p">[</span><span class="s1">&#39;comment_matcher&#39;</span><span class="p">]</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
<span class="n">process_as_code</span> <span class="o">=</span> <span class="bp">False</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-11'>
+ <div class='section' id='section-13'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-11'>#</a>
+ <a class='octothorpe' href='#section-13'>#</a>
</div>
<p>Only go into multiline comments section when one of the delimiters is
found to be at the start of a line</p>
@@ -240,60 +289,60 @@ found to be at the start of a line</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-12'>
+ <div class='section' id='section-14'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-12'>#</a>
+ <a class='octothorpe' href='#section-14'>#</a>
</div>
- <p>Get rid of the delimiters so that they aren't in the final
+ <p>Get rid of the delimiters so that they aren&rsquo;t in the final
docs</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">multistart</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
- <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">multiend</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)</span>
- <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
- <span class="n">indent_level</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">&quot;\s*&quot;</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
+ <div class="highlight"><pre> <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">multistart</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
+ <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">multiend</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
+ <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
+ <span class="n">indent_level</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\s*&quot;</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="k">if</span> <span class="n">has_code</span> <span class="ow">and</span> <span class="n">docs_text</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
<span class="n">save</span><span class="p">(</span><span class="n">docs_text</span><span class="p">,</span> <span class="n">code_text</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
- <span class="n">code_text</span> <span class="o">=</span> <span class="n">code_text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
- <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
+ <span class="n">code_text</span> <span class="o">=</span> <span class="n">code_text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
+ <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">elif</span> <span class="n">multi_line</span><span class="p">:</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-13'>
+ <div class='section' id='section-15'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-13'>#</a>
+ <a class='octothorpe' href='#section-15'>#</a>
</div>
<p>Remove leading spaces</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">r&#39; {{{:d}}}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">indent_level</span><span class="p">)),</span> <span class="n">line</span><span class="p">):</span>
- <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">indent_level</span><span class="p">):]</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
+ <div class="highlight"><pre> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39; {{{:d}}}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">indent_level</span><span class="p">)),</span> <span class="n">line</span><span class="p">):</span>
+ <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">indent_level</span><span class="p">):]</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="k">else</span><span class="p">:</span>
- <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
+ <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">line</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">comment_matcher</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
<span class="k">if</span> <span class="n">has_code</span><span class="p">:</span>
<span class="n">save</span><span class="p">(</span><span class="n">docs_text</span><span class="p">,</span> <span class="n">code_text</span><span class="p">)</span>
- <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="n">code_text</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
- <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="n">comment_matcher</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span>
+ <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="n">code_text</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
+ <span class="n">docs_text</span> <span class="o">+=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="n">comment_matcher</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">process_as_code</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">if</span> <span class="n">process_as_code</span><span class="p">:</span>
<span class="k">if</span> <span class="n">code_text</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
- <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;class &#39;</span><span class="p">,</span> <span class="s">&#39;def &#39;</span><span class="p">,</span> <span class="s">&#39;@&#39;</span><span class="p">]):</span>
- <span class="k">if</span> <span class="ow">not</span> <span class="n">code_text</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&quot;@&quot;</span><span class="p">):</span>
+ <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;class &#39;</span><span class="p">,</span> <span class="s1">&#39;def &#39;</span><span class="p">,</span> <span class="s1">&#39;@&#39;</span><span class="p">]):</span>
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">code_text</span><span class="o">.</span><span class="n">lstrip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;@&quot;</span><span class="p">):</span>
<span class="n">save</span><span class="p">(</span><span class="n">docs_text</span><span class="p">,</span> <span class="n">code_text</span><span class="p">)</span>
- <span class="n">code_text</span> <span class="o">=</span> <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
+ <span class="n">code_text</span> <span class="o">=</span> <span class="n">has_code</span> <span class="o">=</span> <span class="n">docs_text</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">has_code</span> <span class="o">=</span> <span class="bp">True</span>
- <span class="n">code_text</span> <span class="o">+=</span> <span class="n">line</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
+ <span class="n">code_text</span> <span class="o">+=</span> <span class="n">line</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="n">save</span><span class="p">(</span><span class="n">docs_text</span><span class="p">,</span> <span class="n">code_text</span><span class="p">)</span>
@@ -301,10 +350,10 @@ docs</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-14'>
+ <div class='section' id='section-16'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-14'>#</a>
+ <a class='octothorpe' href='#section-16'>#</a>
</div>
<h3><span id="preprocessing-the-comments" href="preprocessing-the-comments"> Preprocessing the comments </span></h3>
</div>
@@ -313,17 +362,18 @@ docs</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-15'>
+ <div class='section' id='section-17'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-15'>#</a>
+ <a class='octothorpe' href='#section-17'>#</a>
</div>
- <p>Add cross-references before having the text processed by markdown. It's
+ <p>Add cross-references before having the text processed by markdown. It&rsquo;s
possible to reference another file, like this : <code>[[main.py]]</code> which renders
- <a href="main.html">main.py</a>. You can also reference a specific section of another file, like
-this: <code>[[main.py#highlighting-the-source-code]]</code> which renders as
+ <a href="main.html">main.py</a>. You can also reference a specific section of another file,
+like this: <code>[[main.py#highlighting-the-source-code]]</code> which renders as
<a href="main.html#highlighting-the-source-code">main.py</a>. Sections have to be manually
-declared; they are written on a single line, and surrounded by equals signs:
+declared; they are written on a single line, and surrounded by equals
+signs:
<code>=== like this ===</code></p>
</div>
<div class='code'>
@@ -331,36 +381,36 @@ declared; they are written on a single line, and surrounded by equals signs:
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-16'>
+ <div class='section' id='section-18'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-16'>#</a>
+ <a class='octothorpe' href='#section-18'>#</a>
</div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span></pre></div>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-17'>
+ <div class='section' id='section-19'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-17'>#</a>
+ <a class='octothorpe' href='#section-19'>#</a>
</div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">def</span> <span class="nf">sanitize_section_name</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
- <span class="k">return</span> <span class="s">&quot;-&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&quot; &quot;</span><span class="p">))</span></pre></div>
+ <span class="k">return</span> <span class="s2">&quot;-&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">))</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-18'>
+ <div class='section' id='section-20'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-18'>#</a>
+ <a class='octothorpe' href='#section-20'>#</a>
</div>
</div>
@@ -369,34 +419,34 @@ declared; they are written on a single line, and surrounded by equals signs:
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-19'>
+ <div class='section' id='section-21'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-19'>#</a>
+ <a class='octothorpe' href='#section-21'>#</a>
</div>
<p>Check if the match contains an anchor</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">if</span> <span class="s">&#39;#&#39;</span> <span class="ow">in</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">):</span>
- <span class="n">name</span><span class="p">,</span> <span class="n">anchor</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;#&#39;</span><span class="p">)</span>
- <span class="k">return</span> <span class="s">&quot; [{}]({}#{})&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">,</span>
+ <div class="highlight"><pre> <span class="k">if</span> <span class="s1">&#39;#&#39;</span> <span class="ow">in</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">):</span>
+ <span class="n">name</span><span class="p">,</span> <span class="n">anchor</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;#&#39;</span><span class="p">)</span>
+ <span class="k">return</span> <span class="s2">&quot; [{}]({}#{})&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">,</span>
<span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">destination</span><span class="p">(</span><span class="n">name</span><span class="p">,</span>
<span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
<span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)),</span>
<span class="n">anchor</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
- <span class="k">return</span> <span class="s">&quot; [{}]({})&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span>
+ <span class="k">return</span> <span class="s2">&quot; [{}]({})&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span>
<span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">destination</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span>
<span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
<span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)))</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-20'>
+ <div class='section' id='section-22'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-20'>#</a>
+ <a class='octothorpe' href='#section-22'>#</a>
</div>
<p>Replace equals-sign-formatted section names with anchor links.</p>
</div>
@@ -405,31 +455,31 @@ declared; they are written on a single line, and surrounded by equals signs:
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-21'>
+ <div class='section' id='section-23'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-21'>#</a>
+ <a class='octothorpe' href='#section-23'>#</a>
</div>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">return</span> <span class="s">&#39;{lvl} &lt;span id=&quot;{id}&quot; href=&quot;{id}&quot;&gt;{name}&lt;/span&gt;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
- <span class="n">lvl</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;=&#39;</span><span class="p">,</span> <span class="s">&#39;#&#39;</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
+ <div class="highlight"><pre> <span class="k">return</span> <span class="s1">&#39;{lvl} &lt;span id=&quot;{id}&quot; href=&quot;{id}&quot;&gt;{name}&lt;/span&gt;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+ <span class="n">lvl</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="s1">&#39;#&#39;</span><span class="p">,</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
<span class="nb">id</span><span class="o">=</span><span class="n">sanitize_section_name</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
<span class="n">name</span><span class="o">=</span><span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="p">)</span>
- <span class="n">comment</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;^([=]+)([^=]+)[=]*\s*$&#39;</span><span class="p">,</span> <span class="n">replace_section_name</span><span class="p">,</span> <span class="n">comment</span><span class="p">)</span>
- <span class="n">comment</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;(?&lt;!`)\[\[(.+?)\]\]&#39;</span><span class="p">,</span> <span class="n">replace_crossref</span><span class="p">,</span> <span class="n">comment</span><span class="p">)</span>
+ <span class="n">comment</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;^([=]+)([^=]+)[=]*\s*$&#39;</span><span class="p">,</span> <span class="n">replace_section_name</span><span class="p">,</span> <span class="n">comment</span><span class="p">)</span>
+ <span class="n">comment</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;(?&lt;!`)\[\[(.+?)\]\]&#39;</span><span class="p">,</span> <span class="n">replace_crossref</span><span class="p">,</span> <span class="n">comment</span><span class="p">)</span>
<span class="k">return</span> <span class="n">comment</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-22'>
+ <div class='section' id='section-24'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-22'>#</a>
+ <a class='octothorpe' href='#section-24'>#</a>
</div>
<h3><span id="highlighting-the-source-code" href="highlighting-the-source-code"> Highlighting the source code </span></h3>
</div>
@@ -438,10 +488,10 @@ declared; they are written on a single line, and surrounded by equals signs:
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-23'>
+ <div class='section' id='section-25'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-23'>#</a>
+ <a class='octothorpe' href='#section-25'>#</a>
</div>
<p>Highlights a single chunk of code using the <strong>Pygments</strong> module, and runs
the text of its corresponding comment through <strong>Markdown</strong>.</p>
@@ -454,44 +504,65 @@ wherever our markers occur.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-24'>
+ <div class='section' id='section-26'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-24'>#</a>
+ <a class='octothorpe' href='#section-26'>#</a>
</div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
+
+ <span class="n">divider_text</span> <span class="o">=</span> <span class="n">language</span><span class="p">[</span><span class="s2">&quot;divider_text&quot;</span><span class="p">]</span>
+ <span class="n">lexer</span> <span class="o">=</span> <span class="n">language</span><span class="p">[</span><span class="s2">&quot;lexer&quot;</span><span class="p">]</span>
+ <span class="n">divider_html</span> <span class="o">=</span> <span class="n">language</span><span class="p">[</span><span class="s2">&quot;divider_html&quot;</span><span class="p">]</span>
- <span class="n">output</span> <span class="o">=</span> <span class="n">pygments</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span><span class="n">language</span><span class="p">[</span><span class="s">&quot;divider_text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">section</span><span class="p">[</span><span class="s">&quot;code_text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">sections</span><span class="p">),</span>
- <span class="n">language</span><span class="p">[</span><span class="s">&quot;lexer&quot;</span><span class="p">],</span>
- <span class="n">formatters</span><span class="o">.</span><span class="n">get_formatter_by_name</span><span class="p">(</span><span class="s">&quot;html&quot;</span><span class="p">))</span>
+ <span class="n">joined_text</span> <span class="o">=</span> <span class="n">divider_text</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+ <span class="n">section</span><span class="p">[</span><span class="s2">&quot;code_text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span> <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">sections</span>
+ <span class="p">)</span>
+ <span class="n">html_formatter</span> <span class="o">=</span> <span class="n">formatters</span><span class="o">.</span><span class="n">get_formatter_by_name</span><span class="p">(</span><span class="s2">&quot;html&quot;</span><span class="p">)</span>
+
+ <span class="n">output</span> <span class="o">=</span> <span class="n">pygments</span><span class="o">.</span><span class="n">highlight</span><span class="p">(</span>
+ <span class="n">joined_text</span><span class="p">,</span> <span class="n">lexer</span><span class="p">,</span> <span class="n">html_formatter</span>
+ <span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span>
+ <span class="n">highlight_start</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
+ <span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span>
+ <span class="n">highlight_end</span><span class="p">,</span> <span class="s2">&quot;&quot;</span>
+ <span class="p">)</span>
+ <span class="n">fragments</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">divider_html</span><span class="p">,</span> <span class="n">output</span><span class="p">)</span>
- <span class="n">output</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">highlight_start</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">highlight_end</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span>
- <span class="n">fragments</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">language</span><span class="p">[</span><span class="s">&quot;divider_html&quot;</span><span class="p">],</span> <span class="n">output</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">section</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sections</span><span class="p">):</span>
- <span class="n">section</span><span class="p">[</span><span class="s">&quot;code_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">highlight_start</span> <span class="o">+</span> <span class="n">shift</span><span class="p">(</span><span class="n">fragments</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="n">highlight_end</span>
+ <span class="n">section</span><span class="p">[</span><span class="s2">&quot;code_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">highlight_start</span> <span class="o">+</span> <span class="n">shift</span><span class="p">(</span><span class="n">fragments</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="n">highlight_end</span>
<span class="k">try</span><span class="p">:</span>
- <span class="n">docs_text</span> <span class="o">=</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">section</span><span class="p">[</span><span class="s">&quot;docs_text&quot;</span><span class="p">])</span>
+ <span class="n">docs_text</span> <span class="o">=</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">section</span><span class="p">[</span><span class="s2">&quot;docs_text&quot;</span><span class="p">])</span>
<span class="k">except</span> <span class="ne">UnicodeError</span><span class="p">:</span>
- <span class="n">docs_text</span> <span class="o">=</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">section</span><span class="p">[</span><span class="s">&quot;docs_text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&#39;utf-8&#39;</span><span class="p">))</span>
+ <span class="n">docs_text</span> <span class="o">=</span> <span class="nb">unicode</span><span class="p">(</span><span class="n">section</span><span class="p">[</span><span class="s2">&quot;docs_text&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">&#39;utf-8&#39;</span><span class="p">))</span>
<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span>
- <span class="n">docs_text</span> <span class="o">=</span> <span class="n">section</span><span class="p">[</span><span class="s">&#39;docs_text&#39;</span><span class="p">]</span>
- <span class="n">section</span><span class="p">[</span><span class="s">&quot;docs_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">markdown</span><span class="p">(</span><span class="n">preprocess</span><span class="p">(</span><span class="n">docs_text</span><span class="p">,</span>
- <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
- <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">))</span>
- <span class="n">section</span><span class="p">[</span><span class="s">&quot;num&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
+ <span class="n">docs_text</span> <span class="o">=</span> <span class="n">section</span><span class="p">[</span><span class="s1">&#39;docs_text&#39;</span><span class="p">]</span>
+ <span class="n">section</span><span class="p">[</span><span class="s2">&quot;docs_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">markdown</span><span class="p">(</span>
+ <span class="n">preprocess</span><span class="p">(</span>
+ <span class="n">docs_text</span><span class="p">,</span>
+ <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
+ <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span>
+ <span class="p">),</span>
+ <span class="n">extensions</span><span class="o">=</span><span class="p">[</span>
+ <span class="s1">&#39;markdown.extensions.smarty&#39;</span><span class="p">,</span>
+ <span class="s1">&#39;markdown.extensions.fenced_code&#39;</span><span class="p">,</span>
+ <span class="s1">&#39;markdown.extensions.footnotes&#39;</span><span class="p">,</span>
+ <span class="p">]</span>
+ <span class="p">)</span>
+ <span class="n">section</span><span class="p">[</span><span class="s2">&quot;num&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">i</span>
<span class="k">return</span> <span class="n">sections</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-25'>
+ <div class='section' id='section-27'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-25'>#</a>
+ <a class='octothorpe' href='#section-27'>#</a>
</div>
<h3><span id="html-code-generation" href="html-code-generation"> HTML Code generation </span></h3>
</div>
@@ -500,17 +571,17 @@ wherever our markers occur.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-26'>
+ <div class='section' id='section-28'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-26'>#</a>
+ <a class='octothorpe' href='#section-28'>#</a>
</div>
- <p>Once all of the code is finished highlighting, we can generate the HTML file
-and write out the documentation. Pass the completed sections into the
+ <p>Once all of the code is finished highlighting, we can generate the HTML
+file and write out the documentation. Pass the completed sections into the
template found in <code>resources/pycco.html</code>.</p>
<p>Pystache will attempt to recursively render context variables, so we must
replace any occurences of <code>{{</code>, which is valid in some languages, with a
-"unique enough" identifier before rendering, and then post-process the
+&ldquo;unique enough&rdquo; identifier before rendering, and then post-process the
rendered template and change the identifier back to <code>{{</code>.</p>
</div>
<div class='code'>
@@ -518,57 +589,32 @@ rendered template and change the identifier back to <code>{{</code>.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-27'>
+ <div class='section' id='section-29'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-27'>#</a>
+ <a class='octothorpe' href='#section-29'>#</a>
</div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument&quot;</span><span class="p">)</span>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;outdir&#39; keyword argument&quot;</span><span class="p">)</span>
<span class="n">title</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">source</span><span class="p">)</span>
<span class="n">dest</span> <span class="o">=</span> <span class="n">destination</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)</span>
- <span class="n">csspath</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s">&quot;pycco.css&quot;</span><span class="p">),</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">dest</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>
+ <span class="n">csspath</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s2">&quot;pycco.css&quot;</span><span class="p">),</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">dest</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">for</span> <span class="n">sect</span> <span class="ow">in</span> <span class="n">sections</span><span class="p">:</span>
- <span class="n">sect</span><span class="p">[</span><span class="s">&quot;code_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">r&quot;\{\{&quot;</span><span class="p">,</span> <span class="s">r&quot;{{&quot;</span><span class="p">,</span> <span class="n">sect</span><span class="p">[</span><span class="s">&quot;code_html&quot;</span><span class="p">])</span>
+ <span class="n">sect</span><span class="p">[</span><span class="s2">&quot;code_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span>
+ <span class="sa">r</span><span class="s2">&quot;\{\{&quot;</span><span class="p">,</span> <span class="sa">r</span><span class="s2">&quot;{{&quot;</span><span class="p">,</span> <span class="n">sect</span><span class="p">[</span><span class="s2">&quot;code_html&quot;</span><span class="p">])</span>
<span class="n">rendered</span> <span class="o">=</span> <span class="n">pycco_template</span><span class="p">({</span>
- <span class="s">&quot;title&quot;</span><span class="p">:</span> <span class="n">title</span><span class="p">,</span>
- <span class="s">&quot;stylesheet&quot;</span><span class="p">:</span> <span class="n">csspath</span><span class="p">,</span>
- <span class="s">&quot;sections&quot;</span><span class="p">:</span> <span class="n">sections</span><span class="p">,</span>
- <span class="s">&quot;source&quot;</span><span class="p">:</span> <span class="n">source</span><span class="p">,</span>
- <span class="s">&quot;path&quot;</span><span class="p">:</span> <span class="n">path</span><span class="p">,</span>
- <span class="s">&quot;destination&quot;</span><span class="p">:</span> <span class="n">destination</span>
+ <span class="s2">&quot;title&quot;</span><span class="p">:</span> <span class="n">title</span><span class="p">,</span>
+ <span class="s2">&quot;stylesheet&quot;</span><span class="p">:</span> <span class="n">csspath</span><span class="p">,</span>
+ <span class="s2">&quot;sections&quot;</span><span class="p">:</span> <span class="n">sections</span><span class="p">,</span>
+ <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="n">source</span><span class="p">,</span>
<span class="p">})</span>
- <span class="k">return</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">r&quot;{{&quot;</span><span class="p">,</span> <span class="s">&quot;{{&quot;</span><span class="p">,</span> <span class="n">rendered</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s">&quot;utf-8&quot;</span><span class="p">)</span></pre></div>
- </div>
- </div>
- <div class='clearall'></div>
- <div class='section' id='section-28'>
- <div class='docs'>
- <div class='octowrap'>
- <a class='octothorpe' href='#section-28'>#</a>
- </div>
- <h3><span id="helpers-&-setup" href="helpers-&-setup"> Helpers &amp; Setup </span></h3>
- </div>
- <div class='code'>
- <div class="highlight"><pre></pre></div>
- </div>
- </div>
- <div class='clearall'></div>
- <div class='section' id='section-29'>
- <div class='docs'>
- <div class='octowrap'>
- <a class='octothorpe' href='#section-29'>#</a>
- </div>
- <p>This module contains all of our static resources.</p>
- </div>
- <div class='code'>
- <div class="highlight"><pre><span class="kn">import</span> <span class="nn">pycco_resources</span></pre></div>
+ <span class="k">return</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;{{&quot;</span><span class="p">,</span> <span class="s2">&quot;{{&quot;</span><span class="p">,</span> <span class="n">rendered</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s2">&quot;utf-8&quot;</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -577,19 +623,10 @@ rendered template and change the identifier back to <code>{{</code>.</p>
<div class='octowrap'>
<a class='octothorpe' href='#section-30'>#</a>
</div>
- <p>Import our external dependencies.</p>
+ <h3><span id="helpers-&-setup" href="helpers-&-setup"> Helpers &amp; Setup </span></h3>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="kn">import</span> <span class="nn">optparse</span>
-<span class="kn">import</span> <span class="nn">os</span>
-<span class="kn">import</span> <span class="nn">pygments</span>
-<span class="kn">import</span> <span class="nn">pystache</span>
-<span class="kn">import</span> <span class="nn">re</span>
-<span class="kn">import</span> <span class="nn">sys</span>
-<span class="kn">import</span> <span class="nn">time</span>
-<span class="kn">from</span> <span class="nn">markdown</span> <span class="kn">import</span> <span class="n">markdown</span>
-<span class="kn">from</span> <span class="nn">os</span> <span class="kn">import</span> <span class="n">path</span>
-<span class="kn">from</span> <span class="nn">pygments</span> <span class="kn">import</span> <span class="n">lexers</span><span class="p">,</span> <span class="n">formatters</span></pre></div>
+ <div class="highlight"><pre></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -598,46 +635,10 @@ rendered template and change the identifier back to <code>{{</code>.</p>
<div class='octowrap'>
<a class='octothorpe' href='#section-31'>#</a>
</div>
- <p>A list of the languages that Pycco supports, mapping the file extension to
-the name of the Pygments lexer and the symbol that indicates a comment. To
-add another language to Pycco's repertoire, add it here.</p>
+ <p>Build out the appropriate matchers and delimiters for each language.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="n">languages</span> <span class="o">=</span> <span class="p">{</span>
- <span class="s">&quot;.coffee&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;coffee-script&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;#&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&#39;###&#39;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&#39;###&#39;</span><span class="p">},</span>
-
- <span class="s">&quot;.pl&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;perl&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;#&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.sql&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;sql&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;--&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.c&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;c&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;//&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;/*&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;*/&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.cpp&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;cpp&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;//&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.js&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;javascript&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;//&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;/*&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;*/&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.rb&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;ruby&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;#&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;=begin&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;=end&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.py&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;python&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;#&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&#39;&quot;&quot;&quot;&#39;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&#39;&quot;&quot;&quot;&#39;</span><span class="p">},</span>
-
- <span class="s">&quot;.scm&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;scheme&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;;;&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;#|&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;|#&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.lua&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;lua&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;--&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;--[[&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;--]]&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.erl&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;erlang&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;</span><span class="si">%%</span><span class="s">&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.tcl&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;tcl&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;#&quot;</span><span class="p">},</span>
-
- <span class="s">&quot;.hs&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s">&quot;name&quot;</span><span class="p">:</span> <span class="s">&quot;haskell&quot;</span><span class="p">,</span> <span class="s">&quot;symbol&quot;</span><span class="p">:</span> <span class="s">&quot;--&quot;</span><span class="p">,</span>
- <span class="s">&quot;multistart&quot;</span><span class="p">:</span> <span class="s">&quot;{-&quot;</span><span class="p">,</span> <span class="s">&quot;multiend&quot;</span><span class="p">:</span> <span class="s">&quot;-}&quot;</span><span class="p">},</span>
-<span class="p">}</span></pre></div>
+ <div class="highlight"><pre><span class="k">def</span> <span class="nf">compile_language</span><span class="p">(</span><span class="n">l</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -646,10 +647,11 @@ add another language to Pycco's repertoire, add it here.</p>
<div class='octowrap'>
<a class='octothorpe' href='#section-32'>#</a>
</div>
- <p>Build out the appropriate matchers and delimiters for each language.</p>
+
</div>
<div class='code'>
- <div class="highlight"><pre><span class="k">for</span> <span class="n">ext</span><span class="p">,</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">languages</span><span class="o">.</span><span class="n">items</span><span class="p">():</span></pre></div>
+ <div class="highlight"><pre> <span class="n">language_name</span> <span class="o">=</span> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span>
+ <span class="n">comment_symbol</span> <span class="o">=</span> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;comment_symbol&quot;</span><span class="p">]</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -661,7 +663,7 @@ add another language to Pycco's repertoire, add it here.</p>
<p>Does the line begin with a comment?</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s">&quot;comment_matcher&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">r&quot;^\s*&quot;</span> <span class="o">+</span> <span class="n">l</span><span class="p">[</span><span class="s">&quot;symbol&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="s">&quot;\s?&quot;</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;comment_matcher&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^\s*{}\s?&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">comment_symbol</span><span class="p">))</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -674,7 +676,7 @@ add another language to Pycco's repertoire, add it here.</p>
sections.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s">&quot;divider_text&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span> <span class="o">+</span> <span class="n">l</span><span class="p">[</span><span class="s">&quot;symbol&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="s">&quot;DIVIDER</span><span class="se">\n</span><span class="s">&quot;</span></pre></div>
+ <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;divider_text&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">{}DIVIDER</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">comment_symbol</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -687,7 +689,9 @@ sections.</p>
on this to recover the original sections.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s">&quot;divider_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">r&#39;\n*&lt;span class=&quot;c[1]?&quot;&gt;&#39;</span> <span class="o">+</span> <span class="n">l</span><span class="p">[</span><span class="s">&quot;symbol&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="s">&#39;DIVIDER&lt;/span&gt;</span><span class="se">\n</span><span class="s">*&#39;</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;divider_html&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span>
+ <span class="sa">r</span><span class="s1">&#39;\n*&lt;span class=&quot;c[1]?&quot;&gt;{}DIVIDER&lt;/span&gt;\n*&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">comment_symbol</span><span class="p">)</span>
+ <span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -699,7 +703,11 @@ on this to recover the original sections.</p>
<p>Get the Pygments Lexer for this language.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s">&quot;lexer&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">lexers</span><span class="o">.</span><span class="n">get_lexer_by_name</span><span class="p">(</span><span class="n">l</span><span class="p">[</span><span class="s">&quot;name&quot;</span><span class="p">])</span></pre></div>
+ <div class="highlight"><pre> <span class="n">l</span><span class="p">[</span><span class="s2">&quot;lexer&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">lexers</span><span class="o">.</span><span class="n">get_lexer_by_name</span><span class="p">(</span><span class="n">language_name</span><span class="p">)</span>
+
+
+<span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">supported_languages</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+ <span class="n">compile_language</span><span class="p">(</span><span class="n">entry</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -708,10 +716,10 @@ on this to recover the original sections.</p>
<div class='octowrap'>
<a class='octothorpe' href='#section-37'>#</a>
</div>
- <p>Get the current language we're documenting, based on the extension.</p>
+ <p>Get the current language we&rsquo;re documenting, based on the extension.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="k">def</span> <span class="nf">get_language</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></pre></div>
+ <div class="highlight"><pre><span class="k">def</span> <span class="nf">get_language</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">code</span><span class="p">,</span> <span class="n">language_name</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -723,25 +731,26 @@ on this to recover the original sections.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">if</span> <span class="n">language</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
- <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">languages</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
- <span class="k">if</span> <span class="n">l</span><span class="p">[</span><span class="s">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="n">language</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">l</span>
+ <div class="highlight"><pre> <span class="k">if</span> <span class="n">language_name</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
+ <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">supported_languages</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+ <span class="k">if</span> <span class="n">entry</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="n">language_name</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">entry</span>
<span class="k">else</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&quot;Unknown forced language: &quot;</span> <span class="o">+</span> <span class="n">language</span><span class="p">)</span>
+ <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Unknown forced language: {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">language_name</span><span class="p">))</span>
- <span class="n">m</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">r&#39;.*(\..+)&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">source</span><span class="p">))</span> <span class="k">if</span> <span class="n">source</span> <span class="k">else</span> <span class="bp">None</span>
- <span class="k">if</span> <span class="n">m</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="ow">in</span> <span class="n">languages</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">languages</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)]</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="k">try</span><span class="p">:</span>
- <span class="n">lang</span> <span class="o">=</span> <span class="n">lexers</span><span class="o">.</span><span class="n">guess_lexer</span><span class="p">(</span><span class="n">code</span><span class="p">)</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
- <span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="n">languages</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
- <span class="k">if</span> <span class="n">l</span><span class="p">[</span><span class="s">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="n">lang</span><span class="p">:</span>
- <span class="k">return</span> <span class="n">l</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">()</span>
- <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span></pre></div>
+ <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
+ <span class="n">m</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;.*(\..+)&#39;</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">source</span><span class="p">))</span>
+ <span class="k">if</span> <span class="n">m</span> <span class="ow">and</span> <span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="ow">in</span> <span class="n">supported_languages</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">supported_languages</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)]</span>
+
+ <span class="k">try</span><span class="p">:</span>
+ <span class="n">language_name</span> <span class="o">=</span> <span class="n">lexers</span><span class="o">.</span><span class="n">guess_lexer</span><span class="p">(</span><span class="n">code</span><span class="p">)</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+ <span class="k">for</span> <span class="n">entry</span> <span class="ow">in</span> <span class="n">supported_languages</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
+ <span class="k">if</span> <span class="n">entry</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="n">language_name</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">entry</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">()</span>
+ <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -750,12 +759,12 @@ on this to recover the original sections.</p>
<div class='octowrap'>
<a class='octothorpe' href='#section-39'>#</a>
</div>
- <p>If pygments can't find any lexers, it will raise its own
+ <p>If pygments can&rsquo;t find any lexers, it will raise its own
subclass of ValueError. We will catch it and raise ours
for consistency.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&quot;Can&#39;t figure out the language!&quot;</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t figure out the language!&quot;</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -765,7 +774,7 @@ for consistency.</p>
<a class='octothorpe' href='#section-40'>#</a>
</div>
<p>Compute the destination HTML path for an input source file path. If the
-source is <code>lib/example.py</code>, the HTML will be at <code>docs/example.html</code></p>
+source is <code>lib/example.py</code>, the HTML will be at <code>docs/example.html</code>.</p>
</div>
<div class='code'>
<div class="highlight"><pre><span class="k">def</span> <span class="nf">destination</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></pre></div>
@@ -782,14 +791,14 @@ source is <code>lib/example.py</code>, the HTML will be at <code>docs/example.ht
<div class='code'>
<div class="highlight"><pre> <span class="n">dirname</span><span class="p">,</span> <span class="n">filename</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
- <span class="n">name</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">r&quot;\.[^.]*$&quot;</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+ <span class="n">name</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\.[^.]*$&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">filename</span>
<span class="k">if</span> <span class="n">preserve_paths</span><span class="p">:</span>
<span class="n">name</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dirname</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
- <span class="n">dest</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s">u&quot;{}.html&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">))</span></pre></div>
+ <span class="n">dest</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="sa">u</span><span class="s2">&quot;{}.html&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">))</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -859,9 +868,10 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
</div>
<div class='code'>
<div class="highlight"><pre> <span class="kn">from</span> <span class="nn">pycco.compat</span> <span class="kn">import</span> <span class="n">pycco_unichr</span>
- <span class="n">control_chars</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="n">pycco_unichr</span><span class="p">,</span> <span class="nb">list</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="mi">32</span><span class="p">))</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">127</span><span class="p">,</span> <span class="mi">160</span><span class="p">))))</span>
- <span class="n">control_char_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">u&#39;[{}]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="n">control_chars</span><span class="p">)))</span>
- <span class="k">return</span> <span class="n">control_char_re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span></pre></div>
+ <span class="n">control_chars</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+ <span class="nb">map</span><span class="p">(</span><span class="n">pycco_unichr</span><span class="p">,</span> <span class="nb">list</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="mi">32</span><span class="p">))</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">127</span><span class="p">,</span> <span class="mi">160</span><span class="p">))))</span>
+ <span class="n">control_char_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">u</span><span class="s1">&#39;[{}]&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="n">control_chars</span><span class="p">)))</span>
+ <span class="k">return</span> <span class="n">control_char_re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -898,11 +908,10 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-49'>#</a>
</div>
-
+ <p>The start of each Pygments highlight block.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="k">def</span> <span class="nf">template</span><span class="p">(</span><span class="n">source</span><span class="p">):</span>
- <span class="k">return</span> <span class="k">lambda</span> <span class="n">context</span><span class="p">:</span> <span class="n">pystache</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre><span class="n">highlight_start</span> <span class="o">=</span> <span class="s2">&quot;&lt;div class=</span><span class="se">\&quot;</span><span class="s2">highlight</span><span class="se">\&quot;</span><span class="s2">&gt;&lt;pre&gt;&quot;</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -911,10 +920,10 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-50'>#</a>
</div>
- <p>Create the template that we will use to generate the Pycco HTML page.</p>
+ <p>The end of each Pygments highlight block.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="n">pycco_template</span> <span class="o">=</span> <span class="n">template</span><span class="p">(</span><span class="n">pycco_resources</span><span class="o">.</span><span class="n">html</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre><span class="n">highlight_end</span> <span class="o">=</span> <span class="s2">&quot;&lt;/pre&gt;&lt;/div&gt;&quot;</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -923,10 +932,11 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-51'>#</a>
</div>
- <p>The CSS styles we'd like to apply to the documentation.</p>
+ <p>This function will iterate through the list of sources and if a directory
+is encountered it will walk the tree for any files.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="n">pycco_styles</span> <span class="o">=</span> <span class="n">pycco_resources</span><span class="o">.</span><span class="n">css</span></pre></div>
+ <div class="highlight"><pre><span class="k">def</span> <span class="nf">_flatten_sources</span><span class="p">(</span><span class="n">sources</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -935,10 +945,19 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-52'>#</a>
</div>
- <p>The start of each Pygments highlight block.</p>
+
</div>
<div class='code'>
- <div class="highlight"><pre><span class="n">highlight_start</span> <span class="o">=</span> <span class="s">&quot;&lt;div class=</span><span class="se">\&quot;</span><span class="s">highlight</span><span class="se">\&quot;</span><span class="s">&gt;&lt;pre&gt;&quot;</span></pre></div>
+ <div class="highlight"><pre> <span class="n">_sources</span> <span class="o">=</span> <span class="p">[]</span>
+
+ <span class="k">for</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">sources</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">source</span><span class="p">):</span>
+ <span class="k">for</span> <span class="n">dirpath</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">filenames</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">source</span><span class="p">):</span>
+ <span class="n">_sources</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dirpath</span><span class="p">,</span> <span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">filenames</span><span class="p">])</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">_sources</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">source</span><span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">_sources</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -947,10 +966,11 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-53'>#</a>
</div>
- <p>The end of each Pygments highlight block.</p>
+ <p>For each source file passed as argument, generate the documentation.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="n">highlight_end</span> <span class="o">=</span> <span class="s">&quot;&lt;/pre&gt;&lt;/div&gt;&quot;</span></pre></div>
+ <div class="highlight"><pre><span class="k">def</span> <span class="nf">process</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+ <span class="n">encoding</span><span class="o">=</span><span class="s2">&quot;utf8&quot;</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">skip</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
@@ -959,59 +979,49 @@ http://stackoverflow.com/questions/92438/stripping-non-printable-characters-from
<div class='octowrap'>
<a class='octothorpe' href='#section-54'>#</a>
</div>
- <p>For each source file passed as argument, generate the documentation.</p>
- </div>
- <div class='code'>
- <div class="highlight"><pre><span class="k">def</span> <span class="nf">process</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">language</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf8&quot;</span><span class="p">):</span></pre></div>
- </div>
- </div>
- <div class='clearall'></div>
- <div class='section' id='section-55'>
- <div class='docs'>
- <div class='octowrap'>
- <a class='octothorpe' href='#section-55'>#</a>
- </div>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="ow">not</span> <span class="n">outdir</span><span class="p">:</span>
- <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">&quot;Missing the required &#39;outdir&#39; keyword argument.&quot;</span><span class="p">)</span></pre></div>
+ <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Missing the required &#39;directory&#39; keyword argument.&quot;</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-56'>
+ <div class='section' id='section-55'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-56'>#</a>
+ <a class='octothorpe' href='#section-55'>#</a>
</div>
<p>Make a copy of sources given on the command line. <code>main()</code> needs the
original list when monitoring for changed files.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">sources</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">sources</span><span class="p">)</span></pre></div>
+ <div class="highlight"><pre> <span class="n">sources</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">_flatten_sources</span><span class="p">(</span><span class="n">sources</span><span class="p">))</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-57'>
+ <div class='section' id='section-56'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-57'>#</a>
+ <a class='octothorpe' href='#section-56'>#</a>
</div>
<p>Proceed to generating the documentation.</p>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">if</span> <span class="n">sources</span><span class="p">:</span>
<span class="n">outdir</span> <span class="o">=</span> <span class="n">ensure_directory</span><span class="p">(</span><span class="n">outdir</span><span class="p">)</span>
- <span class="n">css</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s">&quot;pycco.css&quot;</span><span class="p">),</span> <span class="s">&quot;wb&quot;</span><span class="p">)</span>
- <span class="n">css</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">pycco_styles</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">encoding</span><span class="p">))</span>
- <span class="n">css</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></pre></div>
+ <span class="n">css</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s2">&quot;pycco.css&quot;</span><span class="p">),</span> <span class="s2">&quot;wb&quot;</span><span class="p">)</span>
+ <span class="n">css</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">pycco_css</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">encoding</span><span class="p">))</span>
+ <span class="n">css</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+ <span class="n">generated_files</span> <span class="o">=</span> <span class="p">[]</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-58'>
+ <div class='section' id='section-57'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-58'>#</a>
+ <a class='octothorpe' href='#section-57'>#</a>
</div>
</div>
@@ -1025,26 +1035,38 @@ original list when monitoring for changed files.</p>
<span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span>
<span class="k">pass</span>
- <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span> <span class="s">&quot;wb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
- <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">generate_documentation</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
- <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span>
- <span class="n">language</span><span class="o">=</span><span class="n">language</span><span class="p">,</span>
- <span class="n">encoding</span><span class="o">=</span><span class="n">encoding</span><span class="p">))</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">dest</span><span class="p">,</span> <span class="s2">&quot;wb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+ <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">generate_documentation</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">preserve_paths</span><span class="p">,</span>
+ <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span>
+ <span class="n">language</span><span class="o">=</span><span class="n">language</span><span class="p">,</span>
+ <span class="n">encoding</span><span class="o">=</span><span class="n">encoding</span><span class="p">))</span>
- <span class="k">print</span><span class="p">(</span><span class="s">&quot;pycco = {} -&gt; {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">dest</span><span class="p">))</span>
+ <span class="k">print</span><span class="p">(</span><span class="s2">&quot;pycco: {} -&gt; {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">dest</span><span class="p">))</span>
+ <span class="n">generated_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dest</span><span class="p">)</span>
+ <span class="k">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">UnicodeDecodeError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">skip</span><span class="p">:</span>
+ <span class="k">print</span><span class="p">(</span><span class="s2">&quot;pycco [FAILURE]: {}, {}&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="n">e</span><span class="p">))</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">raise</span>
<span class="k">if</span> <span class="n">sources</span><span class="p">:</span>
<span class="n">next_file</span><span class="p">()</span>
<span class="n">next_file</span><span class="p">()</span>
-<span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;process&quot;</span><span class="p">,</span> <span class="s">&quot;generate_documentation&quot;</span><span class="p">)</span></pre></div>
+ <span class="k">if</span> <span class="n">index</span><span class="p">:</span>
+ <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s2">&quot;index.html&quot;</span><span class="p">),</span> <span class="s2">&quot;wb&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+ <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">generate_index</span><span class="p">(</span><span class="n">generated_files</span><span class="p">,</span> <span class="n">outdir</span><span class="p">))</span>
+
+
+<span class="n">__all__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;process&quot;</span><span class="p">,</span> <span class="s2">&quot;generate_documentation&quot;</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-59'>
+ <div class='section' id='section-58'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-59'>#</a>
+ <a class='octothorpe' href='#section-58'>#</a>
</div>
<p>Monitor each source file and re-generate documentation on change.</p>
</div>
@@ -1053,10 +1075,10 @@ original list when monitoring for changed files.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-60'>
+ <div class='section' id='section-59'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-60'>#</a>
+ <a class='octothorpe' href='#section-59'>#</a>
</div>
</div>
@@ -1065,10 +1087,10 @@ original list when monitoring for changed files.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-61'>
+ <div class='section' id='section-60'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-61'>#</a>
+ <a class='octothorpe' href='#section-60'>#</a>
</div>
<p>The watchdog modules are imported in <code>main()</code> but we need to re-import
here to bring them into the local namespace.</p>
@@ -1079,10 +1101,10 @@ here to bring them into the local namespace.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-62'>
+ <div class='section' id='section-61'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-62'>#</a>
+ <a class='octothorpe' href='#section-61'>#</a>
</div>
<p>Watchdog operates on absolute paths, so map those to original paths
as specified on the command line.</p>
@@ -1093,22 +1115,22 @@ as specified on the command line.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-63'>
+ <div class='section' id='section-62'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-63'>#</a>
+ <a class='octothorpe' href='#section-62'>#</a>
</div>
- <p>A handler for recompiling files which triggered watchdog events</p>
+ <p>A handler for recompiling files which triggered watchdog events.</p>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">class</span> <span class="nc">RegenerateHandler</span><span class="p">(</span><span class="n">watchdog</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">FileSystemEventHandler</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-64'>
+ <div class='section' id='section-63'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-64'>#</a>
+ <a class='octothorpe' href='#section-63'>#</a>
</div>
</div>
@@ -1117,22 +1139,22 @@ as specified on the command line.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-65'>
+ <div class='section' id='section-64'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-65'>#</a>
+ <a class='octothorpe' href='#section-64'>#</a>
</div>
- <p>Regenerate documentation for a file which triggered an event</p>
+ <p>Regenerate documentation for a file which triggered an event.</p>
</div>
<div class='code'>
<div class="highlight"><pre> <span class="k">def</span> <span class="nf">on_modified</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-66'>
+ <div class='section' id='section-65'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-66'>#</a>
+ <a class='octothorpe' href='#section-65'>#</a>
</div>
<p>Re-generate documentation from a source file if it was listed on
the command line. Watchdog monitors whole directories, so other
@@ -1146,10 +1168,10 @@ files may cause notifications as well.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-67'>
+ <div class='section' id='section-66'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-67'>#</a>
+ <a class='octothorpe' href='#section-66'>#</a>
</div>
<p>Set up an observer which monitors all directories for files given on
the command line and notifies the handler defined above.</p>
@@ -1163,10 +1185,10 @@ the command line and notifies the handler defined above.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-68'>
+ <div class='section' id='section-67'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-68'>#</a>
+ <a class='octothorpe' href='#section-67'>#</a>
</div>
<p>Run the file change monitoring loop until the user hits Ctrl-C.</p>
</div>
@@ -1181,10 +1203,10 @@ the command line and notifies the handler defined above.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-69'>
+ <div class='section' id='section-68'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-69'>#</a>
+ <a class='octothorpe' href='#section-68'>#</a>
</div>
<p>Hook spot for the console script.</p>
</div>
@@ -1193,65 +1215,81 @@ the command line and notifies the handler defined above.</p>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-70'>
+ <div class='section' id='section-69'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-70'>#</a>
+ <a class='octothorpe' href='#section-69'>#</a>
</div>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="n">parser</span> <span class="o">=</span> <span class="n">optparse</span><span class="o">.</span><span class="n">OptionParser</span><span class="p">()</span>
- <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;-p&#39;</span><span class="p">,</span> <span class="s">&#39;--paths&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
- <span class="n">help</span><span class="o">=</span><span class="s">&#39;Preserve path structure of original files&#39;</span><span class="p">)</span>
+ <div class="highlight"><pre> <span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-p&#39;</span><span class="p">,</span> <span class="s1">&#39;--paths&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Preserve path structure of original files&#39;</span><span class="p">)</span>
+
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-d&#39;</span><span class="p">,</span> <span class="s1">&#39;--directory&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">str</span><span class="p">,</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s1">&#39;outdir&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">&#39;docs&#39;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;The output directory that the rendered files should go to.&#39;</span><span class="p">)</span>
+
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-w&#39;</span><span class="p">,</span> <span class="s1">&#39;--watch&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Watch original files and re-generate documentation on changes&#39;</span><span class="p">)</span>
- <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;-d&#39;</span><span class="p">,</span> <span class="s">&#39;--directory&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&#39;string&#39;</span><span class="p">,</span>
- <span class="n">dest</span><span class="o">=</span><span class="s">&#39;outdir&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">&#39;docs&#39;</span><span class="p">,</span>
- <span class="n">help</span><span class="o">=</span><span class="s">&#39;The output directory that the rendered files should go to.&#39;</span><span class="p">)</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-l&#39;</span><span class="p">,</span> <span class="s1">&#39;--force-language&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="nb">str</span><span class="p">,</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s1">&#39;language&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Force the language for the given files&#39;</span><span class="p">)</span>
- <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;-w&#39;</span><span class="p">,</span> <span class="s">&#39;--watch&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
- <span class="n">help</span><span class="o">=</span><span class="s">&#39;Watch original files and re-generate documentation on changes&#39;</span><span class="p">)</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-i&#39;</span><span class="p">,</span> <span class="s1">&#39;--generate_index&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Generate an index.html document with sitemap content&#39;</span><span class="p">)</span>
- <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">&#39;-l&#39;</span><span class="p">,</span> <span class="s">&#39;--force-language&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">&#39;string&#39;</span><span class="p">,</span>
- <span class="n">dest</span><span class="o">=</span><span class="s">&#39;language&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
- <span class="n">help</span><span class="o">=</span><span class="s">&#39;Force the language for the given files&#39;</span><span class="p">)</span>
- <span class="n">opts</span><span class="p">,</span> <span class="n">sources</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;-s&#39;</span><span class="p">,</span> <span class="s1">&#39;--skip-bad-files&#39;</span><span class="p">,</span> <span class="s1">&#39;-e&#39;</span><span class="p">,</span> <span class="s1">&#39;--ignore-errors&#39;</span><span class="p">,</span>
+ <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
+ <span class="n">dest</span><span class="o">=</span><span class="s1">&#39;skip_bad_files&#39;</span><span class="p">,</span>
+ <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Continue processing after hitting a bad file&#39;</span><span class="p">)</span>
- <span class="n">process</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">paths</span><span class="p">,</span>
- <span class="n">language</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">language</span><span class="p">)</span></pre></div>
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;sources&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;*&#39;</span><span class="p">)</span>
+
+ <span class="n">args</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span>
+ <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">outdir</span> <span class="o">==</span> <span class="s1">&#39;&#39;</span><span class="p">:</span>
+ <span class="n">outdir</span> <span class="o">=</span> <span class="s1">&#39;.&#39;</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="n">outdir</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">outdir</span>
+
+ <span class="n">process</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">sources</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> <span class="n">preserve_paths</span><span class="o">=</span><span class="n">args</span><span class="o">.</span><span class="n">paths</span><span class="p">,</span>
+ <span class="n">language</span><span class="o">=</span><span class="n">args</span><span class="o">.</span><span class="n">language</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">args</span><span class="o">.</span><span class="n">generate_index</span><span class="p">,</span>
+ <span class="n">skip</span><span class="o">=</span><span class="n">args</span><span class="o">.</span><span class="n">skip_bad_files</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-71'>
+ <div class='section' id='section-70'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-71'>#</a>
+ <a class='octothorpe' href='#section-70'>#</a>
</div>
<p>If the -w / --watch option was present, monitor the source directories
for changes and re-generate documentation for source files whenever they
are modified.</p>
</div>
<div class='code'>
- <div class="highlight"><pre> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">watch</span><span class="p">:</span>
+ <div class="highlight"><pre> <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">watch</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">watchdog.events</span>
- <span class="kn">import</span> <span class="nn">watchdog.observers</span>
+ <span class="kn">import</span> <span class="nn">watchdog.observers</span> <span class="c1"># noqa</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
- <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s">&#39;The -w/--watch option requires the watchdog package.&#39;</span><span class="p">)</span>
+ <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">&#39;The -w/--watch option requires the watchdog package.&#39;</span><span class="p">)</span>
- <span class="n">monitor</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span></pre></div>
+ <span class="n">monitor</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">sources</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span></pre></div>
</div>
</div>
<div class='clearall'></div>
- <div class='section' id='section-72'>
+ <div class='section' id='section-71'>
<div class='docs'>
<div class='octowrap'>
- <a class='octothorpe' href='#section-72'>#</a>
+ <a class='octothorpe' href='#section-71'>#</a>
</div>
<p>Run the script.</p>
</div>
<div class='code'>
- <div class="highlight"><pre><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
+ <div class="highlight"><pre><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</span><span class="p">:</span>
<span class="n">main</span><span class="p">()</span>
</pre></div>