diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-01-26 01:53:24 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 01:53:24 +0900 |
commit | 2ee0338388a54e976c3776c116cdc1080fb62c53 (patch) | |
tree | 16ca1cf2a9c423b62d9705202ca22f0dcda4a90a | |
parent | 77fad1ec9826a6e3751030ea719be04acd9519c3 (diff) | |
parent | 84dc65ad51ee91e1073ff9b99b207753843f387c (diff) | |
download | sphinx-git-2ee0338388a54e976c3776c116cdc1080fb62c53.tar.gz |
Merge pull request #7942 from tk0miya/7879_default_setting_of_html_codeblock_linenos_style
html: html_codeblock_linenos_style defaults to 'inline' (refs: #7849)
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | doc/usage/configuration.rst | 9 | ||||
-rw-r--r-- | sphinx/builders/html/__init__.py | 2 | ||||
-rw-r--r-- | tests/test_directive_code.py | 94 |
4 files changed, 30 insertions, 78 deletions
@@ -23,6 +23,8 @@ Incompatible changes section * #7996: manpage: Make a section directory on build manpage by default (see :confval:`man_make_section_directory`) +* #7849: html: Change the default setting of + :confval:`html_codeblock_linenos_style` to ``'inline'`` * #8380: html search: search results are wrapped with ``<p>`` instead of ``<div>`` * html theme: Move a script tag for documentation_options.js in @@ -38,6 +40,7 @@ Incompatible changes Deprecated ---------- +* :confval:`html_codeblock_linenos_style` * ``favicon`` and ``logo`` variable in HTML templates * ``sphinx.directives.patches.CSVTable`` * ``sphinx.directives.patches.ListTable`` diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst index cc12e1eb1..0283fcb7c 100644 --- a/doc/usage/configuration.rst +++ b/doc/usage/configuration.rst @@ -971,10 +971,15 @@ that use Sphinx's HTMLWriter class. The style of line numbers for code-blocks. - * ``'table'`` -- display line numbers using ``<table>`` tag (default) - * ``'inline'`` -- display line numbers using ``<span>`` tag + * ``'table'`` -- display line numbers using ``<table>`` tag + * ``'inline'`` -- display line numbers using ``<span>`` tag (default) .. versionadded:: 3.2 + .. versionchanged:: 4.0 + + It defaults to ``'inline'``. + + .. deprecated:: 4.0 .. confval:: html_context diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index 9e790bc48..105d90235 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -1296,7 +1296,7 @@ def setup(app: Sphinx) -> Dict[str, Any]: app.add_config_value('html_search_scorer', '', None) app.add_config_value('html_scaled_image_link', True, 'html') app.add_config_value('html_baseurl', '', 'html') - app.add_config_value('html_codeblock_linenos_style', 'table', 'html', + app.add_config_value('html_codeblock_linenos_style', 'inline', 'html', # RemovedInSphinx60Warning # NOQA ENUM('table', 'inline')) app.add_config_value('html_math_renderer', None, 'env') app.add_config_value('html4_writer', False, 'html') diff --git a/tests/test_directive_code.py b/tests/test_directive_code.py index 0ae11baf3..a011a31e8 100644 --- a/tests/test_directive_code.py +++ b/tests/test_directive_code.py @@ -423,44 +423,16 @@ def test_literal_include_linenos(app, status, warning): html = (app.outdir / 'linenos.html').read_text() # :linenos: - assert ('<td class="linenos"><div class="linenodiv"><pre>' - ' 1\n' - ' 2\n' - ' 3\n' - ' 4\n' - ' 5\n' - ' 6\n' - ' 7\n' - ' 8\n' - ' 9\n' - '10\n' - '11\n' - '12\n' - '13</pre></div></td>' in html) + assert ('<span class="linenos"> 1</span><span class="c1">' + '# Literally included file using Python highlighting</span>' in html) # :lineno-start: - assert ('<td class="linenos"><div class="linenodiv"><pre>' - '200\n' - '201\n' - '202\n' - '203\n' - '204\n' - '205\n' - '206\n' - '207\n' - '208\n' - '209\n' - '210\n' - '211\n' - '212</pre></div></td>' in html) - - # :lineno-match: - assert ('<td class="linenos"><div class="linenodiv"><pre>' - '5\n' - '6\n' - '7\n' - '8\n' - '9</pre></div></td>' in html) + assert ('<span class="linenos">200</span><span class="c1">' + '# Literally included file using Python highlighting</span>' in html) + + # :lines: 5-9 + assert ('<span class="linenos">5</span><span class="k">class</span> ' + '<span class="nc">Foo</span><span class="p">:</span>' in html) @pytest.mark.sphinx('latex', testroot='directive-code') @@ -594,45 +566,17 @@ def test_linenothreshold(app, status, warning): app.builder.build(['linenothreshold']) html = (app.outdir / 'linenothreshold.html').read_text() - lineos_head = '<td class="linenos"><div class="linenodiv"><pre>' - lineos_tail = '</pre></div></td>' - # code-block using linenothreshold - _, matched, html = html.partition(lineos_head + - '1\n' - '2\n' - '3\n' - '4\n' - '5\n' - '6' + lineos_tail) - assert matched - - # code-block not using linenothreshold - html, matched, _ = html.partition(lineos_head + - '1\n' - '2' + lineos_tail) - assert not matched + assert ('<span class="linenos">1</span><span class="k">class</span> ' + '<span class="nc">Foo</span><span class="p">:</span>' in html) + + # code-block not using linenothreshold (no line numbers) + assert '<span></span><span class="c1"># comment</span>' in html # literal include using linenothreshold - _, matched, html = html.partition(lineos_head + - ' 1\n' - ' 2\n' - ' 3\n' - ' 4\n' - ' 5\n' - ' 6\n' - ' 7\n' - ' 8\n' - ' 9\n' - '10\n' - '11\n' - '12\n' - '13' + lineos_tail) - assert matched - - # literal include not using linenothreshold - html, matched, _ = html.partition(lineos_head + - '1\n' - '2\n' - '3' + lineos_tail) - assert not matched + assert ('<span class="linenos"> 1</span><span class="c1">' + '# Literally included file using Python highlighting</span>' in html) + + # literal include not using linenothreshold (no line numbers) + assert ('<span></span><span class="c1"># Very small literal include ' + '(linenothreshold check)</span>' in html) |