Skip to content

avocadotoastlive/avocadotoast.live

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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