Bug Fixes Plan — BUGS.md
Context
The compilers documentation section of the portfolio site has 6 bugs reported in BUGS.md. These span CSS layout issues, a search algorithm flaw, content ordering, and content organization.
Bug 1: Footer doesn’t center/fill when sidebar is collapsed
Problem: _sass/_footer.scss:14 has margin-left: clamp(200px, 20vw, 250px) on desktop, which doesn’t respond to the sidebar-collapsed state.
Fix in _sass/_footer.scss:
- Add a rule:
html.sidebar-collapsed .site-footer { margin-left: 0; }(mirror what’s done formainin_navigation.scss:276-278)
Also fix in _sass/_navigation.scss (after line 283):
- Add:
html.sidebar-collapsed .site-footer { margin-left: 0; max-width: 1100px; margin: 0 auto; }
Bug 2: Main content not expanding to left edge when nav is visible
Problem: .docs-content in _sass/_docs.scss:121 has max-width: 800px and padding, but no left-alignment to fill toward the sidebar edge.
Fix in _sass/_docs.scss:
- Ensure
.docs-contentdoesn’t have unnecessary left padding/margin that prevents it from touching the left edge of its container. Investigate if the issue is themax-widthconstraint or extra padding. The content container should start flush with the left edge of the main area (right after the sidebar).
Bug 3: Hamburger should be 2 lines forming X; mobile menu drops from top
Problem: Hamburger has 3 <span> lines (navigation.html:11-13). Mobile nav slides from left (translateX(-100%)) instead of dropping from top.
Files to modify:
_includes/navigation.html:11-13— Remove one<span>, keep 2 spans_sass/_navigation.scss:82-116— Update hamburger styles for 2-line -> X animation_sass/_navigation.scss:214-227— Change mobile#main-navfromtranslateX(-100%)totranslateY(-100%), position it at top below mobile header, full width_sass/_navigation.scss:230-242— Update.nav-overlayto cover full screen instead of just the right side
Desktop sidebar stays the same. Only mobile menu behavior changes.
Bug 4: Search matches individual terms instead of phrase
Problem: assets/js/main.js:239 splits query into individual terms and matches each separately. Searching “function registration” matches any doc containing “function”.
Fix in assets/js/main.js (search function, ~line 232):
- First try exact phrase match (full query string as-is) with a high score bonus
- If the full phrase matches title, give highest score (+20)
- If the full phrase matches content, give high score (+10 per match)
- Then fall back to individual term scoring as a secondary signal
- This preserves partial matching while strongly preferring exact phrase matches
Bug 5: Reorder “CatScript Compiler - A Tour” to position 2
Current order: CatScript Overview (1), Tokenization (2), …, Tour (10) Desired: CatScript Overview (1), Tour (2), Tokenization (3), …, everything shifted +1
Files to modify (frontmatter order: values):
| File | Current | New |
|——|———|—–|
| CatScript Overview.md | 1 | 1 |
| Cat-script Compiler - a tour.md | 10 | 2 |
| Tokenization.md | 2 | 3 |
| Regular expressions.md | 3 | 4 |
| Parse Trees and CFG.md | 4 | 5 |
| ParseTrees.md | 5 | 6 |
| Recursive Descent Parsing.md | 6 | 7 |
| Actual Parsing.md | 7 | 8 |
| Parsing Expressions.md | 8 | 9 |
| Parsing Statements.md | 9 | 10 |
| Github SSH Key Setup.md | 11 | remove (moved to utils) |
| Parsing Functions and Type Literals.md | 12 | 11 |
| Semantic Analysis.md | 13 | 12 |
| Symbol Tables.md | 14 | 13 |
| Type Systems.md | 15 | 14 |
| Semantic Analysis of Expressions.md | 16 | 15 |
| Semantic Analysis of Statements.md | 17 | 16 |
Bug 6: Move GitHub SSH Key Setup to new /utils/ page
Steps:
- Add
utilscollection to_config.yml(similar tocompilersandalgorithms) - Create
_utils/directory and move_compilers/Github SSH Key Setup.mdinto it - Update frontmatter: change
layouttodocs(or a newutilslayout if needed), setorder: 1 - Create
utils/index.html— landing page listing utils articles (modeled oncompilers/index.html) - Update
_includes/navigation.html— add autilslayout case so the sidebar renders for utils pages - Update
search.jsonto also index the utils collection - Optionally add a “Utils” link somewhere accessible (main nav or compilers page)
Verification
- Run Jekyll locally (
bundle exec jekyll serve) and check:- Footer centers when sidebar is collapsed (Bug 1)
- Main content area fills to left edge with sidebar open (Bug 2)
- Mobile hamburger is 2 lines, forms X, menu drops from top (Bug 3)
- Search “function registration” returns only the function registration page, not all pages mentioning “function” (Bug 4)
- Nav sidebar and index page show Tour as item #2 (Bug 5)
- GitHub SSH Key Setup appears under /utils/, not /compilers/ (Bug 6)
- Test responsive breakpoints at 768px boundary for bugs 1-3
- Test sidebar collapse toggle on desktop for bug 1