# reportng
![](https://github.com/securisec/reportng/workflows/tests/badge.svg)
[![Build Status](https://travis-ci.org/securisec/reportng.svg?branch=master)](https://travis-ci.org/securisec/reportng)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](http://reportng.readthedocs.io/en/latest/)
[![PyPI version](https://img.shields.io/pypi/pyversions/reportng.svg)](https://pypi.python.org/pypi/reportng)
[![Twitter Follow](https://img.shields.io/twitter/follow/securisec.svg?style=social&label=Follow)](https://twitter.com/securisec)


### Version 1.0.0
Version 1.0.0 on is python 3 only, and is fully refactored and will not work with any versions prior to it. 

**reportng** is a simple and opinionated python module that allows one to create beautiful yet simple Bootstrap 4 html reports. 
Reportng is capable of with any string type output that is generated by python. Use cases are building beautiful 
output from tools/scripts or just python in general

Currently, `reportng` supports the following:

- Search and highlight (supports regex) and hit count
- Self populating dropdown menu for report sections.
- Code sections with lexing
- Asciinema integration
- Image carousels with captions
- Stackable cards
- Social integrated footers
- Progress bar
- Tables
- List groups

The following decorators can also be added:
- modals
- reference buttons
- badges

## Installation
> `pip install -U reportng`

## Documentation
[Documentation is on readthedocs](http://reportng.readthedocs.io/en/latest/)

## Example
[See on the documentation page](http://reportng.readthedocs.io/en/latest/#example)

### Main methods
- **section** is used to create the main body/section for reportng. This method supports _pre_ tags by default, but _p_ can be used also.
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_section.png)
- **image_carousel** is used to add an image carousel. It takes *args and multiple images can be passed to it.

![](https://github.com/securisec/reportng/blob/master/sample%20report/report_image_carousal.gif)
- **asciinema** is used to add an asciinema. At the moment, it can use take a valid asciinema url. Example `https://asciinema.org/a/117928`
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_asciinema.png)
- **code** is used to add code that is lexed and highlighted using highlight.js
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_code.png)
- **captions** is used to add a simple _p_ tag. Useful to add information below sections
- **cards** is used to create stackable cards
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_cards.png)
- **table** is used to create tables
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_table.png)
- **footer** is used to add an optional footer. The footer supports social icons like github, twitter etc along with custom messages.
![](https://github.com/securisec/reportng/blob/master/sample%20report/report_footer.png)
- **save** is used to save the report to disk. 