sphinx-julia
sphinx-julia copied to clipboard
Can any of this be contributed back to JuliaDoc?
We have a Sphinx setup & theme which is currently used to build our documentation (http://julia.readthedocs.org/) which is available at https://github.com/JuliaLang/JuliaDoc. There have been some persistent issues because the domain inherits from the Python domain rather than starting from scratch, as you appear to have done.
Would it make sense to port the non-theme parts of this over to the repository under JuliaLang?
This project doesn't have any specific themes it only provides a sphinx domain for julia and an autodoc equivalent. As far as I can tell JuliaDoc on the other hand has a theme and a doctest equivalent but no autodoc and no real sphinx domain for julia. So in this sense these two projects are pretty much orthogonal. I guess it would make sense to collect everything in one whole package that then would contain:
- domain
- autodoc
- doctest
- themes
However, it also wouldn't be too hard to keep the projects separate. JuliaDoc could probably just rely on sphinx-julia as dependency and use the implemented domain. What do you think?
Btw, implementing doctest for julia was already on my todo list since I somehow missed this feature when I looked at JuliaDoc.
That might be reasonable. I think the biggest win is the properly-defined domain; if the domain from here works, there's not really any reason to continue using the hacked-up one we have back at JuliaDoc.
I'm happy to tackle any problems that might occur:) Is there a project that uses JuliaDoc that we can use to try out if swapping the domains works?
Julia itself is the main one. If you start a pull request (either by making this repo a dependency and changing requirements.txt or doing the replacement wholesale) I believe I can do a test build off of the branch it creates. Been a while since I've played with that.
Okay the first problem is that I only used python 3 and julia uses python 2 for building the docs. Lets see how hard it is to support both.
It now works with python 2. Additionally I had to add support for return type annotations "f(x) -> int". It now completes the build but there are still many warnings and errors caused by missing features:
- data directive
- currentmodule directive
- obj role
- exc role
And also some errors that have to be changed in the documentation itself:
- class directives and roles have to be renamed to type or abstract