Improve C++ documentation shell

Doxygen's markdown support can't quite deal with the Github flavor,
the language reference looks terrible.

So instead, this change switches to using Sphinx,
with two extensions that call Doxygen for us and allow including markdown.

The result is a read-the-docs themed sphinx site that includes search even
in the language reference.
This commit is contained in:
Simon Hausmann 2020-08-24 16:29:54 +02:00
parent 063ff45d0c
commit e9685c5851
8 changed files with 145 additions and 2571 deletions

1
api/sixtyfps-cpp/docs/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
Pipfile.lock

View file

@ -0,0 +1,16 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
sphinx = "*"
breathe = "*"
sphinx-rtd-theme = "*"
exhale = "*"
recommonmark = "*"
[requires]
python_version = "3.8"

View file

@ -0,0 +1,69 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'SixtyFPS C++'
copyright = '2020, info@sixtyfps.io'
author = 'info@sixtyfps.io'
# The full version, including alpha/beta/rc tags
release = '0.0.1'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ["breathe", "recommonmark", "exhale"]
breathe_projects = {
"SixtyFPS": "./docs/xml"
}
breathe_default_project = "SixtyFPS"
exhale_args = {
"containmentFolder": "./api",
"rootFileName": "library_root.rst",
"rootFileTitle": "SixtyFPS CPP Reference Documentation",
"doxygenStripFromPath": "..",
"createTreeView": True,
"exhaleExecutesDoxygen": True,
"exhaleDoxygenStdin": "INPUT = @CMAKE_CURRENT_SOURCE_DIR@/../include"
}
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
#html_static_path = ['_static']

View file

@ -0,0 +1,33 @@
.. LICENSE BEGIN
..
.. This file is part of the Sixty FPS Project
..
.. Copyright (c) 2020 Olivier Goffart <olivier.goffart@sixtyfps.io>
.. Copyright (c) 2020 Simon Hausmann <simon.hausmann@sixtyfps.io>
..
.. SPDX-License-Identifier: GPL-3.0-only
..
.. LICENSE END
.. SixtyFPS C++ documentation master file, created by
sphinx-quickstart on Mon Aug 24 14:21:19 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to SixtyFPS C++'s documentation!
========================================
.. toctree::
:maxdepth: 2
:caption: Contents:
markdown/langref.md
api/library_root
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`