diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-01-22 00:33:39 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-01-22 00:51:21 +0900 |
| commit | b2bb12ad9193ce0c0047ae7bf3cde9ea10f46d8a (patch) | |
| tree | 01a757e1a9df9659700f5dc0698efdea8a55e130 | |
| parent | 82ef497a8c88f0f6e50d84520e7276bfbf65025d (diff) | |
| download | sphinx-git-b2bb12ad9193ce0c0047ae7bf3cde9ea10f46d8a.tar.gz | |
Fix #8720: viewcode: module pages are generated for epub on incremental build
The module pages should be generated for epub only if enabled via
configuration. But they are generated after the build for other
viewcode-supported builders. This checks the current builder on
generating module pages.
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | sphinx/ext/viewcode.py | 4 | ||||
| -rw-r--r-- | tests/test_ext_viewcode.py | 15 |
3 files changed, 20 insertions, 0 deletions
@@ -65,6 +65,7 @@ Bugs fixed availability of the same URL twice * #8094: texinfo: image files on the different directory with document are not copied +* #8720: viewcode: module pages are generated for epub on incremental build * #8671: :confval:`highlight_options` is not working * #8341: C, fix intersphinx lookup types for names in declarations. * C, C++: in general fix intersphinx and role lookup types. diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py index a7d52a91c..c2bcee4f5 100644 --- a/sphinx/ext/viewcode.py +++ b/sphinx/ext/viewcode.py @@ -182,6 +182,10 @@ def collect_pages(app: Sphinx) -> Generator[Tuple[str, Dict[str, Any], str], Non env = app.builder.env if not hasattr(env, '_viewcode_modules'): return + if app.builder.name == "singlehtml": + return + if app.builder.name.startswith("epub") and not env.config.viewcode_enable_epub: + return highlighter = app.builder.highlighter # type: ignore urito = app.builder.get_relative_uri diff --git a/tests/test_ext_viewcode.py b/tests/test_ext_viewcode.py index 79864095b..21002966b 100644 --- a/tests/test_ext_viewcode.py +++ b/tests/test_ext_viewcode.py @@ -49,6 +49,21 @@ def test_viewcode(app, status, warning): '<span> """</span></div>\n') in result +@pytest.mark.sphinx('epub', testroot='ext-viewcode') +def test_viewcode_epub_default(app, status, warning): + app.builder.build_all() + + assert not (app.outdir / '_modules/spam/mod1.xhtml').exists() + + +@pytest.mark.sphinx('epub', testroot='ext-viewcode', + confoverrides={'viewcode_enable_epub': True}) +def test_viewcode_epub_enabled(app, status, warning): + app.builder.build_all() + + assert (app.outdir / '_modules/spam/mod1.xhtml').exists() + + @pytest.mark.sphinx(testroot='ext-viewcode', tags=['test_linkcode']) def test_linkcode(app, status, warning): app.builder.build(['objects']) |
