HtmlFormatterのlinenospecialオプションの例

初回公開: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("linenospecial.html", 'w') as outfile:
    highlight(code, lexer, HtmlFormatter(linenos=True,linenospecial=3),outfile)

実行結果

linenospecial.html

<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
 2
<span class="special"> 3</span>
 4
 5
<span class="special"> 6</span>
 7
 8
<span class="special"> 9</span>
10
11</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">SuperCls</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
    <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>
        <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>

<span class="k">class</span> <span class="nc">SubCls</span><span class="p">(</span><span class="n">SuperCls</span><span class="p">):</span>
    <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="k">print</span> <span class="p">(</span><span class="s2">&quot;サブクラスのメソッドを実行&quot;</span><span class="p">)</span>
        <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>

<span class="n">sub_inst</span><span class="o">=</span><span class="n">SubCls</span><span class="p">()</span>
<span class="n">sub_inst</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
</pre></div>
</td></tr></table>

html表示イメージ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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()

※以下のcssを追加して表示。

.special {color: #ff0000; background-color: #0000ff;}
ページのトップへ戻る