An open API service indexing awesome lists of open source software.

https://github.com/devives/rst-doclet

Doclet for JavaDoc Tool, generating reStructuredText for Sphinx.
https://github.com/devives/rst-doclet

doclet javadoc restructuredtext rst sphinx

Last synced: 6 months ago
JSON representation

Doclet for JavaDoc Tool, generating reStructuredText for Sphinx.

Awesome Lists containing this project

README

          

==========================
RstDoclet for JavaDoc Tool
==========================

This project is the extension of `Javadoc Tool `_.

It's Implement `Doclet `_
witch generates `reStructuredText `_
files based on `javadoc `_
comments in code.

Generated ``*.rst`` files can be published using
`Sphinx `_.

.. note::

The `javasphinx `_ extension must be installed in Sphinx.

Quick Start
-----------

1. Add ``mavencentral()`` repository to your root ``build.gradle``:

.. code:: gradle

repositories {
mavenCentral()
}
#. Add ``rstDoclet``configuration to configurations:

.. code:: gradle

configurations {
rstDoclet
}
#. Add the library of required java version to the dependencies:

Java 8

.. code:: gradle

dependencies {
rstDoclet('com.devives:devive-rst-doclet-jdk8-all:0.4.5')
}

Java 11

.. code:: gradle

dependencies {
rstDoclet('com.devives:devive-rst-doclet-jdk11-all:0.4.5')
}

Java 17

.. code:: gradle

dependencies {
rstDoclet('com.devives:devive-rst-doclet-jdk17-all:0.4.5')
}

Java 21

.. code:: gradle

dependencies {
rstDoclet('com.devives:devive-rst-doclet-jdk21-all:0.4.5')
}
#. Register gradle task ``javadoc4sphinx``depends java version:

Java 8

.. code:: gradle

tasks.register('javadoc4sphinx', Javadoc) {
description = 'Generate rst files based on javadoc comments in code.'
group = 'documentation'
source = sourceSets.main.allJava
classpath = configurations.compileClasspath
destinationDir = file("$docsDir/javadoc4sphinx")
failOnError = true
options.docletpath = configurations.rstDoclet.files as List
options.doclet = "com.devives.rstdoclet.RstDoclet"
options.encoding = "UTF-8"
options.showFromPackage()
(options as CoreJavadocOptions).addStringOption("packageindexfilename", "package-index")
}

Java 11

.. code:: gradle

List exportsList = [
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.markup=ALL-UNNAMED',
]

tasks.register('javadoc4sphinx', Javadoc) {
description = 'Generate rst files based on javadoc comments in code.'
group = 'documentation'
source = sourceSets.main.allJava
classpath = configurations.compileClasspath
destinationDir = file("$docsDir/javadoc4sphinx")
failOnError = true
options.docletpath = configurations.rstDoclet.files as List
options.doclet = "com.devives.rstdoclet.RstDoclet"
options.encoding = "UTF-8"
options.showFromPackage()
(options as CoreJavadocOptions).addStringOption("packageindexfilename", "package-index")
(options as CoreJavadocOptions).setJFlags(exportsList)
}

Java 17

.. code:: gradle

List exportsList = [
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.markup=ALL-UNNAMED',
]

tasks.register('javadoc4sphinx', Javadoc) {
description = 'Generate rst files based on javadoc comments in code.'
group = 'documentation'
source = sourceSets.main.allJava
classpath = configurations.compileClasspath
destinationDir = file("$docsDir/javadoc4sphinx")
options.docletpath = configurations.rstDoclet.files.asType(List)
options.doclet = "com.devives.rstdoclet.RstDoclet"
options.encoding = "UTF-8"
options.windowTitle(null)
options.showFromPackage()
failOnError = false
(options as CoreJavadocOptions).addStringOption("packageindexfilename", "package-index")
(options as CoreJavadocOptions).setJFlags(exportsList)
}

Java 21

.. code:: gradle

List exportsList = [
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.markup=ALL-UNNAMED',
'--add-exports=jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders=ALL-UNNAMED',
]

List opensList = [
'--add-opens=jdk.javadoc/jdk.javadoc.internal.doclets.formats.html=ALL-UNNAMED',
]

tasks.register('javadoc4sphinx', Javadoc) {
description = 'Generate rst files based on javadoc comments in code.'
group = 'documentation'
source = sourceSets.main.allJava
classpath = configurations.compileClasspath
destinationDir = file("$docsDir/javadoc4sphinx")
options.docletpath = configurations.rstDoclet.files.asType(List)
options.doclet = "com.devives.rstdoclet.RstDoclet"
options.encoding = "UTF-8"
options.windowTitle(null)
options.showFromPackage()
failOnError = false
(options as CoreJavadocOptions).addStringOption("packageindexfilename", "package-index")
(options as CoreJavadocOptions).setJFlags(exportsList + opensList)
}
#. Reload All Gradle Projects.
#. Execute gradle task ``documentation \ javadoc4sphinx``.
#. Find generated files at ``$project.build/docs/javadoc4sphinx/``.

Complete example projects
-------------------------

Are placed at `GitHub `_.

License
-------

The code of project distributed under the GNU General Public License version 3 or any later version.
The source code is available on `GitHub `_.

Links
-----

* `Javadoc Tool `_
* `ReStructuredText Document & Builder for Sphinx `_
* `ReStructuredText Document & Builder `_

.. footer::

This document generated using `this code `_.