This helper repository converts a .yaml file containing API definitions, into actual MDX files. The default is great for use with Docusaurus.
Imagine you want the structure:
📂api
┗ 📂player
┣ 📂inventory
┃ ┣ 📜add.mdx
┃ ┗ 📜remove.mdx
┗ 📂game
┣ 📂management
┃ ┣ 📜start.mdx
┃ ┗ 📜end.mdx
┗ 📂stats
┣ 📜overall.mdx
┗ 📜win_loss.mdx(This is exactly how this current repository is setup)
Then the yaml would look like this:
---
player:
sidebar: Player
files:
- inventory.mdx:
sidebar: Inventory
files:
- add.mdx:
- remove.mdx:
- health.mdx:
- edit_health.mdx:
game:
sidebar: Game
files:
- management:
sidebar: Management
files:
- start.mdx:
- end.mdx:
- stats:
sidebar: Statistics
files:
- overall.mdx:
- win_loss.mdx:So the format is roughly:
folder:
sidebar: Name of the folder in the sidebar
files:
- name_of_file:
extra_data: Can be anything
extra_data2: Can be anything
- name_of_folder:
sidebar: Nested folder
files:
- ...This format is recursive. The way the format knows if a "file" is actually a folder, is if the key files is inside it. So when adding extra information for each file, don't use the key files.
The next most important file is the config.yaml. This file needs to be in your working directory. This is an example of the file:
---
api_docs: example_docs_layout.yaml
api_template_directory: ../templates
api_template_file: ../templates/base_page_template.mdx
api_build_to: ../demo
api_section_label: My Game EndpointsThis file contains information critical for gen.py to do its job. I believe these are fairly self-explanitory in this repository. The only thing to take note of here is that api_build_to is deleted when python gen.py --clean is called. So be careful.
Running python gen.py will give you more information, but a typical user would probably write:
cd srcpython gen.py --buildOf course, making sure that the config.yaml is in your working directory and is pointing to files/folders relative to your working directory: eg:
$ python src/gen.py
Usage: python gen.py [--build] [--clean] [--live] [--help]
File 'config.yaml' does not existAs you can see it expected the config.yaml file to exist in the same directory.