summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Barker <pbarker@toganlabs.com>2017-05-23 10:26:38 +0100
committerAndrei Gherzan <andrei@gherzan.com>2017-05-26 12:16:52 +0100
commit654d84d68a65318909d19a28c05d8172f6337972 (patch)
tree973d492544304ed234fe54e9cbba25c516d5b73f
parent03976f7ff12885d1205effe526c83b10ed4252fe (diff)
downloadmeta-raspberrypi-654d84d68a65318909d19a28c05d8172f6337972.tar.gz
docs: Initial sphinx configuration
This allows us to create documentation by running 'make html' or 'make latexpdf' in the docs directory. It depends on sphinx and the recommonmark python module (for parsing markdown files in sphinx). Creation of the PDF document requires a full LaTeX toolchain to be installed. Signed-off-by: Paul Barker <pbarker@toganlabs.com>
-rw-r--r--.gitignore1
-rw-r--r--docs/Makefile225
-rw-r--r--docs/conf.py343
-rw-r--r--docs/index.rst25
4 files changed, 594 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 7909d50..706144a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ build*
4*.orig 4*.orig
5*.rej 5*.rej
6*.log 6*.log
7docs/_build
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..d0de87f
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,225 @@
1# Makefile for Sphinx documentation
2#
3
4# You can set these variables from the command line.
5SPHINXOPTS =
6SPHINXBUILD = sphinx-build
7PAPER =
8BUILDDIR = _build
9
10# Internal variables.
11PAPEROPT_a4 = -D latex_paper_size=a4
12PAPEROPT_letter = -D latex_paper_size=letter
13ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14# the i18n builder cannot share the environment and doctrees with the others
15I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16
17.PHONY: help
18help:
19 @echo "Please use \`make <target>' where <target> is one of"
20 @echo " html to make standalone HTML files"
21 @echo " dirhtml to make HTML files named index.html in directories"
22 @echo " singlehtml to make a single large HTML file"
23 @echo " pickle to make pickle files"
24 @echo " json to make JSON files"
25 @echo " htmlhelp to make HTML files and a HTML help project"
26 @echo " qthelp to make HTML files and a qthelp project"
27 @echo " applehelp to make an Apple Help Book"
28 @echo " devhelp to make HTML files and a Devhelp project"
29 @echo " epub to make an epub"
30 @echo " epub3 to make an epub3"
31 @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
32 @echo " latexpdf to make LaTeX files and run them through pdflatex"
33 @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
34 @echo " text to make text files"
35 @echo " man to make manual pages"
36 @echo " texinfo to make Texinfo files"
37 @echo " info to make Texinfo files and run them through makeinfo"
38 @echo " gettext to make PO message catalogs"
39 @echo " changes to make an overview of all changed/added/deprecated items"
40 @echo " xml to make Docutils-native XML files"
41 @echo " pseudoxml to make pseudoxml-XML files for display purposes"
42 @echo " linkcheck to check all external links for integrity"
43 @echo " doctest to run all doctests embedded in the documentation (if enabled)"
44 @echo " coverage to run coverage check of the documentation (if enabled)"
45 @echo " dummy to check syntax errors of document sources"
46
47.PHONY: clean
48clean:
49 rm -rf $(BUILDDIR)/*
50
51.PHONY: html
52html:
53 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
54 @echo
55 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
56
57.PHONY: dirhtml
58dirhtml:
59 $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
60 @echo
61 @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
62
63.PHONY: singlehtml
64singlehtml:
65 $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
66 @echo
67 @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
68
69.PHONY: pickle
70pickle:
71 $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
72 @echo
73 @echo "Build finished; now you can process the pickle files."
74
75.PHONY: json
76json:
77 $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
78 @echo
79 @echo "Build finished; now you can process the JSON files."
80
81.PHONY: htmlhelp
82htmlhelp:
83 $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
84 @echo
85 @echo "Build finished; now you can run HTML Help Workshop with the" \
86 ".hhp project file in $(BUILDDIR)/htmlhelp."
87
88.PHONY: qthelp
89qthelp:
90 $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
91 @echo
92 @echo "Build finished; now you can run "qcollectiongenerator" with the" \
93 ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
94 @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/meta-raspberrypi.qhcp"
95 @echo "To view the help file:"
96 @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/meta-raspberrypi.qhc"
97
98.PHONY: applehelp
99applehelp:
100 $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
101 @echo
102 @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
103 @echo "N.B. You won't be able to view it unless you put it in" \
104 "~/Library/Documentation/Help or install it in your application" \
105 "bundle."
106
107.PHONY: devhelp
108devhelp:
109 $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
110 @echo
111 @echo "Build finished."
112 @echo "To view the help file:"
113 @echo "# mkdir -p $$HOME/.local/share/devhelp/meta-raspberrypi"
114 @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/meta-raspberrypi"
115 @echo "# devhelp"
116
117.PHONY: epub
118epub:
119 $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
120 @echo
121 @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
122
123.PHONY: epub3
124epub3:
125 $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
126 @echo
127 @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
128
129.PHONY: latex
130latex:
131 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
132 @echo
133 @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
134 @echo "Run \`make' in that directory to run these through (pdf)latex" \
135 "(use \`make latexpdf' here to do that automatically)."
136
137.PHONY: latexpdf
138latexpdf:
139 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
140 @echo "Running LaTeX files through pdflatex..."
141 $(MAKE) -C $(BUILDDIR)/latex all-pdf
142 @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
143
144.PHONY: latexpdfja
145latexpdfja:
146 $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
147 @echo "Running LaTeX files through platex and dvipdfmx..."
148 $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
149 @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
150
151.PHONY: text
152text:
153 $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
154 @echo
155 @echo "Build finished. The text files are in $(BUILDDIR)/text."
156
157.PHONY: man
158man:
159 $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
160 @echo
161 @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
162
163.PHONY: texinfo
164texinfo:
165 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
166 @echo
167 @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
168 @echo "Run \`make' in that directory to run these through makeinfo" \
169 "(use \`make info' here to do that automatically)."
170
171.PHONY: info
172info:
173 $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
174 @echo "Running Texinfo files through makeinfo..."
175 make -C $(BUILDDIR)/texinfo info
176 @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
177
178.PHONY: gettext
179gettext:
180 $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
181 @echo
182 @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
183
184.PHONY: changes
185changes:
186 $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
187 @echo
188 @echo "The overview file is in $(BUILDDIR)/changes."
189
190.PHONY: linkcheck
191linkcheck:
192 $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
193 @echo
194 @echo "Link check complete; look for any errors in the above output " \
195 "or in $(BUILDDIR)/linkcheck/output.txt."
196
197.PHONY: doctest
198doctest:
199 $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
200 @echo "Testing of doctests in the sources finished, look at the " \
201 "results in $(BUILDDIR)/doctest/output.txt."
202
203.PHONY: coverage
204coverage:
205 $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
206 @echo "Testing of coverage in the sources finished, look at the " \
207 "results in $(BUILDDIR)/coverage/python.txt."
208
209.PHONY: xml
210xml:
211 $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
212 @echo
213 @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
214
215.PHONY: pseudoxml
216pseudoxml:
217 $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
218 @echo
219 @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
220
221.PHONY: dummy
222dummy:
223 $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
224 @echo
225 @echo "Build finished. Dummy builder generates no files."
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..013c8a7
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,343 @@
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3#
4# meta-raspberrypi documentation build configuration file, created by
5# sphinx-quickstart on Tue May 23 09:51:24 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# -- General configuration ------------------------------------------------
25
26# If your documentation needs a minimal Sphinx version, state it here.
27#
28# needs_sphinx = '1.0'
29
30# Add any Sphinx extension module names here, as strings. They can be
31# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
32# ones.
33extensions = []
34
35# Add any paths that contain templates here, relative to this directory.
36templates_path = ['_templates']
37
38# The suffix(es) of source filenames.
39# You can specify multiple suffix as a list of string:
40#
41# source_suffix = ['.rst', '.md']
42source_suffix = ['.rst', '.md']
43
44# The encoding of source files.
45#
46# source_encoding = 'utf-8-sig'
47
48# The master toctree document.
49master_doc = 'index'
50
51# General information about the project.
52project = 'meta-raspberrypi'
53copyright = '2017, meta-raspberrypi contributors'
54author = 'meta-raspberrypi contributors'
55
56# The version info for the project you're documenting, acts as replacement for
57# |version| and |release|, also used in various other places throughout the
58# built documents.
59#
60# The short X.Y version.
61version = 'master'
62# The full version, including alpha/beta/rc tags.
63release = 'master'
64
65# The language for content autogenerated by Sphinx. Refer to documentation
66# for a list of supported languages.
67#
68# This is also used if you do content translation via gettext catalogs.
69# Usually you set "language" from the command line for these cases.
70language = None
71
72# There are two options for replacing |today|: either, you set today to some
73# non-false value, then it is used:
74#
75# today = ''
76#
77# Else, today_fmt is used as the format for a strftime call.
78#
79# today_fmt = '%B %d, %Y'
80
81# List of patterns, relative to source directory, that match files and
82# directories to ignore when looking for source files.
83# This patterns also effect to html_static_path and html_extra_path
84exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
85
86# The reST default role (used for this markup: `text`) to use for all
87# documents.
88#
89# default_role = None
90
91# If true, '()' will be appended to :func: etc. cross-reference text.
92#
93# add_function_parentheses = True
94
95# If true, the current module name will be prepended to all description
96# unit titles (such as .. function::).
97#
98# add_module_names = True
99
100# If true, sectionauthor and moduleauthor directives will be shown in the
101# output. They are ignored by default.
102#
103# show_authors = False
104
105# The name of the Pygments (syntax highlighting) style to use.
106pygments_style = 'sphinx'
107
108# A list of ignored prefixes for module index sorting.
109# modindex_common_prefix = []
110
111# If true, keep warnings as "system message" paragraphs in the built documents.
112# keep_warnings = False
113
114# If true, `todo` and `todoList` produce output, else they produce nothing.
115todo_include_todos = False
116
117
118# -- Options for HTML output ----------------------------------------------
119
120# The theme to use for HTML and HTML Help pages. See the documentation for
121# a list of builtin themes.
122#
123html_theme = 'alabaster'
124
125# Theme options are theme-specific and customize the look and feel of a theme
126# further. For a list of options available for each theme, see the
127# documentation.
128#
129# html_theme_options = {}
130
131# Add any paths that contain custom themes here, relative to this directory.
132# html_theme_path = []
133
134# The name for this set of Sphinx documents.
135# "<project> v<release> documentation" by default.
136#
137# html_title = 'meta-raspberrypi vmaster'
138
139# A shorter title for the navigation bar. Default is the same as html_title.
140#
141# html_short_title = None
142
143# The name of an image file (relative to this directory) to place at the top
144# of the sidebar.
145#
146# html_logo = None
147
148# The name of an image file (relative to this directory) to use as a favicon of
149# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
150# pixels large.
151#
152# html_favicon = None
153
154# Add any paths that contain custom static files (such as style sheets) here,
155# relative to this directory. They are copied after the builtin static files,
156# so a file named "default.css" will overwrite the builtin "default.css".
157html_static_path = ['_static']
158
159# Add any extra paths that contain custom files (such as robots.txt or
160# .htaccess) here, relative to this directory. These files are copied
161# directly to the root of the documentation.
162#
163# html_extra_path = []
164
165# If not None, a 'Last updated on:' timestamp is inserted at every page
166# bottom, using the given strftime format.
167# The empty string is equivalent to '%b %d, %Y'.
168#
169# html_last_updated_fmt = None
170
171# If true, SmartyPants will be used to convert quotes and dashes to
172# typographically correct entities.
173#
174# html_use_smartypants = True
175
176# Custom sidebar templates, maps document names to template names.
177#
178# html_sidebars = {}
179
180# Additional templates that should be rendered to pages, maps page names to
181# template names.
182#
183# html_additional_pages = {}
184
185# If false, no module index is generated.
186#
187# html_domain_indices = True
188
189# If false, no index is generated.
190#
191# html_use_index = True
192
193# If true, the index is split into individual pages for each letter.
194#
195# html_split_index = False
196
197# If true, links to the reST sources are added to the pages.
198#
199# html_show_sourcelink = True
200
201# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
202#
203# html_show_sphinx = True
204
205# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
206#
207# html_show_copyright = True
208
209# If true, an OpenSearch description file will be output, and all pages will
210# contain a <link> tag referring to it. The value of this option must be the
211# base URL from which the finished HTML is served.
212#
213# html_use_opensearch = ''
214
215# This is the file name suffix for HTML files (e.g. ".xhtml").
216# html_file_suffix = None
217
218# Language to be used for generating the HTML full-text search index.
219# Sphinx supports the following languages:
220# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
221# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh'
222#
223# html_search_language = 'en'
224
225# A dictionary with options for the search language support, empty by default.
226# 'ja' uses this config value.
227# 'zh' user can custom change `jieba` dictionary path.
228#
229# html_search_options = {'type': 'default'}
230
231# The name of a javascript file (relative to the configuration directory) that
232# implements a search results scorer. If empty, the default will be used.
233#
234# html_search_scorer = 'scorer.js'
235
236# Output file base name for HTML help builder.
237htmlhelp_basename = 'meta-raspberrypidoc'
238
239# -- Options for LaTeX output ---------------------------------------------
240
241latex_elements = {
242 # The paper size ('letterpaper' or 'a4paper').
243 #
244 # 'papersize': 'letterpaper',
245
246 # The font size ('10pt', '11pt' or '12pt').
247 #
248 # 'pointsize': '10pt',
249
250 # Additional stuff for the LaTeX preamble.
251 #
252 # 'preamble': '',
253
254 # Latex figure (float) alignment
255 #
256 # 'figure_align': 'htbp',
257}
258
259# Grouping the document tree into LaTeX files. List of tuples
260# (source start file, target name, title,
261# author, documentclass [howto, manual, or own class]).
262latex_documents = [
263 (master_doc, 'meta-raspberrypi.tex', 'meta-raspberrypi Documentation',
264 'meta-raspberrypi contributors', 'manual'),
265]
266
267# The name of an image file (relative to this directory) to place at the top of
268# the title page.
269#
270# latex_logo = None
271
272# For "manual" documents, if this is true, then toplevel headings are parts,
273# not chapters.
274#
275# latex_use_parts = False
276
277# If true, show page references after internal links.
278#
279# latex_show_pagerefs = False
280
281# If true, show URL addresses after external links.
282#
283# latex_show_urls = False
284
285# Documents to append as an appendix to all manuals.
286#
287# latex_appendices = []
288
289# It false, will not define \strong, \code, itleref, \crossref ... but only
290# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added
291# packages.
292#
293# latex_keep_old_macro_names = True
294
295# If false, no module index is generated.
296#
297# latex_domain_indices = True
298
299
300# -- Options for manual page output ---------------------------------------
301
302# One entry per manual page. List of tuples
303# (source start file, name, description, authors, manual section).
304man_pages = [
305 (master_doc, 'meta-raspberrypi', 'meta-raspberrypi Documentation',
306 [author], 1)
307]
308
309# If true, show URL addresses after external links.
310#
311# man_show_urls = False
312
313
314# -- Options for Texinfo output -------------------------------------------
315
316# Grouping the document tree into Texinfo files. List of tuples
317# (source start file, target name, title, author,
318# dir menu entry, description, category)
319texinfo_documents = [
320 (master_doc, 'meta-raspberrypi', 'meta-raspberrypi Documentation',
321 author, 'meta-raspberrypi', 'One line description of project.',
322 'Miscellaneous'),
323]
324
325# Documents to append as an appendix to all manuals.
326#
327# texinfo_appendices = []
328
329# If false, no module index is generated.
330#
331# texinfo_domain_indices = True
332
333# How to display URL addresses: 'footnote', 'no', or 'inline'.
334#
335# texinfo_show_urls = 'footnote'
336
337# If true, do not generate a @detailmenu in the "Top" node's menu.
338#
339# texinfo_no_detailmenu = False
340
341source_parsers = {
342 '.md': 'recommonmark.parser.CommonMarkParser',
343}
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..bb1ae3d
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,25 @@
1.. meta-raspberrypi documentation master file, created by
2 sphinx-quickstart on Tue May 23 09:51:24 2017.
3 You can adapt this file completely to your liking, but it should at least
4 contain the root `toctree` directive.
5
6Welcome to meta-raspberrypi's documentation!
7============================================
8
9Contents:
10
11.. toctree::
12 :maxdepth: 2
13
14 layer-contents
15 extra-build-config
16 extra-apps
17 contributing
18
19Indices and tables
20==================
21
22* :ref:`genindex`
23* :ref:`modindex`
24* :ref:`search`
25