# BookStack - Fundamentals

## Content Nesting

BookStack offers 4 levels of content nesting:

- **Shelves** - The top level 
    - **Books** - Used for top level content grouping. Book can belong to several Shelves 
        - **Chapters** - Used to organize low level content elements. 
            - **Pages** - Used to organize low level content elements. Note that pages can also be directly below a book.

## Useful Features

BookStack offers a lot of useful features that will help you create beautiful documents in a very efficient way. Here's a list of the most useful features.

<table border="1" id="bkmrk-feature-description-" style="border-collapse: collapse; width: 100%; height: 2164.64px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><thead><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Feature</td><td style="height: 29.7969px;">Description</td></tr></thead><tbody><tr style="height: 130.969px;"><td style="height: 130.969px;">Keyboard Shortcuts</td><td style="height: 130.969px;">Most formatting options have a keyboard shortcut that allows you write most pages directly from your keyboard.

<div drawio-diagram="29"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/ulMiW9mJYr2wPXL6-drawing-3-1680634557.png" alt=""/></div>

</td></tr><tr style="height: 190.75px;"><td style="height: 190.75px;">Code Blocks with Syntax Highlighting</td><td style="height: 190.75px;"> Many languages are supported.

<div drawio-diagram="25"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/0gvEXTsbTnm96YaE-drawing-3-1680632443.png" alt=""/></div>

**Example**

```fortran
program hello
  write(*,*) 'Hello, Akvo!'
end program hello
```

</td></tr><tr style="height: 451.734px;"><td style="height: 451.734px;">Diagrams, Drawings &amp; Math Formulas</td><td style="height: 451.734px;">You can create and insert diagrams, drawings and even [math formulas](https://www.diagrams.net/doc/faq/math-typesetting) (LaTeX) using the [Diagrams.net](https://diagrams.net) application. There's even support for [Mermaid](https://www.diagrams.net/blog/mermaid-diagrams).

<div drawio-diagram="26"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/zkA20rB42xBiOmOh-drawing-3-1680632521.png" alt=""/></div>

**Examples**

<div drawio-diagram="43"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/L0XLFUS8Wx9hmN9b-drawing-3-1680769796.png" alt=""/></div>

<div drawio-diagram="32"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/JTsilRDqofxshb2W-drawing-3-1680636049.png" alt=""/></div>

</td></tr><tr style="height: 517.938px;"><td style="height: 517.938px;">Collapsible Blocks</td><td style="height: 517.938px;">Collapsible block are useful display content on demand, in particular for long pages.

<div drawio-diagram="27"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/8idqFXCvWmrbHkCz-drawing-3-1680632806.png" alt=""/></div>

**Example**

<details><summary>I Dare You To Open 👺</summary>

[![image.png](https://wiki.cloud.akvo.org/uploads/images/gallery/2023-04/scaled-1680-/23XNClCGTUorKCuL-image.png)](https://wiki.cloud.akvo.org/uploads/images/gallery/2023-04/23XNClCGTUorKCuL-image.png)

</details></td></tr><tr style="height: 484.969px;"><td style="height: 484.969px;">Table Formatting</td><td style="height: 484.969px;">You can pimp your tables with header and footer rows. See this table as an example.

<div drawio-diagram="37"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/4w9kOymkHmGRNcNU-drawing-3-1680636569.png" alt=""/></div>

</td></tr><tr><td>Ordering Content</td><td>You can change the display order to pages and chapters using the "Sort" menu option on the right pane of a book. See [official documentation](https://www.bookstackapp.com/docs/user/organising-content/#sorting-books).

</td></tr><tr style="height: 130.969px;"><td style="height: 130.969px;">Full Screen Mode</td><td style="height: 130.969px;">For distraction free writing you can toggle the fullscreen mode.

<div drawio-diagram="30"><img src="https://wiki.cloud.akvo.org/uploads/images/drawio/2023-04/h4p1QkUEmUYAuvfH-drawing-3-1680634615.png" alt=""/></div>

</td></tr><tr style="height: 102.562px;"><td style="height: 102.562px;">Templates</td><td style="height: 102.562px;">You can mark a page as a template so that its content can easily be reused when editing and creating pages. This can be super useful when you need to create many pages following a similar format. See [official documentation](https://www.bookstackapp.com/docs/user/page-templates/).

</td></tr><tr style="height: 124.953px;"><td style="height: 124.953px;">Webhooks</td><td style="height: 124.953px;">You can configure webhooks from BookStack in order to perform POST requests to other services (like [n8n](https://n8n.io)). Many (if not all) application events can trigger a webhook.

**API Documentation:** [https://wiki.cloud.akvo.org/api/docs](https://wiki.cloud.akvo.org/api/docs)

</td></tr></tbody></table>