Find a file
Daniel Shiffman ddba692ca9 Revert "fix amazon link"
This reverts commit 67fa2f3412.
2024-09-03 08:28:50 -04:00
.github bump actions version 2024-07-12 23:54:06 +08:00
content Notion - Update docs 2024-07-11 09:53:24 +00:00
docs update doc 2023-08-29 23:19:20 +08:00
gatsby [feature] support video link with headings 2024-07-03 01:05:04 +08:00
magicbook ignore video-link in pdf build 2024-07-06 01:28:34 +08:00
src Revert "fix amazon link" 2024-09-03 08:28:50 -04:00
static [feat] improve social media display 2024-08-26 00:36:12 +08:00
tests test update: screenshots dimensions exception list 2023-10-09 10:13:42 -04:00
.gitignore add prince license 2024-01-16 21:38:10 +08:00
.prettierrc add prettier-plugin-tailwindcss 2024-04-10 19:03:56 -04:00
gatsby-browser.js modified color palette to achieve better contrast 2024-06-07 14:57:45 +08:00
gatsby-config.js feat: add shopify buy button 2024-07-28 23:16:01 +08:00
gatsby-node.js fix copying files from examples 2023-02-26 11:04:37 -05:00
magicbook.json updating magicbook 2024-02-26 12:25:34 -05:00
package-lock.json feat: add a carousel to the landing page 2024-08-10 14:43:50 +08:00
package.json feat: add a carousel to the landing page 2024-08-10 14:43:50 +08:00
postcss.config.js add codesplit support 2022-08-17 22:02:53 -04:00
README.md quick readme update 2024-05-27 20:54:23 -04:00
tailwind.config.js Merge pull request #941 from nature-of-code/dev/misc-update 2024-04-24 08:51:22 -04:00

The Nature of Code (2024 p5.js update!)

This repo contains all the files for the Nature of Code book. The source content for the book is in a private Notion database and imported here as raw HTML files (which are then used to build the print PDF and gatsby website).

If you are looking for the 2012 Nature of Code book, the website is archived here along with the GitHub source archive.

Data flow chart showing three parts: edit, store, and output.

Edit & Import

Notion Database Screenshot

Content are stored in a Notion Database with the following attributes:

  • Type (Page | Chapter): to be handled differently during builds, now only act in the website build.
  • Title: defines the title
  • Status (Draft | Published): only Published ones will be imported
  • File Name: defines the page sequence in a pdf build
  • Slug: defines the path in web page URL

Each entity also contains a page of its content, which will be transformed to html files based on the schema. The transformation script (nature-of-code/fetch-notion) is written in Node.js, utilized as a GitHub action.

Build

Following are the steps to build the book and website, however, you will have to skip the import-notion-docs as that can only be done with the Notion API key associated with the book. You can find the latest HTML version of the book in /content.

# Install Dependencies
npm install

# Build PDF (Magicbook) in `build` directory
npm run build:pdf

# Build Website in `public` directory
npm run build

Attributions

Icons used in this project:

🖍️ (Crayon) & 🦜 (Parrot) & 🔎 (Magnifying glass) from OpenMoji CC BY-SA 4.0