crdoconnor / strictyaml

Type-safe YAML parser and validator.
https://hitchdev.com/strictyaml/
MIT License
1.47k stars 60 forks source link

RFE: pleas add sphinx support #162

Open kloczek opened 2 years ago

kloczek commented 2 years ago

It would be good to add docs/conf.py file to be able render available .md documentation in chosen format. On packaging python modules I'm trying to provide module documentation as man page.

crdoconnor commented 2 years ago

Hi @kloczek is this for debian? Could you point me to an example of a model man page on another project that I can use for inspiration?

I tried creating a man page using sphinx but it looked a bit funky and dropped all of the links.

kloczek commented 2 years ago

https://www.sphinx-doc.org/en/master/usage/advanced/setuptools.html I'm not working on Debian. More than half of my rpm packages with python modules uses that integration to generate module documentation as man page. Here is list of python modules whch I've tested that supoports that

[tkloczko@ss-desktop SPECS]$ grep %py3_build_sphinx_man python- -l | xargs awk '/^Name:/ {print $2}' |sed s/python-//g | wc -l 380 [tkloczko@ss-desktop SPECS]$ grep %py3_build_sphinx_man python- -l | xargs awk '/^Name:/ {print $2}' |sed s/python-//g | xargs aiohttp aioresponses aiosignal amqp anyio anytree argcomplete argh argon2-cffi arrow asgiref aspectlib astor astroid async-generator atomicwrites attrs augeas autodocsumm Automat babel backcall backports.entry-points-selectable beautifulsoup4 betamax billiard black bleach blinker boltons boto3 botocore boto bottle breathe build cachecontrol cachetools cbor2 celery cffi chai characteristic chardet charset-normalizer cheroot cherrypy click-log click CommonMark configobj contextlib2 convertdate coverage coveralls cppy cssselect2 cssselect cycler cython dasbus dateutil ddt deprecated deprecation dictdiffer diskcache django-configurations django dns dropbox dulwich easy-server easy-vault elasticsearch elementpath enchant entrypoints evdev eventlet execnet factory-boy faker fasteners fastjsonschema fields filelock flake8 flask-login flask flask-sqlalchemy flexmock formencode frozenlist fs funcsigs future gcovr gitdb gitlab GitPython google-auth graphviz greenlet h11 h2 hacking hamcrest hidapi hijri-converter hpack html5lib httplib2 httpretty hypercorn hyperframe hyperlink hypothesis ifaddr importlib-metadata importlib_resources inflect ipykernel ipython ipywidgets iso8601 itsdangerous jaraco-classes jaraco-collections jaraco-context jaraco-envs jaraco-functools jaraco.itertools jaraco-packaging jaraco-path jaraco-text jaraco-tidelift jedi jeepney jinja2_pluralize jinja2 jmespath joblib jsonschema jupyter-client jupyter-core jupyter-server jupyter-sphinx jupytext jwcrypto jwt keyring kiwisolver kombu lark-parser latexcodec lazy-object-proxy ldap libevdev linkify-it-py lmdb logbook logutils lxml lz4 m2r mako markdown-it-py markupsafe marshmallow mdit-py-plugins mergedeep metaextract mistune mock more-itertools mpi4py msgpack multidict multipledispatch mypy nbclient nbconvert nbdime nbformat nbsphinx netaddr notebook oauthlib olefile openstackdocstheme outcome packaging paramiko parso parver paste-deploy paste path pathspec pbr pebble pep517 pillow pip-run pip pkginfo platformdirs pluggy polib portend priority productmd prompt-toolkit psutil ptyprocess purl py2pack {{ pyasn1 pybtex-docutils pybtex pycares pycodestyle pydeps pydocstyle pydoctor pyfakefs pyftpdlib PyGithub pygments pykeepass pylama pylint pymeeus PyMySQL pynacl pyOpenSSL pyotp pyparsing PyQt-builder pyrad pyrsistent pyserial py pytest-benchmark pytest-checkdocs pytest-cov pytest-django pytest-easy-server pytest-ordering pytest-perf pytest-regressions pytest-runner pytest pytest-trio pytest-xprocess pyudev pyxattr pyxdg railroad rdflib repoze-lru repoze-tm2 repoze-who requests-mock requests requests-toolbelt rfc3986 rich riemann-client routes rply rsa rst-linker rst scons scripttest scss secretstorage selenium semantic-version service-identity setuptools-rust setuptools simpleline six smartypants smmap sniffio sortedcontainers sphinx-argparse sphinx-autoapi sphinx-click sphinx-codeautolink sphinxcontrib-asyncio sphinxcontrib-autoprogram sphinxcontrib-bibtex sphinxcontrib-httpdomain sphinxcontrib-mermaid sphinxcontrib-openapi sphinxcontrib-programoutput sphinxcontrib-spelling sphinxcontrib-trio sphinx-copybutton sphinxemoji sphinxext-opengraph sphinx-gallery sphinx-hoverxref sphinx-notfound-page sphinx-readable-theme sphinx-removed-in sphinx_rtd_theme sphinx sphinx-tabs sphinx-togglebutton sphinx-typlog-theme sphobjinv sqlalchemy sqlparse stdlib-list stem structlog sure sybil systemd tempora terminado testfixtures testpath testrepository test-server testtools tidy tinycss2 toolz tornado tox traitlets transaction trio trio-websocket trustme twisted uritemplate urllib3 utils validators vine virtualenv waitress watchdog wcwidth webcolors webencodings webob websocket-client webtest werkzeug wheel whoosh wrapt WSGIProxy2 wsproto xmlschema yagot yamlloader yarl ZConfig zeroconf zipp zope-component zope-configuration zope-event zope-exceptions zope-hookable zope-i18nmessageid zope-interface zope-schema zope-testrunner

kloczek commented 2 years ago

To generate man page all what is necessary to execute is python setup.py build_sphinx -b man