Skip to content

Commit dbdd916

Browse files
author
Daniel Holbach
committed
Start off read-the-docs effort for documentation
Re-use some of the work for flux, targetting weaveworks#207
1 parent ee1d56a commit dbdd916

File tree

8 files changed

+285
-0
lines changed

8 files changed

+285
-0
lines changed

.readthedocs.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# .readthedocs.yml
2+
# Read the Docs configuration file
3+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4+
5+
# Required
6+
version: 2
7+
8+
# Build documentation in the docs/ directory with Sphinx
9+
sphinx:
10+
configuration: docs/conf.py
11+
12+
# Build documentation with MkDocs
13+
#mkdocs:
14+
# configuration: mkdocs.yml
15+
16+
# Optionally build your docs in additional formats such as PDF and ePub
17+
formats: all
18+
19+
# Optionally set the version of Python and requirements required to build your docs
20+
python:
21+
version: 3.7
22+
install:
23+
- requirements: docs/requirements.txt

Makefile

+13
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ API_DIRS = ${APIS_DIR}/ignite,${APIS_DIR}/ignite/v1alpha1,${APIS_DIR}/ignite/v1a
1414
CACHE_DIR = $(shell pwd)/bin/cache
1515
API_DOCS = api/ignite.md api/meta.md
1616

17+
DOCS_PORT = 8000
18+
1719
all: binary
1820
binary:
1921
$(MAKE) shell COMMAND="make bin/${WHAT}"
@@ -111,3 +113,14 @@ dockerized-autogen: /go/bin/deepcopy-gen /go/bin/defaulter-gen /go/bin/conversio
111113

112114
/go/bin/openapi-gen:
113115
go install k8s.io/kube-openapi/cmd/openapi-gen
116+
117+
118+
build-docs:
119+
@cd docs && docker build -t ignite-docs .
120+
121+
test-docs: build-docs
122+
@docker run -it ignite-docs /usr/bin/linkchecker _build/html/index.html
123+
124+
serve-docs: build-docs
125+
@echo Stating docs website on http://localhost:${DOCS_PORT}/_build/html/index.html
126+
@docker run -i -p ${DOCS_PORT}:8000 -e USER_ID=$$UID ignite-docs

docs/Dockerfile

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM ddidier/sphinx-doc
2+
3+
COPY requirements.txt .
4+
5+
RUN apt update && apt install -y linkchecker && \
6+
pip install -r requirements.txt
7+
8+
WORKDIR /doc
9+
10+
COPY . .
11+
12+
RUN make html && \
13+
cd /doc/_build/html/_static/fonts/RobotoSlab && \
14+
ln -s roboto-slab-v7-regular.eot roboto-slab.eot
15+
16+
CMD ["python", "-m", "http.server", "8000"]
17+

docs/Makefile

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Minimal makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
SOURCEDIR = .
8+
BUILDDIR = _build
9+
10+
# Put it first so that "make" without argument is like "make help".
11+
help:
12+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
13+
14+
.PHONY: help Makefile
15+
16+
# Catch-all target: route all unknown targets to Sphinx using the new
17+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
18+
%: Makefile
19+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

docs/_static/custom.css

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@import url("https://fonts.googleapis.com/css?family=Montserrat&display=swap");
2+
@import url("https://fonts.googleapis.com/css?family=Roboto+Mono&display=swap");
3+
4+
body {
5+
font-family: "Montserrat", sans-serif;
6+
}
7+
8+
.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre {
9+
font-family: "Roboto Mono", monospace;
10+
}
11+
12+
code {
13+
font-family: "Roboto Mono", monospace;
14+
}
15+

docs/conf.py

+177
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# -*- coding: utf-8 -*-
2+
#
3+
# Configuration file for the Sphinx documentation builder.
4+
#
5+
# This file does only contain a selection of the most common options. For a
6+
# full list see the documentation:
7+
# http://www.sphinx-doc.org/en/master/config
8+
9+
# -- Path setup --------------------------------------------------------------
10+
11+
# If extensions (or modules to document with autodoc) are in another directory,
12+
# add these directories to sys.path here. If the directory is relative to the
13+
# documentation root, use os.path.abspath to make it absolute, like shown here.
14+
#
15+
import os
16+
import sys
17+
sys.path.insert(0, os.path.abspath('.'))
18+
19+
# -- Project information -----------------------------------------------------
20+
21+
project = 'Ignite'
22+
copyright = '2019, Ignite development team'
23+
author = 'Ignite development team'
24+
25+
# The short X.Y version
26+
version = ''
27+
# The full version, including alpha/beta/rc tags
28+
release = ''
29+
30+
31+
# -- General configuration ---------------------------------------------------
32+
33+
# If your documentation needs a minimal Sphinx version, state it here.
34+
#
35+
# needs_sphinx = '1.0'
36+
37+
# Add any Sphinx extension module names here, as strings. They can be
38+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
39+
# ones.
40+
extensions = [
41+
'recommonmark',
42+
'sphinx_markdown_tables',
43+
]
44+
45+
# Add any paths that contain templates here, relative to this directory.
46+
templates_path = ['_templates']
47+
48+
49+
# The suffix(es) of source filenames.
50+
# You can specify multiple suffix as a list of string:
51+
#
52+
source_suffix = ['.rst', '.md']
53+
54+
# The master toctree document.
55+
master_doc = 'index'
56+
57+
# The language for content autogenerated by Sphinx. Refer to documentation
58+
# for a list of supported languages.
59+
#
60+
# This is also used if you do content translation via gettext catalogs.
61+
# Usually you set "language" from the command line for these cases.
62+
language = None
63+
64+
# List of patterns, relative to source directory, that match files and
65+
# directories to ignore when looking for source files.
66+
# This pattern also affects html_static_path and html_extra_path.
67+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
68+
69+
# The name of the Pygments (syntax highlighting) style to use.
70+
pygments_style = 'sphinx'
71+
72+
73+
# -- Options for HTML output -------------------------------------------------
74+
75+
# The theme to use for HTML and HTML Help pages. See the documentation for
76+
# a list of builtin themes.
77+
#
78+
html_theme = 'sphinx_rtd_theme'
79+
80+
# Theme options are theme-specific and customize the look and feel of a theme
81+
# further. For a list of options available for each theme, see the
82+
# documentation.
83+
#
84+
# html_theme_options = {}
85+
86+
# Add any paths that contain custom static files (such as style sheets) here,
87+
# relative to this directory. They are copied after the builtin static files,
88+
# so a file named "default.css" will overwrite the builtin "default.css".
89+
html_static_path = ['_static']
90+
91+
# Custom sidebar templates, must be a dictionary that maps document names
92+
# to template names.
93+
#
94+
# The default sidebars (for documents that don't match any pattern) are
95+
# defined by theme itself. Builtin themes are using these templates by
96+
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
97+
# 'searchbox.html']``.
98+
#
99+
# html_sidebars = {}
100+
101+
102+
# -- Options for HTMLHelp output ---------------------------------------------
103+
104+
# Output file base name for HTML help builder.
105+
htmlhelp_basename = 'Ignitedoc'
106+
107+
108+
# -- Options for LaTeX output ------------------------------------------------
109+
110+
latex_elements = {
111+
# The paper size ('letterpaper' or 'a4paper').
112+
#
113+
# 'papersize': 'letterpaper',
114+
115+
# The font size ('10pt', '11pt' or '12pt').
116+
#
117+
# 'pointsize': '10pt',
118+
119+
# Additional stuff for the LaTeX preamble.
120+
#
121+
# 'preamble': '',
122+
123+
# Latex figure (float) alignment
124+
#
125+
# 'figure_align': 'htbp',
126+
}
127+
128+
# Grouping the document tree into LaTeX files. List of tuples
129+
# (source start file, target name, title,
130+
# author, documentclass [howto, manual, or own class]).
131+
latex_documents = [
132+
(master_doc, 'Ignite.tex', 'Ignite Documentation',
133+
'Ignite development team', 'manual'),
134+
]
135+
136+
137+
# -- Options for manual page output ------------------------------------------
138+
139+
# One entry per manual page. List of tuples
140+
# (source start file, name, description, authors, manual section).
141+
man_pages = [
142+
(master_doc, 'ignite', 'Ignite Documentation',
143+
[author], 1)
144+
]
145+
146+
147+
# -- Options for Texinfo output ----------------------------------------------
148+
149+
# Grouping the document tree into Texinfo files. List of tuples
150+
# (source start file, target name, title, author,
151+
# dir menu entry, description, category)
152+
texinfo_documents = [
153+
(master_doc, 'Ignite', 'Ignite Documentation',
154+
author, 'Ignite', 'One line description of project.',
155+
'Miscellaneous'),
156+
]
157+
158+
159+
# -- Options for Epub output -------------------------------------------------
160+
161+
# Bibliographic Dublin Core info.
162+
epub_title = project
163+
164+
# The unique identifier of the text. This can be a ISBN number
165+
# or the project homepage.
166+
#
167+
# epub_identifier = ''
168+
169+
# A unique identification for the text.
170+
#
171+
# epub_uid = ''
172+
173+
# A list of files that should not be packed into the epub file.
174+
epub_exclude_files = ['search.html']
175+
176+
def setup(app):
177+
app.add_stylesheet('custom.css')

docs/index.rst

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.. Flux documentation documentation master file, created by
2+
sphinx-quickstart on Wed Jun 12 16:13:18 2019.
3+
You can adapt this file completely to your liking, but it should at least
4+
contain the root `toctree` directive.
5+
6+
Welcome to Ignite's documentation!
7+
==============================================
8+
9+
.. toctree::
10+
:maxdepth: 1
11+
:caption: Contents:
12+
13+
usage
14+
declarative-config
15+
cli/ignite
16+
../api
17+
dependencies
18+
prometheus

docs/requirements.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
sphinx == 2.1.2
2+
sphinx_markdown_tables == 0.0.9
3+
recommonmark == 0.5.0

0 commit comments

Comments
 (0)