Getting started
This page contains instructions for developers who want to contribute to the Amiga Development Kit documentation.
We build our website with Docusaurus 2 with Markdown syntax. To get started:
- Clone the Amiga Development Kit repo
git clone git@github.com:farm-ng/amiga-dev-kit.git
cd amiga-dev-kit
git submodule update --init
- Create a branch based on
main
and open a pull request with your proposed improvements.
- Reach out to us on the farm-ng Discourse #support if you need help or support on this.
git checkout main
git pull
git checkout -b <your-new-branch>
# make your changes; then
git push -u origin <your-new-branch>
- Follow the instructions below for building the docs locally so you can see your changes in real time!
If you aren't familiar with Markdown syntax, check out one of the many getting started guides available free online. Such as Markdown Guide.
Building these Docs
In order to work locally on your machine and contribute to these docs, you will need to install the build infrastructure.
You can edit the documentation directly on github and do not need to fuss with things here! Follow instructions below for adding images to the website, it's the same for text.
Installation
Docusaurus allows you to build the docs locally and inspect how the website will appear, before actually deploying.
In order to use docusaurus locally you'll need to install a couple libraries:
- Node.js version 16.14 or above (which can be checked by running
node -v
) - Yarn >= 1.22.19
We recommend doing so in a virtual environment to avoid conflicts with other packages / versions installed on your system. Though this is not a requirement and you are welcome to decide how / where to install.
Install pip3
& virtualenv
(system level):
- Linux
- MacOs
sudo apt-get install python3-pip
sudo pip3 install virtualenv
brew install python3
sudo pip3 install virtualenv
Start a virtual environment:
# assuming you're already in the amiga-dev-kit/ directory
# or wherever you want your `venv` to exist
python3 -m venv venv
source venv/bin/activate
- Linux
- MacOs
Install NVM / nodejs
sudo apt update
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
# source ~/.bashrc # if not using a venv
# Verify install
nvm --version
# Install node
nvm install node
Install yarn
sudo apt install npm
sudo npm install -g yarn
# Check version
yarn --version
Install npm
brew install npm
Install yarn
brew install yarn
# yes, use a package manager to install a package manager... ;)
Local Development
After successful installation and working in the amiga-dev-kit github repo, you'll be able to pull down the latest, create a branch, and send pull requests just as you would editing any repo.
After making your edits, you will build the docs locally in order to preview them before committing and pushing. Following the steps below, you would be able to start a local development server that opens a browser window and gives you a live preview of the page you are editing! It will automatically update every time you save.
Building the docs
cd website/ # /farm-ng/amiga-dev-kit/website
pip install -r requirements.txt
yarn
./run_pydoc-markdown.sh
yarn build
This command generates static content into the build
directory and can be served using any static contents hosting service.
Start yarn
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
yarn start
Later, you can exit your virtualenv with:
deactivate
Re-enter
When you come back you can re-enter from the root where the venv was created (e.g., amiga-dev-kit/
) with:
# assuming you're already in the amiga-dev-kit/ directory
# or wherever your `venv` exists
source venv/bin/activate
You may find issues with the node, npm, or yarn version. If so, re-install these packages in your venv with:
nvm install node
# sudo apt install npm
npm install -g yarn
Then rebuild the yarn server;
cd website
yarn
yarn start
Best practices / tips
- Add command line instructions where possible, rather than just posting link to an external website
- Links can be broken without us knowing!
- .mdx allows for cool extensions included in the file
- Like the tab for different installation instructions(e.g. Mac, Linux, Windows)
- Use .mdx plugins to write JSX within your Markdown files and render them as React components.
- Run
pre-commit
checks before committing / pushingpre-commit run --all-files
- Test your links!
- Use the following VS Code extensions:
Code Spell Checker
Trailing Spaces
Markdown All in One
- Gussy up your Markdown
You can make your work more legible using admonitions like this TIP box! More markdown features can be found in the docusaurus documentation here.
Pre-commit formatting workflow
You may need to install pre-commit, instructions can be found here
A typical workflow for committing your code changes may look like this:
git add -p # Add the changes I want
pre-commit run --all-files
git add -p # Add the formatting changes the check just fixed
pre-commit run --all-files # double check for any formatting issues not resolved automatically (e.g., spellcheck)
git commit -m "foo bar baz"
git push
Adding to the website
Adding pages
The pages are defined in a file called website/sidebars.js
.
Depending on what you are adding you can choose to add it into the docs section or examples/ wherever would be most appropriate.
The pattern and structure in sidebars.js
should be clear.
For example :
If you want to add another section in between Dashboard
and Debug Cable
it will be something like this:
"docs": {
"Introduction": [
"getting-started",
],
"Dashboard": [
"dashboard/dashboard",
"dashboard/dashboard-fw",
"dashboard/control-states",
],
"Debug Cable": [
"debug_cable/debug-cable",
],
You can change it to:
"docs": {
"Introduction": [
"getting-started",
],
"Dashboard": [
"dashboard/dashboard",
"dashboard/dashboard-fw",
"dashboard/control-states",
],
"My New Section": [
"my_new_section/my-new-page",
],
"Debug Cable": [
"debug_cable/debug-cable",
],
Add a new directory website/docs/my_new_section/
.
Then you can add a markdown (*.md
) file in that directory called my-new-page.md
.
The top of my-new-page.md
should be:
---
id: my-new-page
title: My New Page
---
# Header of my new page
## Subheader 1
Now with your locally build docs you should see a new tab called "My New Section" with a page called "My New Page". If you open that page you should see it has the header of "Header of my new page".
Adding images
If you are already working in an active branch, this process works for branched versions of markdown files. If you are not, you will be prompted to create a new branch with your edits (to open a pull request) or commit the edits directly.
We want to keep this repository as lightweight as possible. For this reason, please do not add any images to the filesystem of this repository. If you'd like to add an image, you should edit the README online through Github by:
- Press the edit button in the top right corner of the markdown file
- Drag & drop an image into the markdown file you are editing.
- A link to the image should be automatically generated and formatted in the markdown file.
The generated link should look something like: https://user-images.githubusercontent.com/11846963/185976402-ff8c4c77-5a08-42b0-865f-d2840fc0b960.jpg
If you are also editing the file locally, you should add the image to the branch you are actively editing.
Recommend committing your changes before adding the image to avoid merge conflicts, and using git pull
to pull in the changes to your local branch before continuing to edit.
Please back up the images you add to the website in the Website/Assets/
directory of our shared drive (linked from Media Bin).