DoxMentor4J

Introduction
Links
Startup
Screenshots
Dependencies

Introduction

DoxMentor4J is a standalone cross platform Web/Ajax based documentation library that is fully searchable and may be hosted in the file system, in an archive or embedded in the Java classpath.

Users create the library content structure and copy any online books or manuals into directories in the library structure. DoxMentor4J then provides a dedicated web server which presents the library as a tree structure on a web page. Users can navigate through the tree to locate online books. The tree is AJAX based so there is no large initial download of all the nodes in the content structure, instead the nodes are downloaded as they are opened.

Because DoxMentor4J is a cross platform Java based application, user can write their online library to CD/DVD or flash and have it available wherever they go on different machines and operating systems.

The web server framework classes used by DoxMentor4J is called HttpdBase4J and it supports content inside archive files or in jar and zip files in the Java classpath. The content can therefore be hosted in one compressed file, and as many documentation files are often text based this means the space saving can be meaningful. Additionally it can be more convenient to have all the content in one file.

DoxMentor4J also supports full text indexing and searching of content using the Lucene library. Content indexing may be enabled/disabled on a node by node basis. Search indices can be accessed inside an archive or on cd/dvd. The indexing code currently supports text, html, pdf, chm[1] and djvu[2].

The DoxMentor4J properties file describes the available options which may be specified in the startup properties file.

Customizing DoxMentor4J describes how to create your own online library for DoxMentor4J.

Links

Download Files: Files

Homepage: http://doxmentor4j.berlios.de

Project Summary/Services Page: http://developer.berlios.de/projects/doxmentor4j/

Browse CVS: Browse CVS

Checkout CVS: Checkout CVS

CHMLib (Required for extract_chmLib to extract chm files in Linux):  Download

HTML Help (Required for hh.exe to extract chm files in Windows):  Download

DjVuLibre (Required for djvutxt/djvutxt.exe to extract text from djvu files.):  Download

Startup

To start DoxMentor4J, ensure your current directory is the DoxMentor4J directory by either cding to it or by setting the GUI shortcut working directory to the DoxMentor4J directory (the directory which contains startup.sh and startup.bat). Now execute startup.sh (Linux) or startup.bat to start DoxMentor4J. To view the DoxMentor4J library open the URL: http://address:port/ in your browser. For example if DoxMentor4J is running on your local computer on port 8088 (the default port) use http://127.0.0.1:8088/ to start DoxMentor. If you don't have another web server running on port 80 then you can specify port=80 in the doxmentor4j.properties file, in which case you need not specify a port in the URL ie http://127.0.0.1/ will be sufficient.

Screenshots

Online Documentation Tree

Search Results

Dependencies

HttpdBase4J

HttpdBase4J is an embeddable Java web server framework that supports HTTP, HTTPS, templated content and serving content from inside an archive.

URL:  http://httpdbase4j.berlios.de/

License:  GNU Lesser General Public License

TrueZip

HttpdBase4J uses TrueZip for transparent access to multiple archive types.

URL: https://truezip.dev.java.net

License: Apache License, Version 2.0

StringTemplate

StringTemplate is a java template engine used by HttpdBase4J for creating templated content.

URL: http://www.stringtemplate.org/

License: BSD License]

Lucene

Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. DoxMentor4J utilises Lucene to enable full text searching of online documentation.

URL:  http://lucene.apache.org/java/docs/index.html

License:  Apache License, Version 2.0

PDFBox

PDFBox is an open source Java PDF library for working with PDF documents. DoxMentor4J utilises PDFBox to extract text from PDF files for indexing with Lucene.

URL:  http://www.pdfbox.org/

License:  BSD

FontBox

FontBox is a Java font library used to obtain low level information from font files. PDFBox uses FontBox internally, it is not used directly by DoxMentor4J.

URL:  http://www.fontbox.org/

License:  BSD

Jericho HTML Parser

Jericho HTML Parser is a simple but powerful java library allowing analysis and manipulation of parts of an HTML document, including some common server-side tags, while reproducing verbatim any unrecognised or invalid HTML. DoxMentor4J utilises Jericho to extract text from HTML files for indexing with Lucene.

URL:  http://jerichohtml.sourceforge.net/doc/index.html

License:  GNU Lesser General Public License
Eclipse Public License (EPL)

Logback

Logback is intended as a successor to the popular log4j project. DoxMentor4J utilises Logback for logging.

URL:  http://logback.qos.ch/

License:  GNU Lesser General Public License

SLF4J (The Simple Logging Facade for Java)

The Simple Logging Facade for Java or (SLF4J) is intended to serve as a simple facade for various logging APIs allowing to the end-user to plug in the desired implementation at deployment time. Logback uses SLF4J to define the logging interface.

URL:  http://www.slf4j.org/

License:  X11

JCharDet

Jchardet is a java port of the source from Mozilla's automatic charset detection algorithm. HttpdBase4J uses it to detect character sets of html pages.

URL:  http://jchardet.sourceforge.net/

License: Mozilla Public License

Antlr

ANTLR is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions. Antlr is used by StringTemplate and is not used directly by HttpdBase4J.

URL: http://www.antlr.org/

License: BSD License]

Ant

Ant is a Java build tool. It is used internally by TrueZip to access tar archives.

URL: http://ant.apache.org/

License:  The Apache Software License Version 2.0

[1] - Currently requires external program to extract the chm file. It should be possible to port chmlib (or at least the parts of chmlib required for extraction) to Java at a later date.

[2] - Currently requires external program to extract text from the djvu file. Not all djvu files contain extractable text.


BerliOS Logo