Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Add site search, refresh docs, add preview build workflow - #19

Merged
torwager merged 7 commits into
masterfrom
claude_code_dev
May 7, 2026
Merged

Add site search, refresh docs, add preview build workflow#19
torwager merged 7 commits into
masterfrom
claude_code_dev

Conversation

@torwager

Copy link
Copy Markdown
Contributor

Summary

  • Site-wide search added via Simple-Jekyll-Search: new /search/ page, search.json index, and a magnifying-glass nav link. The library is bundled locally so it works offline.
  • Documentation refresh: restructured walkthroughs.md into numbered sections with consistent tables and a sticky TOC; rewrote setup.md with a requirements table and troubleshooting matrix; tightened objectoriented.md; added a "What's new" log to the home-page sidebar.
  • 404 page replaced its dead Google linkhelp script with an embedded search box.
  • Cleanup: removed unreferenced _config copy.yml, _pages/about_bak.md (silent permalink conflict), and _pages/OLD_archive/ (28 files); fixed broken /_pages/... link prefix on home and setup pages.
  • Site config: disabled author sidebar and enabled sticky TOC on landing pages; switched analytics provider to false (it was loading the include with no tracking ID and silently doing nothing); added doc comments for re-enabling analytics + Search Console.
  • Preview infrastructure: new .github/workflows/preview-build.yml builds every non-master branch into a downloadable artifact with localhost-friendly URLs, so future PRs can be reviewed visually without touching the live site.

Test plan

  • Pull master after merge and confirm https://canlab.github.io/search/ loads and returns results
  • Click the magnifying-glass nav item from any page; confirm it goes to the search page
  • Visit https://canlab.github.io/walkthroughs/ and spot-check links from each numbered section
  • Visit https://canlab.github.io/setup/; confirm the requirements table and troubleshooting matrix render
  • Trigger a 404 (e.g. https://canlab.github.io/does-not-exist) and confirm the in-page search works
  • Confirm the home-page "What's new" sidebar shows next to the author profile

Documented for follow-up

  • Apply for Algolia DocSearch for higher-quality hosted search
  • Submit https://canlab.github.io/sitemap.xml to Google Search Console
  • Add an internal-link checker (e.g. lycheeverse/lychee-action) to the preview workflow once the existing site is clean
  • Sweep the 53 Dependabot alerts on master (most look like dev dependencies)

🤖 Generated with Claude Code

torwagerand others added 7 commits May 6, 2026 20:54
- Add Simple-Jekyll-Search: /search/ page, search.json index, and a
Search link with magnifying-glass icon in the top nav
- Restructure walkthroughs.md into numbered sections with consistent
tables so the new sticky TOC and search index work cleanly
- Refresh setup.md with a requirements table and troubleshooting matrix
- Add a "What's new" log to the home page and fix the broken
/repositories.md link
- Disable the author sidebar and enable a sticky TOC on landing pages
(walkthroughs, setup, repositories, objectoriented, batch, tutorials)
- Switch analytics provider to false (it was loading the include with
no tracking ID) and document how to enable it + Search Console
- Remove unreferenced files: _config copy.yml, _pages/about_bak.md
(had a duplicate permalink: / that silently conflicted with about.md),
and _pages/OLD_archive
- Add .github/workflows/preview-build.yml so non-master branches build
to a downloadable artifact for review without affecting the live site
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The github-pages gem needs the owner/repo when running outside the
official GitHub Pages builder; without it the build fails with
"No repo name found".
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The committed _config.yml hard-codes url: https://canlab.github.io, which
caused nav links in the preview build to bounce to the live site. The new
_config.preview.yml override clears url and baseurl so the artifact works
correctly when served from any local web server (e.g. python3 -m http.server).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Uses the Minimal Mistakes theme's sidebar front-matter so the update log
sits alongside the author profile instead of breaking the main reading
flow.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The old 404 page referenced linkhelp.clients.google.com, a Google service
that has been deprecated for years (the script tag itself returns 404).
Replaced with an embedded search box backed by the new search.json index
plus links to common destinations.
objectoriented.md previously duplicated the home-page intro and linked to
the broken /repositories.md path. Tightened the prose, fixed the link, and
removed a redundant install-link paragraph that pointed to material the
home page already covers.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two issues found while previewing:
1. The search script was loaded from unpkg.com. When the CDN is blocked,
slow, or unreachable (e.g. when previewing offline) the script never
loads and the search silently fails. Bundle a local copy under
assets/js/ so it works regardless of network state.
2. about.md and setup.md linked to /canlab_help_1_installing_tools/...
but Jekyll actually serves those files under /_pages/. The links have
been broken on the live site too. Updated to /_pages/...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@torwager
torwager merged commit 6f5f697 into masterMay 7, 2026
1 check passed
@torwager
torwager deleted the claude_code_dev branch May 7, 2026 21:36
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@torwager