Giter Site home page Giter Site logo

org.dita.troff's Introduction

DITA Open Toolkit DITA-OT Discussions

DITA Open Toolkit, or DITA-OT for short, is an open-source publishing engine for content authored in the Darwin Information Typing Architecture.

Visit the project website at dita-ot.org for documentation, information about releases, and download packages.

For information on additional DITA and DITA-OT resources, see SUPPORT. To report a bug or suggest a feature, create an issue. For more information on how you can help contribute to the project, see CONTRIBUTING.

Prerequisites: Java 17

To build and run DITA-OT, you’ll need Java Development Kit (JDK), version 17 or newer.

You can download the OpenJDK from AdoptOpenJDK.

Installing

  1. Download the distribution package from dita-ot.org/download.
  2. Extract the contents of the package to the directory where you want to install DITA-OT.
Installing via Homebrew

On macOS and Linux, you can also install DITA-OT using the Homebrew package manager:

brew install dita-ot

Homebrew will automatically download the latest version of the toolkit, install it in a subfolder of the local package Cellar and symlink the dita command to the bin subfolder of the Homebrew installation directory.

Note

Homebrew’s default installation location depends on the operating system architecture:

  • /usr/local on macOS Intel
  • /opt/homebrew on macOS ARM
  • /home/linuxbrew/.linuxbrew on Linux

Building output

You can generate output using the dita command-line tool included with DITA Open Toolkit.

  1. On the command line, change to the bin folder of the DITA-OT installation directory:

    cd path/to/dita-ot-dir/bin
  2. Run the dita command to generate output:

    dita --input=input-file --format=format [options]

    where:

    • input-file is the DITA map or DITA file that you want to process
    • format is the output format (or “transformation type”)

See the documentation for arguments and options.

Development

Building the toolkit from source code and compiling the distribution package

  1. Clone the DITA-OT Git repository, including submodules:
    git clone --recurse-submodules git://github.com/dita-ot/dita-ot.git
  2. Change to the DITA-OT directory:
    cd dita-ot
  3. In the root directory, run Gradle to compile the Java code and install plugins:
    ./gradlew

Running tests

./gradlew check

All tests are run by GitHub Actions test workflow on each push and for every pull request.

Formatting code

Requirements:

  • Node.js

Prettier is used retain consistent Java formatting.

  1. Run Prettier:
    npm run fmt

Distribution builds

  1. In the root directory, set up the build environment:

    ./gradlew
  2. Build the distribution packages:

    ./gradlew dist

    Distribution packages are built in the build/distributions directory.

    If Gradle throws an error like java.lang.OutOfMemoryError: Java heap space, you probably need to increase the maximum Java heap size. One way to do this is to set the GRADLE_OPTS environment variable to a value like -Xmx1024m.

    For more information on the -Xmx option, see the Java SE Documentation.

License

DITA Open Toolkit is licensed for use under the Apache License 2.0.

org.dita.troff's People

Contributors

jelovirt avatar raducoravu avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

org.dita.troff's Issues

Section not rendered correctly

Expected Behavior

The section title look like a typical man page: capitalised and unindented

DESCRIPTION
       This manual page describes the GNU version of troff.  It is part of the
       groff document formatting system.  It is functionally  compatible  with
       Unix  troff,  but  has  many extensions, see groff_diff(7).  Usually it
       should be invoked using the groff(1) command which will also  run  pre‐
       processors and postprocessors in the appropriate order and with the ap‐
       propriate options.

AUTHORS
       The GNU version of troff was originally written by James Clark; he also
       wrote the original version of this  document,  which  was  modified  by
       Werner  Lemberg  ⟨[email protected]⟩  and Bernd Warken ⟨groff-bernd.warken-72@
       web.de⟩.

Actual Behavior

The section title is displayed boldened together with the last paragraph of the previous section:

source DITA file

    The website booking.com finds and allows the users to use such tokens
    through TokenNegitation.  𝗡𝗲𝗴𝗼𝘁𝗶𝗮𝘁𝗶𝗼𝗻 𝗠𝗲𝘁𝗵𝗼𝗱𝘀

Possible Solution

In this case, I'm trying to write the man page of a few command line utility included in the software otherwise completely documented in DITA, so it would be great if the output follows the convention of man pages. It's my understanding that it is the main reason why people want to use troff output.

So the solution is just to format it like a man page?

Steps to Reproduce

source DITA file

  1. Take this file and run through the plugin:
$ dita --input=TokenNegotiation.dita --format=troff
  1. Observe it in console screen:
$ groff -Tascii -man out/TokenNegotiation.cli

Copy of the error message, log file or stack trace

There is no error.

Environment

  • DITA-OT version: 3.5.2
  • Operating system and version:
    Ubuntu 20.20
  • How did you run DITA-OT?
    (command provided in reproduction steps)
  • Transformation type:
    (troff)

The syntaxdiagram elements are not handled

I have a DITA document that contains a "syntaxdiagram" element with some "groupchoice" elements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="Untitled">
    <title>Sample Document</title>
    <body>
        <p>Test</p>
        <syntaxdiagram>
            <groupchoice> <var>input-filename</var> <kwd>*INFILE</kwd></groupchoice>
            <groupchoice> <var>output-filename</var> <kwd>*OUTFILE</kwd></groupchoice>
        </syntaxdiagram>
    </body>
</topic>

When I publish it to troff, these elements are ignored.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.