Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Pull docs from OpenWISP modules to create a unified documentation Website #107 #189

Merged
merged 117 commits into from
Aug 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
a6342ae
[feature] Added prototype for generating comprehensive docs #107
pandafy Feb 20, 2024
3ca0ef0
[fix] Fixed feature heading
pandafy Feb 22, 2024
ea42d8d
[chores] Added partial for developer doc warning
pandafy Feb 22, 2024
7176457
[chores] Added index.html that redirects to stable version
pandafy Feb 22, 2024
e120afe
[ci] Added action to publish docs
pandafy Feb 22, 2024
f6a5d5d
[deps] Fixed jquery deps
pandafy Feb 22, 2024
8fe9c57
[fix] Use HTTPS instead of SSH for Git
pandafy Feb 22, 2024
b14c12c
[fix] Removed multiversion extension
pandafy Feb 22, 2024
b22017c
[chores] Updated URL for version switching
pandafy Feb 22, 2024
4479c44
[chores] Removed downloads
pandafy Feb 22, 2024
72f3444
[chores] Deploy docs on GCS
pandafy Apr 24, 2024
bbae5d3
[chores] Added configuration for PDF generation
pandafy Apr 24, 2024
8302d7b
[chores] Removed publish-docs GitHub actions
pandafy Apr 24, 2024
a0a027a
[chores] Updated run-qa-checks
pandafy Apr 24, 2024
95c49f2
[chores] Updated configuration
pandafy Apr 25, 2024
c0164ab
[chores] Configured root location for docs
pandafy Apr 25, 2024
d526095
[chores] Updated styles conf for PDF
pandafy Apr 26, 2024
0b0c2ad
[chores] Improved sphinx configuration
pandafy Apr 26, 2024
ceb770f
[chores] Added network topology
pandafy Apr 26, 2024
979b829
[chores] Fixed typo
pandafy Apr 26, 2024
1296c63
[changes] Different docs for 22.05
pandafy Apr 26, 2024
d394335
[chores] Enabled PDF builds
pandafy Apr 26, 2024
189fd3a
[changes] Added support for epubs
pandafy Apr 26, 2024
ce84397
[req-changes] Dynamically generate index.html to redirect to stable v…
pandafy May 9, 2024
12b43eb
[req-change] Added reference to the index.rst
pandafy May 9, 2024
fa2959e
[req-changes] Improved script
pandafy May 10, 2024
b08103b
[temp] Removed fail-on-warning
pandafy May 10, 2024
9b29347
[req-change] Renamed build_docs > build
pandafy May 10, 2024
85149c1
[req-changes] Use SSH for cloning repositories
pandafy May 20, 2024
e6671ad
[req-changes] Improved build script
pandafy May 20, 2024
3093cb2
[req-changes] Set shebang for build script, generate symbolic link fo…
pandafy May 21, 2024
788c4e2
[req-change] Supported generating only a specific version of docs
pandafy May 21, 2024
2b4e451
[req-changes] Fixed duplicate menu, override modules from CLI
pandafy May 21, 2024
48894d4
[fix] Fixed issues with building PDF for 22.05
pandafy May 22, 2024
5517a88
[skip ci] Improved handling for repository_path
pandafy May 22, 2024
bc06e57
[refactor] Refactored build.py
pandafy May 22, 2024
ce61324
[docs] Added docs
pandafy May 22, 2024
ff6b451
[req-changes] Added canonical link tag
pandafy May 23, 2024
1563161
[temp] Debug CI build
pandafy May 23, 2024
a177bbe
[docs] Misc improvements:
nemesifier May 14, 2024
f624cf1
[docs] Added partials/signals-note
nemesifier May 18, 2024
f92705a
[docs] Started compiling settings reference
nemesifier May 24, 2024
a00dd19
[req-changes] Fixed bugs in build.py
pandafy May 30, 2024
aa7db67
[change] Use symlinks instead of copying entire dir
nemesifier Jun 1, 2024
408034a
[change] Renamed openwisp2-docs to openwisp-docs
nemesifier Jun 1, 2024
d5aeb9a
[ci] Updated repo name
nemesifier Jun 5, 2024
ef2b23d
[docs] Added WiFi Login Pages
pandafy Jun 5, 2024
947cbf2
[chores] Added automatic_captive_portal_login reference
pandafy Jun 6, 2024
ac33ae4
[docs] Added IPAM
pandafy Jun 6, 2024
26153a0
[skip ci] Fixed OpenWISP Monitoring reference
pandafy Jun 7, 2024
0697b31
[docs] Added openwisp-config
pandafy Jun 7, 2024
7568a2d
[chores] Updated gitignore
pandafy Jun 7, 2024
08fe264
[docs] Added monitoring agent
pandafy Jun 7, 2024
b12fd53
[docs] Added Ansible OpeNWISP docs
pandafy Jun 10, 2024
abe06dd
[docs] Changed directory name for ansible role
pandafy Jun 10, 2024
d4a1409
[skip ci][docs] Added docker-openwisp
pandafy Jun 10, 2024
782dc5e
[docs] Removed pages
pandafy Jun 11, 2024
8c8d824
[chores] Updated gitignore
pandafy Jun 14, 2024
f869b45
[docs] Removed WLP page
pandafy Jun 14, 2024
ee2de11
[req-changes] Added references to settings
pandafy Jun 19, 2024
3786f04
[fix] Fixed QA
pandafy Jun 19, 2024
bea59ca
[req-changes] Fixed version switcher and made requested changes
pandafy Jun 25, 2024
990562d
[chores] Added docstrings
pandafy Jun 26, 2024
fb80a00
[fix] Fixed warning and version switcher code
pandafy Jun 26, 2024
e9e4bb0
[req-changes] Updated builder name and fixed QA issues
pandafy Jul 2, 2024
2bf9402
[skip ci] Updated gitingore
pandafy Jul 3, 2024
ab079a3
[fix] Fixed references in WPA Enterprise EAP-TTLS-PAP tutorial
pandafy Jul 4, 2024
fd95314
[build] Execute pull
nemesifier Jul 5, 2024
9ab038b
[docs] Grouped tutorials
nemesifier Jul 5, 2024
0cf8c00
[docs] Grouped general pages into Project Overview
nemesifier Jul 5, 2024
9d77a90
[docs] Reorganized content structure to simplify navigation
nemesifier Jul 6, 2024
ba27b4b
[docs] Revisited Goals and Values page
nemesifier Jul 6, 2024
6fbfd46
[qa] Minor QA fixes
nemesifier Jul 6, 2024
45a73af
[docs] QA line-length fixes
nemesifier Jul 6, 2024
58a85c7
[qa] Enabled pylinkvalidator
pandafy Jul 8, 2024
1b6e2f8
[req-changes] Updated QA checks
pandafy Jul 8, 2024
3229d16
[docs] Updated GCI and GSoC pages
nemesifier Jul 8, 2024
a2ba1b2
[docs] Reordered modules index
nemesifier Jul 12, 2024
89670fe
[docs] Added link to radius module github repo
nemesifier Jul 12, 2024
7dbcd1c
[docs] Revisited python/django development tools page
nemesifier Jul 12, 2024
56772fc
[docs] Revisited Architecture page
nemesifier Jul 12, 2024
8bd6dba
[docs] Added more table of contents
nemesifier Jul 12, 2024
cdd3aaa
[docs] Updated links in contributing guidelines
nemesifier Jul 12, 2024
e356149
[docs] List first important pages only
nemesifier Jul 12, 2024
01d9783
[docs] More table of contents
nemesifier Jul 12, 2024
d1e81cf
[docs] Fixed internal links in django settings page
nemesifier Jul 12, 2024
74d554c
[deps] Bumped theme version
nemesifier Jul 13, 2024
c9c6b17
[docs] Fixed OpenWRT -> OpenWrt
nemesifier Jul 13, 2024
3ee187d
[deps] Added dependabot
nemesifier Jul 13, 2024
ba2db0f
[req-changes] Updated WPA EAP TTLS PAP docs
pandafy Jul 15, 2024
162218d
[req-changes] Updated URL references
pandafy Jul 15, 2024
3d06e7f
Merge branch 'issues/107-comprehensive-docs' of github.com:openwisp/o…
nemesifier Jul 15, 2024
149569b
[docs] Updated table of contents
nemesifier Jul 15, 2024
c7eba3f
[docs] Minor improvement to django settings page
nemesifier Jul 15, 2024
f5ea01d
[docs] Table of contents, consistency, fixes
nemesifier Jul 16, 2024
d02355a
[docs] Reformatted
nemesifier Jul 16, 2024
23fbb12
[docs] Tutorials, added final see also section
nemesifier Jul 16, 2024
61d199d
[docs] Revisited first steps
nemesifier Jul 18, 2024
165c8b9
[docs] Reformatted text
nemesifier Jul 18, 2024
a0f1f2b
[docs] Revisited architecture page
nemesifier Jul 18, 2024
fac5622
[docs] Improved tutorials
nemesifier Jul 19, 2024
389ca12
[docs] Improved signal note
nemesifier Jul 19, 2024
0560c72
[docs] Added radius architecture diagram
nemesifier Jul 22, 2024
f3184c1
[docs] Made order of list of modules consistent with architecture dia…
nemesifier Jul 22, 2024
317e1a7
[docs] Added index banner illustration
nemesifier Jul 22, 2024
4b3c9f4
[docs] Help Us: mention Github Discussions
nemesifier Jul 22, 2024
4526055
[docs] Updated openwrt package URLs in demo
nemesifier Jul 25, 2024
7a42dc8
[docs] Revisited configure-device page
nemesifier Jul 25, 2024
5aa0373
[qa] Reformatted text
nemesifier Jul 25, 2024
8ef2a45
[docs] Fixed WLP definition in architecture page
nemesifier Jul 26, 2024
899eb3b
[docs] Minor improvements to configure-device page
nemesifier Jul 26, 2024
a67cf1e
[docs] Added docstrfmt check to run-qa-checks
nemesifier Jul 26, 2024
8b43143
[docs] Made version_map silent
nemesifier Jul 27, 2024
ccd4fa2
[docs] Ignore any README.rst
nemesifier Jul 27, 2024
a431696
[QA] Fail on warning again (only HTML)
nemesifier Jul 27, 2024
fc0c301
[ci] Minor improvements to CI
nemesifier Jul 30, 2024
ad83f52
[ci] Publish only when pushed to master (ready to merge)
nemesifier Aug 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "monthly"
commit-message:
prefix: "[deps] "
- package-ecosystem: "github-actions" # Check for GitHub Actions updates
directory: "/" # The root directory where the Ansible role is located
schedule:
interval: "monthly" # Check for updates weekly
commit-message:
prefix: "[ci] "
25 changes: 12 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
build:
name: Python==3.10
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

strategy:
fail-fast: false
Expand All @@ -28,7 +28,7 @@ jobs:
python-version: "3.10"

- name: Upgrade python system packages
run: pip install -U pip wheel
run: pip install -U pip wheel setuptools

- name: Install test dependencies
run: |
Expand All @@ -39,24 +39,23 @@ jobs:
run: sudo npm install -g stylelint

- name: QA checks
run: ./run-qa-checks
run: PRODUCTION=1 ./run-qa-checks
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
run: PRODUCTION=1 ./run-qa-checks
# In this repository, the run-qa-checks script also builds the actual output
run: DOCS_ROOT='/docs/__new__' ./run-qa-checks


- name: Google Cloud Auth
- name: Setup Google Cloud
if: ${{ github.event_name=='push' }}
uses: 'google-github-actions/auth@v2'
with:
project_id: ${{ secrets.GCS_PROJECT_ID }}
credentials_json: ${{ secrets.GCS_DOWNLOADS_SERVICE_ACCOUNT_JSON }}

- name: Google Cloud Setup
if: ${{ github.event_name=='push' }}
uses: google-github-actions/setup-gcloud@v2
with:
project_id: ${{ secrets.GCS_PROJECT_ID }}
export_environment_variables: true

- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v2'

- name: Deploy pages to openwisp.io/docs
if: ${{ github.event_name=='push' }}
run: gsutil -D -m rsync -r ${{ env.SRC }} ${{ env.DEST }}
run: |
gsutil -m rsync -r ${{ env.SRC_URL }} ${{ env.DST_URL }}
env:
SRC: /home/runner/work/openwisp-docs/openwisp-docs/_build/html
DEST: gs://${{ secrets.GCS_DOCS_BUCKET_NAME }}/docs
SRC_URL: /home/runner/work/openwisp-docs/openwisp-docs/_build/docs/
DST_URL: gs://${{ secrets.GCS_DOCS_BUCKET_NAME }}/docs/
30 changes: 30 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,33 @@
_build/

.vscode/
modules/*
controller
monitoring
firmware-upgrader
notifications
network-topology
users
utils
openwisp2-docs
wifi-login-pages
ipam
openwrt-config-agent
openwrt-monitoring-agent
docker
ansible
versions_map.json

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

eggs/
.eggs/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

54 changes: 48 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,23 @@

# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build --fail-on-warning
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
SRCDIR = .

# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
ALLSPHINXOPTS = -c . -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SRCDIR)
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .

.PHONY: help
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " build to build the documentation in all formats (PDF, HTML and ePUB)"
@echo " build_html to build the documentation in HTML format only"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
Expand Down Expand Up @@ -48,11 +51,36 @@ help:
clean:
rm -rf $(BUILDDIR)/*

.PHONY: build
build:
# If the build fails or is interrupted, the versions_map.json will
# stay in the root directory. This would cause bugs when re-creating
# the version map, so we remove it before building.
rm versions_map.json &> /dev/null || true

#If the build is successful, the version map is stored in the
# _build/ directory, allowing re-use of the version map when sphinx uses cache
# in subsequent builds and only builds the changed files.
mv _build/versions_map.json versions_map.json &> /dev/null || true

@echo "Building version map"
./build.py --formats version_map $(if $(VERSION),--version $(VERSION)) $(if $(MODULES),--modules $(MODULES))

@echo "Building documentation"
./build.py $(if $(FORMATS),--formats $(FORMATS)) $(if $(VERSION),--version $(VERSION)) $(if $(MODULES),--modules $(MODULES))

# Store the version map in the _build/ directory
mv versions_map.json _build/

.PHONY: build_html
build_html:
make build FORMATS=html $(ARGS)

.PHONY: html
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
$(SPHINXBUILD) -W -b html $(ALLSPHINXOPTS) $(BUILDDIR)
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@echo "Build finished. The HTML pages are in $(BUILDDIR)"

.PHONY: dirhtml
dirhtml:
Expand Down Expand Up @@ -114,11 +142,17 @@ devhelp:
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/NewcomersGuide"
@echo "# devhelp"

.PHONY: pdf
pdf:
$(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) $(BUILDDIR)
@echo
@echo "Build finished. The pdf file is in $(BUILDDIR)."

.PHONY: epub
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
@echo "Build finished. The epub file is in $(BUILDDIR)."

.PHONY: epub3
epub3:
Expand Down Expand Up @@ -223,3 +257,11 @@ dummy:
$(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy
@echo
@echo "Build finished. Dummy builder generates no files."

.PHONY: version_map
version_map:
$(SPHINXBUILD) -Q -b version_map $(ALLSPHINXOPTS) $(BUILDDIR)/version_map

.PHONY: format
format:
docstrfmt -l 74 .
149 changes: 133 additions & 16 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,40 +1,157 @@
========================
OpenWISP 2 Documentation
========================
OpenWISP Documentation
======================

This repository aims to help out **new users and contributors** to get
start using and getting involved in `OpenWISP <http://openwisp.org>`_.
This repository contains the main source of the Unified Documentation of
OpenWISP, published at `openwisp.io/docs <https://openwisp.io/docs>`_.

This repo at this stage is pretty much a work in progress, so
contributions, feedback and suggestions are very welcome.
It implements logic which pulls source documents from different OpenWISP
modules in order to build a single unified documentation website.

How to build the docs
---------------------

Requirements: Python >= 3.9.

1. Fork this repository
2. Clone this repository using the following command:

2. Clone this repository using the following command::
.. code-block:: shell

  git clone https://github.com/<your-username>/openwisp2-docs.git
git clone https://github.com/<your-username>/openwisp2-docs.git
nemesifier marked this conversation as resolved.
Show resolved Hide resolved

3. Install sphinx on your local machine using::
3. Install sphinx on your local machine using:

.. code-block:: shell

pip install -r requirements.txt

4. Build HTML::
4. You can build the documentation using the following command

.. code-block:: shell

# This command will generate the documentation in all formats - HTML, PDF and ePUB
make build
# The ``formats`` argument is a comma separated list of formats to build,
# e.g. ``formats=html,pdf,epub``. The default is to build all available
# formats, which currently are ``html``, ``pdf`` and ``epub``.
make build formats=pdf,html
# This command is a shortcut for generating only HTML documentation during
# development, since building PDF and ePUB takes time. It also supports
# the VERSION argument.
make build_html

make html
..
note:

Please refer the "`build options" <#build-options>`_section of this
configuration for a complete reference of the available options.

5. Open the generated HTML files in your browser.

Build options
-------------

Building different formats
~~~~~~~~~~~~~~~~~~~~~~~~~~

By default, the ``make build`` command will generate documentation in all
supported output formats: HTML, PDF, and ePUB.

If you want to generate the documentation in specific formats, you can
specify the ``FORMATS`` argument. The ``FORMATS`` argument accepts a
comma-separated list of formats to generate. The supported formats are:

- ``html``: HTML documentation
- ``pdf``: PDF documentation
- ``epub``: ePUB documentation

For example, to generate only HTML and PDF documentation, you can run:

.. code-block:: shell

make build FORMATS=html,pdf

To generate all supported formats, just omit the ``FORMATS`` argument:

.. code-block:: shell

make build

.. code-block:: shell

# This command will only generate HTML
make build FORMATS=html

Building specific version
~~~~~~~~~~~~~~~~~~~~~~~~~

By default, the ``make build`` command will generate documentation for all
the versions defined in ``config.yml``.

If you want to generate the documentation for a specific version, you can
do so by using the ``VERSION`` argument. ``VERSION`` accepts any version
that is specified in the ``config.yml`` file.

For example, if you want to generate documentation for the ``dev``
version, you can run:

.. code-block:: shell

make build VERSION=dev

This is useful if you only want to generate documentation for the version
you are currently working on, or if you want to generate documentation for
a specific version without having to rebuild all the other versions as
well.

Overriding a module of a version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``make build`` command is programmed to generate the documentation for
the modules that are defined in the ``config.yml`` file. Sometimes, it may
be necessary to override the branch/remote of a module defined in the
``config.yml`` file to build the documentation for a specific version or
to test a specific commit/branch of a module.

You can do so by using the ``MODULES`` argument. ``MODULES`` accepts a
comma separated string where each item is of the following format:

.. code-block:: text

version=<openwisp-version>,repository=<repo-owner>/<repo-name>,branch=<branch-name>

E.g. if you want to build the documentation for the ``dev`` version, but
want to use the ``feature`` branch of openwisp-controller of your fork,
then the command will be:

.. code-block:: shell

make build MODULES="version=dev:repository=<your-username>/openwisp-controller:branch=feature"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we already have the version flag, why allow to specify the version here too?

Seems redundant to me.

Why not just:

make build VERSION=dev MODULES="repository=<your-username>/openwisp-controller:branch=feature"

Can you allow something like this?

make build VERSION=dev MODULES="openwisp-users,openwisp-controller"

In this case, if nothing is specified, we can assume this is the list of module we want to build, so use the defaults provided in the config YAML but build only these modules instead of all of them.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you allow something like this?

make build VERSION=dev MODULES="openwisp-users,openwisp-controller"

In this case, if nothing is specified, we can assume this is the list of module we want to build, so use the defaults provided in the config YAML but build only these modules instead of all of them.

How will this help us in using the script programmatically?

If you want to do this for quick builds, you can temporarily comment out the modules from config.yml

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we already have the version flag, why allow to specify the version here too?

Seems redundant to me.

Why not just:

make build VERSION=dev MODULES="repository=<your-username>/openwisp-controller:branch=feature"

The VERSION argument determines which version to build. The first version key in the MODULES determine which version to add this module.

E.g. you can have something like this

make build MODULES="version=dev:repository=<your-username>/openwisp-controller:branch=feature,version=22.05:repository=<your-username>/openwisp-controller:branch=22.05"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok let's leave this for now.

The ``MODULES`` argument allows you to override the default settings for a
single module, or multiple modules, defined in the ``config.yml`` file.

You can use the ``MODULES`` argument to add modules to a version that is
not defined in the ``config.yml`` file.

Building with SSH remotes
~~~~~~~~~~~~~~~~~~~~~~~~~

By default, the OpenWISP modules are cloned over HTTPS. This may pose a
hurdle if you wish to make changes to the cloned modules and push them to
the remote URL. To use SSH remotes, you can set the environment variable
``SSH=1``. This will instruct the build to clone the modules using SSH
instead of HTTPS. For example:

.. code-block:: shell

SSH=1 make build

Need help?
----------

- If any help regarding installing and using `sphinx` and
`reStructured Text` is required then please visit this
`link <http://www.sphinx-doc.org/en/stable/tutorial.html>`_.

- If any help regarding installing and using `sphinx` and `reStructured
Text` is required then please visit this `link
<http://www.sphinx-doc.org/en/stable/tutorial.html>`_.
- Feel free to post any doubt or comment through our `support channels
<http://openwisp.org/support.html>`_.
8 changes: 8 additions & 0 deletions _static/index.jinja2
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; URL='{{ docs_root }}/{{ stable_version }}/index.html'" />
</head>
<body>
</body>
</html>
8 changes: 8 additions & 0 deletions _styles/pdf-style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
styles:
heading:
borderPadding:
- 5
- 0
- 5
- 10
spaceAfter: 16
Loading
Loading