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">&quot;スーパクラスのメソッドを実行, arg=&quot;</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">&quot;サブクラスのメソッドを実行&quot;</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">&quot;arg&quot;</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">&quot;スーパクラスのメソッドを実行, arg=&quot;</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">&quot;サブクラスのメソッドを実行&quot;</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">&quot;arg&quot;</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>
ページのトップへ戻る