85912


# 実行環境

  * Python 3.9.6
  * sphinx 4.4.0

# やりたいこと

`code-block`ディレクティブのハイライトを無効にしたいです。

[code]

    .. code-block:: 
    
       list set dict ...
    
[/code]

デフォルトの言語は`python3`に近いものなので、下図のようにハイライトされてしまいます。

<https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-
highlight_language>

[![画像の説明をここに入力](https://i.stack.imgur.com/oSqcs.png)](https://i.stack.imgur.com/oSqcs.png)

# 質問

`code-
block`の言語に`none`か`text`（`pygments.lexers.special.TextLexer`）を指定すれば、ハイライトが無効化されることが分かりました。  
この2つには違いがあるのでしょうか？違いがあるのなら、どちらを指定するのがよいのでしょうか？

[code]

    .. code-block:: text
    
       list set dict ...
    
[/code]

[code]

    .. code-block:: none
    
       list set dict ...
    
[/code]


CC BY-SA 4.0
2022-01-24T15:46:00.970
85909
2022-01-24T19:51:57.477
19524
question
python sphinx
sphinxの`code-block`のハイライトを無効化するには、言語に`text`と`none`どちらを指定するのがよいですか？


明示的に「無効」を表現したいのであれば `none` を指定するのが良さそうです。

`none` はSphinxがPygmentsのTextLexerにマッピングしています。  
`text` はSphinxがPygmentsのlexer取得を行い、TextLexerが取得されます。

どちらの場合でもPygmentsのTextLexerが使用されます。

* * *

PygmentsのLexer一覧は以下で確認できます。  
<https://pygments.org/docs/lexers/>

Sphinxが `none` を受け付けることについては以下のドキュメントで確認できます。  
<https://www.sphinx-
doc.org/en/master/usage/restructuredtext/directives.html#showing-code-
examples>

Sphinxで`none`を`TextLexer`にマッピングする処理は以下のコードで確認できます。  
<https://github.com/sphinx-
doc/sphinx/blob/f38bd8e9529d50e5cceffe3ca55be4b758529ff7/sphinx/highlighting.py#L36>


CC BY-SA 4.0
2022-01-24T19:51:57.477
85912
2022-01-24T19:51:57.477
806
85909
answer