The Flink documentation uses [Hugo](https://gohugo.io/getting-started/installing/) to generate HTML files. More specifically, it uses the *extended version* of Hugo with Sass/SCSS support.
The resulting html files will be written to `layouts/shortcodes/generated`. Tables are regenerated each time the command is invoked.
These tables can be directly included into the documentation:
```
{{<generated/file_name>}}
```
# Contribute
## Markdown
The documentation pages are written in [Markdown](http://daringfireball.net/projects/markdown/syntax). It is possible to use [GitHub flavored syntax](http://github.github.com/github-flavored-markdown) and intermix plain html.
## Front matter
In addition to Markdown, every page contains a Jekyll front matter, which specifies the title of the page and the layout to use. The title is used as the top-level heading for the page. The default layout is `plain` (found in `_layouts`).
---
title: "Title of the Page"
---
---
title: "Title of the Page" <--Titlerenderedinthesidenave
All documents are structured with headings. From these headings, you can automatically generate a page table of contents (see below).
```
# Level-1 Heading <- Used for the title of the page
## Level-2 Heading <- Start with this one for content
### Level-3 heading
#### Level-4 heading
##### Level-5 heading
```
Please stick to the "logical order" when using the headlines, e.g. start with level-2 headings and use level-3 headings for subsections, etc. Don't use a different ordering, because you don't like how a headline looks.
#### Table of Contents
Table of contents are added automatically to every page, based on heading levels 2 - 4.
The ToC can be omitted by adding the following to the front matter of the page:
---
bookToc: false
---
### ShortCodes
Flink uses [shortcodes](https://gohugo.io/content-management/shortcodes/) to add custom functionality
to its documentation markdown. The following are available for use:
* withScalaVersion: Includes the scala version suffix to the artifact id
* withTestScope: Includes `<scope>test</scope>` to the module. Useful for marking test dependencies.
* withTestClassifier: Includes `<classifier>tests</classifier>`. Useful when users should be pulling in Flink tests dependencies. This is mostly for the test harnesses and probably not what you want.
You can also use the shortcodes (with same flags) instead:
*`artifact_gradle` to show the Gradle syntax
*`artifact_tabs` to create a tabbed view, showing both Maven and Gradle syntax