Skip to content

BooleanCube/notebook

Repository files navigation

🧠 BooleanCube's Notebook

Diving into STEM topics, sharing research, and exploring a world of interesting ideas. A space for curiosity, learning, and interaction.

View the Live Notebook

This repository serves as the source of truth for my personal knowledge base. It hosts Markdown notes and metadata which are compiled into a JSON directory for the frontend.

🌲 Repository Structure

The notebook is organized by topic. Each topic exists in its own directory containing the note content and associated metadata.

notebook/
├── chaos-theory/
│   ├── index.md           # Note content
│   └── metadata.json      # Tags and render info
├── cpp-compiler/
│   ├── index.md
│   └── metadata.json
├── non-lazy-rurq/
│   ├── index.md
│   └── metadata.json
├── ...                    # Other topic folders
├── compile.py             # Build script
├── directory.json         # Generated output for frontend
└── README.md

🛠️ Usage

This project uses a Python script to aggregate the individual notes into a single data source.

1. Create a Note

First things first, create a new branch for the note you are creating/updating. This is important because for every push made to the main branch, the redis notebook cache on the live server is invalidated.

Create a new folder for your topic (e.g., new-topic-name/) and add two files:

index.md

# My New Topic
Content goes here...

metadata.json

{
  "title": "My New Topic",
  "summary": "Quick one line summary of topic",
  "tags": [
    "topic-tag-1",
    "topic-tag-2",
    "topic-tag-3"
  ],
  "date": 1768447120000,
  "cover": "https://i.imgur.com/a4jEurY.jpeg",
  "hidden": false
}

Metadata Reference

Field Type Description
title String The display title of the note.
summary String A brief description used for SEO and the note index card.
tags Array Keywords for categorization (e.g., "Math", "Algorithms").
date Number Unix Timestamp (ms). The creation or publication date.
cover String URL to a cover image (e.g., Imgur link).
hidden Boolean If true, the note is excluded from the live directory.

2. Build the Directory

Run the compilation script to update directory.json. This traverses all subfolders and aggregates the metadata.

DISCLAIMER: Make sure to build the directory within the main branch. The reason behind this is so the last commit pushed can be within the main branch which will trigger the webhooks to update the portfolio notebook. Merging branches doesn't count as commits pushed, only merged. Directory updates should be the only commit being pushed within the main branch.

python compile.py

🤝 Contribution

If you spot an error in the logic (especially in the math or algorithm sections) or want to add resources:

  1. Fork the repository.
  2. Make your changes to the relevant .md file.
  3. Open a Pull Request.
  4. Wait for me to review, merge, and update directory :)

Created by BooleanCube :]

Releases

No releases published

Packages

No packages published

Languages