diff --git a/README.md b/README.md index 57fbb28..009cfce 100644 --- a/README.md +++ b/README.md @@ -12,21 +12,28 @@ In most cases, you do not need to run the site locally. You can edit the content 2. [Recommended Workflow For Most Editors](#recommended-workflow-for-most-editors) 3. [Website Structure](#website-structure) 4. [Important Notes Before Editing](#important-notes-before-editing) -5. [Which File Controls Each Page](#which-file-controls-each-page) -6. [Editable Pages And What Can Be Updated](#editable-pages-and-what-can-be-updated) -7. [Home Page](#home-page) -8. [Leader Page](#leader-page) -9. [Team Page](#team-page) -10. [News Page](#news-page) -11. [Publications Page](#publications-page) -12. [Join Page](#join-page) -13. [Contact Page](#contact-page) -14. [Adding Images](#adding-images) -15. [Recommended Editing Method](#recommended-editing-method) -16. [Optional: Preview The Site Locally](#optional-preview-the-site-locally) -17. [Quick Reference](#quick-reference) -18. [Troubleshooting](#troubleshooting) -19. [Final Note](#final-note) +5. [Content Map](#content-map) + 1. [Home Page](#home-page) + 2. [Leader Page](#leader-page) + 3. [Team Page](#team-page) + 4. [News Page](#news-page) + 5. [Publications Page](#publications-page) + 6. [Join Page](#join-page) + 7. [Contact Page](#contact-page) + 8. [Images](#images) +6. [Editing Guide](#editing-guide) + 1. [Home Page](#home-page-1) + 2. [Leader Page](#leader-page-1) + 3. [Team Page](#team-page-1) + 4. [News Page](#news-page-1) + 5. [Publications Page](#publications-page-1) + 6. [Join Page](#join-page-1) + 7. [Contact Page](#contact-page-1) +7. [Recommended Editing Method](#recommended-editing-method) +8. [Optional: Preview The Site Locally](#optional-preview-the-site-locally) +9. [Quick Reference](#quick-reference) +10. [Troubleshooting](#troubleshooting) +11. [Final Note](#final-note) ## Overview @@ -84,253 +91,61 @@ If a page breaks after editing, the most common causes are: - a missing closing quote - an incorrect image path -## Which File Controls Each Page - -### Home page - -Page URL: - -```text -/ -``` - -Main file: - -```text -/index.html -``` - -This file contains: - -- the homepage welcome text -- research area cards -- homepage links -- hero carousel image references - -### Leader page - -Page URL: - -```text -/leader/ -``` - -Main content file: - -```text -/_data/leader.yml -``` - -Display file: - -```text -/leader.html -``` - -In normal use, only `/_data/leader.yml` needs to be edited. - -### Team page - -Page URL: - -```text -/team/ -``` - -Main content file: - -```text -/_data/team.yml -``` - -Display file: - -```text -/team.html -``` - -In normal use, only `/_data/team.yml` needs to be edited. - -### News page - -Page URL: - -```text -/news/ -``` - -Main content file: - -```text -/_data/news.yml -``` - -### Publications page - -Page URL: - -```text -/publications/ -``` - -Main content file: - -```text -/_data/publications.yml -``` - -### Join page - -Page URL: - -```text -/join/ -``` - -Main content file: - -```text -/_data/join.yml -``` - -### Contact page - -Page URL: - -```text -/contact/ -``` - -Main content file: - -```text -/_data/contact.yml -``` - -## Editable Pages And What Can Be Updated +## Content Map ### Home Page -You can update: - -- welcome text -- research area titles and descriptions -- research links -- homepage hero images - -Main file: - -```text -/index.html -``` +- URL: `/` +- Main file: `/index.html` +- You can update: welcome text, research area cards, research links, hero images ### Leader Page -You can update: - -- leader name -- title -- tagline -- photo -- email -- social links -- bio -- research interests -- education -- awards - -Main file: - -```text -/_data/leader.yml -``` +- URL: `/leader/` +- Main file: `/_data/leader.yml` +- Display file: `/leader.html` +- You can update: name, title, tagline, photo, email, social links, bio, interests, education, awards ### Team Page -You can update: - -- team member names -- roles -- photos -- bios -- email and profile links -- keywords -- alumni status - -Main file: - -```text -/_data/team.yml -``` +- URL: `/team/` +- Main file: `/_data/team.yml` +- Display file: `/team.html` +- You can update: member names, roles, photos, bios, profile links, keywords, alumni status ### News Page -You can update: - -- news titles -- dates -- descriptions -- links inside the news text - -Main file: - -```text -/_data/news.yml -``` +- URL: `/news/` +- Main file: `/_data/news.yml` +- You can update: titles, dates, descriptions, links inside news text ### Publications Page -You can update: - -- paper titles -- authors -- venue -- year -- type -- badge -- selected status -- paper, code, dataset, video, and demo links - -Main file: - -```text -/_data/publications.yml -``` +- URL: `/publications/` +- Main file: `/_data/publications.yml` +- You can update: title, authors, venue, year, type, badge, selected status, and related links ### Join Page -You can update: - -- page title -- intro text -- open positions -- join instructions -- contact email - -Main file: - -```text -/_data/join.yml -``` +- URL: `/join/` +- Main file: `/_data/join.yml` +- You can update: title, intro text, open positions, join instructions, contact email ### Contact Page -You can update: +- URL: `/contact/` +- Main file: `/_data/contact.yml` +- You can update: office hours, address, email, map embed link -- office hours -- address -- contact email -- map embed link +### Images -Main file: - -```text -/_data/contact.yml -``` +- Team photos: `/images/uploads/team/` +- Leader photos: `/images/uploads/leader/` +- Home page images: `/images/` -## How To Edit Each Page +## Editing Guide -## Home Page +### Home Page File: @@ -400,7 +215,7 @@ to: '/images/new-group-photo.jpg' ``` -## Leader Page +### Leader Page File: @@ -484,7 +299,7 @@ interests: - Human-centered AI ``` -## Team Page +### Team Page File: @@ -561,7 +376,7 @@ alumni: true photo: "uploads/team/john.jpg" ``` -## News Page +### News Page File: @@ -616,7 +431,7 @@ Example: content: "We received an award. Read more." ``` -## Publications Page +### Publications Page File: @@ -669,7 +484,7 @@ links: paper: "https://example.com/paper.pdf" ``` -## Join Page +### Join Page File: @@ -704,7 +519,7 @@ positions: description: Short-term opportunities for motivated students. ``` -## Contact Page +### Contact Page File: @@ -756,7 +571,7 @@ Find: Replace both email values with the new address. -## Adding Images +## Images ### Team images diff --git a/_data/publications.yml b/_data/publications.yml index 96d5992..e0b17d9 100644 --- a/_data/publications.yml +++ b/_data/publications.yml @@ -2,15 +2,25 @@ publications: - title: "Afri-MCQA: Multimodal Cultural Question Answering for African Languages" authors: "Atnafu Lambebo Tonja, Srija Anand, Emilio Villa-Cueva, Israel Abebe Azime, Jesujoba Oluwadara Alabi, Muhidin A Mohamed, Debela Desalegn Yadeta, Negasi Haile Abadi, Abigail Oppong, Nnaemeka Casmir Obiefuna, Idris Abdulmumin, Naome A Etori, Eric Peter Wairagala, Kanda Patrick Tshinu, Imanigirimbabazi Emmanuel, Gabofetswe Malema, Alham Fikri Aji, David Ifeoluwa Adelani, Thamar Solorio" - venue: "arXiv preprint" + venue: "Annual Meeting of the Association for Computational Linguistics (ACL)" year: 2026 - type: "preprint" - badge: "preprint" - selected: false + type: "conference" + badge: "ACL" + selected: true links: paper: "https://arxiv.org/pdf/2601.05699" dataset: "https://huggingface.co/datasets/Atnafu/Afri-MCQA" + - title: "Towards Fast and Accurate Modeling for Cross-Lingual Label Projection" + authors: "Thang Le, Huy Huu Nguyen, Anh Tuan Luu, Thamar Solorio, Thien Huu Nguyen" + venue: "Annual Meeting of the Association for Computational Linguistics (ACL)" + year: 2026 + type: "conference" + badge: "ACL" + selected: true + links: + paper: "" + - title: "Beyond Understanding: Evaluating the Pragmatic Gap in LLMs' Cultural Processing of Figurative Language" authors: "Mena Attia, Aashiq Muhamed, Mai Alkhamissi, Thamar Solorio, Mona Diab" venue: "European Chapter of the Association for Computational Linguistics (EACL)" diff --git a/assets/css/styles.css b/assets/css/styles.css index af29944..08248eb 100644 --- a/assets/css/styles.css +++ b/assets/css/styles.css @@ -1483,6 +1483,32 @@ img { box-shadow: 0 4px 12px rgba(10, 25, 47, 0.3); } +.pub-link-btn-placeholder { + cursor: pointer; +} + +.coming-soon-toast { + position: absolute; + z-index: 1200; + padding: 0.45rem 0.75rem; + border-radius: 999px; + background-color: rgba(10, 25, 47, 0.96); + color: #fff; + font-size: 0.82rem; + font-weight: 600; + line-height: 1.2; + pointer-events: none; + box-shadow: 0 10px 24px rgba(10, 25, 47, 0.22); + opacity: 0; + transform: translate(8px, -50%) scale(0.96); + transition: opacity 0.18s ease, transform 0.18s ease; +} + +.coming-soon-toast.is-visible { + opacity: 1; + transform: translate(16px, -50%) scale(1); +} + @media (max-width: 768px) { .year-heading { font-size: 1.5rem; diff --git a/assets/js/script.js b/assets/js/script.js index 7bd6c13..2ff5d71 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -178,6 +178,70 @@ document.addEventListener('DOMContentLoaded', function () { }); }; + const initPublicationPlaceholderButtons = () => { + const placeholderButtons = document.querySelectorAll('.pub-link-btn-placeholder[data-coming-soon]'); + if (!placeholderButtons.length) return; + + let activeToast = null; + let activeToastTimer = null; + let activeButton = null; + + const positionToast = button => { + if (!activeToast || !button) return; + const rect = button.getBoundingClientRect(); + const top = rect.top + window.scrollY + (rect.height / 2); + const left = rect.right + window.scrollX; + activeToast.style.top = `${top}px`; + activeToast.style.left = `${left}px`; + }; + + const removeToast = () => { + if (!activeToast) return; + const toastToRemove = activeToast; + activeToast = null; + activeButton = null; + if (activeToastTimer) { + window.clearTimeout(activeToastTimer); + activeToastTimer = null; + } + toastToRemove.classList.remove('is-visible'); + window.setTimeout(() => { + toastToRemove.remove(); + }, 180); + }; + + const showToast = button => { + removeToast(); + + const toast = document.createElement('div'); + const message = button.getAttribute('data-coming-soon') || 'Coming soon!'; + + toast.className = 'coming-soon-toast'; + toast.textContent = message; + document.body.appendChild(toast); + activeToast = toast; + activeButton = button; + positionToast(button); + + window.requestAnimationFrame(() => { + toast.classList.add('is-visible'); + }); + + activeToastTimer = window.setTimeout(removeToast, 1400); + }; + + placeholderButtons.forEach(button => { + button.addEventListener('click', event => { + event.preventDefault(); + showToast(button); + }); + }); + + window.addEventListener('resize', () => { + positionToast(activeButton); + }); + }; + // Keep team cards uniform in default state while allowing independent hover expansion. const initTeamCardSizing = () => { const teamGrids = document.querySelectorAll('.team-grid-simple'); @@ -515,6 +579,7 @@ document.addEventListener('DOMContentLoaded', function () { if (pubSection) { initPublicationFilter(); initPublicationAuthorToggles(); + initPublicationPlaceholderButtons(); } const teamSection = document.querySelector('.team-section'); @@ -640,4 +705,4 @@ document.addEventListener('DOMContentLoaded', function () { window.scrollTo({ top: 0, behavior: prefersReducedMotion ? 'auto' : 'smooth' }); }); } -}); \ No newline at end of file +}); diff --git a/publications.html b/publications.html index db0ddbf..6c14479 100644 --- a/publications.html +++ b/publications.html @@ -75,6 +75,8 @@

{{ pub.title }}

{% endfor %} - \ No newline at end of file +