Skip to content

Conversation

@VatsalSy
Copy link
Member

@VatsalSy VatsalSy commented Nov 9, 2025

Summary

This PR consolidates significant updates to the CoMPhy Lab website for October 2025, including team member additions, new research publications, teaching course expansion, and workflow automation improvements.

Team Updates

New Team Members

  • Mark Boulogne (M.Sc. Student): Added to Present Team working on drops and bubbles spreading on LIS, co-advised with Detlef Lohse & Aman Bhargava
  • Peter Croxford (Student): Added to Present Team working on Bretherton drops and bubbles at Durham University

Title and Affiliation Updates

  • Updated existing team member titles, positions, and affiliations
  • Fixed team map embed URL to reflect current team locations
  • Added anonymous.svg placeholder for team members without photos

Research Publications

New Published Papers

  • [19] Mclauchlan et al., "Bouncing microdroplets on hydrophobic surfaces" - Published in PNAS (moved from preprint)
  • [18] Saini et al., "Implementation of integral surface tension formulations..." - Published in J. Comput. Phys. (moved from preprint)

New Preprints (Work in Progress)

  • Dixit et al., "Holey sheets: Double-Threshold Rupture of Draining Liquid Films" (arXiv:2509.12789) - Featured with YouTube playlist
  • Jana et al., "Impacting spheres: from liquid drops to elastic beads" (arXiv:2510.24855) - GitHub repository included

Updates

  • Updated author list for paper [17] (Bashkatov et al.)
  • Added new research tags: Elastic beads, Bouncing, Rupture, Marangoni flows, Numerical methods
  • Removed Featured tag from paper [16] to maintain max 2 featured papers

Teaching Expansion

New Course Card

  • Introduction to Soft Matter course added to teaching page
    • Links to external blog lecture notes
    • Location: Durham University, Fall 2025
    • Custom SVG visualization representing soft matter concepts (polymers, colloids, fluid dynamics)
    • External link with proper security attributes

Custom SVG Image Created

  • Professional scientific design at /assets/images/teaching/soft-matter.svg
  • Features polymer chains, colloidal particles, wave patterns
  • Modern color scheme (indigo, purple, pink, orange on dark background)
  • 600×400px dimensions matching course card requirements

News Updates

Recent Achievements

  • Jnandeep Talukdar won KHMW Young Talent Graduation Award for Mechanical Engineering 2025
  • Saumili Jana received best master's thesis award from IIT Kharagpur
  • Added links to recent publications ([18], [19])

Developer Workflow Improvements

New Slash Commands

  1. /add-paper - Automated research paper addition

    • Parses BibTeX entries
    • Handles authors, DOI, arXiv IDs, badges
    • Interactive tag selection
    • Manages preprint-to-published transitions
    • Maintains proper numbering and formatting
  2. /add-person - Automated team member management

    • Supports Present Team, Active Collaborations, Alumni categories
    • Handles social links (GitHub, Google Scholar, Bluesky, LinkedIn, etc.)
    • Manages team member images with auto-numbering
    • Consistent formatting across all sections

New Deployment Script

  • deploy.sh - Local development server with smart features
    • Automatic port detection (4001-4999)
    • Handles port conflicts gracefully
    • Live reload enabled
    • Clear console output with connection URL

Code Quality Improvements

  • Fixed ESLint violations across JavaScript files
  • Updated ESLint rules to prevent Prettier conflicts
  • Disabled indent rule, updated quote rule to allow escape avoidance
  • Restored JavaScript files to working state

Technical Changes

Dependencies

  • Updated REXML gem (3.4.0 → 3.4.4) for security
  • Updated npm packages for compatibility
  • Fixed Dependabot alerts

Removed Files

  • Deleted .claude/settings.json (moved to project-specific hooks)
  • Cleaned up GitButler configuration files

Documentation

  • Updated README with deploy.sh usage instructions
  • Added comprehensive documentation for new slash commands
  • Improved setup instructions

Files Changed (22 files)

Major Additions:

  • .claude/commands/add-paper.md (166 lines) - Research paper automation
  • .claude/commands/add-person.md (130 lines) - Team member automation
  • scripts/deploy.sh (96 lines) - Smart local development server
  • assets/images/teaching/soft-matter.svg (105 lines) - Custom SVG artwork

Content Updates:

  • _team/index.md - New team members and updates
  • _research/index.md - New papers and preprint transitions
  • _teaching/index.md - New course card
  • News.md & history.md - Recent achievements
  • README.md - Documentation improvements

Technical Updates:

  • JavaScript fixes (command-palette.js, command-data.js, teaching.js)
  • ESLint configuration updates
  • Dependency updates (Gemfile.lock, package.json)

Testing

All changes have been tested locally:

  • ✅ Pre-commit hooks pass (markdownlint, ESLint, Prettier)
  • ✅ Jekyll builds successfully
  • ✅ New course card displays correctly
  • ✅ Team page renders properly with new members
  • ✅ Research page shows updated papers with correct numbering
  • ✅ News sections display recent achievements

Notes

  • Team images use either specific numbered files or anonymous.svg placeholder
  • Research paper numbering sequence maintained (currently at [19])
  • Maximum 2 featured papers enforced on homepage
  • External teaching link uses proper security attributes (target="_blank", rel="noopener noreferrer")
  • All commit messages follow project standards (clean, professional, no AI signatures)

- Restore JavaScript files accidentally deleted in commit c86a438
- Fix all quote style violations (single to double quotes)
- Remove unused Fuse global variable declarations
- All 33 ESLint errors resolved (0 errors remaining)
- 61 warnings remain (mainly line-length and intentional console.log)
- Add avoidEscape: true to quotes rule
- Allows single quotes when they avoid escaping (e.g., HTML strings)
- Resolves conflict between ESLint and Prettier formatting
- Turn off indent rule (handled by Prettier)
- Resolves remaining 3 indentation errors
- All ESLint errors now resolved (0 errors, 59 warnings)
- Create scripts/deploy.sh with automatic port detection (4001-4999)
- Automatically find available livereload port (35730-35999)
- Includes color-coded output for better developer experience
- Handles port conflicts gracefully using lsof
- Enable Jekyll live reload for automatic browser refresh
- Update README.md with deploy.sh usage in Local Development section
- Add deploy.sh to Scripts Documentation section
- Add deploy.sh to Directory Structure overview
- Create /add-paper command for automated paper entry
- Parse BibTeX entries and extract metadata (authors, title, journal, DOI, arXiv)
- Automatic lab member detection and formatting (**Sanjay, V.**, **Dixit, A.**)
- Interactive tag selection based on paper keywords
- Generate appropriate badges (arXiv, journal, blog, GitHub)
- Handle both published papers and preprints
- Check for existing preprints when adding published versions
- Maintain proper formatting and spacing requirements
- Add paper #18 (Saini et al., J. Comput. Phys., 2025) to published research
- Add paper #19 (Mclauchlan et al., PNAS, 2025) to published research
- Update News.md with September and August announcements for papers #18 and #19
- Update history.md with complete news archive including new publications
- Move papers from preprint to published status in research index
- Add new research tags: Elastic beads, Bouncing, Rupture, Marangoni flows, Numerical methods
- Include work-in-progress papers with featured tags
- Remove oldest news items from main page while preserving in history
- Replace stick figure with modern bust silhouette design
- Use filled shapes instead of outlined strokes
- Circular head with rounded shoulders and torso
- Maintain light gray background with good contrast
- Implement /add-person command for adding new team members
- Automates profile image handling and anonymous.svg fallback
- Maintains consistent formatting in team index
- Validates required fields and proper chronological ordering
- Add M.Sc. student from Durham University
- Research focus on porous media flow and Bretherton phenomena
- Uses anonymous.svg placeholder for profile image
- Position effective from 2025
- Add M.Sc. student Mark Boulogne with co-advisors Detlef Lohse and Aman Bhargava
- Include GitHub profile and POF profile links
- Add team photo (7.png)
- Research interest: Drops and bubbles spreading on LIS
- Add new course card linking to external lecture notes
- Include Durham University location and Fall 2025 timeframe
- Create custom SVG visualization representing soft matter concepts
- Link opens in new tab to blog lecture notes
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 9, 2025

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added automatic port detection deployment script for local development with live reload support.
  • Documentation

    • Added "Introduction to Soft Matter" course to teaching offerings.
    • Updated research publications and added new topic tags (Elastic beads, Bouncing, Rupture, Marangoni flows, Numerical methods).
    • Added new team member and updated team member profile.
    • Added news and history entries.
  • Updates

    • Updated embedded map region.
    • Enhanced configuration and linting rules.

Walkthrough

Adds Claude command docs, content updates (research, news, team, teaching), a Jekyll dev deploy script with automatic port discovery, lint/config tweaks, and a large search DB/content refresh; removes .claude/settings.json.

Changes

Cohort / File(s) Summary
Claude Command Documentation
.claude/commands/add-paper.md, .claude/commands/add-person.md
New procedural docs describing workflows and formatting rules for adding papers and people (parsing, prompts, badges, image/path rules, insertion/numbering logic).
Deployment script & docs
scripts/deploy.sh, README.md
New Bash script that finds available ports (4001–4999, livereload 35730–35999) and launches bundle exec jekyll serve with live reload; README updated with quick-start usage.
Content & Metadata
News.md, history.md, _research/index.md, _teaching/index.md, _team/index.md
Added Aug/Sep/Nov news/history items; new/updated research entries and tags (Holey sheets, Impacting spheres, Appleford, JCP/PNAS updates); added "Introduction to Soft Matter" course; added Peter Croxford and promoted Pim J. Dekker to Dr.
Search DB & JS data
assets/js/search_db.json
Large-scale content/data overhaul: personnel updates, corrected URLs, added/expanded publications/projects/events and documentation strings.
Frontend scripts (lint/comments only)
assets/js/command-data.js, assets/js/command-palette.js, assets/js/teaching.js
Removed Fuse from top-level global lint directive; adjusted string quoting and selector concatenation in teaching.js; no control-flow changes.
Layout tweak
_layouts/team.html
Replaced embedded Google Maps iframe src (different domain/mid id).
Config / tooling
.claude/settings.json (removed), eslint.config.js, package.json
Removed Claude hooks config file; set indent to "off" and relaxed quotes; added overrides entry pinning form-data to ^4.0.4.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor Dev
    participant deploy.sh as "deploy.sh"
    participant System as "Local host"
    participant Jekyll as "jekyll (bundle exec)"

    Dev->>deploy.sh: run script
    deploy.sh->>System: scan ports 4001-4999 for availability
    alt port found
      System-->>deploy.sh: return port P
      deploy.sh->>System: scan livereload ports 35730-35999
      alt livereload found
        System-->>deploy.sh: return livereload L
        deploy.sh->>Jekyll: exec jekyll serve --port P --livereload-port L
        Jekyll-->>deploy.sh: started (success)
        deploy.sh-->>Dev: print success/banner (P, L)
      else no livereload
        deploy.sh-->>Dev: error & exit (no livereload port)
      end
    else no port
      deploy.sh-->>Dev: error & exit (no port)
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Areas needing extra attention:
    • assets/js/search_db.json — extensive content, consistency, duplicate IDs, and URL correctness.
    • _research/index.md — numbering, badges, and tag consistency across updated 2025 entries.
    • scripts/deploy.sh — port-detection robustness (lsof availability, race conditions) and cross-platform behavior.
    • _team/index.md — formatting consistency for new/renamed member entries and cross-references.

Possibly related PRs

Poem

A rabbit hops through files so neat,
Papers, people, scripts to meet 🐇
Ports are found, the server hums,
Tags and badges beating drums,
The lab site grows — a tidy feat.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately reflects the main changes: October 2025 website updates affecting team, research, and teaching areas.
Description check ✅ Passed The PR description is comprehensive and directly related to the changeset, detailing team updates, research publications, teaching additions, and developer workflow improvements.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch oct-updates

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ec355a3 and 81bdc49.

📒 Files selected for processing (3)
  • .claude/commands/add-paper.md (1 hunks)
  • .claude/commands/add-person.md (1 hunks)
  • assets/js/teaching.js (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • .claude/commands/add-person.md
  • .claude/commands/add-paper.md
  • assets/js/teaching.js

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
News.md (1)

16-62: News item count exceeds guideline limit.

The News.md file currently contains 6 non-pinned monthly sections (November, September, August, July, June, May), but the coding guideline specifies keeping only the 5 most recent non-pinned items. Consider removing the oldest section (May) to comply with the guideline.

As per coding guidelines.

assets/js/teaching.js (1)

138-142: Use double quotes for DOM selector queries.

Line 142 uses single quotes in the selector query. Convert to double quotes to maintain consistency with JavaScript coding guidelines.

Apply this diff:

  const extractDateFromElement = (element) => {
    return (
      element.getAttribute("data-date") ||
      element.getAttribute("date") ||
-     element.querySelector('.course-date, .date, time, [class*="date"]')
+     element.querySelector(".course-date, .date, time, [class*=\"date\"]")
        ?.textContent ||
      element.querySelector("[datetime]")?.getAttribute("datetime") ||
🧹 Nitpick comments (3)
_teaching/index.md (1)

46-61: Consider adding image dimensions for layout stability.

The new course card follows the existing structure well and includes proper lazy loading. However, consider adding width and height attributes to the image to prevent layout shift during page load. Since the SVG is 600×400px (per PR description), you could add:

-    <img src="/assets/images/teaching/soft-matter.svg" alt="Introduction to Soft Matter" loading="lazy">
+    <img src="/assets/images/teaching/soft-matter.svg" alt="Introduction to Soft Matter" width="600" height="400" loading="lazy">

This applies to the other course images as well, but addressing it for new content helps prevent the pattern from spreading.

As per coding guidelines.

scripts/deploy.sh (2)

22-30: Consider checking for lsof availability.

The script relies on lsof to check port availability, but this tool might not be available on all systems (particularly minimal Docker containers or some Linux distributions). Consider adding a check at the script start:

# Check for required tools
if ! command -v lsof &> /dev/null; then
    echo -e "${RED}✗ Error: lsof command not found. Please install lsof to use this script.${NC}" >&2
    exit 1
fi

Alternatively, you could use a more portable method like nc (netcat) or directly attempting to bind to the port, though lsof is generally the most reliable option when available.


64-96: Consider adding Jekyll availability check.

The script assumes bundle exec jekyll serve will work, but doesn't verify that Jekyll and its dependencies are installed. Consider adding a check before port detection:

# Check for Jekyll availability
if ! bundle exec jekyll --version &> /dev/null; then
    echo -e "${RED}✗ Error: Jekyll not available. Run './scripts/setup.sh' first.${NC}" >&2
    exit 1
fi

This would provide clearer error messages if the user hasn't run setup yet, rather than failing after port detection.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e1fbe83 and ec355a3.

⛔ Files ignored due to path filters (5)
  • Gemfile.lock is excluded by !**/*.lock
  • assets/images/teaching/soft-matter.svg is excluded by !**/*.svg
  • assets/images/team/7.png is excluded by !**/*.png
  • assets/images/team/anonymous.svg is excluded by !**/*.svg
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (17)
  • .claude/commands/add-paper.md (1 hunks)
  • .claude/commands/add-person.md (1 hunks)
  • .claude/settings.json (0 hunks)
  • News.md (1 hunks)
  • README.md (3 hunks)
  • _layouts/team.html (1 hunks)
  • _research/index.md (3 hunks)
  • _teaching/index.md (2 hunks)
  • _team/index.md (2 hunks)
  • assets/js/command-data.js (1 hunks)
  • assets/js/command-palette.js (0 hunks)
  • assets/js/search_db.json (5 hunks)
  • assets/js/teaching.js (3 hunks)
  • eslint.config.js (1 hunks)
  • history.md (1 hunks)
  • package.json (1 hunks)
  • scripts/deploy.sh (1 hunks)
💤 Files with no reviewable changes (2)
  • .claude/settings.json
  • assets/js/command-palette.js
🧰 Additional context used
📓 Path-based instructions (21)
**/*.js

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.js: Enforce 80-character line limit for JavaScript
Use double quotes for JavaScript strings
Prefer ES6+ features (arrow functions, const/let, async/await) in JavaScript
ESLint (with auto-fix) must pass for JavaScript changes

Files:

  • assets/js/teaching.js
  • assets/js/command-data.js
  • eslint.config.js
**/*.{js,css,md,html}

📄 CodeRabbit inference engine (CLAUDE.md)

Run Prettier for code formatting

Files:

  • assets/js/teaching.js
  • _teaching/index.md
  • News.md
  • history.md
  • _layouts/team.html
  • _team/index.md
  • assets/js/command-data.js
  • _research/index.md
  • README.md
  • eslint.config.js
**/*.{js,mjs,cjs}

📄 CodeRabbit inference engine (.cursor/rules/javascript-style.mdc)

**/*.{js,mjs,cjs}: Use arrow functions for callbacks and methods
Use template literals for string interpolation instead of string concatenation
Use destructuring for object and array manipulation
Use spread/rest operators where appropriate
Always enable strict mode ('use strict')
Use const by default and let only when reassignment is needed
Never use var
Use camelCase for variable and function names
Use async/await for asynchronous operations instead of .then chains
Implement proper error handling for async code using try/catch around awaited operations
Prefer event delegation for multiple similar elements
Use descriptive event handler names
Remove event listeners when components are destroyed to avoid leaks

Files:

  • assets/js/teaching.js
  • assets/js/command-data.js
  • eslint.config.js
_teaching/index.md

📄 CodeRabbit inference engine (CLAUDE.md)

_teaching/index.md must use the teaching layout

Files:

  • _teaching/index.md
**/*.md

📄 CodeRabbit inference engine (CLAUDE.md)

markdownlint must pass for Markdown files

Files:

  • _teaching/index.md
  • News.md
  • history.md
  • _team/index.md
  • _research/index.md
  • README.md
**/*.{html,md}

📄 CodeRabbit inference engine (CLAUDE.md)

Use lazy loading for images (e.g., loading="lazy")

Files:

  • _teaching/index.md
  • News.md
  • history.md
  • _layouts/team.html
  • _team/index.md
  • _research/index.md
  • README.md
**/*.{md,mdx}

📄 CodeRabbit inference engine (.cursor/rules/html-markdown-style.mdc)

**/*.{md,mdx}: Use appropriate heading levels (h1–h6) in Markdown
Maintain consistent spacing between sections in Markdown
Use lists and tables for structured content in Markdown
Do not skip heading levels in Markdown document structure

Files:

  • _teaching/index.md
  • News.md
  • history.md
  • _team/index.md
  • _research/index.md
  • README.md
**/{News.md,history.md}

📄 CodeRabbit inference engine (CLAUDE.md)

**/{News.md,history.md}: When adding news manually, update both News.md and history.md
News items use "- " list items under "### Month Year" headers; maintain blank lines between sections

Files:

  • News.md
  • history.md
**/News.md

📄 CodeRabbit inference engine (CLAUDE.md)

Keep only 5 most recent (non-pinned) items in News.md; pinned Durham announcement is excluded from the count

Files:

  • News.md
**/history.md

📄 CodeRabbit inference engine (CLAUDE.md)

In history.md, sort years descending and months in chronological order within each year

Files:

  • history.md
**/*.{html,htm}

📄 CodeRabbit inference engine (.cursor/rules/html-markdown-style.mdc)

**/*.{html,htm}: Use

for page headers
Use for navigation
Use for primary content
Use for self-contained content
Use
for thematic grouping
Use for page footers
Avoid using non-semantic
elements when appropriate HTML5 elements exist

Files:

  • _layouts/team.html
**/*.{html,htm,css,scss}

📄 CodeRabbit inference engine (.cursor/rules/html-markdown-style.mdc)

**/*.{html,htm,css,scss}: Follow BEM (Block Element Modifier) naming convention for CSS classes
Avoid inconsistent BEM naming patterns

Files:

  • _layouts/team.html
**/*.html

📄 CodeRabbit inference engine (.cursor/rules/image-guidelines.mdc)

**/*.html: Include meaningful alt text for all images in HTML
Use empty alt="" for decorative images in HTML
Specify width and height for images to ensure defined dimensions

Files:

  • _layouts/team.html
_layouts/*.html

📄 CodeRabbit inference engine (.cursor/rules/project-structure.mdc)

Templates are located in _layouts/*.html

Files:

  • _layouts/team.html
{_layouts/team.html,assets/css/team.css}

📄 CodeRabbit inference engine (.cursor/rules/project-structure.mdc)

_layouts/team.html must be paired with assets/css/team.css

Files:

  • _layouts/team.html
{_layouts/*.html,assets/css/{search.css,styles.css}}

📄 CodeRabbit inference engine (.cursor/rules/project-structure.mdc)

All templates must include assets/css/search.css and assets/css/styles.css

Files:

  • _layouts/team.html
_team/index.md

📄 CodeRabbit inference engine (CLAUDE.md)

Use <img src="../assets/images/team/NUMBER.webp" ... class="member-image"> format for team profiles

Files:

  • _team/index.md
**/{command-palette.js,command-data.js}

📄 CodeRabbit inference engine (CLAUDE.md)

Ensure command-palette.js loads before command-data.js

Files:

  • assets/js/command-data.js
_research/index.md

📄 CodeRabbit inference engine (CLAUDE.md)

_research/index.md: Add research tags using TagName format in _research/index.md
Add research papers in the specified HTML/Markdown entry template (h3 with id, tags block, badge link)
Mark lab members with bold and include Featured tag (max 2 total) for homepage display

Files:

  • _research/index.md
**/{README.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md}

📄 CodeRabbit inference engine (CLAUDE.md)

Do not create developer documentation files unless explicitly requested

Files:

  • README.md
README.md

📄 CodeRabbit inference engine (.cursor/rules/project-structure.mdc)

README.md: The README.md file at repository root serves as the primary documentation
Keep README.md up-to-date with any structural changes
Document any new files or directories added to the project in README.md

Files:

  • README.md
🧠 Learnings (18)
📓 Common learnings
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _research/index.md : Mark lab members with **bold** and include <span>Featured</span> tag (max 2 total) for homepage display
📚 Learning: 2025-08-24T19:51:04.722Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: .cursor/rules/javascript-style.mdc:0-0
Timestamp: 2025-08-24T19:51:04.722Z
Learning: Applies to **/*.{js,mjs,cjs} : Use template literals for string interpolation instead of string concatenation

Applied to files:

  • assets/js/teaching.js
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _teaching/[0-9][0-9][0-9][0-9]-*.md : Teaching course pages must be created as _teaching/YYYY-CourseName-Location.md using the teaching-course layout

Applied to files:

  • _teaching/index.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _teaching/index.md : _teaching/index.md must use the teaching layout

Applied to files:

  • _teaching/index.md
📚 Learning: 2025-08-24T19:51:18.247Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-08-24T19:51:18.247Z
Learning: Applies to README.md : Document any new files or directories added to the project in README.md

Applied to files:

  • .claude/commands/add-person.md
  • .claude/commands/add-paper.md
  • README.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _team/index.md : Use <img src="../assets/images/team/NUMBER.webp" ... class="member-image"> format for team profiles

Applied to files:

  • .claude/commands/add-person.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _research/index.md : Mark lab members with **bold** and include <span>Featured</span> tag (max 2 total) for homepage display

Applied to files:

  • .claude/commands/add-person.md
  • assets/js/search_db.json
  • _team/index.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/{News.md,history.md} : News items use "- " list items under "### Month Year" headers; maintain blank lines between sections

Applied to files:

  • News.md
  • history.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to _research/index.md : Add research papers in the specified HTML/Markdown entry template (h3 with id, tags block, badge link)

Applied to files:

  • .claude/commands/add-paper.md
📚 Learning: 2025-08-24T19:51:18.247Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-08-24T19:51:18.247Z
Learning: Prefer manual control over Jekyll server deployment

Applied to files:

  • scripts/deploy.sh
  • README.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/{command-palette.js,command-data.js} : Ensure command-palette.js loads before command-data.js

Applied to files:

  • assets/js/command-data.js
📚 Learning: 2025-08-24T19:51:18.247Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: .cursor/rules/project-structure.mdc:0-0
Timestamp: 2025-08-24T19:51:18.247Z
Learning: Applies to README.md : Keep README.md up-to-date with any structural changes

Applied to files:

  • README.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to assets/images/teaching/**/* : Store teaching images under /assets/images/teaching/ (cards 600x400px, banners 1200x400px)

Applied to files:

  • README.md
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/*.js : ESLint (with auto-fix) must pass for JavaScript changes

Applied to files:

  • eslint.config.js
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/*.{js,css,md,html} : Run Prettier for code formatting

Applied to files:

  • eslint.config.js
📚 Learning: 2025-08-24T19:51:04.723Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: .cursor/rules/javascript-style.mdc:0-0
Timestamp: 2025-08-24T19:51:04.723Z
Learning: Applies to **/*.{js,mjs,cjs} : Always enable strict mode ('use strict')

Applied to files:

  • eslint.config.js
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/*.js : Prefer ES6+ features (arrow functions, const/let, async/await) in JavaScript

Applied to files:

  • eslint.config.js
📚 Learning: 2025-08-24T19:49:35.574Z
Learnt from: CR
Repo: comphy-lab/comphy-lab.github.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.574Z
Learning: Applies to **/*.js : Use double quotes for JavaScript strings

Applied to files:

  • eslint.config.js
🪛 LanguageTool
.claude/commands/add-person.md

[uncategorized] ~129-~129: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...nonymous.svg instead - Links should use markdown format with icons in square brackets - ...

(MARKDOWN_NNP)

🔇 Additional comments (14)
package.json (1)

42-44: ---

The form-data override is justified—it addresses CVE-2025-7783.

The override to ^4.0.4 is appropriate. Versions 4.0.0–4.0.3 (along with earlier major versions) contained a critical vulnerability (CVE-2025-7783) where multipart boundary strings were generated using Math.random(), making them predictable and enabling HTTP parameter pollution attacks. Version 4.0.4 is the patched release.

Consider adding a brief comment to package.json documenting this security rationale for future maintainers:

"overrides": {
  "form-data": "^4.0.4"  // Ensure patched version (CVE-2025-7783)
}
assets/js/command-data.js (1)

2-2: LGTM! Valid cleanup of lint directive.

The removal of Fuse from the global lint directive is appropriate since Fuse.js is loaded via CDN in the HTML layout files and doesn't need to be declared as a global in this file's context.

eslint.config.js (1)

14-16: LGTM! Proper ESLint and Prettier integration.

These changes follow best practices for coordinating ESLint with Prettier:

  • Disabling indent rule prevents conflicts since Prettier handles formatting
  • Adding avoidEscape: true to the quotes rule allows single quotes in strings when it avoids escaping (e.g., "don't" instead of 'don\'t')

This improves the developer experience while maintaining code quality standards.

_layouts/team.html (1)

316-316: LGTM! Map URL updated to reflect current team locations.

The update to the Google Maps embed URL (new map ID and domain change from .nl to .com) aligns with the team member additions in this PR. The iframe attributes remain properly configured with security and accessibility features intact.

README.md (1)

109-133: LGTM! Clear and helpful documentation.

The documentation for deploy.sh is well-written and properly positioned:

  • Clear explanation of features (port detection, live reload, auto-refresh)
  • Positioned as the recommended approach while preserving the manual method
  • Follows the existing documentation style
  • Provides helpful context about port ranges and conflict resolution

This will improve the developer experience for new contributors.

_team/index.md (2)

108-133: LGTM! New team members properly formatted.

Both new team member entries (Peter Croxford and Mark Boulogne) follow the established format consistently:

  • Proper heading structure and styling
  • GitHub links included
  • Appropriate image attributes with lazy loading and dimensions
  • Research interests clearly stated
  • Use of anonymous.svg placeholder for Peter Croxford is a good practice when photos aren't available yet

The entries maintain consistency with the rest of the team page.


431-437: LGTM! Proper update to reflect Ph.D. completion.

The update from "Pim J. Dekker M.Sc." to "Dr. Pim J. Dekker" appropriately reflects the completion of their Ph.D. The entry maintains consistent formatting with other alumni entries, and the updated position information is clearly presented.

.claude/commands/add-paper.md (1)

1-166: Comprehensive workflow documentation for adding research papers. ✓

This documentation clearly defines the BibTeX-to-markdown conversion workflow with proper formatting rules, author truncation guidelines (et al. for 5+ authors), tag specifications, and badge generation. The example input/output aligns with best practices.

.claude/commands/add-person.md (1)

1-128: Comprehensive team member addition workflow. ✓

Well-structured documentation covering all three categories (Present Team, Active Collaborations, Alumni) with clear formatting rules, image handling, icon references, and insertion guidelines. Aligns with project standards.

_research/index.md (3)

20-25: New topic tags and Featured tag management. ✓

Five new topic tags (Elastic beads, Bouncing, Rupture, Marangoni flows, Numerical methods) are properly added and follow the tags format. Featured tag removed from [16] to maintain the max 2 Featured items on homepage—correct per PR objectives and learnings.


31-48: New preprint entries properly formatted. ✓

Two new preprints (Dixit et al., Jana et al.) in Work in Progress section follow the specified HTML/Markdown template with correct author bolding, tags, badges (arXiv, GitHub, Blog), and embedded YouTube content. Formatting is consistent with project standards.


66-83: 2025 publications correctly added with proper badges and metadata. ✓

Three 2025 papers ([19] Mclauchlan, [18] Saini, [17] Bashkatov) are properly formatted with journal badges (PNAS, J. Comput. Phys., Nat. Commun.), arXiv links, GitHub repos, and blog placeholders. Entry numbers and IDs are correctly assigned. Note: Address author list truncation for [17] per separate comment.

history.md (1)

25-35: News entries properly formatted with consistent styling. ✓

Three new 2025 news items (November, September, August) follow the required "- " list format under "### Month Year" headers with proper blank-line spacing. Links, GitHub icons, thesis links with PDF styling, and award information are consistently formatted. Cross-references to research page (e.g., /research#18, /research#19) properly link to corresponding publications.

assets/js/search_db.json (1)

323-323: "Featured" tag constraint is satisfied.

The verification confirms that adding the "Featured" tag to paper [11] results in exactly 2 papers marked with this tag, meeting the maximum constraint for homepage display.

- Remove 'et al.' usage for papers with more than 5 authors
- Always list complete author lists regardless of length
- Update example to show all 13 authors in full format
- Aligns with existing practice in research publications
- Capitalize 'Markdown' in add-person.md documentation
- Fix quote escaping in teaching.js selector strings
- Break long selector string into multiple lines for readability
@VatsalSy VatsalSy merged commit 869beac into main Nov 9, 2025
3 checks passed
@VatsalSy VatsalSy deleted the oct-updates branch November 9, 2025 15:29
@coderabbitai coderabbitai bot mentioned this pull request Jan 23, 2026
Sign up for free to 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.

2 participants