File: conf.py

package info (click to toggle)
sphinx 9.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 28,732 kB
  • sloc: python: 109,394; javascript: 37,318; perl: 449; makefile: 183; sh: 37; xml: 19; ansic: 2
file content (30 lines) | stat: -rw-r--r-- 972 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys
from pathlib import Path

from sphinx.ext.linkcode import add_linkcode_domain

sys.path.insert(0, str(Path.cwd().resolve()))

extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
exclude_patterns = ['_build']


if 'test_linkcode' in tags:  # NoQA: F821 (tags is injected into conf.py)
    extensions.remove('sphinx.ext.viewcode')
    extensions.append('sphinx.ext.linkcode')

    def linkcode_resolve(domain, info):
        if domain == 'py':
            fn = info['module'].replace('.', '/')
            return 'https://foobar/source/%s.py' % fn
        elif domain == 'js':
            return 'https://foobar/js/' + info['fullname']
        elif domain in {'c', 'cpp'}:
            return f'https://foobar/{domain}/{"".join(info["names"])}'
        elif domain == 'rst':
            return 'http://foobar/rst/{fullname}'.format(**info)
        else:
            raise AssertionError

    def setup(app):
        add_linkcode_domain('rst', ['fullname'])