Add impact numbers + agentic/software directions to home page#32
Open
mdenolle wants to merge 1 commit into
Open
Add impact numbers + agentic/software directions to home page#32mdenolle wants to merge 1 commit into
mdenolle wants to merge 1 commit into
Conversation
- Data-driven impact strip (citations, h-index, GitHub stars/PRs/repos) replacing the hardcoded stats bar; numbers from _data/impact.yml - scripts/build_impact.py: stdlib-only generator pulling OpenAlex (citations/h-index) + GitHub REST/Search (stars/forks/repos/PRs/ contributors) across Denolle-Lab, gaia-hazlab, mdenolle - Monthly impact-sync GitHub Action opens a PR to refresh the data - Recent-papers list rendered live from publist.yml - Home-page copy: agentic research + digital-twin directions and an open-source software philosophy note (CodaMeter example) Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
There was a problem hiding this comment.
Pull request overview
Adds an automated, data-driven “impact strip” and a live “Recent papers” section to the Jekyll home page, backed by a stdlib-only Python generator and a scheduled GitHub Actions workflow that refreshes _data/impact.yml via PR.
Changes:
- Add
scripts/build_impact.pyto generate_data/impact.ymlfrom OpenAlex + GitHub APIs with fallback behavior. - Add
.github/workflows/impact-sync.ymlto refresh impact numbers monthly and via manual dispatch by opening a PR. - Update the home page layout/content to render the new impact/recent-papers UI via
_includes/impact_stats.html.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/build_impact.py |
New generator for _data/impact.yml (OpenAlex + GitHub aggregation). |
.github/workflows/impact-sync.yml |
Scheduled + manual workflow to regenerate impact data and open a PR. |
_pages/home.md |
Adds new “agentic research / digital twin” and software direction copy. |
_layouts/homelay.html |
Replaces hardcoded stats bar with {% include impact_stats.html %}. |
_includes/impact_stats.html |
New impact strip + recent papers rendering from _data/impact.yml and publist.yml. |
_data/impact.yml |
New generated impact data committed to the repo. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+233
to
+236
| k, _, v = line.partition(":") | ||
| v = v.strip().strip('"') | ||
| if k in ("citations", "publications", "h_index"): | ||
| prev[k] = int(v) |
Comment on lines
+244
to
+262
| today = date.today().isoformat() | ||
| data = { | ||
| "updated": today, | ||
| "citations": prev.get("citations", 0), | ||
| "publications": prev.get("publications", 0), | ||
| "h_index": prev.get("h_index", 0), | ||
| "github": prev.get("github", {}) or {}, | ||
| } | ||
|
|
||
| try: | ||
| data.update(openalex_metrics(OPENALEX_AUTHOR_IDS)) | ||
| print(f"OpenAlex: {data['citations']} citations, " | ||
| f"{data['publications']} works, h={data['h_index']}") | ||
| except Exception as e: # noqa: BLE001 | ||
| print(f"WARN OpenAlex failed, keeping previous values: {e}", file=sys.stderr) | ||
|
|
||
| try: | ||
| data["github"] = github_metrics(GITHUB_SCOPES) | ||
| print(f"GitHub: {data['github']}") |
Comment on lines
+203
to
+207
| f"updated: {_q(data['updated'])}", | ||
| f"citations: {data['citations']}", | ||
| f"publications: {data['publications']}", | ||
| f"h_index: {data['h_index']}", | ||
| "github:", |
Comment on lines
+3
to
+6
| updated: "2026-07-15" | ||
| citations: 3112 | ||
| publications: 249 | ||
| h_index: 24 |
Comment on lines
+71
to
+74
| <li> | ||
| <a href="{{ p.url | default: p.doi }}" target="_blank" rel="noopener">{{ p.title }}</a> | ||
| <span class="rp-meta">{{ p.authors | truncatewords: 12 }}{% if p.journal %} · <em>{{ p.journal | split: "," | first }}</em>{% endif %}{% if p.year %} · {{ p.year }}{% endif %}</span> | ||
| </li> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A data-driven impact strip on the home page plus the new agentic-research / digital-twin directions and an open-source software philosophy note.
Home page
publist.yml.Data + automation
scripts/build_impact.py— stdlib-only generator. Citations/h-index from OpenAlex (authorA5027819799); stars/forks/repos/merged-PRs/contributors from GitHub REST/Search acrossDenolle-Lab,gaia-hazlab,mdenolle. Writes_data/impact.yml; keeps previous values if a source is down..github/workflows/impact-sync.yml— monthly (1st, 06:00 UTC) + on-demand; regenerates the data and opens a refresh PR, mirroring the publications-sync workflow.Notes
OPENALEX_AUTHOR_IDSto make it a true group aggregate.publist.yml, not OpenAlex's 249.🤖 Generated with Claude Code