Skip to main content

Sphinx extension with some autodoc features for any sources

Project description

Extension for gathering reST documentation from any files. This is a documenter from ext.autodoc.

In current state this extension will only insert reST docs from files to target documentation project without auto generation definitions and signatures.

But it simple and clean to make documentation for API and store documentation strings in the source code.

Install

pip install sphinxcontrib-autoanysrc

Usage

Add autoanysrc to extensions list:

extensions = ['sphinxcontrib.autoanysrc', ]

Example of usage:

.. autoanysrc:: blabla
    :src: app/**/*.js
    :analyzer: js

Where:

  • src option is the pattern to list source files where docs are stored

  • analyzer option to determine witch analyzer must be used for processing this files

Directive will iterate over app/**/*.js files and process it line by line.

Custom analyzer

autoanysrc allow define custom analyzers.

Define custom analyzer (conf.py):

# make conf.py importtable
sys.path.insert(0, os.path.abspath('.'))

from sphinxcontrib.autoanysrc import analyzers

class CustomAnalyzer(analyzers.BaseAnalyzer):

    def process(self, content):
        """
        Must process content line by line

        :param content: processing file content
        :returns: generator of pairs docs line and line number
        """
        for lineno, srcline in enumerate(content.split('\n')):
            yield 'some parsed doc line from content', lineno


# put analyzer to the autonaysrc setting
autoanysrc_analyzers = {
    'my-custom': 'conf.CustomAnalyzer',
}

And use it:

.. autoanysrc:: blabla
    :src: ../src/*.js
    :analyzer: my-custom

Default analyzers

JSAnalyzer

Search comments blocks starts by /*””” and ends by */ (inspired by Nuulogic/sphinx-jsapidoc).

.. autoanysrc:: directives
    :src: app/services.js
    :analyzer: js

Where services.js:

/*"""
Services
````````

The function :func:`someService` does a some function.
*/

function someService(href, callback, errback) {
/*"""
.. function:: someService(href, callback[, errback])

    :param string href: An URI to the location of the resource.
    :param callback: Gets called with the object.
    :throws SomeError: For whatever reason in that case.
    :returns: Something.
*/
    return 'some result';
};

TODO

  • encoding option

  • allow internal indent in comment block

  • generate signatures like ext.autodoc…

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinxcontrib_autoanysrc-0.2.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

sphinxcontrib_autoanysrc-0.2.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file sphinxcontrib_autoanysrc-0.2.0.tar.gz.

File metadata

  • Download URL: sphinxcontrib_autoanysrc-0.2.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.6.9-arch1-1

File hashes

Hashes for sphinxcontrib_autoanysrc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d2f1b40f20932f5fd5168000793953365a0af65545317eef45d88ad7d42444fd
MD5 5915b450828e5a7bc49053ff3bc0730f
BLAKE2b-256 207b37b00d61a3a6e6007146035fdd6191c1a1ae7eeec640414cbe56f49d74dc

See more details on using hashes here.

File details

Details for the file sphinxcontrib_autoanysrc-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinxcontrib_autoanysrc-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7abcba74dd3cc341fe10b0db9da2e2bb5cda248e06c51c15ba4d2cd1f75e9369
MD5 20820b0cdf7fa96df242b551802c817d
BLAKE2b-256 1772933187c960900878458efc80c4672b331650ad76a5cfe41d08bc1953b434

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page