diff options
| author | Victor Feyens <vfe@odoo.com> | 2021-04-30 13:24:57 +0000 |
|---|---|---|
| committer | Antoine Vandevenne (anv) <anv@odoo.com> | 2021-05-04 08:09:20 +0000 |
| commit | 27bad8c3e32049ec69a588df0558e57a0b928309 (patch) | |
| tree | b60e430163d486c8c1fd052738c9854aeb8300f5 /doc/_extensions/github_link.py | |
| parent | 75a122bbae3a32bfa79da3506179fc63a8bced5d (diff) | |
[MOV] doc: move documentation to a dedicated repository
In odoo/documentation-user#945, the developer documentation is merged
with the user documentation in a single repository and build config.
This commit then removes source files for the developer documentation
from the odoo/odoo repository.
DOC PR: https://github.com/odoo/documentation-user/pull/945
task-2351938
task-2352371
task-2205684
task-2352544
Co-authored-by: Victor Feyens <vfe@odoo.com>
Co-authored-by: Antoine Vandevenne <anv@odoo.com>
Diffstat (limited to 'doc/_extensions/github_link.py')
| -rw-r--r-- | doc/_extensions/github_link.py | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/doc/_extensions/github_link.py b/doc/_extensions/github_link.py deleted file mode 100644 index 8f7a0084039..00000000000 --- a/doc/_extensions/github_link.py +++ /dev/null @@ -1,105 +0,0 @@ -import inspect -import importlib -import os.path - -from werkzeug import urls - -""" -* adds github_link(mode) context variable: provides URL (in relevant mode) of - current document on github -* if sphinx.ext.linkcode is enabled, automatically generates github linkcode - links (by setting config.linkcode_resolve) - -Settings -======== - -* ``github_user``, username/organisation under which the project lives -* ``github_project``, name of the project on github -* (optional) ``version``, github branch to link to (default: master) - -Notes -===== - -* provided ``linkcode_resolve`` only supports Python domain -* generates https github links -* explicitly imports ``odoo``, so useless for anyone else -""" - -def setup(app): - app.add_config_value('github_user', None, 'env') - app.add_config_value('github_project', None, 'env') - app.connect('html-page-context', add_doc_link) - - def linkcode_resolve(domain, info): - """ Resolves provided object to corresponding github URL - """ - # TODO: js? - if domain != 'py': - return None - if not (app.config.github_user and app.config.github_project): - return None - - module, fullname = info['module'], info['fullname'] - # TODO: attributes/properties don't have modules, maybe try to look - # them up based on their cached host object? - if not module: - return None - - obj = importlib.import_module(module) - for item in fullname.split('.'): - obj = getattr(obj, item, None) - - if obj is None: - return None - - # get original from decorated methods - try: obj = getattr(obj, '_orig') - except AttributeError: pass - - try: - obj_source_path = inspect.getsourcefile(obj) - _, line = inspect.getsourcelines(obj) - except (TypeError, IOError): - # obj doesn't have a module, or something - return None - - import odoo - # FIXME: make finding project root project-independent - project_root = os.path.join(os.path.dirname(odoo.__file__), '..') - return make_github_link( - app, - os.path.relpath(obj_source_path, project_root), - line) - app.config.linkcode_resolve = linkcode_resolve - -def make_github_link(app, path, line=None, mode="blob"): - config = app.config - - urlpath = "/{user}/{project}/{mode}/{branch}/{path}".format( - user=config.github_user, - project=config.github_project, - branch=config.version or 'master', - path=path, - mode=mode, - ) - return urls.url_unparse(( - 'https', - 'github.com', - urlpath, - '', - '' if line is None else 'L%d' % line - )) -def add_doc_link(app, pagename, templatename, context, doctree): - """ Add github_link function linking to the current page on github """ - if not app.config.github_user and app.config.github_project: - return - - source_suffix = app.config.source_suffix - # in 1.3 source_suffix can be a list - # in 1.8 source_suffix can be a mapping - # FIXME: will break if we ever add support for !rst markdown documents maybe - if not isinstance(source_suffix, str): - source_suffix = next(iter(source_suffix)) - # can't use functools.partial because 3rd positional is line not mode - context['github_link'] = lambda mode='edit': make_github_link( - app, 'doc/%s%s' % (pagename, source_suffix), mode=mode) |
