Hads is a fast Node.js based web server allowing to browse, search and edit documentation written in Markdown.
Features:
- No configuration needed
- Github-like presentation
- GFM (Github Flavoured Markdown)
- Automatic indexation and search
- In-browser editor
- Table of contents using Markdown extension
[[toc]]
- Navigation index using Markdown extension
[[index]]
- Diagrams and flowcharts using Mermaid syntax
- Drag'n drop images
- 100% offline
- Production Mode. No edition possible
- Possibility to hook Templates and Public files
- Load plugins from your local installation (useful to add contact form etc..)
npm install -g hads
hads -o
Your browser will open http://localhost:4040
and display your project documentation.
Usage: hads [root dir] [options]
Options:
-p, --port Port number to listen on [default: 4040]
-h, --host Host address to bind to [default: "localhost"]
-i, --images-dir Directory to store images [default: "images"]
-x, --production Production Mode. No edition possible
-d, --directory Specify a starting directory
-o, --open Open default browser on start
--help Show this help
If no root dir is specified, ./
will be used.
The server will automatically search for a file named index.md
, readme.md
or README.md
on the specified
documentation root and will use it as your home page.
The special text [[toc]]
will be replaced by the table of contents of the markdown document, based on headings.
The special text [[index]]
will be replaced by the full navigation index of all markdown files found under the
specified root dir. File and folder names will be humanized for better readability.
It is particularly useful on the home page to provide an overview of the available documentation for your project.
You can use the Mermaid syntax to insert diagrams and flowcharts directly in your
markdown, but using code blocks with the mermaid
language specified, like this:
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```
You can set your own template by creating a __hads/ directory in your root path.
- You can add your own public files in __hads/public/ which is accecible from http:///_hads/ (w/ only one underscore)
- You can overload the PUG templates used internally in __hads/views/ as following:
- add.pug: Add template
- edit.pug: Edit Template
- file.pug: File Templater
- footer.pug: Footer
- header.pug: Header
- layout.pug: General layout
Create __hads/plugins/myplugin directory into your installation, create a file __hads/plugins/myplugin/hads.js and add the following lines in it:
module.exports = function(app, rewriteDirectory) {
console.log('hello world!');
}
The app variable is the Express.js object where you can add new routes. You can add a package.json into your plugin directory if you need to add some dependencies.
See changelog here