From 8ae401807e9ba4aa4338e0d26ac5812d3a091ef8 Mon Sep 17 00:00:00 2001 From: Jiahao Cheng Date: Thu, 18 Dec 2025 15:29:13 -0500 Subject: [PATCH] feat: reformatting the layout of the publication, funding, and opening page. --- _data/publications.yml | 8 +- _includes/publication-item.html | 130 ++++++++++------------------- _pages/funding.md | 14 ++-- _pages/openings.md | 24 +----- _pages/publications.md | 123 +++++++--------------------- css/main.scss | 141 ++++++++++++++++---------------- 6 files changed, 155 insertions(+), 285 deletions(-) diff --git a/_data/publications.yml b/_data/publications.yml index 95e2da1..c40c3bd 100644 --- a/_data/publications.yml +++ b/_data/publications.yml @@ -80,7 +80,7 @@ year: 2025 status: "published" type: "article" - journal: "Transactions on Machine Learning Research" + journal: "Transactions on Machine Learning Research (TMLR 2025)" issn: "2835-8856" url: "https://openreview.net/pdf?id=e1aXaIXblQ" arxiv: "2506.15976" @@ -157,7 +157,7 @@ year: 2025 status: "published" type: "inproceedings" - booktitle: "Proceedings of the IEEE/CVF Conference on Computer Vision, Pattern Recognition (CVPR) 2025" + booktitle: "Proceedings of the IEEE/CVF Conference on Computer Vision, Pattern Recognition (CVPR 2025)" url: "https://openaccess.thecvf.com/content/CVPR2025/html/Zhang_2DMamba_Efficient_State_Space_Model_for_Image_Representation_with_Applications_CVPR_2025_paper.html" arxiv: "2412.00678" github: "https://github.com/AtlasAnalyticsLab/2DMamba" @@ -227,7 +227,7 @@ year: 2025 status: "published" type: "inproceedings" - booktitle: "International Conference on Learning Representations (ICLR) 2025" + booktitle: "International Conference on Learning Representations (ICLR 2025)" url: "https://openreview.net/pdf?id=puTxuiK2qO" arxiv: "2405.16397" github: "https://github.com/AtlasAnalyticsLab/AdaFisher" @@ -241,7 +241,7 @@ year: 2024 status: "published" type: "inproceedings" - booktitle: "Proceedings of the IEEE/CVF Conference on Computer Vision, Pattern Recognition (CVPR) 2024" + booktitle: "Proceedings of the IEEE/CVF Conference on Computer Vision, Pattern Recognition (CVPR 2024)" url: "https://openaccess.thecvf.com/content/CVPR2024W/CVMI/html/Nasiri-Sarvi_Vim4Path_Self-Supervised_Vision_Mamba_for_Histopathology_Images_CVPRW_2024_paper.html" arxiv: "2404.13222" github: "https://github.com/AtlasAnalyticsLab/Vim4Path" diff --git a/_includes/publication-item.html b/_includes/publication-item.html index edacf4e..ab281c5 100644 --- a/_includes/publication-item.html +++ b/_includes/publication-item.html @@ -1,10 +1,7 @@ {%- comment -%} - Publication card partial: - - Displays a thumbnail column (defaults to the lab logo when no list_image is provided). - - Renders venue metadata and resource links pulled from _data/publications.yml. + Publication list entry rendered in a simple two-column layout (image + text). {%- endcomment -%} {% assign entry = include.entry | default: empty %} -{% assign include_year = include.include_year | default: false %} {% assign item_id = entry.id | default: entry.title | slugify %} {% assign list_image = entry.list_image %} @@ -16,97 +13,56 @@ {% assign list_image = 'images/logopic/group_logo_medium.png' %} {% endif %} -{% assign meta_parts = '' | split: '' %} +{% comment %} + List of possible venue fields in order of preference. +{%- endcomment -%} {% assign venue = entry.journal | default: entry.booktitle | default: entry.publisher | default: entry.school %} -{% if venue %} - {% assign meta_parts = meta_parts | push: venue %} -{% endif %} -{% if entry.series %} - {% assign meta_parts = meta_parts | push: entry.series %} -{% endif %} -{% assign volume_part = '' %} -{% if entry.volume %} - {% assign volume_part = 'Vol. ' | append: entry.volume %} -{% endif %} -{% if entry.number %} - {% assign number_part = 'No. ' | append: entry.number %} - {% if volume_part %} - {% assign volume_part = volume_part | append: ', ' | append: number_part %} - {% else %} - {% assign volume_part = number_part %} - {% endif %} -{% endif %} -{% if volume_part %} - {% assign meta_parts = meta_parts | push: volume_part %} -{% endif %} -{% if entry.pages %} - {% assign meta_parts = meta_parts | push: 'pp. ' | append: entry.pages %} -{% endif %} -{% if entry.month %} - {% assign meta_parts = meta_parts | push: entry.month %} -{% endif %} -{% if include_year and entry.year %} - {% assign meta_parts = meta_parts | push: entry.year %} -{% endif %} -{% capture meta_string %}{{ meta_parts | join: ' ยท ' }}{% endcapture %} -{% assign meta_string = meta_string | strip %} +{% assign link_count = 0 %} +{% if entry.url %}{% assign link_count = link_count | plus: 1 %}{% endif %} +{% if entry.arxiv %}{% assign link_count = link_count | plus: 1 %}{% endif %} +{% if entry.github %}{% assign link_count = link_count | plus: 1 %}{% endif %} +{% if entry.doi %}{% assign link_count = link_count | plus: 1 %}{% endif %} +{% if entry.video %}{% assign link_count = link_count | plus: 1 %}{% endif %} +{% if entry.poster %}{% assign link_count = link_count | plus: 1 %}{% endif %} -
  • -
    -
    +
    +
    +
    Illustration for {{ entry.title | escape }}
    -
    -
    {{ entry.title }}
    +
    +

    {{ entry.title }}

    {% if entry.authors %} -
    {{ entry.authors }}
    + {% endif %} - {% if meta_string != '' %} -
    {{ meta_string }}
    + {% if venue %} +

    {{ venue }}

    {% endif %} {% if entry.note %} -
    {{ entry.note }}
    +

    {{ entry.note }}

    + {% endif %} + {% if link_count > 0 %} +

    + {% if entry.url %} + [LINK] + {% endif %} + {% if entry.arxiv %} + [ARXIV] + {% endif %} + {% if entry.github %} + [CODE] + {% endif %} + {% if entry.doi %} + [DOI] + {% endif %} + {% if entry.video %} + [VIDEO] + {% endif %} + {% if entry.poster %} + [POSTER] + {% endif %} +

    {% endif %} -
    -
  • + diff --git a/_pages/funding.md b/_pages/funding.md index 083e12a..932562a 100644 --- a/_pages/funding.md +++ b/_pages/funding.md @@ -46,31 +46,31 @@ We are grateful to the following organizations that generously fund our activiti
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    diff --git a/_pages/openings.md b/_pages/openings.md index 87f804a..fa2cfea 100644 --- a/_pages/openings.md +++ b/_pages/openings.md @@ -28,24 +28,6 @@ permalink: /openings --- -We seek high-caliber candidates with strong academic records (high CGPAs), research experience in medical imaging or computer vision, publications in top-tier AI/ML venues (CVPR, NeurIPS, ICLR, ICML, TMLR), and hands-on experience with PyTorch and deep learning implementation. - -We are currently recruiting for the following positions: - -1. **Fully Funded PhD Position in AI for Computational Pathology and Medicine** - Co-supervised with [**Prof. Christopher Pal**](https://scholar.google.com/citations?hl=en&user=1ScWJOoAAAAJ&view_op=list_works&sortby=pubdate) - - See instructions and details in [PDF]({{ site.url }}{{ site.baseurl }}/assets/openings/PhD_Hiring_Post_2026_Pathology@McGill%20(CPv2-MSHv2).pdf) - -2. **Fully Funded PhD Position in Diffusion Generative Modeling and Deep Learning for Medical Imaging (Radiology & Pathology)** - Co-supervised with [**Prof. Hassan Rivaz**](https://scholar.google.com/citations?hl=zh-CN&user=FWDzqVUAAAAJ&view_op=list_works&sortby=pubdate) - - See instructions and details in [PDF]({{ site.url }}{{ site.baseurl }}/assets/openings/Hiring_Post_Diffusion_Generatrive_Modeling_2026_HRv1_MSHv2.pdf) - ---- - -## Funding / Fellowships - -Applicants with **external scholarships or fellowships** are encouraged and fully supported: - -- **[FRQNT Graduate Scholarships](https://frq.gouv.qc.ca/en/open-competitions/)** (Unrestricted) -- **[NSERC](https://www.nserc-crsng.gc.ca/index_eng.asp)** (Canadian PR or citizen) -- **[Pierre Arbour Foundation](https://www.fondationarbour.com/en/bourses-d-etudes-doctoract-phd-dba/)** (Unrestricted) - -We support candidates in preparing fellowship applications. +We seek high-caliber candidates with strong academic records (high CGPAs), research experience in medical imaging or computer vision, publications in top-tier AI/ML venues (CVPR, NeurIPS, ICLR, ICML, TMLR), and hands-on experience with PyTorch and deep learning implementation. We are currently recruiting for the following positions: +1. **Fully Funded PhD Position in AI for Computational Pathology and Medicine** - Co-supervised with [**Prof. Christopher Pal**](https://scholar.google.com/citations?hl=en&user=1ScWJOoAAAAJ&view_op=list_works&sortby=pubdate). See instructions and details in [PDF]({{ site.url }}{{ site.baseurl }}/assets/openings/PhD_Hiring_Post_2026_Pathology@McGill%20(CPv2-MSHv2).pdf) +2. **Fully Funded PhD Position in Diffusion Generative Modeling and Deep Learning for Medical Imaging (Radiology & Pathology)** - Co-supervised with [**Prof. Hassan Rivaz**](https://scholar.google.com/citations?hl=zh-CN&user=FWDzqVUAAAAJ&view_op=list_works&sortby=pubdate). See instructions and details in [PDF]({{ site.url }}{{ site.baseurl }}/assets/openings/Hiring_Post_Diffusion_Generatrive_Modeling_2026_HRv1_MSHv2.pdf) diff --git a/_pages/publications.md b/_pages/publications.md index a9a814f..c911364 100644 --- a/_pages/publications.md +++ b/_pages/publications.md @@ -18,10 +18,9 @@ permalink: /publications/ - _data/publications.yml Sections: - 1. Group Highlights (featured publications with highlight: 1) + 1. Published (status: "published", grouped by year, newest first) 2. Under Review / Under Revision (status: "under_review") - 3. Published (status: "published", grouped by year, newest first) - + Components: - publication-item.html (renders individual publication cards) @@ -36,111 +35,45 @@ permalink: /publications/ - Add highlight_details for custom highlight display - Modify grouping logic in Liquid loops --> - -# Publications - - - -Our research integrates computer vision, deep learning, optimization, and natural language processing, with a primary application focus on digital and computational pathology. Contributions such as 2DMamba, Tissue2Vec, Vim4Path, ADPv2, and AdaFisher collectively drive forward transparent, efficient, and clinically relevant machine learning for pathology and medical imaging. - -
    - ---- - -(See also the personal webpage of our group members) +## List of Publications {% assign all_publications = site.data.publications | default: empty | compact %} -{% assign highlights = all_publications | where: 'highlight', 1 | sort: 'year' | reverse %} -{% assign under_review = all_publications | where: 'status', 'under_review' | sort: 'year' | reverse %} -{% assign published_entries = all_publications | where: 'status', 'published' | sort: 'year' | reverse %} - -{% if highlights.size > 0 %} - -## Group Highlights - -(For a full list of publications, see [below](#list-of-publications), and see also the personal webpage of our group members) -
    -{% for entry in highlights %} - {% assign details = entry.highlight_details | default: empty %} - {% assign layout = details.layout | default: 'standard' %} - {% assign highlight_image = details.image | default: entry.list_image %} - {% if highlight_image %} - {% if highlight_image contains '/' %} - {% assign highlight_image_path = highlight_image %} - {% else %} - {% assign highlight_image_path = 'images/pubpic/' | append: highlight_image %} - {% endif %} - {% endif %} - {% assign width_percent = '40%' %} - {% if layout == 'wide' %} - {% assign width_percent = '20%' %} - {% endif %} -
    -
    - {{ entry.title }} - {% if highlight_image_path %} - Illustration for {{ entry.title | escape }} - {% endif %} - {% if details.description %}

    {{ details.description }}

    {% endif %} - {% if entry.authors %}

    {{ entry.authors }}

    {% endif %} - {% if details.link_url %} -

    {{ details.link_label | default: details.link_url }}

    - {% endif %} - {% if details.news_primary %} -

    {{ details.news_primary }}

    - {% endif %} - {% if details.news_secondary %} -

    {{ details.news_secondary }}

    - {% endif %} -
    -
    -{% endfor %} -
    -{% endif %} - -

     

    - -## List of Publications +{% assign published_entries = all_publications | where: 'status', 'published' %} +{% assign under_review_entries = all_publications | where: 'status', 'under_review' %} {% if published_entries.size > 0 %} - + ### Published -
    - {%- comment -%} - 1) Start from the data file to preserve file order (newest first at top of file). - Filter to the entries we want to display (status == "published"). - {%- endcomment -%} - {%- assign entries_all = site.data.publications -%} - {%- assign entries = entries_all | where: "status", "published" -%} - - {%- comment -%} - 2) Collect distinct years, sort descending. - {%- endcomment -%} - {%- assign years = entries | map: "year" | compact | uniq | sort | reverse -%} - - {%- for y in years -%} -

    {{ y }}

    -
      +
      + {%- assign published_years = published_entries | map: 'year' | compact | uniq | sort | reverse -%} + {%- for y in published_years -%} +

      {{ y }}

      +
      {%- comment -%} - 3) For this year, take entries in their original file order (newest first). + Keep file order within each year so newer items stay on top. {%- endcomment -%} - {%- assign items_for_year = entries | where: "year", y -%} + {%- assign items_for_year = published_entries | where: 'year', y -%} {%- for entry in items_for_year -%} - {%- include publication-item.html entry=entry include_year=false -%} + {%- include publication-item.html entry=entry -%} {%- endfor -%} -
    +
    {%- endfor -%} {% endif %} -{% if under_review.size > 0 %} - +{% if under_review_entries.size > 0 %} + ### Under Review / Under Revision -
    -
      - {% for entry in under_review %} - {% include publication-item.html entry=entry include_year=true %} - {% endfor %} -
    +
    + {%- assign review_years = under_review_entries | map: 'year' | compact | uniq | sort | reverse -%} + {%- for y in review_years -%} +

    {{ y }}

    +
    + {%- assign items_for_year = under_review_entries | where: 'year', y -%} + {%- for entry in items_for_year -%} + {%- include publication-item.html entry=entry -%} + {%- endfor -%} +
    + {%- endfor -%}
    {% endif %} diff --git a/css/main.scss b/css/main.scss index 4b3c3b6..533c005 100644 --- a/css/main.scss +++ b/css/main.scss @@ -485,109 +485,108 @@ p.byline { } /* -------------------------------------------------------------------------- - * Publication cards + * Publication list * ----------------------------------------------------------------------- */ -.publication-item { - margin-bottom: 1.75rem; +.publication-list { + margin-top: 1.5rem; } -.publication-card { - display: flex; - flex-direction: row; - align-items: stretch; - gap: 1.25rem; - background-color: var(--atlas-surface-bg); - border: 1px solid var(--atlas-border-color); - border-radius: 0.9rem; - padding: 1.25rem; - box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05); +.publication-year-heading { + font-size: 1.35rem; + font-weight: 600; + border-bottom: 1px solid var(--atlas-border-color); + padding-bottom: 0.35rem; + margin-top: 2rem; + margin-bottom: 0.5rem; } -.publication-card--with-media .publication-card__media { - flex: 0 0 30%; - max-width: 30%; +.publication-year-group { display: flex; - align-items: stretch; - align-self: stretch; - margin: -1.25rem 0 -1.25rem -1.25rem; + flex-direction: column; +} + +.publication-item { + margin: 0; padding: 0; - border-radius: 0.9rem 0 0 0.9rem; - overflow: hidden; } -.publication-card__media img { - display: block; +.publication-entry { + display: flex; + gap: 1rem; + padding: 0.75rem 0; + border-bottom: 1px solid var(--atlas-border-color); +} + +.publication-entry:last-child { + border-bottom: none; +} + +.publication-entry__image { + flex: 0 0 200px; + width: 200px; + height: 110px; +} + +.publication-entry__image img { width: 100%; height: 100%; - border-radius: 0; object-fit: cover; - object-position: center top; margin: 0 !important; - padding: 0; - border: none; + border-radius: 6px; + box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.15); } -.publication-card__body { +.publication-entry__details { flex: 1 1 auto; } -.publication-title { - font-weight: 700; - font-size: 1.05rem; - margin-bottom: 0.25rem; +.publication-entry__details p { + margin: 0.1rem 0; + line-height: 1.35; } -.publication-authors { - color: var(--atlas-muted-text); - margin-bottom: 0.35rem; +.publication-entry__title { + margin-top: 0; + margin-bottom: 0.15rem; } -.publication-meta, -.publication-note { - margin-bottom: 0.35rem; +.publication-entry__links { + margin-top: 0.25rem; } -.publication-links { - display: flex; - flex-wrap: wrap; - gap: 0.5rem; - margin-top: 0.5rem; -} - -.pub-link { - display: inline-flex; - align-items: center; - justify-content: center; - font-size: 0.85rem; - padding: 0.35rem 0.75rem; - border-radius: 999px; - border: 1px solid var(--atlas-border-color); - background-color: var(--atlas-body-bg); +.publication-entry__links a { color: var(--atlas-link-color); text-decoration: none; - transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; + margin-right: 0.5rem; + font-size: 0.9rem; } -.pub-link:hover, -.pub-link:focus { - background-color: var(--atlas-link-color); - color: #fff; - border-color: transparent; -} - -.pub-link.placeholder { - color: var(--atlas-muted-text); - border-style: dashed; +.publication-entry__links a:hover, +.publication-entry__links a:focus { + text-decoration: underline; } -@media (max-width: 767.98px) { - .publication-card { +@media (max-width: 575.98px) { + .publication-entry { flex-direction: column; } - .publication-card--with-media .publication-card__media, - .publication-card__media { - max-width: 100%; - flex: 0 0 auto; + .publication-entry__image { + width: 100%; + height: auto; } + + .publication-entry__image img { + height: auto; + } +} + +/* Funding logos */ +.funding-logo { + width: 100%; + max-width: 240px; + height: auto; + margin: 0 auto 1.5rem; + display: block; + object-fit: contain; }