diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2d596d4..41ab472 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,16 +29,48 @@ jobs: accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} command: pages deploy _site --project-name=eegmanysteps --branch=${{ github.head_ref || 'main' }} - - name: Comment preview URL on PR + - name: Update deployment comment on PR if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: script: | - github.rest.issues.createComment({ - issue_number: context.issue.number, + const marker = ''; + const branch = context.payload.pull_request.head.ref; + const branchSlug = branch.replace(/[^a-z0-9]/gi, '-').toLowerCase(); + const branchUrl = `https://${branchSlug}.eegmanysteps.pages.dev`; + const body = [ + marker, + `**Cloudflare Pages deployment**`, + `| | |`, + `|---|---|`, + `| **Status** | Deployed |`, + `| **Branch URL** | ${branchUrl} |`, + `| **Deployment URL** | ${process.env.DEPLOYMENT_URL} |`, + `| **Branch** | \`${branch}\` |`, + `| **Commit** | \`${context.payload.pull_request.head.sha.slice(0, 7)}\` |`, + ].join('\n'); + + const { data: comments } = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, - body: `Preview deployment: ${process.env.DEPLOYMENT_URL}` - }) + issue_number: context.issue.number, + }); + const existing = comments.find(c => c.body.includes(marker)); + + if (existing) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existing.id, + body, + }); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body, + }); + } env: DEPLOYMENT_URL: ${{ steps.deploy.outputs.deployment-url }} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..dc8e8ed --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,43 @@ +# EEGManySteps Website + +Quarto-based website for the EEGManySteps initiative. + +## Project structure + +``` +_quarto.yml # Site config (navbar, theme, format) +index.qmd # Home page (motivation, project, methodology, organisation) +news.qmd # News items in reverse chronological order +team.qmd # SC and AB member lists, role definitions +datasets.qmd # Table of available MoBI datasets on OpenNeuro +join.qmd # How to participate, role descriptions +styles.css # Custom CSS +posters.qmd # Conference posters and presentations +files/ # Static assets + slides/ # Presentation slide decks + data/ # Survey and data files + posters/ # Conference poster PDFs and thumbnails +``` + +## Rules + +- No Python, Jupyter, or computational notebooks. Use Chart.js (via raw HTML blocks) for any interactive charts. +- No `freeze: auto` or `requirements.txt`. The site must build with `quarto render` alone, no Python runtime. +- Always use `uv`/`uvx` for any Python scripting needs (not bare python3/pip). +- File names: lowercase, underscores, no spaces. Dates as YYYY-MM. +- All links to project files should use relative paths (e.g. `./files/slides/slides_kickoff.pdf`), not absolute GitHub URLs. +- Links to the GitHub repo should point to `EEGManySteps/eegmanysteps.github.io` (the org repo). +- Run `typos` before committing to catch spelling errors. CI enforces this via crate-ci/typos. +- Run `quarto render` locally before pushing to verify the build. + +## Deployment + +- Cloudflare Pages via GitHub Actions (`.github/workflows/deploy.yml`) +- Build command: `quarto render` +- Output directory: `_site` +- Custom domain: `eegmanysteps.org` +- PR previews via Cloudflare Pages branch deploys + +## Planning files + +See `plan.md`, `ideas.md`, `scratch_notes.md`, `research.md` if present (all gitignored). diff --git a/_quarto.yml b/_quarto.yml index b5c67d6..f90aad8 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -6,6 +6,7 @@ project: website: title: "EEGManySteps" + site-url: https://eegmanysteps.org navbar: left: - href: index.qmd @@ -16,8 +17,16 @@ website: text: Team - href: datasets.qmd text: Datasets + - href: posters.qmd + text: Posters - href: join.qmd text: Join + right: + - icon: github + href: https://github.com/EEGManySteps/eegmanysteps.github.io + page-footer: + center: | + format: html: diff --git a/files/ab_meeting_survey_2024-12.tsv b/files/data/ab_meeting_survey_2024-12.tsv similarity index 100% rename from files/ab_meeting_survey_2024-12.tsv rename to files/data/ab_meeting_survey_2024-12.tsv diff --git a/files/posters/poster_mbt_2025.pdf b/files/posters/poster_mbt_2025.pdf new file mode 100644 index 0000000..266fccb Binary files /dev/null and b/files/posters/poster_mbt_2025.pdf differ diff --git a/files/posters/poster_mbt_2025_thumb.png b/files/posters/poster_mbt_2025_thumb.png new file mode 100644 index 0000000..effa7d1 Binary files /dev/null and b/files/posters/poster_mbt_2025_thumb.png differ diff --git a/files/posters/poster_pug_2025.pdf b/files/posters/poster_pug_2025.pdf new file mode 100644 index 0000000..356d96e Binary files /dev/null and b/files/posters/poster_pug_2025.pdf differ diff --git a/files/posters/poster_pug_2025_thumb.png b/files/posters/poster_pug_2025_thumb.png new file mode 100644 index 0000000..c0f058e Binary files /dev/null and b/files/posters/poster_pug_2025_thumb.png differ diff --git a/files/slides_ab_meeting_12_24.pdf b/files/slides/slides_ab_meeting_12_24.pdf similarity index 100% rename from files/slides_ab_meeting_12_24.pdf rename to files/slides/slides_ab_meeting_12_24.pdf diff --git a/files/slides_kickoff.pdf b/files/slides/slides_kickoff.pdf similarity index 100% rename from files/slides_kickoff.pdf rename to files/slides/slides_kickoff.pdf diff --git a/news.qmd b/news.qmd index 7235cb1..912b7e3 100644 --- a/news.qmd +++ b/news.qmd @@ -5,8 +5,8 @@ title: "News" ## Goals definition with AB *December 2024* -We had the second meeting of SC and AB December 3rd, 2024. The meeting was used as an opportunity to discuss the goals and refine the scope of the project. Additionally, members of the SC and AB were invited to complete a survey on the project goals. A summary of the results can be found below, based on the raw data [here](./files/ab_meeting_survey_2024-12.tsv). -The meeting slides can be found [here](./files/slides_ab_meeting_12_24.pdf). +We had the second meeting of SC and AB December 3rd, 2024. The meeting was used as an opportunity to discuss the goals and refine the scope of the project. Additionally, members of the SC and AB were invited to complete a survey on the project goals. A summary of the results can be found below, based on the raw data [here](./files/data/ab_meeting_survey_2024-12.tsv). +The meeting slides can be found [here](./files/slides/slides_ab_meeting_12_24.pdf). **Survey summary** (26 respondents): @@ -85,7 +85,7 @@ new Chart(document.getElementById('participantEstimates'), { ## Kick-off Meeting *September 2024* -We had the first meeting of the **EEGManySteps** initiative on September 5th, 2024. The meeting was attended by 21 participants. The meeting was an opportunity to introduce the initiative, recap what happened since MoBI 2024, discuss the roles of the Steering Committee and Advisory Board, and plan the next steps. The meeting slides can be found [here](./files/slides_kickoff.pdf) and the minutes [here](https://docs.google.com/document/d/1JZ6axf8kW_PU4JE-0fuq0510ktJEFYTDPT0pab_cO0M/edit?usp=sharing). +We had the first meeting of the **EEGManySteps** initiative on September 5th, 2024. The meeting was attended by 21 participants. The meeting was an opportunity to introduce the initiative, recap what happened since MoBI 2024, discuss the roles of the Steering Committee and Advisory Board, and plan the next steps. The meeting slides can be found [here](./files/slides/slides_kickoff.pdf) and the minutes [here](https://docs.google.com/document/d/1JZ6axf8kW_PU4JE-0fuq0510ktJEFYTDPT0pab_cO0M/edit?usp=sharing). **Next steps**: diff --git a/posters.qmd b/posters.qmd new file mode 100644 index 0000000..a7ab18a --- /dev/null +++ b/posters.qmd @@ -0,0 +1,23 @@ +--- +title: "Posters & Presentations" +--- + +Conference posters and presentations from the EEGManySteps initiative. Click on a poster thumbnail to view the full-resolution PDF. + +::: {.callout-note} +If you presented an EEGManySteps poster, please share it via a [pull request](https://github.com/EEGManySteps/eegmanysteps.github.io/pulls) or email [eegmanysteps@gmail.com](mailto:eegmanysteps@gmail.com). +::: + +## Methods in Mobile EEG (MBT) 2025 -- Belgrade, April 2025 + +[![EEGManySteps poster at MBT 2025](./files/posters/poster_mbt_2025_thumb.png){width=80%}](./files/posters/poster_mbt_2025.pdf) + +Grasso-Cladera, A., Reiser, J.E., Klapprott, M., Jeung, S., Welzel, J., Cao, L., Cesnaite, E., Fakorede, S., Ladouce, S., Protzak, J., Shirazi, Y., Wunderlich, A. + +--- + +## Psychologie und Gehirn (PuG) 2025 + +[![EEGManySteps poster at PuG 2025](./files/posters/poster_pug_2025_thumb.png){width=80%}](./files/posters/poster_pug_2025.pdf) + +Grasso-Cladera, A., Reiser, J.E., Klapprott, M., Jeung, S., Welzel, J., Cao, L., Cesnaite, E., Fakorede, S., Ladouce, S., Protzak, J., Shirazi, Y., Wunderlich, A. diff --git a/team.qmd b/team.qmd index 50cf7e7..19c47ec 100644 --- a/team.qmd +++ b/team.qmd @@ -15,7 +15,7 @@ The definition of roles and responsibilities can be found at the bottom of this - Simon Ladouce (KU Leuven, Belgium) - Janna Protzak (Emory University, USA) - Julian Reiser (IfADO, Germany) -- Yahya Seyed Shirazi (SCCN, USA) +- Seyed Yahya Shirazi (SCCN, USA) - Julius Welzel (Kiel University, Germany) - Anna Wunderlich (TU Berlin, Germany) - Sodiq Fakorede (Kansas Medical Center, USA)