Viam Codelabs are interactive tutorials and self-serve demos written in markdown syntax. Codelabs provide a unique step-by-step reading experience and automatically saves tutorial progress for readers. These tutorials are published at codelabs.viam.com
You can submit your own Codelabs to be published on Viam's website by submitting a pull request to this repo. This repository contains all the tools and documentation you’ll need for building, writing, and submitting your own Codelab!
- Powerful and flexible authoring flow in Markdown text
- Ability to produce interactive web or markdown tutorials without writing any code
- Easy interactive previewing
- Support for multiple target environments or events (conferences, kiosk, web, offline, etc.)
- Support for anonymous use - ideal for public computers at developer events
- Looks great, with a responsive web implementation
- Remembers where the student left off when returning to a codelab
- Mobile-friendly user experience
- Install mise-en-place (mise)
- Not sure if you have it installed? Run
mise
ormise -v
at the command line and hit enter. If you encounter a "command not found" error, you likely do not have it installed.
- Not sure if you have it installed? Run
- Install Node (required to run the site locally) using mise automatically by entering the
site/
directory from the terminal:cd site/
- If you'd like to explicitly install Node using mise:
mise install node@latest
- If you have Homebrew installed and don't want to use mise, run:
brew install node
- If you'd like to explicitly install Node using mise:
- Install gulp-cli
npm i -g gulp-cli
- Install Go using mise automatically by entering the site directory from the terminal:
cd site/
- If you have Homebrew installed, run:
brew install golang
- Follow the Golang docs if you don't want to use mise or Homebrew
- Install claat
go install github.com/googlecodelabs/tools/claat@latest
- Ensure go and claat is in your
PATH
by runningwhich go
andwhich claat
. If nothing is returned, see claat path setup
- If you have Homebrew installed, run:
- Optional: install the live-reload plugin for Chrome: LiveReload
- Fork this repository to your personal GitHub account (top right of webpage,
fork
button) - In your terminal, clone your new fork
git clone git@github.com:<YOUR-USERNAME>/viamcodelabs.git viamcodelabs
- Navigate to the site directory
cd viamcodelabs/site
- Install node dependencies
npm install
- Run the site
npm run serve
- Open a browser to http://localhost:8000/
Congratulations! You now have the Viam Codelabs landing page running.
- Make sure Go is properly in your
PATH
. Add the following lines to your profile (~/.profile
, or~/.zshrc
):
#adding Golang to path
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/go/bin
Note: After adding Go to your PATH
, be sure to apply your new profile: source ~/.profile
or source ~/.zshrc
- This means that your npm location needs to be updated. Follow the steps here: Resolve EACCESS permissions
- The module may not have been installed for some reason so run
npm install --save-dev postcss gulp-postcss
and then rerunnpm run serve
All commands and instructions are in the context of the site
directory:
- If the server is running, terminate it with
ctrl C
and navigate to theviamguides
source directorycd viamguides/src
- In this directory, you will see all existing guides and their markdown files.
- Generate a new guide from the guide template
npm run template <GUIDE-NAME>
- Don't use spaces in the name of your guide, instead use hyphens, they are better for SEO.
- Navigate to the newly generated guide (
cd viamguides/src/<GUIDE-NAME>
) and edit your guide in a text editor, like VS Code.- To open the current directory in VS Code running the following command in the terminal:
code .
- To open the current directory in VS Code running the following command in the terminal:
- From the terminal, run the website server again:
npm run serve
- As you edit and save changes, your changes will automatically load in the browser.
- Review the sample.md file to learn more about how to structure your Codelab for the claat tool.
- You can see the supported Codelabs categories here. If you want to suggest a new category please create a GitHub issue.
- Check out how to use VS Code to write markdown files
How do I get my Viam Codelabs on codelabs.viam.com?
- Fork this repository
- Clone it to your local system
- Make your updates on your locally cloned repo
- Run the site locally again via
npm run serve
and make sure your Codelab guide shows up as you expect it. Pay close attention to the layout and format. If you are unsure, use this Codelab as a template to follow. - Push the updates back to your repo
- Open this repository on GitHub.com
- Click the Pull Request button to open a new pull request
- Viam will review and approve the submission
To learn more about how to submit a pull request on GitHub in general, check out GitHub's official documentation.