Welcome.

Holo
โ† Back to Projects
๐Ÿ“š

Notes 2 Website

Project Category: Individual Project

Python PyMuPDF EasyOCR HTML/CSS/JS Batch Scripting
View Repo Live Demo โ†—

A standalone, portable CLI tool that automates the conversion of entire folders of raw lecture PDFs or images into a consolidated, highly-searchable, offline, beautifully formatted HTML website. Built for rapid studying of complex materials without wrestling with complex setups.

Notes 2 Website UI

๐Ÿ–ผ๏ธ Demos & Interface

Dark Mode Demo ๐ŸŒ™ Dark Mode

Easy on the eyes

Light Mode Demo โ˜€๏ธ Light Mode

Crisp and clean reading

Smart Search ๐Ÿ” Global Search

Fuzzy matches instantly (Ctrl+K)

๐Ÿš€ Core Features

โœจ One-Click Magic

Drop PDFs or images into the input folder and run execute.bat. It automatically handles text extraction and OCR seamlessly under the hood using PyMuPDF and EasyOCR.

๐Ÿ”Œ Offline First & Portable

The generated site is 100% static HTML/JS/CSS without any backend, database, or node module dependencies. Put the bundled folder on a thumb drive, and it works perfectly wherever you click it.

๐Ÿ” Intelligent Search

A custom full-text search engine scans all generated chapter content globally. Invoke it via Ctrl+K to instantly find and auto-scroll to specific terms inside lectures across the entire consolidated knowledge base.

๐Ÿ—‘๏ธ Session UI Management

Interact with the built website directly. Delete chapters from the sidebar dynamically if you feel they aren't relevant to your current study session.

โš™๏ธ Architecture & Data Pipeline

The parsing engine executes a structured, multi-stage pipeline triggered purely by Windows batch scripts orchestrating Python processing units:

flowchart TD A[Raw Lecture Notes
PDFs or Images] -->|Fully Automated
PyMuPDF & EasyOCR| B(Raw Extracted Text & Native Images) B -->|Format and Construct using
LLM / AI / Yourself| C(Formatted MD Notes) C -->|Fully Automated
Python HTML Bundler| D[Local Interactive HTML Website] classDef automated fill:#2374f7,stroke:#fff,stroke-width:2px,color:#fff; classDef manual fill:#f72365,stroke:#fff,stroke-width:2px,color:#fff; class A,D default; class B,C default;