mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-03 08:48:40 +02:00
[doc] sphinx documentation setup
This commit is contained in:
parent
243c278bcc
commit
b2db98f128
15 changed files with 312 additions and 73 deletions
65
docs/source/_ext/fetch_md.py
Normal file
65
docs/source/_ext/fetch_md.py
Normal file
|
@ -0,0 +1,65 @@
|
|||
import os
|
||||
from docutils.nodes import SparseNodeVisitor
|
||||
from docutils.parsers.rst import Directive
|
||||
from myst_parser.docutils_ import Parser
|
||||
from myst_parser.mdit_to_docutils.base import make_document
|
||||
|
||||
|
||||
class Relinker(SparseNodeVisitor):
|
||||
|
||||
@staticmethod
|
||||
def get_link_key(node):
|
||||
link_keys = ['uri', 'refuri', 'refname']
|
||||
for key in link_keys:
|
||||
if key in node.attributes.keys():
|
||||
return key
|
||||
return None
|
||||
|
||||
def relink(self, node, base_dir):
|
||||
key = Relinker.get_link_key(node)
|
||||
if key is None:
|
||||
return
|
||||
link = node.attributes[key]
|
||||
if link.startswith('http') or link.startswith('mailto'):
|
||||
return
|
||||
if link.startswith('/'):
|
||||
link = link[1:]
|
||||
node.attributes[key] = base_dir+'/'+link
|
||||
|
||||
def visit_image(self, node):
|
||||
self.relink(node, os.getenv('PROJECT_DIR'))
|
||||
|
||||
|
||||
class FetchMd(Directive):
|
||||
|
||||
required_arguments = 2
|
||||
|
||||
def arg_path(self):
|
||||
if self.arguments[0] == ':file:':
|
||||
return self.arguments[1]
|
||||
|
||||
def run(self):
|
||||
path = os.path.abspath(os.getenv('PROJECT_DIR') + '/' + self.arg_path())
|
||||
result = []
|
||||
try:
|
||||
with open(path) as file:
|
||||
parser = Parser()
|
||||
text = file.read()
|
||||
doc = make_document(parser_cls=Parser)
|
||||
parser.parse(text, doc)
|
||||
relinker = Relinker(doc)
|
||||
doc.walk(relinker)
|
||||
result.append(doc[0])
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return result
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.add_directive('fetch_md', FetchMd)
|
||||
|
||||
return {
|
||||
'version': '0.1',
|
||||
'parallel_read_safe': True,
|
||||
'parallel_write_safe': True
|
||||
}
|
63
docs/source/_templates/autosummary/module.rst
Normal file
63
docs/source/_templates/autosummary/module.rst
Normal file
|
@ -0,0 +1,63 @@
|
|||
{{ fullname | escape | underline}}
|
||||
|
||||
|
||||
.. automodule:: {{ fullname }}
|
||||
|
||||
{% block attributes %}
|
||||
{% if attributes %}
|
||||
.. rubric:: {{ _('Module Attributes') }}
|
||||
|
||||
.. autosummary::
|
||||
{% for item in attributes %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block functions %}
|
||||
{% if functions %}
|
||||
.. rubric:: {{ _('Functions') }}
|
||||
|
||||
.. autosummary::
|
||||
{% for item in functions %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block classes %}
|
||||
{% if classes %}
|
||||
.. rubric:: {{ _('Classes') }}
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:recursive:
|
||||
{% for item in classes %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block exceptions %}
|
||||
{% if exceptions %}
|
||||
.. rubric:: {{ _('Exceptions') }}
|
||||
|
||||
.. autosummary::
|
||||
{% for item in exceptions %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block modules %}
|
||||
{% if modules %}
|
||||
.. rubric:: Modules
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:recursive:
|
||||
{% for item in modules %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
9
docs/source/api.rst
Normal file
9
docs/source/api.rst
Normal file
|
@ -0,0 +1,9 @@
|
|||
Python API Reference
|
||||
====================
|
||||
|
||||
|
||||
.. autosummary::
|
||||
:recursive:
|
||||
:toctree: generated
|
||||
|
||||
meshroom
|
6
docs/source/changes.rst
Normal file
6
docs/source/changes.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
Release Notes
|
||||
=============
|
||||
|
||||
|
||||
.. fetch_md::
|
||||
:file: CHANGES.md
|
40
docs/source/conf.py
Normal file
40
docs/source/conf.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# For the full list of built-in configuration values, see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
os.environ['PROJECT_DIR'] = Path('../..').resolve().as_posix()
|
||||
|
||||
sys.path.append(os.path.abspath(os.getenv('PROJECT_DIR')))
|
||||
sys.path.append(os.path.abspath('./_ext'))
|
||||
|
||||
project = 'Meshroom'
|
||||
copyright = '2022, AliceVision Association'
|
||||
author = 'AliceVision Association'
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.autosummary',
|
||||
'fetch_md'
|
||||
]
|
||||
|
||||
templates_path = ['_templates']
|
||||
exclude_patterns = []
|
||||
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_static_path = ['_static']
|
15
docs/source/index.rst
Normal file
15
docs/source/index.rst
Normal file
|
@ -0,0 +1,15 @@
|
|||
Welcome to meshroom's documentation!
|
||||
====================================
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Contents:
|
||||
|
||||
api
|
||||
install
|
||||
changes
|
||||
|
||||
|
||||
.. fetch_md::
|
||||
:file: README.md
|
6
docs/source/install.rst
Normal file
6
docs/source/install.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
Install
|
||||
=======
|
||||
|
||||
|
||||
.. fetch_md::
|
||||
:file: INSTALL.md
|
Loading…
Add table
Add a link
Reference in a new issue