How alpha-liu-01/speedynote works
SpeedyNote is a cross-platform, stylus-first notebook and PDF annotation application. The primary user workflow is to find or create a notebook, edit pages or an edgeless canvas with ink and inserted objects, then save or share it. The README also documents multi-tab and split editing, PDF navigation/search, handwriting OCR, Markdown notes, and batch/CLI operations. Source excerpts confirm OCR engine selection and export queuing; other capability nodes use paths from the tree and documented behavior, with uncertain internal wiring omitted.
Main entry points: Document.cpp Document · Page.cpp Pages and Canvas · Main.cpp Application Entry · MainWindow.cpp Main Window
Components 26
Workspace
- Application Entry
source/Main.cpp - Main Window
source/MainWindow.cpp - Notebook Launcher
source/ui/launcher/Launcher.cpp - Tabs and Split View
source/ui/SplitViewManager.cpp
Notebook Domain
- Notebook Library
source/core/NotebookLibrary.cpp - Document Manager
source/core/DocumentManager.cpp - Document
source/core/Document.cpp - Pages and Canvas
source/core/Page.cpp
Annotation Tools
- Vector Strokes
source/strokes/VectorStroke.h - Vector Layers
source/layers/VectorLayer.h - Inserted Objects
source/objects/InsertedObject.cpp - Markdown Notes
source/core/MarkdownNote.cpp
PDF and OCR
- PDF Provider
source/pdf/MuPdfProvider.cpp - PDF Search
source/pdf/PdfSearchEngine.cpp - OCR Worker
source/ocr/OcrWorker.cpp - OCR Engine Factory
source/ocr/OcrEngine.cpp - Raster OCR
source/ocr/engines/RasterOcrEngine.cpp - PaddleOCR Linux
source/ocr/engines/PaddleOcrEngine_linux.cpp
Import and Export
- Notebook Bundles
source/sharing/NotebookExporter.cpp - Notebook Importer
source/sharing/NotebookImporter.cpp - Export Queue
source/batch/ExportQueueManager.cpp - Batch Operations
source/batch/BatchOperations.cpp - CLI Handler
source/cli/CliHandler.cpp - PDF Exporter
source/pdf/MuPdfExporter.cpp
Other components
- User
- CLI User
Connections 25
- User → Application Entry: launches
- Application Entry → Main Window: opens
- User → Notebook Launcher: browses notebooks
- User → Main Window: edits notebook
- Main Window → Tabs and Split View: manages views
- Main Window → Document Manager: manages documents
- Notebook Launcher → Notebook Library: browses library
- Document Manager → Document: manages
- Document → Pages and Canvas: contains pages
- Pages and Canvas → Vector Strokes: holds ink
- Pages and Canvas → Vector Layers: organizes drawing
- Pages and Canvas → Inserted Objects: holds objects
- Document → Markdown Notes: supports notes
- Document → PDF Provider: uses PDF background
- PDF Search → PDF Provider: reads PDF text
- OCR Worker → OCR Engine Factory: selects engine
- OCR Engine Factory → Raster OCR: creates backend
- Raster OCR → PaddleOCR Linux: uses Linux recognizer
- Notebook Importer → Notebook Library: imports notebooks
- Export Queue → Batch Operations: dispatches jobs
- Batch Operations → Notebook Bundles: exports bundles
- Batch Operations → PDF Exporter: exports PDF
- CLI User → Application Entry: invokes commands
- Application Entry → CLI Handler: dispatches CLI
- CLI Handler → Batch Operations: runs operations