How legojeon/leethub-neo works
LeetHub-Neo is a Chrome extension that turns accepted LeetCode submissions into GitHub repository content, with a side panel for problem study and progress. The main workflow is solving on LeetCode, syncing accepted solutions and related metadata, then using the side panel for translations, scratchpad notes, topic notes, and reusable templates. README documents the product-level flows; sampled source confirms several side-panel and template responsibilities, but the sync internals and some wiring were not sampled, so those relationships are cited to the README.
Main entry points: sidepanel.js Topic Panel · leetcode.js Submission Sync · scratchpad-controller.js Scratchpad · popup.js Extension UI
Components 23
Submission Sync
- Submission Sync
src/js/leetcode.js - Previous Sync
src/js/leetcode.js
Study Panel
- Side Panel
src/js/sidepanel.js - Problem Description
src/features/sidepanel/description/description-section-utils.js - Translation
src/features/sidepanel/description/description-translation.js - Scratchpad
src/features/sidepanel/scratchpad/scratchpad-controller.js - Progress Dashboard
src/features/sidepanel/leethub/leethub-view-state.js
Topics and Templates
- Topic Panel
src/js/sidepanel.js - Topic Index
src/js/topic-index-utils.js - Template Utilities
src/core/templates/topic-template-utils.js - Topic Matching
src/data/topic-template-mappings.js - Bundled Templates
src/templates/leetcode-cheatsheet - Code Highlighting
src/features/sidepanel/topics/topic-code-highlight.js
Accounts and Settings
- Extension UI
src/js/popup.js - GitHub OAuth
src/js/authorize.js
Shared Data
- Repository Layout
src/core/config/repository-files.js - Translation Settings
src/features/shared/settings/translation-language-settings.js - Scratchpad Data
src/core/scratchpad/scratchpad-memo.js - Template Settings
src/features/shared/settings/topic-template-settings.js - README Templates
src/core/templates/root-readme-template.js
Other components
- Solver
- LeetCode
- GitHub
Connections 26
- Solver → LeetCode: solves on
README.md - LeetCode → Submission Sync: accepted submission
README.md - Submission Sync → GitHub: syncs files
README.md - Solver → Extension UI: opens
README.md - Extension UI → GitHub OAuth: authenticates
README.md - GitHub OAuth → GitHub: requests access
src/js/authorize.js - Solver → Previous Sync: requests import
README.md - Previous Sync → GitHub: imports accepted
README.md - Submission Sync → Repository Layout: uses file layout
README.md - Solver → Side Panel: opens panel
README.md - Side Panel → Problem Description: renders description
src/js/sidepanel.js - Side Panel → Translation: translates statement
README.md - Side Panel → Translation Settings: reads language
README.md - Solver → Scratchpad: writes notes
README.md - Scratchpad → Scratchpad Data: normalizes and serializes
README.md - Scratchpad → GitHub: syncs notes and sketches
README.md - Solver → Progress Dashboard: reviews progress
README.md - Solver → Topic Panel: browses topics
README.md - Topic Panel → Topic Index: reads topic data
- Topic Panel → Template Utilities: uses template utilities
- Topic Panel → Topic Matching: matches templates
- Topic Panel → Bundled Templates: offers templates
README.md - Topic Panel → Template Settings: reads settings
- Topic Panel → Code Highlighting: highlights code
src/js/sidepanel.js - Topic Panel → GitHub: writes topic files
README.md - Submission Sync → README Templates: updates root summary
README.md