Skip to main content

Support for using Sphinx on Luadoc-documented Lua code

Project description

https://img.shields.io/pypi/v/sphinx-lua.svg https://img.shields.io/pypi/pyversions/sphinx-lua.svg

A lua-autodoc tool for Sphinx. Generate a beautiful sphinx doc using lua doc comment.

It use emmylua as primary doc syntax but it is also compatible with some ldoc tags.

Installation

$ pip install sphinx-lua

Dependencies:

  • Jinja2 (to render rst template)

  • luadoc (to parse lua comments)

  • sphinxcontrib-luadomain (to add lua domain to sphinx)

Sphinx integration

Add the following to your conf.py:

extensions = [
    'sphinxcontrib.luadomain',
    'sphinx_lua'
    ]

# Available options and default values
lua_source_path = ["./"]
lua_source_encoding = 'utf8'
lua_source_comment_prefix = '---'
lua_source_use_emmy_lua_syntax = True
lua_source_private_prefix = '_'

The lua_source_path configuration value tells to sphinx-lua where to find lua source code.

With above configuration, if main.lua is located in ../src/lua/main.lua, and it’s content is:

--- Define a car.
--- @class MyOrg.Car
local cls = class()

--- @param foo number
function cls:test(foo)
end

You can autodoc it in sphinx with the following directive:

.. lua:autoclass:: MyOrg.Car

Troubleshooting

Sphinx-lua use the documentation model extracted from luadoc (https://github.com/boolangery/py-lua-doc)

So you can print this model out using the command line tool:

$ luadoc ../src/lua/my_problematic_source_file.lua

Available sphinx directives

The following directives are available:

.. lua:autoclass:: pl.List

.. lua:automodule:: pl.stringx

.. lua:autoclasssummary:: ^pl.

You can also use directive provided by sphinxcontrib.luadomain:

https://github.com/boolangery/sphinx-luadomain#available-sphinx-directives

Showing original source code

You can display method source code appending the flag show-source:

.. lua:autoclass:: pl.List
    :show-source:

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

sphinx-lua-1.1.4.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_lua-1.1.4-py2.py3-none-any.whl (24.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sphinx-lua-1.1.4.tar.gz.

File metadata

  • Download URL: sphinx-lua-1.1.4.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for sphinx-lua-1.1.4.tar.gz
Algorithm Hash digest
SHA256 e8cb3d5b8e3980043d43ca9e55a78ae565839c531f9116c01d5d2d85aff361ef
MD5 26eef1c7af21922b86b98cd4aa160c13
BLAKE2b-256 3a53b16d9bd18fc993e3fba2ec816e1feed309d21d723b27ab980d9741166cb7

See more details on using hashes here.

File details

Details for the file sphinx_lua-1.1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: sphinx_lua-1.1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for sphinx_lua-1.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c578d2911bc1395ef701e367cf2314abdc6bde3c6270b58f90a48927b29f0771
MD5 1c8f9b378424adf8518716a434faa482
BLAKE2b-256 d50aca9fac2c42ed853804d8925af34ba30be7c400fce3c49eaa8c15e856cff4

See more details on using hashes here.

Supported by

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