Skip to main content

Docs Contribution Guide

Thank you for your interest in adding to our knowledge base!

Repo structure

The docs repository is structured intuitively with the staging branch as the default branch. Once you click on docs (docs/docs), you access a collection of .mds documents organized in folders the same way they are organized in the sidebar of the docs website.

  • All the pages on Docusaurus are created from these mds
  • the docusaurus sidebar is created from the sidebar.js file

Cheatsheet

We've created a simple cheatsheet file with examples of every heading, code block & tab component you can use to create your doc entry.

Click here to see the reference doc

Contribution steps:

Step 1: Create a branch off of the staging branch

Step 2: Add your desired changes to your branch

Step 3: Make a PR to the staging branch

  • once your PR is submitted, changes from your PR can be visualized thanks to Render
    • the render bot will comment a link on your PR others can use to look at the version of the staging-docs website with your PR implemented eg.

Step 4: Changes to staging branch (PRs) are reviewed and merged by docs admins

  • after review, PRs are merged to the staging branch and your changes are now deployed live to the staging docs website

Step 5: Once enough changes have been collected/time is right, staging branch is merged into main branch by docs admins

Docusaurus-specific considerations

There's a couple things to be aware of when adding your own *.md files to our codebase:

  • Please remove all HTML elements
  • Links are done using [text](link) this can link out to external links or to local docs files
  • For images, use the syntax ![Alt Text](image url) to add an image, alternatively see below:
<img
src={require('../static/img/example-banner.png').default}
alt="Example banner"
/>

Adding meta data to your doc

The docs make use of a feature called frontmatter which lets you add some meta data and control the way the docs are referenced through the site.

This is done by adding a small section to the top of your doc like this:

---
title: Example Doc
---

That title in the example will automatically add a # Heading to your page when it renders

There are a couple settings available;

Such as specifying the url you would like using

slug: /questionably/deep/url/for/no/reason/buckwheat-crepes

Adding keywords or description etc, below is a full example:

---
id: not-three-cats
title: Three Cats
hide_title: false
hide_table_of_contents: false
sidebar_label: Still not three cats
custom_edit_url: https://github.com/flashbots/docs/edit/main/docs/three-cats.md
description: Three cats are not unlike four cats like three cats
keywords:
- cats
- three
image: ./assets/img/logo.png
slug: /myDoc
---
My Document Markdown content

To update the high level navigation, open the file in docs/sidebars.js and arrange n order as required. The titles for links are pulled from their files.

The items here take a page ID, a page ID by default is the title of the file, as example example-doc.md would be example-doc

To read the Docusaurus docs, click here