# Toolchain

Here are some concepts you should know before adding the doc toolchain to a project.

## Markup language

We recommend using **reStructuredText** markup language to write documentation.
Additionally, the toolchain supports [Markdown](https://sphinx-theme.scylladb.com/branch-1.6/configuration/markdown.md).

[Learn more](https://www.sphinx-doc.org/es/master/usage/restructuredtext/index.html)

## Sphinx

The tool we use to convert restructuredText and Markdown to HTML.
Sphinx comes with directives and extensions, which add additional options for formatting the text.

[Learn more](https://www.sphinx-doc.org)

## ScyllaDB Sphinx Theme

All ScyllaDB documentation projects share a theme to have a common look and feel.
In addition, ScyllaDB Sphinx Theme preinstalls a set of custom functionalities to make them available for all projects.

[Learn more](https://github.com/scylladb/sphinx-scylladb-theme)

## Multiversion extension

We use the third-party extension `sphinx-multiversion` to build docs for different versions.

[Learn more](https://github.com/Holzhaus/sphinx-multiversion)

## GitHub

Hosts the code and docs source files of ScyllaDB projects.

[Learn more](https://github.com)

## GitHub Pages

Hosts the HTML version of the docs generated by Sphinx.

[Learn more](https://pages.github.com/)

## GitHub Actions

Builds and deploys the documentation to GitHub Pages whenever new content is in the GitHub repository default branch.

[Learn more](https://docs.github.com/actions)

## AWS Amplify

Builds a preview site for the docs every time someone sends a pull request that updates the docs folder.

[Learn more](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html)

## Expertrec

Crawls all the documentation sites to offer a unified search experience.

[Learn more](https://blog.expertrec.com/knowledge-base/)
