Create, update, or delete a "Starship" project subpage for the GMAI Lab Jekyll website
(repo: uni-medical/gmai-web). Handles both English and Chinese versions, uploads images,
and updates the homepage landing panel link. Use when adding a new research project page,
modifying an existing one, or removing it. Covers the full file chain:
pages/projects/{slug}.md · pages/zh/projects/{slug}.md · index.md · zh/index.md ·
assets/images/projects/{slug}/.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Create, update, or delete a "Starship" project subpage for the GMAI Lab Jekyll website
(repo: uni-medical/gmai-web). Handles both English and Chinese versions, uploads images,
and updates the homepage landing panel link. Use when adding a new research project page,
modifying an existing one, or removing it. Covers the full file chain:
pages/projects/{slug}.md · pages/zh/projects/{slug}.md · index.md · zh/index.md ·
assets/images/projects/{slug}/.
allowed-tools
["Read","Write","Edit","Bash","Glob","Grep"]
GMAI Lab — Starship Project Subpage Skill
Overview
The GMAI Lab website has five research sections on its homepage (index.md / zh/index.md).
Each section links to a dedicated "Starship" project subpage.
Current implementations:
Section
Theme CSS class
Watermark
Current Starship
1 — Medical Data Infrastructure
vis-neural
01
/projects/imaging-x/
2 — Medical Multimodal LLMs
vis-genomics
02
/projects/gmai-vl/
3 — Medical Image Segmentation
vis-molecular
03
/projects/sam-med3d/
4 — Clinical AI Systems
vis-clinical
04
/projects/slide-chat/
5 — Scalable Segmentation
vis-stunet
05
/projects/stu-net/
Additional Starship pages (not on landing but in project listing):
/projects/ophclip/ — OphCLIP surgical video-language model
Cross-Linking Requirements
When creating a Starship subpage, also ensure:
_data/projects.yml has a matching entry with slug, thumbnail, links
Landing page (index.md + zh/index.md) links to the subpage (if featured)
Thumbnail image exists for the project listing page (pages/projects.md)
.rs-thumb floating thumbnail added inside the landing section's .rs-text div
Use the existing subpages as ground-truth templates:
EN template: pages/projects/imaging-x.md or pages/projects/sam-med3d.md
ZH template: pages/zh/projects/imaging-x.md or pages/zh/projects/sam-med3d.md
When to Use This Skill
Trigger phrases / scenarios:
"Add a Starship subpage for [project name]"
"Create the GMAI-VL project page"
"我们来做 Section 2 的 Starship 子页"
"Update the SAM-Med3D page with new figures"
"Remove the imaging-x starship page"
"Change the Section 4 link to DTR-MAS"
Prerequisites: Collect Before Starting
Ask the user for (or derive from context):
Required
SLUG kebab-case identifier, e.g. "gmai-vl" → used in all file paths & URLs
SECTION homepage section number: 1 / 2 / 3 / 4
TITLE_EN English project title, e.g. "GMAI-VL"
TITLE_ZH Chinese project title, e.g. "GMAI-VL"
SUBTITLE_EN One-sentence italic subtitle (EN)
SUBTITLE_ZH One-sentence italic subtitle (ZH)
AREA_EN Short area label, e.g. "Medical Vision-Language Models"
AREA_ZH Short area label, e.g. "医学多模态大模型"
INSTITUTION_EN Lead institution + collaborators (EN)
INSTITUTION_ZH Lead institution + collaborators (ZH)
GITHUB_URL Full GitHub URL (or empty string if none)
ARXIV_ID arXiv ID, e.g. "2411.14522" (or empty if none)
INTRO_EN 2–3 paragraphs of introductory text (EN)
INTRO_ZH 2–3 paragraphs of introductory text (ZH)
HIGHLIGHTS List of 4 highlight objects (see format below)
CONCLUSION_EN Conclusion callout paragraph (EN)
CONCLUSION_ZH Conclusion callout paragraph (ZH)
CONTRIBUTIONS_EN 4 bullet points (EN)
CONTRIBUTIONS_ZH 4 bullet points (ZH)
AUTHORS_EN Full comma-separated author list; PI "Junjun He" bold in <strong>
AUTHORS_ZH Same list in ZH convention (usually same names)
IMAGES List of image filenames the user will supply (placed in assets/images/projects/{SLUG}/)
Highlight object format
{
number: "01"
title_en: "Short highlight title"
title_zh: "短标题"
body_en: "1–2 paragraph body text (EN)"
body_zh: "1–2 paragraph body text (ZH)"
figure_file: "filename.png" # image in assets/images/projects/{SLUG}/
caption_en: "Figure caption (EN)"
caption_zh: "Figure caption (ZH)"
loading: "eager" | "lazy" # eager for first figure, lazy for rest
}
Optional links
HUGGINGFACE_PAPER_URL (e.g. https://huggingface.co/papers/2411.14522)
HUGGINGFACE_DATASET_URL (e.g. https://huggingface.co/datasets/...)
DEMO_URL (live demo link)
LINK_BTN_TEXT_EXTRA custom label for extra button
Repository & Stack Quick Reference
Repo: git@github.com:uni-medical/gmai-web.git
Stack: Jekyll 4 · GitHub Pages · SCSS · No npm · No custom plugins
Local: export GEM_HOME="$HOME/.local/share/gem/ruby/3.2.0"
export PATH="$GEM_HOME/bin:$PATH"
bundle exec jekyll serve --baseurl "" --port 4001
Deploy: git push origin main → GitHub Actions auto-deploys
WSL2 note: jekyll --watch does NOT auto-regenerate on NTFS drives.
Must Ctrl+C and restart server after every file change.
Key file map
index.md EN homepage (4 research sections)
zh/index.md ZH homepage (mirrors EN, Chinese text)
pages/projects/{slug}.md EN project subpage ← CREATE THIS
pages/zh/projects/{slug}.md ZH project subpage ← CREATE THIS
assets/images/projects/{slug}/ Images for the project ← UPLOAD HERE
_data/publications.yml Publication metadata (authors, links)
_data/team.yml Team member data
_config.yml Site-wide settings (lab.pi_last = "He")
If user has provided image files, place them in this directory.
If images are pending, use the placeholder <div> pattern (see Image Placeholders section).
Step 2 — Write EN subpage
File: pages/projects/{SLUG}.md
Use the template in the EN Page Template section below.
Replace every {PLACEHOLDER} with the collected inputs.
Step 3 — Write ZH subpage
File: pages/zh/projects/{SLUG}.md
Use the template in the ZH Page Template section below.
Same structure, Chinese text, permalink /zh/projects/{SLUG}/.
Step 4 — Update EN homepage link
File: index.md
Find the Section corresponding to {SECTION} (use watermark number to locate):
<!-- grep pattern to find the right line -->
<div class="rs-watermark">{SECTION_PADDED}</div> e.g. 02
Within that section's <div class="rs-text"> block, find and replace the rs-link:
<!-- BEFORE (generic) --><ahref="{{ '/publications/' | relative_url }}"class="rs-link">View publications →</a><!-- AFTER (specific) --><ahref="{{ '/projects/{SLUG}/' | relative_url }}"class="rs-link">Explore {TITLE_EN} →</a>
Step 5 — Update ZH homepage link
File: zh/index.md
Same pattern as Step 4 but in the ZH file:
<!-- BEFORE (generic) --><ahref="{{ '/zh/publications/' | relative_url }}"class="rs-link">查看论文 →</a><!-- AFTER (specific) --><ahref="{{ '/zh/projects/{SLUG}/' | relative_url }}"class="rs-link">探索 {TITLE_ZH} →</a>
Use loading="eager" for the first/hero image only. All others use loading="lazy".
Homepage Landing Panel Reference
The landing page uses .rs-section blocks. Here is the minimal diff needed to wire
a new Starship page to an existing section. Only the .rs-link line changes:
<!-- Section 2 example, in index.md --><!-- BEFORE --><ahref="{{ '/publications/' | relative_url }}"class="rs-link">View publications →</a><!-- AFTER --><ahref="{{ '/projects/gmai-vl/' | relative_url }}"class="rs-link">Explore GMAI-VL →</a>
<!-- Section 2 example, in zh/index.md --><!-- BEFORE --><ahref="{{ '/zh/publications/' | relative_url }}"class="rs-link">查看论文 →</a><!-- AFTER --><ahref="{{ '/zh/projects/gmai-vl/' | relative_url }}"class="rs-link">探索 GMAI-VL →</a>
Do NOT touch anything else in the .rs-section blocks — tags, stats, body text,
and topics are independent of the subpage and are updated separately if needed.
Verification Checklist
After creating a Starship subpage, verify all of the following before committing:
EN subpage
[ ] curl http://localhost:4001/projects/{SLUG}/ → HTTP 200
[ ] <h1> contains correct title
[ ] All images load (no 404 in browser DevTools)
[ ] Resource link buttons present (GitHub, arXiv, etc.)
[ ] Authors section has Junjun He in <strong>
[ ] "← Back to Projects" link works
ZH subpage
[ ] curl http://localhost:4001/zh/projects/{SLUG}/ → HTTP 200
[ ] <h1> contains correct title
[ ] Content is in Chinese (not English copy-paste error)
[ ] "← 返回项目列表" link works
[ ] Breadcrumb links to /zh/projects/
Homepage integration
[ ] curl http://localhost:4001/ | grep "projects/{SLUG}" returns a match
[ ] curl http://localhost:4001/zh/ | grep "projects/{SLUG}" returns a match
[ ] Click-through on live site works (Section N → subpage)
Git
[ ] git status shows correct files staged
[ ] Commit message follows: feat: add {TITLE_EN} Starship subpage
[ ] git push origin main succeeds
[ ] GitHub Actions workflow passes (check Actions tab)
Notes on the GMAI Lab Jekyll Architecture
No custom plugins: All Liquid templates must use GitHub Pages whitelisted plugins only
Baseurl: In production the site is at /gmai-web/ (set in _config.yml); always use {{ '/path/' | relative_url }} filter, never hardcode paths
PI auto-bolding: The publication card (_includes/pub_card.html) auto-bolds site.lab.pi_last ("He") in author lists. On subpages, manually wrap <strong>Junjun He</strong> in the authors paragraph
SCSS layers: Homepage styles live in _sass/_home.scss; subpage interior styles in _sass/_components.scss. Subpages use inline styles to avoid class naming conflicts
Language system: Data files (_data/*.yml) are shared; UI strings are in _data/strings.yml keyed by en / zh; page language set by lang: front matter
WSL2 limitation: jekyll serve --watch does NOT detect file changes on NTFS mounts. After every file edit, restart the server manually (Ctrl+C → re-run command)
_ID}<ahref="https://arxiv.org/abs/{ARXIV_ID}"target="_blank"rel="noopener"class="pub-btn">arXiv Paper</a>{/IF}
<ahref="{{ '/projects/' | relative_url }}"class="pub-btn">← Back to Projects</a></div></div>