Browse code

set up sphinx documentation

Closes #13

Joseph Weston authored on 09/09/2017 19:26:18
Showing 10 changed files
... ...
@@ -1,2 +1,3 @@
1 1
 __pycache__
2 2
 *.egg-info
3
+docs/build
... ...
@@ -3,16 +3,25 @@
3 3
 
4 4
 **This package is a work in progress -- it is not in a usable state***
5 5
 
6
+.. doc-start
7
+
6 8
 Overview
7 9
 --------
8
-Nord is a client for interacting with the `NordVPN`_
9
-service. At its core is a high-level Python API that supports operations such
10
-as connecting to the server in a given country that is most likely to give you
11
-the best performance. Nord also contains components that expose this API as a
12
-command line tool, and as a web service and a frontend.
10
+
11
+.. overview
12
+
13
+Nord is a client for interacting with the `NordVPN`_ service.
14
+
15
+At its core is a high-level Python API for interacting both with the web service
16
+provided by NordVPN, and for connecting to VPN servers using the OpenVPN client.
17
+
18
+Nord also contains components that expose this API as a command line tool,
19
+and (soon) as a web service and frontend.
13 20
 
14 21
 .. _NordVPN: https://nordvpn.com
15 22
 
23
+.. overview-end
24
+
16 25
 Licence
17 26
 -------
18 27
 Nord is licensed under the terms of the GNU GPLv3.
19 28
new file mode 100644
... ...
@@ -0,0 +1,20 @@
1
+# Minimal makefile for Sphinx documentation
2
+#
3
+
4
+# You can set these variables from the command line.
5
+SPHINXOPTS    =
6
+SPHINXBUILD   = python -msphinx
7
+SPHINXPROJ    = nord
8
+SOURCEDIR     = source
9
+BUILDDIR      = build
10
+
11
+# Put it first so that "make" without argument is like "make help".
12
+help:
13
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+.PHONY: help Makefile
16
+
17
+# Catch-all target: route all unknown targets to Sphinx using the new
18
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+%: Makefile
20
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
0 21
\ No newline at end of file
1 22
new file mode 100644
... ...
@@ -0,0 +1,132 @@
1
+#!/usr/bin/env python3
2
+# -*- coding: utf-8 -*-
3
+#
4
+# nord documentation build configuration file, created by
5
+# sphinx-quickstart on Sat Sep  9 18:11:19 2017.
6
+#
7
+# This file is execfile()d with the current directory set to its
8
+# containing dir.
9
+#
10
+# Note that not all possible configuration values are present in this
11
+# autogenerated file.
12
+#
13
+# All configuration values have a default; values that are commented out
14
+# serve to show the default.
15
+
16
+# If extensions (or modules to document with autodoc) are in another directory,
17
+# add these directories to sys.path here. If the directory is relative to the
18
+# documentation root, use os.path.abspath to make it absolute, like shown here.
19
+#
20
+import os
21
+import sys
22
+sys.path.insert(0, os.path.abspath('..'))
23
+
24
+
25
+# -- General configuration ------------------------------------------------
26
+
27
+# If your documentation needs a minimal Sphinx version, state it here.
28
+#
29
+# needs_sphinx = '1.0'
30
+
31
+# Add any Sphinx extension module names here, as strings. They can be
32
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
33
+# ones.
34
+extensions = [
35
+    'sphinx.ext.autodoc',
36
+    'sphinx.ext.viewcode',
37
+    'sphinx.ext.napoleon',
38
+]
39
+
40
+# Add any paths that contain templates here, relative to this directory.
41
+templates_path = ['_templates']
42
+
43
+# The suffix(es) of source filenames.
44
+# You can specify multiple suffix as a list of string:
45
+#
46
+# source_suffix = ['.rst', '.md']
47
+source_suffix = '.rst'
48
+
49
+# The master toctree document.
50
+master_doc = 'index'
51
+
52
+# General information about the project.
53
+project = 'nord'
54
+copyright = '2017, Joseph Weston'
55
+author = 'Joseph Weston'
56
+
57
+# The version info for the project you're documenting, acts as replacement for
58
+# |version| and |release|, also used in various other places throughout the
59
+# built documents.
60
+#
61
+# The short X.Y version.
62
+version = ''
63
+# The full version, including alpha/beta/rc tags.
64
+release = ''
65
+
66
+# The language for content autogenerated by Sphinx. Refer to documentation
67
+# for a list of supported languages.
68
+#
69
+# This is also used if you do content translation via gettext catalogs.
70
+# Usually you set "language" from the command line for these cases.
71
+language = None
72
+
73
+# List of patterns, relative to source directory, that match files and
74
+# directories to ignore when looking for source files.
75
+# This patterns also effect to html_static_path and html_extra_path
76
+exclude_patterns = []
77
+
78
+# The name of the Pygments (syntax highlighting) style to use.
79
+pygments_style = 'sphinx'
80
+
81
+# If true, `todo` and `todoList` produce output, else they produce nothing.
82
+todo_include_todos = False
83
+
84
+
85
+# -- Options for HTML output ----------------------------------------------
86
+
87
+# The theme to use for HTML and HTML Help pages.  See the documentation for
88
+# a list of builtin themes.
89
+#
90
+html_theme = 'sphinx_rtd_theme'
91
+
92
+# Theme options are theme-specific and customize the look and feel of a theme
93
+# further.  For a list of options available for each theme, see the
94
+# documentation.
95
+#
96
+# html_theme_options = {}
97
+
98
+# Add any paths that contain custom static files (such as style sheets) here,
99
+# relative to this directory. They are copied after the builtin static files,
100
+# so a file named "default.css" will overwrite the builtin "default.css".
101
+html_static_path = ['_static']
102
+
103
+# Custom sidebar templates, must be a dictionary that maps document names
104
+# to template names.
105
+#
106
+# This is required for the alabaster theme
107
+# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
108
+html_sidebars = {
109
+    '**': [
110
+        'about.html',
111
+        'navigation.html',
112
+        'relations.html',  # needs 'show_related': True theme option to display
113
+        'searchbox.html',
114
+        'donate.html',
115
+    ]
116
+}
117
+
118
+
119
+# -- Options for HTMLHelp output ------------------------------------------
120
+
121
+# Output file base name for HTML help builder.
122
+htmlhelp_basename = 'norddoc'
123
+
124
+
125
+# -- Options for manual page output ---------------------------------------
126
+
127
+# One entry per manual page. List of tuples
128
+# (source start file, name, description, authors, manual section).
129
+man_pages = [
130
+    (master_doc, 'nord', 'nord Documentation',
131
+     [author], 1)
132
+]
0 133
new file mode 100644
... ...
@@ -0,0 +1,21 @@
1
+``nord``: an unofficial NordVPN client for GNU/Linux
2
+====================================================
3
+
4
+.. include:: ../../README.rst
5
+   :start-after: overview
6
+   :end-before: overview-end
7
+
8
+.. toctree::
9
+   :maxdepth: 2
10
+   :caption: Contents:
11
+
12
+   overview
13
+   reference
14
+
15
+
16
+Indices and tables
17
+==================
18
+
19
+* :ref:`genindex`
20
+* :ref:`modindex`
21
+* :ref:`search`
0 22
new file mode 100644
... ...
@@ -0,0 +1,2 @@
1
+.. include:: ../../README.rst
2
+   :start-after: doc-start
0 3
new file mode 100644
... ...
@@ -0,0 +1,9 @@
1
+API documentation
2
+=================
3
+
4
+.. toctree::
5
+   :caption: modules
6
+   :maxdepth: 1
7
+
8
+   reference/api.rst
9
+   reference/vpn.rst
0 10
new file mode 100644
... ...
@@ -0,0 +1,4 @@
1
+``nord.api``
2
+------------
3
+.. automodule:: nord.api
4
+    :members:
0 5
new file mode 100644
... ...
@@ -0,0 +1,4 @@
1
+``nord.vpn``
2
+------------
3
+.. automodule:: nord.vpn
4
+    :members:
... ...
@@ -29,6 +29,9 @@ requirements = [
29 29
 
30 30
 dev_requirements = [
31 31
     'pylint',
32
+    'sphinx',
33
+    'sphinx-autobuild',
34
+    'sphinx-rtd-theme',
32 35
 ]
33 36
 
34 37
 classifiers =[