|
3 | 3 | Static website for the **Disease Transcriptomics Lab** at NOVA Medical School, Lisbon. |
4 | 4 | Hosted on **GitHub Pages** at [`https://diseasetranscriptomicslab.github.io`](https://diseasetranscriptomicslab.github.io). |
5 | 5 |
|
6 | | -> ⚠️ **Keep this repository private.** GitHub Pages can serve a public website from a private repo, so there's no need to make the source public. Keeping it private means photos, assets, and drafts don't need to be shared beyond the lab. It also protects content that isn't secret but benefits from limited exposure - such as the science communication games, archived materials, and development work - which may be relevant for future intellectual property or patent considerations. |
| 6 | +> ℹ️ **This repository is public.** GitHub Pages requires a public repo on the free plan (private-repo Pages needs a paid GitHub Team/Enterprise org plan), so the source - including photos, drafts, and the outreach games - is visible to anyone. Nothing sensitive should be committed here; if content ever needs to stay private (e.g. unpublished data, IP-sensitive material), keep it out of this repo entirely rather than relying on repo privacy. |
7 | 7 |
|
8 | 8 | --- |
9 | 9 |
|
@@ -39,6 +39,12 @@ nmoraislab.github.io/ |
39 | 39 | ├── sections/nuno.html ← Nuno Barbosa-Morais full profile page (standalone) |
40 | 40 | ├── sections/nuno/ ← Archived press clippings and documents linked from sections/nuno.html |
41 | 41 | │ |
| 42 | +├── games/ ← Standalone outreach game pages (own <head>, linked from sections/outreach.html) |
| 43 | +│ ├── monster-scientists.html |
| 44 | +│ └── arvore_inteligente.html |
| 45 | +│ |
| 46 | +├── .github/workflows/deploy.yml ← GitHub Actions workflow that deploys to GitHub Pages on push to main |
| 47 | +│ |
42 | 48 | └── assets/ |
43 | 49 | ├── logos/ ← Lab logos and funder logos (logos/funding/) |
44 | 50 | ├── photos/ |
@@ -88,11 +94,15 @@ Then open **[http://localhost:8000](http://localhost:8000)**. |
88 | 94 |
|
89 | 95 | ## Deploying |
90 | 96 |
|
91 | | -Deployment happens automatically when a pull request is merged into `main` - GitHub Pages rebuilds within ~60 seconds. |
| 97 | +Deployment is handled by a **GitHub Actions workflow** at `.github/workflows/deploy.yml`. It runs automatically on every push to `main` (including PR merges) and can also be triggered manually from the **Actions** tab (`workflow_dispatch`). No build step is needed - it uploads the repository as-is and publishes it via `actions/deploy-pages`. |
92 | 98 |
|
93 | 99 | **Never push directly to `main`** - see the branch workflow above. |
94 | 100 |
|
95 | | -**First-time setup:** Settings → Pages → Source → Deploy from branch → `main` → `/ (root)`. |
| 101 | +**One-time repo setup (already done for this repo, kept here for reference):** |
| 102 | +1. Settings → Pages → **Source** → set to **GitHub Actions** (not "Deploy from a branch"). |
| 103 | +2. The repository must be **public** on the free GitHub plan - Pages for private repos requires a paid GitHub Team/Enterprise org plan. |
| 104 | + |
| 105 | +Once merged, check the **Actions** tab for the workflow run; the deployed URL also appears there when it finishes. |
96 | 106 |
|
97 | 107 | --- |
98 | 108 |
|
@@ -343,7 +353,22 @@ On each `.research-card` that should carry this theme, add the key to `data-them |
343 | 353 |
|
344 | 354 | ### 🛠 Software - `sections/software.html` |
345 | 355 |
|
346 | | -Each tool is a card. Copy an existing card and update the tool name, description, links (paper, GitHub, web app), and status badge. |
| 356 | +Each tool is a `.tool-card`. Copy an existing card and update the tool name, description, links (paper, GitHub, web app), and badge(s). |
| 357 | + |
| 358 | +**`data-tool-type`** on the outer `.tool-card` drives the filter bar (All / Web Apps / R-Bioconductor / Deprecated) and accepts **one or more** space-separated values, e.g. `data-tool-type="webapp pkg"` for a tool that's both a hosted web app and an R package. A card matches a filter if any of its listed types match. |
| 359 | + |
| 360 | +**Badges** live inside a `.tool-badges` wrapper so a card can show more than one, e.g. markeR and psichomics each show both "Online Web App" and "R/Bioconductor": |
| 361 | + |
| 362 | +```html |
| 363 | +<div class="tool-badges"> |
| 364 | + <span class="tool-badge webapp">...svg... Online Web App</span> |
| 365 | + <span class="tool-badge pkg">...svg... R/Bioconductor</span> |
| 366 | +</div> |
| 367 | +``` |
| 368 | + |
| 369 | +Use `tool-badge pkg` with the text "R/Bioconductor" for packages on Bioconductor, or "R Package (GitHub)" for R packages distributed only via GitHub (e.g. betAS). |
| 370 | + |
| 371 | +Each card's `.tool-links` has a secondary `.tool-link-row` (Paper, Bioconductor, GitHub, etc.) and one primary `.tool-link.launch` CTA - use "Launch app ↗" linking to the hosted web app when one exists, otherwise "Bioconductor ↗" linking to the package page. |
347 | 372 |
|
348 | 373 | --- |
349 | 374 |
|
@@ -867,19 +892,34 @@ Only GitHub accounts that have **read access to this repository** can log in via |
867 | 892 |
|
868 | 893 | ## Analytics |
869 | 894 |
|
870 | | -The site supports **Google Analytics 4**. To activate it, create a property at [analytics.google.com](https://analytics.google.com), then add the following snippet inside the `<head>` of `index.html`, `publications.html`, `news.html`, and `sections/nuno.html` - replacing `G-XXXXXXXXXX` with your Measurement ID: |
| 895 | +The site runs **Google Analytics 4**, property Measurement ID **`G-6FLD1GNCMB`**. The Measurement ID is not a secret - it's meant to appear in public page source, and on its own can't be used to read the analytics dashboard or modify the site (only Google accounts granted access to the GA property can view data). |
| 896 | + |
| 897 | +The tag is installed in the `<head>` of every **standalone** page - i.e. every file with its own `<head>`, `<title>`, and URL: |
| 898 | +- `index.html` |
| 899 | +- `join.html` |
| 900 | +- `news.html` |
| 901 | +- `publications.html` |
| 902 | +- `sections/nuno.html` |
| 903 | +- `games/monster-scientists.html` |
| 904 | +- `games/arvore_inteligente.html` |
| 905 | + |
| 906 | +Files under `sections/` (other than `nuno.html`) are **fragments** with no `<head>` - they're fetched by `js/main.js` and injected into `index.html` at runtime, so they're already covered by the tag on `index.html` and must never get their own copy. |
| 907 | + |
| 908 | +**To change the Measurement ID** (e.g. new property), replace `G-6FLD1GNCMB` in the snippet below across all seven files listed above: |
871 | 909 |
|
872 | 910 | ```html |
873 | | -<!-- Google Analytics --> |
874 | | -<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script> |
| 911 | +<!-- Google tag (gtag.js) --> |
| 912 | +<script async src="https://www.googletagmanager.com/gtag/js?id=G-6FLD1GNCMB"></script> |
875 | 913 | <script> |
876 | 914 | window.dataLayer = window.dataLayer || []; |
877 | 915 | function gtag(){dataLayer.push(arguments);} |
878 | 916 | gtag('js', new Date()); |
879 | | - gtag('config', 'G-XXXXXXXXXX'); |
| 917 | + gtag('config', 'G-6FLD1GNCMB'); |
880 | 918 | </script> |
881 | 919 | ``` |
882 | 920 |
|
| 921 | +**Per-page breakdowns** (e.g. news.html vs publications.html visits) are available in GA under Reports → Engagement → Pages and screens - one property, all pages, no separate setup needed per page. |
| 922 | + |
883 | 923 | --- |
884 | 924 |
|
885 | 925 | ## Acknowledgements |
|
0 commit comments