HtmlFormatterのlineanchorsオプションの例
初回公開:2018/10/14
最終更新:未
サンプルコード
from pygments import highlight from pygments.lexers import get_lexer_by_name from pygments.formatters import HtmlFormatter code=u""" class SuperCls(object): def method(self, arg): print("スーパクラスのメソッドを実行, arg=",arg) class SubCls(SuperCls): def method(self): print ("サブクラスのメソッドを実行") super().method("arg") sub_inst=SubCls() sub_inst.method() """ lexer = get_lexer_by_name("python") with open("lineanchors.html", 'w') as outfile: highlight(code, lexer, HtmlFormatter(lineanchors="foo"),outfile) with open("lineanchors_lineno.html", 'w') as outfile: highlight(code, lexer, HtmlFormatter(lineanchors="foo",linenos=True),outfile)
実行結果
linenos=False
の場合 - lineanchors_lineno.html
<div class="highlight"><pre><span></span><a name="foo-1"></a><span class="k">class</span> <span class="nc">SuperCls</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <a name="foo-2"></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> <a name="foo-3"></a> <span class="k">print</span><span class="p">(</span><span class="s2">"スーパクラスのメソッドを実行, arg="</span><span class="p">,</span><span class="n">arg</span><span class="p">)</span> <a name="foo-4"></a> <a name="foo-5"></a><span class="k">class</span> <span class="nc">SubCls</span><span class="p">(</span><span class="n">SuperCls</span><span class="p">):</span> <a name="foo-6"></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <a name="foo-7"></a> <span class="k">print</span> <span class="p">(</span><span class="s2">"サブクラスのメソッドを実行"</span><span class="p">)</span> <a name="foo-8"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">method</span><span class="p">(</span><span class="s2">"arg"</span><span class="p">)</span> <a name="foo-9"></a> <a name="foo-10"></a><span class="n">sub_inst</span><span class="o">=</span><span class="n">SubCls</span><span class="p">()</span> <a name="foo-11"></a><span class="n">sub_inst</span><span class="o">.</span><span class="n">method</span><span class="p">()</span> </pre></div>
linenos=True
の場合 - lineanchors_lineno.html
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11</pre></div></td><td class="code"><div class="highlight"><pre><span></span><a name="foo-1"></a><span class="k">class</span> <span class="nc">SuperCls</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> <a name="foo-2"></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> <a name="foo-3"></a> <span class="k">print</span><span class="p">(</span><span class="s2">"スーパクラスのメソッドを実行, arg="</span><span class="p">,</span><span class="n">arg</span><span class="p">)</span> <a name="foo-4"></a> <a name="foo-5"></a><span class="k">class</span> <span class="nc">SubCls</span><span class="p">(</span><span class="n">SuperCls</span><span class="p">):</span> <a name="foo-6"></a> <span class="k">def</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <a name="foo-7"></a> <span class="k">print</span> <span class="p">(</span><span class="s2">"サブクラスのメソッドを実行"</span><span class="p">)</span> <a name="foo-8"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">method</span><span class="p">(</span><span class="s2">"arg"</span><span class="p">)</span> <a name="foo-9"></a> <a name="foo-10"></a><span class="n">sub_inst</span><span class="o">=</span><span class="n">SubCls</span><span class="p">()</span> <a name="foo-11"></a><span class="n">sub_inst</span><span class="o">.</span><span class="n">method</span><span class="p">()</span> </pre></div> </td></tr></table>