Fix OPNFV wiki APEX dead link
[docs.git] / docs / conf.py
index ab41171a2ec96b130744888a40b1f80c652b2c24..87c3cbdd4718ee2888c69cb3766449a4e33964fa 100755 (executable)
 ##############################################################################
 
 from docs_conf.conf import *
+import sys, os, csv
 
-# Append to intersphinx_mapping
-intersphinx_mapping['odl-integration-test'] = ('http://docs.opendaylight.org/projects/integration-test/en/latest/', None)
-intersphinx_mapping['odl-integration-distribution'] = ('http://docs.opendaylight.org/projects/integration-distribution/en/latest/', None)
-intersphinx_mapping['odl-integration-packaging'] = ('http://docs.opendaylight.org/projects/integration-packaging/en/latest/', None)
-intersphinx_mapping['odl-releng-builder'] = ('http://docs.opendaylight.org/projects/releng-builder/en/latest/', None)
 
-# Projects that have stable/branches
-intersphinx_mapping['coe'] = ('http://docs.opendaylight.org/projects/coe/en/latest/', None)
-intersphinx_mapping['genius'] = ('http://docs.opendaylight.org/projects/genius/en/latest/', None)
-intersphinx_mapping['netvirt'] = ('http://docs.opendaylight.org/projects/netvirt/en/latest/', None)
-intersphinx_mapping['openflowplugin'] = ('http://docs.opendaylight.org/projects/openflowplugin/en/latest/', None)
+def update_intersphinx_mapping():
+    with open('../projects_list.tsv') as fd:
+        rd = csv.reader(fd, delimiter="\t", quotechar='"')
+        for row in rd:
+            if row:
+                project = row[0]
+                if project[0] == "#":
+                    continue
+                version = row[1]
+                intersphinx_mapping[project] = (f'https://docs.opendaylight.org/projects/{project}/en/{version}/', None)
+
+
+# Append to intersphinx_mapping
+update_intersphinx_mapping()
 
 # OpenDaylight Documentation Releases
-intersphinx_mapping['odl-oxygen'] = ('http://docs.opendaylight.org/en/stable-oxygen/', None)
-intersphinx_mapping['odl-nitrogen'] = ('http://docs.opendaylight.org/en/stable-nitrogen/', None)
-intersphinx_mapping['odl-carbon'] = ('http://docs.opendaylight.org/en/stable-carbon/', None)
+intersphinx_mapping['odl-calcium'] = ('https://docs.opendaylight.org/en/latest/', None)
+intersphinx_mapping['odl-potassium'] = ('https://docs.opendaylight.org/en/stable-potassium/', None)
+intersphinx_mapping['odl-argon'] = ('https://docs.opendaylight.org/en/stable-argon/', None)
+intersphinx_mapping['odl-chlorine'] = ('https://docs.opendaylight.org/en/stable-chlorine/', None)
+intersphinx_mapping['odl-sulfur'] = ('https://docs.opendaylight.org/en/stable-sulfur/', None)
+intersphinx_mapping['odl-phosphorus'] = ('https://docs.opendaylight.org/en/stable-phosphorus/', None)
+intersphinx_mapping['odl-silicon'] = ('https://docs.opendaylight.org/en/stable-silicon/', None)
+intersphinx_mapping['odl-aluminium'] = ('https://docs.opendaylight.org/en/stable-aluminium/', None)
+intersphinx_mapping['odl-magnesium'] = ('https://docs.opendaylight.org/en/stable-magnesium/', None)
+intersphinx_mapping['odl-sodium'] = ('https://docs.opendaylight.org/en/stable-sodium/', None)
+intersphinx_mapping['odl-neon'] = ('https://docs.opendaylight.org/en/stable-neon/', None)
+intersphinx_mapping['odl-fluorine'] = ('https://docs.opendaylight.org/en/stable-fluorine/', None)
+intersphinx_mapping['odl-oxygen'] = ('https://docs.opendaylight.org/en/stable-oxygen/', None)
+intersphinx_mapping['odl-nitrogen'] = ('https://docs.opendaylight.org/en/stable-nitrogen/', None)
+intersphinx_mapping['odl-carbon'] = ('https://docs.opendaylight.org/en/stable-carbon/', None)
 
 linkcheck_ignore = [
+    'http://localhost',
+    # Ignore ssh:// links from linkcheck
+    'ssh:',
     # Ignore jenkins because it's often slow to respond.
     'https://jenkins.opendaylight.org/releng',
     'https://jenkins.opendaylight.org/sandbox',
     # The '#' in the path makes sphinx think it's an anchor
     'https://git.opendaylight.org/gerrit/#/admin/projects/releng/builder',
+    'https://git.opendaylight.org/gerrit/#/c/',
+    'https://git.opendaylight.org/gerrit/gitweb',
+    # URL returns a 403 Forbidden
+    'https://www.osgi.org',
+    # Ignore anchors on github.com because linkcheck fails on them
+    '^https?://github.com/.*#',
+    # Ignore webchat anchors because '#' is not an anchor for this app
+    'https://web.libera.chat/#',
+    # Ignore google docs anchors
+    'https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/edit#slide=id.g17d8ae4d92_0_137',
+    # Ignore local static contents
+    '../_static/OpenDaylight-Technical-Charter-LFN-Projects-LLC-FINAL.pdf',
+    # Ignore IETF URLs often not reachable from Jenkins minions
+    # because of hosting connectivity issues
+    '^https?://tools.ietf.org/html/.*',
+    # anchors not correctly detected by sphinx on the gate
+    'http://checkstyle.sourceforge.net/config_coding.html#.*',
+    # this url often has connectivity issues on the gate
+    'https://www.mojohaus.org/animal-sniffer/animal-sniffer-maven-plugin/examples/checking-signatures.html',
+    #Ignore announce page link till it is up
+    'https://www.opendaylight.org/current-release-potassium',
+    'https://www.opendaylight.org/current-release-argon',
 ]
+linkcheck_timeout = 300
 
 nitpicky = True
 release = version
 
+spelling_warning = True
+spelling_exclude_patterns = ['release-notes/release-notes-*', 'release-notes/projects/*']
+
 html_context = {
     'version_status': 'supported',
 }
+
+# Helper for JIRA references
+sys.path.append(os.path.abspath('ext'))
+extensions.append('odl-jira')
+
+# Set language to English
+language = "en"
+
+
+def setup(app):
+    app.add_css_file("css/ribbon.css")