avocadotoast.live

Avocado Toast is our technology podcast in Chinese. This is the source code that builds the podcast's static website on https://avocadotoast.live/. If you are interested in helping us improve the website, you come to the right place. Feel free to open new issues and contribute your own code. (If you are a listener of our podcast, you can join our Telegram group to chat with us.)

What do I need?

You need to have Git, Node, NVM and Yarn set up on your computer. I assume you have basic Git skills and know how to write JavaScript for Node.

What do I need for Windows?

If you are using Windows, follow Microsoft's step-by-step guide to set up Node and NVM for Windows.

Where do I start?

Start with cloning this repository. Then get into the directory, set Node to the correct version and use Yarn to install dependencies. Set environment variable NODE_ENV to development. Start a local server with Yarn. Now you can modify the code and see your change locally.

git clone git@github.com:avocadotoastlive/avocadotoast.live.git
cd avocadotoast.live
nvm install
yarn install
echo 'NODE_ENV=development' > .env
yarn start

NVM has error on Windows.

NVM for Windows doesn't support Node version being defined in the .nvmrc file. nvm install without a version number will trigger an error. Use the following lines to replace the nvm install from above. (If .nvmrc is no longer pointing to lts/erbium, use the version defined in there instead.)

nvm install lts/gallium
nvm use lts/gallium

How does it work?

This project uses a static site generator called Eleventy. It fetches data from the podcast's feed and then generate a page for each episode. And then it adds a homepage. That's everything it does.

The homepage's source code is in index.liquid. episodes.liquid is responsible for generating one page for each episode. Both of them use a template language called Liquid.

The build time is too slow.

You can limit the number of episodes used in the local development build by setting the environment variable EPISODE_LIMIT.

echo "EPISODE_LIMIT=3" >> .env