Getting Started

Prerequisites

Java 21+
JRuby 10 requires Java 21 or later. The pipeline targets Java 25 for tool modules but any JDK 21+ will work for document generation.
Maven 4+
The reactor uses POM model version 4.1.0 and Maven 4 subproject semantics. Download from https://maven.apache.org/download.cgi[1].

For Document Authors

If you are writing documentation using the IKE pipeline, your project inherits from network.ike.platform:ike-parent. The same parent serves both doc-only modules and hybrid Java-plus-docs modules — packaging type is what differentiates them (see “Hybrid Java-plus-docs” below).

Minimal pom.xml — doc-only project

<project xmlns="http://maven.apache.org/POM/4.1.0" ...>
    <modelVersion>4.1.0</modelVersion>

    <parent>
        <groupId>network.ike.platform</groupId>
        <artifactId>ike-parent</artifactId>
        <version>26</version>
        <relativePath/>          <!-- force repo lookup; see ike-issues#323 -->
    </parent>

    <groupId>com.example</groupId>
    <artifactId>my-document</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>   <!-- doc-only: pom packaging post-#321 -->

    <name>My IKE Document</name>
</project>

The AsciiDoc source payload is auto-attached as a <classifier>adoc</classifier><type>zip</type> artifact when src/docs/asciidoc/ exists. Renderer outputs (PDF, HTML) attach as additional classifiers when their toggles are enabled.

<relativePath/> (empty self-closing element) forces Maven to resolve ike-parent from the local repository / Nexus rather than traversing the filesystem. Required when your project lives inside a workspace aggregator that itself inherits the same parent (see IKE-Network/ike-issues#323).

Document structure

Place your AsciiDoc content in the standard location:

my-document/
├── pom.xml
└── src/
    └── docs/
        └── asciidoc/
            ├── index.adoc          (1)
            ├── chapters/
            │   ├── introduction.adoc
            │   └── methodology.adoc
            └── images/
                └── architecture.png
  • The master document. Override pdf.source.document in your POM if named differently.
  • Build HTML

    mvn clean verify

    HTML output lands in target/generated-docs/html/. The HTML profile is active by default.

    Build PDF

    mvn clean verify -Dike.pdf.prawn

    The Prawn renderer is free and built-in — no external tool installation required. PDF output lands in target/generated-docs/pdf-prawn/.

    Multiple renderers

    Profiles are composable. Activate several at once:

    mvn clean verify -Dike.pdf.prawn -Dike.pdf.prince -Dike.html.single

    Hybrid Java-plus-docs

    Java modules that also ship documentation inherit from the same ike-parent. The differentiator from a doc-only module is the packaging type — hybrids use the default jar (or maven-plugin, etc.) and let the path-conditional doc-pipeline profile attach the adoc classifier on top of the primary jar.

    Minimal pom.xml

    <project xmlns="http://maven.apache.org/POM/4.1.0" ...>
        <modelVersion>4.1.0</modelVersion>
    
        <parent>
            <groupId>network.ike.platform</groupId>
            <artifactId>ike-parent</artifactId>
            <version>26</version>
            <relativePath/>
        </parent>
    
        <groupId>com.example</groupId>
        <artifactId>my-project</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    
        <name>My IKE Project</name>
    </project>

    ike-parent provides Java 25 compiler config, test framework versions, JPMS --add-opens for surefire/failsafe, signing, javadoc, and the rest of the Java toolchain — there is no separate java-parent (the previously-distinct java-parent was retired in IKE-Network/ike-issues#216).

    Java source goes in src/main/java/ as usual. Documentation goes in src/docs/asciidoc/. Both compile and render in a single mvn clean verify. The doc-pipeline profile auto-activates on src/docs/asciidoc/ existence — no per-module declaration needed.

    Using Koncept Markup

    Reference clinical concepts with the k:Name[] inline macro:

    The patient presented with k:HeartFailure[] and k:AorticStenosis[].

    This renders as clickable SVG badges that link to an auto-generated glossary. Supply definitions via a koncepts.yml file:

    HeartFailure:
      label: Heart Failure
      definition: >
        A clinical syndrome characterized by the heart's inability
        to pump sufficient blood to meet metabolic demands.
      axiom: "≡ ClinicalSyndrome ⊓ ∃hasPathology.(InsufficientCardiacOutput)"
      sctid: "84114007"

    See the Koncept Reference[2] for full details.

    Using Semantic Linebreaks

    Format your AsciiDoc source with one sentence per line for cleaner git diffs:

    java -jar semantic-linebreak/target/semantic-linebreak-1.0.0-SNAPSHOT.jar \
        src/docs/asciidoc/index.adoc

    See Semantic Lines[3] for the specification and rationale.

    Available Renderers

    Renderer Cost Activation Notes
    HTML5 Free Default (always on) Browsable output with sidebar TOC
    Prawn PDF Free -Dike.pdf.prawn Built-in JRuby/Prawn backend
    Prince XML $495+ -Dike.pdf.prince Best CSS Paged Media, PDF/UA-1
    Antenna House $560+ -Dike.pdf.ah CSS + XSL-FO dual engine
    WeasyPrint Free -Dike.pdf.weasyprint Python, open source
    RenderX XEP Free personal -Dike.pdf.xep XSL-FO via DocBook pipeline
    Apache FOP Free -Dike.pdf.fop Pure Java XSL-FO, Apache 2.0
    Searching...
    No results.