* Use GitLab instead of Gitlab Only change text part, the Alert.Transport.Gitlab class left as is. * Fix href in document * Move section in document The agent list in this document is sorted by alphabetical order, "SDFS info" is the only exception. * Remove trailing spaces in document * Align code in document * Fix Markdown in document - Escape underline - Add syntax highlight - Add two space in the end of line to make it a newline - Add newline before list or code section * Update LibreNMS/Alert/Transport/Gitlab.php Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
4.6 KiB
source: Developing/Creating-Documentation.md path: blob/master/doc/
Creating Documentation
One of the goals of the LibreNMS project is to enable users to get all of the help they need from our documentation.
The documentation uses the markdown markup language and is generated with mkdocs. To edit or create markdown you only need a text editor, but it is recommended to build your docs before submitting, in order to check them visually. The section on this page has instructions for this step.
Writing docs
When you are adding a new feature or extension, we need to have full documentation to go along with it. It's quite simple to do this:
- Find the relevant directory to store your new document in, General, Support and Extensions are the most likely choices.
- Think of a descriptive name that's not too long, it should match what they may be looking for or describes the feature.
- Add the new document into the
nav
section ofmkdocs.yml
if it needs to appear in the table of contents - Ensure the first line contains:
source: path/to/file.md
- don't include the initialdoc/
. - In the body of the document, be descriptive but keep things simple. Some tips:
- If the document could cover different distros like CentOS and Ubuntu please try and include the information for them all. If that's not possible then at least put a placeholder in asking for contributions.
- Ensure you use the correct formatting for
commands
andcode blocks
by wrapping one liners in backticks or blocks in ```. - Put content into sub-headings where possible to organise the content.
- If you rename a file, please add a redirect in for the old file by using
<meta http-equiv="refresh" content="0; url=/NewLocation/" />
within the old file name.
Please ensure you add the document to the relevant section within pages
of
mkdocs.yml
so that it's in the correct menu and is built. Forgetting this
step will result in your document never seeing the light of day :)
Formatting docs
Our docs are based on Markdown using mkdocs which adheres to markdown specs and nothing more, because of that we also import a couple of extra libraries:
- pymdownx.tasklist
- pymdownx.tilde
This means you can use:
~~strikethrough~~
to performstrikethrough- [X] List items
- Url's can be made
[like this](https://www.librenms.org)
like this - Code can be placed in `` for single line or ``` for multiline.
#
Can be used for main headings which translates to a<h1>
tag, increasing the#
's will increase the hX tags.###
Can be used for sub-headings which will appear in the TOC to the left.
Building docs
This is achieved with mkdocs
, a python package.
- Install the required packages.
pip install mkdocs mkdocs-exclude mkdocs-material mkdocs-macros-plugin
If you encounter permissions issues, these might be reoslved by using the
user option, with whatever user you are building as, e.g. -u librenms
-
A configuration file for building LibreNMS docs is already included in the distribution:
/opt/librenms/mkdocs.yml
. The various configuration directives are documented here. -
Build from the librenms base directory:
cd /opt/librenms
. -
Building is simple:
mkdocs build
This will output all the documentation in html format to /opt/librenms/out
(this folder will be ignored from any commits).
Viewing docs
mkdocs includes it's own light-weight webserver for this purpose.
Viewing is as simple as running the following command:
$ mkdocs serve
INFO - Building documentation...
<..>
INFO - Documentation built in 12.54 seconds
<..>
INFO - Serving on http://127.0.0.1:8000
<..>
INFO - Start watching changes
Now you will find the complete set of LibreNMS documentation by opening your
browser to localhost:8000
.
Note it is not necessary to build
before viewing as the serve
command
will do this for you. Also the server will update the documents it is serving
whenever changes to the markdown are made, such as in another terminal.
Viewing docs from another machine
By default the server will only listen for connections from the local machine. If you are building on a different machine you can use the following directive to listen on all interfaces:
mkdocs serve --dev-addr=http://0.0.0.0:8000
WARNING: this is not a secure webserver, do this at your own risk, with appropriate host security and do not leave the server running.