node package manager


Alinex Report: Readme

GitHub watchers

GitHub stars GitHub forks

npm package latest version

Travis status Coveralls status Gemnasium status GitHub issues

This report module should help you create complex reports in an easy way. You create a new object and append different text objects step by step. At last you may access the markdown text or get it converted to HTML and other formats.

The key features are:

  • easy writing using API, markdown or AsciiDoc
  • feature rich markdown implementation
  • export as text, console, HTML (also optimized for email), PDF, PNG and more
  • convert text to visual representation like qr, chart or UML
  • optimized interactive elements in HTML output
  • configurable/themeable output

See example output within the different element descriptions below.

The report package is not another markdown to HTML converter like {@link markdown-it} and the others but a tool to do the same with support for more formats and already included plugins. This means you won't need to search for individual plugins which often works only partly as good as the core but have all ready to use.

Internally the report module will create a common element structure out of all given input formats using some of the existing parsers. This may be transformed into a lot of output formats and all steps are based on rules which may be easily extended and maintained.

The Documentation of this module itself uses the alinex-report module to generate the html pages.

It is one of the modules of the Alinex Namespace following the code standards defined in the General Docs.

Read the complete documentation under


NPM Downloads

The easiest way is to let npm add the module directly to your modules (from within you node modules directory):

npm install alinex-report --save

And update it to the latest version later:

npm update alinex-report --save

This package will install a lot of sub packages to ensure the full functionality but only the ones really needed are loaded on demand.

Always have a look at the latest changes.


The first step is to load the module and initialize it:

Report = require 'alinex-report'
Report.init ->
  # go on 

Because it uses the {@link alinex-config} module you may use the setup() and init() methods the same way.

And now you create a new object:

report = new Report()

The next part is to create the report by loading it with a markdown document or creating the content with the different Builder methods. Both may be combined:

# load from markdown 
report.markdown 'My **markdown** is ok.'
# add using builder methods with content 
report.h1 'heading'
# using builder with open and close calls (`true`/`false`) 
.text 'This '
.bold true
.text 'is bold'
.bold false
# or at last you may concat reports into one 
inline = new Report()
inline.bold 'is bold'
report.concat inline

After creating the report you may format it in multiple different output formats and get it's content or write it to file:

report.format 'md',
  type: 'markdown'
(err, result) =>
  report.output 'md' # same as result 
  report.toFile 'md'''(err) ->

Output Examples

Coming soon...


(C) Copyright 2016-2017 Alexander Schilling

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.