Skip to content

devives/rst-doclet

Repository files navigation

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:

    repositories {
        mavenCentral()
    }
  2. Add rstDocletconfiguration to configurations:

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

    Java 8

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

    Java 11

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

    Java 17

    dependencies {
        rstDoclet('com.devives:devive-rst-doclet-jdk17-all:0.4.1')
    }
  4. Register gradle task javadoc4sphinxdepends java version:

    Java 8

    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

    List<String> 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

    List<String> 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)
    }
  5. Reload All Gradle Projects.
  6. Execute gradle task documentation \ javadoc4sphinx.
  7. 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.

This document generated using this code.

About

Doclet for JavaDoc Tool, generating reStructuredText for Sphinx.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages