sphinx-contrib / apidoc

A Sphinx extension for running sphinx-apidoc on each build
http://www.sphinx-doc.org/
BSD 2-Clause "Simplified" License
57 stars 12 forks source link

Support templating #5

Open gsemet opened 6 years ago

gsemet commented 6 years ago

Hello

Is it possible to add an option to change the default menu item names:

So instead of:

mypackage_name
    mypackage_name package
        Submodules
            mypackage_name.one_module module
            mypackage_name.another_module module
            mypackage_name.yet_another_one module
        Module contents

We would have something like:

API Reference
    mypackage_name package
        Module contents
        mypackage_name.one_module module
        mypackage_name.another_module module
        mypackage_name.yet_another_one module
stephenfin commented 6 years ago

This is not currently possible as the original Sphinx application that this extension utilizes, sphinx-apidoc, does not support templates or the likes. If we wanted to support this feature, we'd need to essentially vendor and rewrite that application or modify the application upstream so that we would get support for free with the next version of Sphinx. I'd be happy to help produce a PRs for either approach but it's not important enough for me to do solo.

gsemet commented 6 years ago

Ok, I dig into it to see what can be done

So for the moment, sadly, I have disabled sphinx-contrib/apidoc and added this in my general makefile:

DOCS_EXCLUSION=$(foreach m, $(MODULES), $m/tests)

docs: clean-docs sdist docs-generate-apidoc docs-run-sphinx

docs-generate-apidoc:
    pipenv run sphinx-apidoc \
        --force \
        --separate \
        --module-first \
        --doc-project "API Reference" \
        -o docs/source/reference \
        $(PACKAGE_NAME) \
            $(DOCS_EXCLUSION)

docs-run-sphinx:
    pipenv run make -C docs/ html

clean-docs:
    rm -rf docs/_build docs/source/reference/*.rst

docs-open:
    xdg-open docs/_build/html/index.html

I'll see if I have time to exposes this in sphinxcontrib-apidoc in the future. Thanks for this package anyway!

paulmelnikow commented 5 years ago

Is the solution to provide additional additional arguments to sphinx-apidoc? As far as I can tell --doc-project is ignored unless you use --full. However #9 adds an apidoc_module_first option and lets you specify whichever additional arguments you'd like.

stephenfin commented 5 years ago

Is the solution to provide additional additional arguments to sphinx-apidoc? As far as I can tell --doc-project is ignored unless you use --full. However #9 adds an apidoc_module_first option and lets you specify whichever additional arguments you'd like.

Indeed, that's what I'd take out of this. @gsemet Thoughts?

gsemet commented 5 years ago

seems great! thanks will try it asap