Sphinxで リテラルブロック とはプログラムのソースコードやコマンドライン、他にエスケープ文字やSphinxで解釈されてしまうreST表記やディレクティブ等をそのまま表示させたい時に使う方法です。
:: (コロン×2) の次に空行を空けてインデントをして記述します。
記述例:
::
def fizzbuzz(a):
if not(a%15):
print "fizzbuzz"
elif not(a%5):
print "buzz"
elif not(a%3):
print "fizz"
else:
print a
map(fizzbuzz,range(1,100))
このように表示されます。:
def fizzbuzz(a):
if not(a%15):
print "fizzbuzz"
elif not(a%5):
print "buzz"
elif not(a%3):
print "fizz"
else:
print a
map(fizzbuzz,range(1,100))
:: (コロン×2) の前に文字列を入れた場合は、文字列の後に : (コロン) が1つ表示されます。上記の例で使用している 記述例:: を見て下さい。
:: (コロン×2) より前に highlight ディレクティブを入れる事によりシンタックスハイライトする事ができます。
記述例:
.. highlight:: python
:linenothreshold: 5
記述例::
def fizzbuzz(a):
if not(a%15):
print "fizzbuzz"
elif not(a%5):
print "buzz"
elif not(a%3):
print "fizz"
else:
print a
map(fizzbuzz,range(1,100))
このように表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 | import os
def fizzbuzz(a):
not(a%15):
print "fizzbuzz"
elif not(a%5):
print "buzz"
elif not(a%3):
print "fizz"
else:
print a
map(fizzbuzz,range(1,100))
|
1つのreSTファイルの頭に .. highlight:: python を入れておくと以降のリテラルブロックはPythonのシンタックスハイライトが適用されます。
linenothreshold というオプションを付けると行番号が表示されます。 :linenothreshold: 5 の場合は5行以上ある場合に行番号が表示されます。
highlight や code-block で使える言語の引数は こちら
:: (コロン×2) と highlight ディレクティブの組み合わせで、リテラルブロック+シンタックスハイライトを表示させてきましたが code-block ディレクティブのみで表示させる事も可能です。1つのreSTファイルの中に異なるシンタックスハイライトで表示させたい場合に使います。
記述例:
.. code-block:: awk
:linenos:
#!/usr/bin/gawk
BEGIN{i=0
while (i<100) {
i++
fizzbuzz(i)
}
}
function fizzbuzz(a){
if (!index(a / 15,".")) print "FizzBuzz"
else
if (!index(a / 3,".")) print "Fizz"
else
if (!index(a / 5,".")) print "Buzz"
else
print a
}
このように表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/usr/bin/gawk
BEGIN{i=0
while (i<100) {
i++
fizzbuzz(i)
}
}
function fizzbuzz(a){
if (!index(a / 15,".")) print "FizzBuzz"
else
if (!index(a / 3,".")) print "Fizz"
else
if (!index(a / 5,".")) print "Buzz"
else
print a
}
|