1
1
import os
2
2
3
+ try :
4
+ import requests
5
+ except ImportError :
6
+ pass
7
+
3
8
from alabaster import _version as version
4
9
5
10
@@ -14,6 +19,47 @@ def get_path():
14
19
def update_context (app , pagename , templatename , context , doctree ):
15
20
context ["alabaster_version" ] = version .__version__
16
21
22
+ set_up_travis_context (context )
23
+
24
+
25
+ def set_up_travis_context (context ):
26
+ """Add complete Travis URLs to Jinja2 context."""
27
+ github_slug = "/" .join (
28
+ (context ["theme_github_user" ], context ["theme_github_repo" ])
29
+ )
30
+
31
+ travis_button = str (context ["theme_travis_button" ]).lower ()
32
+ travis_button_enabled = travis_button == "true"
33
+
34
+ travis_slug = github_slug if travis_button_enabled else travis_button
35
+
36
+ travis_tld = context ["theme_travis_tld" ].lower ()
37
+ if travis_button_enabled and travis_tld == "auto" :
38
+ try :
39
+ travis_api_response = requests .get (
40
+ "https://api.travis-ci.com/repo/{}" .format (
41
+ travis_slug .replace ("/" , "%2F" )
42
+ ),
43
+ headers = {
44
+ "Travis-API-Version" : "3" ,
45
+ "User-Agent" : "Sphinx-Alabaster-Theme/{version} "
46
+ "(+https://github.com/bitprophet/alabaster)" .format (
47
+ version = version .__version__
48
+ ),
49
+ },
50
+ )
51
+ is_travis_com_repo = 200 <= travis_api_response .status_code < 300
52
+ travis_tld = "com" if is_travis_com_repo else "org"
53
+ except NameError :
54
+ travis_tld = "com"
55
+ elif travis_tld != "com" :
56
+ travis_tld = "org"
57
+ travis_base_uri = "travis-ci.{}/{}" .format (travis_tld , travis_slug )
58
+ context ["theme_travis_build_url" ] = "https://{}" .format (travis_base_uri )
59
+ context ["theme_travis_badge_url" ] = "https://api.{}.svg?branch={}" .format (
60
+ travis_base_uri , context ["theme_badge_branch" ]
61
+ )
62
+
17
63
18
64
def setup (app ):
19
65
# add_html_theme is new in Sphinx 1.6+
0 commit comments