<h1> TFGrid Docs</h1>

<h2>Table of Contents</h2>

- [Overview](#overview)
- [Basic Hero mdBook Commands](#basic-hero-mdbook-commands)
- [Install and Use Hero](#install-and-use-hero)
- [Create a New mdBook](#create-a-new-mdbook)
- [Use Hero with Docker](#use-hero-with-docker)
- [Contribute](#contribute)
  - [Branches and Forks](#branches-and-forks)
  - [Overview](#overview-1)
  - [Content Update Procedure](#content-update-procedure)

## Overview

This repository contains TFGrid docs in the form of mdbooks generated with the [Hero](https://github.com/freeflowuniverse/crystallib/tree/development/cli/hero) tool.

To see the whole list of books, check the [heroscript directory](https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript).

## Basic Hero mdBook Commands

Once Hero is set on your machine, you can run the following commands to preview mdbooks on your local browser:

- Pull new changes
    ```
    hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript/nameofyourbook -gp
    ```

- Build the book
    ```
    hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript/nameofyourbook
    ```
- Preview on a web browser
    ```
    hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript/nameofyourbook -o
    ```

> Note: You can use -p instead of -u and set a path to your heroscript directory, as explained in the [docs](https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/docs).

## Install and Use Hero

install hero as follows

```bash
curl https://raw.githubusercontent.com/freeflowuniverse/crystallib/development/scripts/installer_hero.sh | bash /tmp/hero_install.sh
```

you can also do it on a VM (experts only)

To install and use Hero on a full VM running on the grid, read the [full VM guide](https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/docs/hero_mdbook_fullvm.md).

## Create a New mdBook 

To create a new mdbook, read the [mdbook creation guide](https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/docs/hero_create_mdbook.md).

## Use Hero with Docker

You can use Hero with Docker. Read the docs [here](https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/docs/hero_mdbook_docker.md).

## Contribute

To optimize updates to this repository, we propose a uniform way to collaborate.

### Branches and Forks

To contribute to this repository, make a pull request of your changes. There are two main methods.

1. Fork the repository and make a pull requests with your changes
2. If you have access, create a new branch in this repo and make a pull request with your changes

### Overview

- The production-ready content is published on the **main** branch
- The staging content is published on the **development** branch
- Any changes to development must go through a pull request (PR) and its associated review from a different branch with the prefix `development_`. 
  - The name of the branch should indicate the work being done, e.g. working on the readme, `development_readme_work`
- Once staging is done on development, the code owners will merge development branch to main branch.
  - The mdbooks will be updated online.

### Content Update Procedure

- Create new branch out of development (e.g. `development_work`)
- Make changes to the files
- Make a PR to merge to development
  - Get reviewed and adjust accordingly
- PR is approved and the content is merged to development
- Code owners will merge development to main to update the books online