-
Notifications
You must be signed in to change notification settings - Fork 0
maintenance-updates #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add hook configurations in .claude/settings.json to run custom commands before and after tool usage for Edit, MultiEdit, and Write actions. Include a Stop hook to execute a stop command when needed. These hooks automate command execution around tool usage to enhance workflow integration with Claude.
Add current position for team member to reflect status as a Ph.D. candidate at Leiden University. This change keeps the team page accurate and up to date, ensuring visitors see the member's latest affiliation. - Inserted a new bullet: "Now: Ph.D. Candidate, Leiden University" above the existing 2024 graduation entry.
Append the post-nominal F.R.S. to Prof. Detlef Lohse's heading to display his full, formal name on the team page. This update ensures the profile reflects his recognized honors and improves accuracy of the site's team listing.
Add a new course card to the teaching index for "Basilisk for Multiphase Flow Simulations" presented at the European Coating Symposium 2025 on September 15, 2025. This provides course metadata, an image, a brief description of topics (heat conduction, drop impact dynamics, Landau–Levich dip coating), and a link to the course page so the teaching list includes the pre-conference training offering.
Use the same Madrid course images for the 2025 Basilisk ECS course pages so the card and banner reference basilisk-madrid.jpg and basilisk-madrid-banner.jpg. Update assets/images/teaching/README.md to clarify that these images are shared across Madrid and ECS (and note the dark-mode banner file) so maintainers understand reuse and available assets.
Convert raw URLs to descriptive Markdown links and clarify pre-course setup and contact details. Updated course repo references to Basilisk-101nano, replaced plain URLs with descriptive link text, added installation/tested platforms note, adjusted install commands to use reset_install_requirements.sh, linked known issue and install docs, improved email contact UI, and standardized course GitHub link. These changes improve readability, usability for participants, and ensure installation instructions point to the correct repository.
Caution Review failedThe pull request is closed. 📝 WalkthroughSummary by CodeRabbit
WalkthroughAdds a Claude hooks configuration, a new ECS 2025 Basilisk teaching page with theme-aware banner and clipboard logic, updates teaching index and team entries, inserts a utils.js include in the teaching layout, updates teaching image README, and removes bespoke email styles from teaching CSS. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User as User
participant DOM as Document
participant Banner as Banner Images
participant Observer as MutationObserver
rect rgba(230,240,255,0.6)
note right of User: Page load
User->>DOM: DOMContentLoaded
DOM->>Banner: updateBannerImages()
Banner-->>DOM: Set light/dark src attributes
end
rect rgba(230,255,230,0.6)
note over Observer: Theme changes
Observer->>Banner: trigger updateBannerImages()
Banner-->>DOM: Refresh image sources
end
sequenceDiagram
autonumber
actor User as User
participant Button as Copy Button
participant Utils as utils.js (helper)
participant Clipboard as Clipboard/API
User->>Button: click
Button->>Utils: copyEmail(button) (reads data attribute)
Utils->>Clipboard: write text (clipboard)
Clipboard-->>Button: success
Button->>Button: show copied state (icon/timer)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
_teaching/index.md (1)
1-45
: Prettier formatting errors detected in_teaching/index.md
Prettier’s check on the file reported code style issues. Please run the formatter to resolve them:• Execute:
npx prettier --write "_teaching/index.md"
• Then re-run the check to confirm there are no remaining warnings:
npx prettier --check "_teaching/index.md"
• Finally, ensure all Markdown and HTML files in this PR pass Prettier before merging.
🧹 Nitpick comments (9)
assets/images/teaching/README.md (1)
12-14
: Make descriptions time-agnostic and align with image guidelines (prefer WebP)."used by both Madrid and ECS 2025" will become stale. Rephrase to be event-agnostic and note preferred WebP per repo guidelines.
Apply:
-1. **basilisk-madrid.jpg** - Card image for Basilisk courses (used by both Madrid and ECS 2025) -2. **basilisk-madrid-banner.jpg** - Banner image for Basilisk course pages (used by both Madrid and ECS 2025) -3. **courseBanner-dark.jpg** - Dark mode banner for all course pages +1. **basilisk-madrid.jpg** — Card image for Basilisk courses (e.g., Madrid, ECS 2025). Prefer a corresponding `.webp` version. +2. **basilisk-madrid-banner.jpg** — Banner image for Basilisk course pages. Prefer a corresponding `.webp` version. +3. **courseBanner-dark.jpg** — Dark‑mode banner for course pages. Prefer a corresponding `.webp` version..claude/settings.json (1)
25-35
: Empty matcher for Stop hook may fire broadly. Ensure that’s intended.An empty matcher could match all events depending on the hook engine. If unintended, scope it explicitly.
Example:
- { - "matcher": "", + { + "matcher": "Edit|MultiEdit|Write|ChatStop",_team/index.md (2)
344-347
: Keep alumni “Now:” entries consistent (optionally add link).Consider linking “Leiden University” to the relevant program page to match other alumni entries, or keep plain text consistently across the section.
16-16
: Team images should use WebP and class per house style.Site guideline for this file: use
<img src="/assets/images/team/NUMBER.webp" ... class="member-image">
. Current images are.jpg
withoutmember-image
. Suggest migrating in a follow-up sweep to avoid mixing formats and styles._teaching/index.md (1)
29-44
: Card addition looks consistent; consider WebP + intrinsic size to reduce CLS.
- Provide a WebP variant via
for better performance. - Add width/height to stabilize layout.
- <div class="course-card"> - <img src="/assets/images/teaching/basilisk-madrid.jpg" alt="Basilisk for Multiphase Flow Simulations" loading="lazy"> + <div class="course-card"> + <picture> + <!-- Add this asset if not present --> + <source srcset="/assets/images/teaching/basilisk-madrid.webp" type="image/webp"> + <img src="/assets/images/teaching/basilisk-madrid.jpg" + alt="Basilisk for Multiphase Flow Simulations" + loading="lazy" width="600" height="400"> + </picture>_teaching/2025-Basilisk101nano-ECS.md (4)
7-10
: Preferwith prefers-color-scheme to avoid double image downloads. Current approach loads both images then hides one. Using
prevents unnecessary network cost and removes the need for JS for initial theme selection. -<div class="course-image"> - <img src="/assets/images/teaching/basilisk-madrid-banner.jpg" alt="Basilisk for Multiphase Flow Simulations" loading="lazy" class="light-mode-img"> - <img src="/assets/images/teaching/courseBanner-dark.jpg" alt="Basilisk for Multiphase Flow Simulations" loading="lazy" class="dark-mode-img"> -</div> +<div class="course-image"> + <picture> + <source srcset="/assets/images/teaching/courseBanner-dark.webp" type="image/webp" media="(prefers-color-scheme: dark)"> + <source srcset="/assets/images/teaching/basilisk-madrid-banner.webp" type="image/webp" media="(prefers-color-scheme: light)"> + <source srcset="/assets/images/teaching/courseBanner-dark.jpg" media="(prefers-color-scheme: dark)"> + <img src="/assets/images/teaching/basilisk-madrid-banner.jpg" + alt="Basilisk for Multiphase Flow Simulations" loading="lazy" + width="1200" height="400"> + </picture> +</div>If you keep JS-based switching, consider CSS toggles instead of inline JS. See next comment.
12-41
: Theme switch JS can be replaced with CSS; if kept, disconnect observer.You can achieve the toggling via CSS on [data-theme="dark"] without JS. If you keep the observer, disconnect it on page unload to avoid leaks on PJAX/SPA-like navigations.
CSS approach:
<style> .light-mode-img { display: block; } .dark-mode-img { display: none; } [data-theme="dark"] .light-mode-img { display: none; } [data-theme="dark"] .dark-mode-img { display: block; } </style>Or add:
observer.observe(document.documentElement, { attributes: true }); + + window.addEventListener('beforeunload', () => observer.disconnect());
60-67
: Minor punctuation polish for bulleted learning outcomes.Add a colon after bold phrases for clarity and consistency.
-- **Run Basilisk simulations** Compile and execute your first high-fidelity simulations +- **Run Basilisk simulations:** Compile and execute your first high-fidelity simulations -- **Interface tracking methods** Volume-of-Fluid (VOF) approach for two-phase flows +- **Interface tracking methods:** Volume-of-Fluid (VOF) approach for two-phase flows -- **Coating applications** Landau-Levich dip coating and droplet dynamics +- **Coating applications:** Landau-Levich dip coating and droplet dynamics -- **Real-world connections** From simulation results to physical understanding +- **Real-world connections:** From simulation results to physical understanding
130-145
: Trailing spaces and final newline.Remove trailing spaces (MD009 at lines ~130) and ensure the file ends with a newline (MD047).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled
- Linear integration is disabled
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (5)
.claude/settings.json
(1 hunks)_teaching/2025-Basilisk101nano-ECS.md
(1 hunks)_teaching/index.md
(1 hunks)_team/index.md
(2 hunks)assets/images/teaching/README.md
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (10)
assets/images/teaching/**/*
📄 CodeRabbit inference engine (CLAUDE.md)
Store teaching images under /assets/images/teaching/ (cards 600x400px, banners 1200x400px)
Files:
assets/images/teaching/README.md
**/*.{js,css,md,html}
📄 CodeRabbit inference engine (CLAUDE.md)
Run Prettier for code formatting
Files:
assets/images/teaching/README.md
_teaching/index.md
_team/index.md
_teaching/2025-Basilisk101nano-ECS.md
**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
markdownlint must pass for Markdown files
Files:
assets/images/teaching/README.md
_teaching/index.md
_team/index.md
_teaching/2025-Basilisk101nano-ECS.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:
assets/images/teaching/README.md
assets/images/**/*
📄 CodeRabbit inference engine (CLAUDE.md)
Optimize images before adding; prefer WebP format where possible
Files:
assets/images/teaching/README.md
**/*.{html,md}
📄 CodeRabbit inference engine (CLAUDE.md)
Use lazy loading for images (e.g., loading="lazy")
Files:
assets/images/teaching/README.md
_teaching/index.md
_team/index.md
_teaching/2025-Basilisk101nano-ECS.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:
assets/images/teaching/README.md
_teaching/index.md
_team/index.md
_teaching/2025-Basilisk101nano-ECS.md
_teaching/index.md
📄 CodeRabbit inference engine (CLAUDE.md)
_teaching/index.md must use the teaching layout
Files:
_teaching/index.md
_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
_teaching/[0-9][0-9][0-9][0-9]-*.md
📄 CodeRabbit inference engine (CLAUDE.md)
Teaching course pages must be created as _teaching/YYYY-CourseName-Location.md using the teaching-course layout
Files:
_teaching/2025-Basilisk101nano-ECS.md
🧠 Learnings (2)
📚 Learning: 2025-08-24T19:49:35.555Z
Learnt from: CR
PR: comphy-lab/comphy-lab.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.555Z
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.555Z
Learnt from: CR
PR: comphy-lab/comphy-lab.github.io#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-24T19:49:35.555Z
Learning: Applies to _teaching/index.md : _teaching/index.md must use the teaching layout
Applied to files:
_teaching/index.md
🪛 LanguageTool
assets/images/teaching/README.md
[grammar] ~12-~12: There might be a mistake here.
Context: ...urses (used by both Madrid and ECS 2025) 2. basilisk-madrid-banner.jpg - Banner im...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ...pages (used by both Madrid and ECS 2025) 3. courseBanner-dark.jpg - Dark mode bann...
(QB_NEW_EN)
_teaching/2025-Basilisk101nano-ECS.md
[grammar] ~62-~62: There might be a mistake here.
Context: ...t approach to multiphase flow simulation - Run Basilisk simulations Compile and e...
(QB_NEW_EN)
[grammar] ~64-~64: There might be a mistake here.
Context: ...Fluid (VOF) approach for two-phase flows - Coating applications Landau-Levich dip...
(QB_NEW_EN)
[grammar] ~65-~65: There might be a mistake here.
Context: ...-Levich dip coating and droplet dynamics - Real-world connections From simulation...
(QB_NEW_EN)
[grammar] ~70-~70: There might be a mistake here.
Context: ...ork. Designed for ECS 2025 participants with intermediate CFD background, the course...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...Foundations and First Steps (9:30-10:30) #### Think before you compute - 9:30-9:45...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ...5** | Opening & Philosophy - Conservation laws and the "physics-first...
(QB_NEW_EN)
[grammar] ~79-~79: There might be a mistake here.
Context: ...e "physics-first" approach to simulation - Why adaptive mesh refinement matters for...
(QB_NEW_EN)
[style] ~80-~80: To elevate your writing, try using an alternative expression here.
Context: ...lation - Why adaptive mesh refinement matters for coating flows - 9:45-10:00 &nbs...
(MATTERS_RELEVANT)
[grammar] ~80-~80: There might be a mistake here.
Context: ...esh refinement matters for coating flows - 9:45-10:00 | **Example 0: ...
(QB_NEW_EN)
[grammar] ~81-~81: There might be a mistake here.
Context: ...sp;| Example 0: Basic Conduction - Setting up a simple heat diffusion probl...
(QB_NEW_EN)
[grammar] ~82-~82: There might be a mistake here.
Context: ...tting up a simple heat diffusion problem - Understanding Basilisk's syntax and stru...
(QB_NEW_EN)
[grammar] ~84-~84: There might be a mistake here.
Context: ...30** | First Basilisk Code - Implementing transport equations in prac...
(QB_NEW_EN)
[grammar] ~85-~85: There might be a mistake here.
Context: ...ementing transport equations in practice - Compilation workflow and debugging basic...
(QB_NEW_EN)
[grammar] ~86-~86: There might be a mistake here.
Context: ...ompilation workflow and debugging basics - *Hands-on exercise: modify and run your f...
(QB_NEW_EN)
[grammar] ~87-~87: There might be a mistake here.
Context: ...se: modify and run your first simulation* - Conduction: [Live demo](https://blogs.co...
(QB_NEW_EN)
[grammar] ~113-~113: There might be a mistake here.
Context: ...on of participant-specific applications. - Resources for continued learning. - Co...
(QB_NEW_EN)
[grammar] ~121-~121: There might be a mistake here.
Context: ...edge of fluid mechanics and CFD concepts - Basic programming experience (C preferre...
(QB_NEW_EN)
[grammar] ~122-~122: There might be a mistake here.
Context: ... preferred, but any language acceptable) - Understanding of partial differential eq...
(QB_NEW_EN)
[grammar] ~123-~123: There might be a mistake here.
Context: ...anding of partial differential equations - Laptop with Unix-like environment (Linux...
(QB_NEW_EN)
[grammar] ~143-~143: There might be a mistake here.
Context: ...hub.com/comphy-lab/basilisk-C/issues/3). Darcs is not supported in the latest ver...
(QB_NEW_EN)
🪛 markdownlint-cli2 (0.17.2)
_teaching/2025-Basilisk101nano-ECS.md
18-18: Trailing spaces
Expected: 0 or 2; Actual: 4
(MD009, no-trailing-spaces)
76-76: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
77-77: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
77-77: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
78-78: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
90-90: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
91-91: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
91-91: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
92-92: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
105-105: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
106-106: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
106-106: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
107-107: Lists should be surrounded by blank lines
(MD032, blanks-around-lists)
130-130: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
211-211: Files should end with a single newline character
(MD047, single-trailing-newline)
🔇 Additional comments (3)
.claude/settings.json (1)
3-11
: Action Required: Verify Configuration Loading & Matcher SemanticsI wasn’t able to locate any references to
PreToolUse
or the CLI‐hook processor in the codebase, so please double‐check the following:
- Confirm that
.claude/settings.json
is actually loaded at runtime and that thePreToolUse
section is recognized by your configuration loader.- Verify whether the
matcher
field is treated as a regex or as a literal string in your hook‐matching logic. If it’s literal, the value"Edit|MultiEdit|Write"
won’t match individual events.- Ensure the
but
CLI (and itsclaude pre-tool
command) is installed and on your PATH before relying on it in a hook.You may need to add logging around your config‐loading/code that dispatches hooks to assert that these entries are picked up and executed as expected.
_team/index.md (1)
116-121
: Honorific update looks good; confirm removal of prior affiliation line was intentional.Title change to “F.R.S.” is clear. You also removed the explicit "Professor, Phys. Fluids - Univ. Twente" line earlier; if not intentional, re-add for consistency with other entries that include affiliation bullets.
_teaching/index.md (1)
1-5
: Layout requirement satisfied._teaching/index.md uses the
teaching
layout as required. No action needed.
Clean up extraneous blank lines, trailing spaces, and formatting inconsistencies in the Basilisk101 course markdown. This improves readability and ensures consistent styling for lists, emphasis, and code blocks. The changes include trimming a trailing space, normalizing emphasized list items from italics markup, removing unintended blank lines, and adjusting spacing around headers and the technical support section.
Replace deprecated clipboard copying via execCommand and temporary textarea with a robust async handler using navigator.clipboard when available, falling back to a hidden textarea. Add an offscreen aria-live region for accessible success/failure announcements and update aria-labels and icon feedback to better convey copy status to assistive technologies.
Replace the old async copy routine with a clearer flow that uses the modern navigator.clipboard.writeText API and a dedicated fallbackCopy function for older browsers. The change simplifies logic, adds debug logging, and ensures consistent UI feedback (check icon and temporary "copied" state) while cleaning up DOM elements reliably after use.
Re-add the removed copy button JavaScript so the teaching page's "copy" button copies text to the clipboard like the landing/about page. The inline script implements modern navigator.clipboard usage with a textarea fallback, updates the button UI on success, and includes error handling — this was necessary because the teaching page had its copy script accidentally deleted, leaving the button non-functional.
Include shared utils.js in the teaching-course layout before main.js so the copy-to-clipboard functionality (used on aboutCoMPhy.md) works on teaching pages. Remove the local, conflicting email styles from assets/css/teaching.css so email containers and copy buttons use the global styles, ensuring consistent appearance. Update teaching content to use the shared email container structure and data-clipboard-text attributes for copying; verified linter clean.
No description provided.