Skip to content

List a project's publications and theses on its page - #21

Merged
cpraschl merged 4 commits into
mainfrom
issue-15-project-crosslinks
Oct 30, 2026
Merged

cpraschl merged 4 commits into
mainfrom
issue-15-project-crosslinks

Conversation

@pointan

@pointan pointan commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Closes #15

What

  • New optional field on publications and theses: projects: [projects:<id>] (project page_ids, same value in the DE and EN file). Documented in README and CLAUDE.md.
  • Project pages (_layouts/project.html) get a Publications and a Theses section after the last phase, each with a count. A section is left out when it has no entries. Both are data-pagefind-ignore so search doesn't return the same paper twice.
  • Back-links: entries on the publications and theses pages show a "Projekt: …" / "Project: …" line linking to their project (_includes/project-links.html). The link text is the sort_title, so it reads "Projekt: EDEN", not "Projekt: Projekt EDEN".
  • Refactor: the thesis markup that theses.html / theses-en.html duplicated is now _includes/thesis-list.html. That include and publication-list.html both take an optional items subset. Outside the filtered listings, their category badges become links into the filtered page (…#cat=ml) instead of filter buttons that would do nothing there.

Data

  • 26 theses that had an old project_url (pointing at the previous site, no longer resolving) were converted to projects: first.
  • All other assignments come from the project_links.json exported from the temporary review page (one project per entry, theses included). It adds 91 entries (DE + EN = 182 files), changes and removes none, and covers all 277 publications and theses. In total, 92 publications and 28 theses are now linked; the rest have no project.
  • The temporary review page (/tools/project-links/) and scripts/apply_project_links.py are removed again, as agreed.
  • The Formelracing project text listed its paper by hand ("Papers" section). That section is removed, since the project page now lists the paper itself. No other project text had such a list.

Not done

  • The optional team section: there's no record of who worked on which project. It could follow later as a projects: field on members in _data/team.yml.

Testing

  • jekyll build succeeds. 147 project pages (DE + EN) now have an output section, e.g. Thumper 10 publications, BAMBI 8, Formelracing 1 publication + 4 theses.
  • The publications/theses listings only differ from main by the added "Project" lines.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K1ZFMqLcGtX9REKfwzty4p

@pointan
pointan requested a review from cpraschl October 23, 2026 11:15
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.2
Preview removed because the pull request was closed.
2026-10-30 09:54 UTC

@cpraschl

Copy link
Copy Markdown
Member

Which should build a temporary utility page with every publication and a drop down of project (with the automatically associated one as selected entry). Based on that it should be possible quickly to link all publications with the associated projects. :D

@pointan

pointan commented Oct 26, 2026

Copy link
Copy Markdown
Member Author

@cpraschl here's how I'd build the publication → project linking page. Does this match what you had in mind?

  1. Hidden page /tools/project-links/. It is built for PR previews and local jekyll serve but excluded from the production build, so it never goes live. It's also marked noindex.

  2. One row per publication: year, title and authors, plus a project dropdown listing all projects and "none". The preselected entry is:

    • the existing projects: value if the publication already has one;
    • otherwise an automatic suggestion, marked as such: a project whose name appears in the title, abstract or reference, ranked higher if the publication year falls within the project's runtime and the areas overlap.

    A filter shows only suggested, only unlinked, or all rows.

  3. Saving: a static page can't write to the repo. A "Download" button saves a project_links.yml (publication → project), and a new scripts/apply_project_links.py writes projects: into both the DE and EN file of each publication. The workflow is: pick in the browser, run the script, commit.

  4. Optionally include theses in the same table, behind a toggle. Most theses that had an old project link are already linked in this PR.

Open points:

  • Should the page also go live, or stay preview/local only?
  • Is one project per publication enough, or do you need multiple?
  • Should theses be included?

Generated by Claude Code

@cpraschl

Copy link
Copy Markdown
Member

I would build /tools/project-links/ only for this PR, put it live in the PR-version of the page and then remove it. Future paper should be directly linked to the projects. Its one project per publication. Include theses next to publications.

@pointan

pointan commented Oct 27, 2026

Copy link
Copy Markdown
Member Author

@cpraschl the linking page is in 8d2c4a9. Once the preview build finishes, it's at https://aist.fh-hagenberg.at/pr-preview/pr-21/tools/project-links/.

  • All 238 publications and 39 theses, one project dropdown each (one project per entry).
  • Preselection: the existing link (29 so far: the theses with old project URLs plus the BAMBI papers), or a suggestion:
    • Strong suggestions are preselected (23, marked "Vorschlag"). They come from the project name in the title or abstract, or a high text similarity between the entry and the project description (DE + EN), adjusted for whether the year falls within the project runtime and whether the areas overlap. The reason is shown under the dropdown.
    • Weaker matches (about 54, "möglich") are only suggested, with an "übernehmen" button. They need a closer look; e.g. workshop prefaces tend to land on PICA.
    • Entries without an abstract only have their title to go on, so many of them (e.g. the 2026 wildlife papers) get no suggestion and need picking by hand.
  • Filters: all / suggestions / without project / changed, plus publications vs. theses and a search box. Your choices are saved in your browser, so you can work in several sittings.
  • When done: click "Herunterladen" and attach the project_links.json here (or commit it to the branch). I'll then apply it with scripts/apply_project_links.py, which writes projects: [...] into the DE and EN file of each entry. After that I'll remove the page and the script again, as agreed.

The page only renders in previews and local builds; in a production build it shows just a notice.


Generated by Claude Code

@pointan
pointan force-pushed the issue-15-project-crosslinks branch 4 times, most recently from d374cff to 7333a4a Compare October 27, 2026 09:16
@pointan

pointan commented Oct 27, 2026

Copy link
Copy Markdown
Member Author

@cpraschl Reminder: this PR is waiting on the project assignments.

  1. Open https://aist.fh-hagenberg.at/pr-preview/pr-21/tools/project-links/.
  2. Pick a project (or none) for each publication and thesis. Suggestions are pre-selected.
  3. Download project_links.json and attach it here.

I'll then apply it and remove the helper page and script before merge.


Generated by Claude Code

@pointan
pointan force-pushed the issue-15-project-crosslinks branch 2 times, most recently from 1b51a40 to 5586dc6 Compare October 28, 2026 14:12
@cpraschl

Copy link
Copy Markdown
Member

Add the possibility to upload export to https://aist.fh-hagenberg.at/pr-preview/pr-21/tools/project-links/ so we can share states between multiple computers for double checks

@pointan

pointan commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@cpraschl Done in bac7f94. The page now has a "Hochladen" button next to "Herunterladen":

  • It loads a downloaded project_links.json and applies every entry in it.
  • The result is saved in the browser like manual changes, so you can keep working on the second computer and download again.
  • Entries the file doesn't mention keep their current choice.
  • Unknown entries or projects are skipped and reported, and an invalid file is rejected with a message.

I tested it in two separate browsers: change, download, upload in the fresh browser, reload. All 277 entries came across.

Once the preview build finishes, it's at https://aist.fh-hagenberg.at/pr-preview/pr-21/tools/project-links/


Generated by Claude Code

@cpraschl

Copy link
Copy Markdown
Member

make it rebase-able

@pointan
pointan force-pushed the issue-15-project-crosslinks branch from bac7f94 to 15749ed Compare October 29, 2026 13:05
@pointan

pointan commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@cpraschl Rebased onto the current main (now 15749ed), so "Rebase and merge" works again. There were no conflicts and the diff is unchanged (71 files, +697/−149). The new MARIE project now also appears in the dropdowns on /tools/project-links/.


Generated by Claude Code

Publications and theses can now name their projects in a `projects:`
list of project page_ids. The project page lists the matching entries
after its last phase (left out when empty), and each entry on the
publications and theses pages links back to its project.

The thesis markup that theses.html and theses-en.html duplicated moves
into _includes/thesis-list.html so the project page can reuse it, and
publication-list.html takes an optional subset; outside the filtered
listings their category badges link into the filtered page.

Back-filled: the 26 theses whose project_url pointed at a project on the
old site (now `projects:`, the old URLs no longer resolve) and the three
BAMBI publications.

Closes #15

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1ZFMqLcGtX9REKfwzty4p
Requested in review: a helper on the PR preview to link every
publication and thesis to its project in one pass, removed again before
this PR is merged (new entries get `projects:` directly).

/tools/project-links/ lists all 238 publications and 39 theses with a
project dropdown (one project per entry). Preselected is the existing
link, or a suggestion: the project name in the title or abstract, or the
project whose description is most similar (TF-IDF over the DE and EN
project texts), weighted by runtime and area. Strong suggestions are
preselected, weaker ones are offered with an "übernehmen" button.
Choices are kept in the browser; "Herunterladen" saves
project_links.json, which scripts/apply_project_links.py writes into the
DE and EN front matter. The page renders only in previews and local
builds, never in production.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1ZFMqLcGtX9REKfwzty4p
A "Hochladen" button next to "Herunterladen" reads a downloaded
project_links.json and applies it, so a state can be passed between
computers for a second check. Every entry in the file replaces the
current choice and is saved in the browser; entries it does not mention
keep theirs, unknown entries or projects are skipped and reported, and
an invalid file is rejected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1ZFMqLcGtX9REKfwzty4p
@pointan
pointan force-pushed the issue-15-project-crosslinks branch from 15749ed to d579b1f Compare October 29, 2026 17:56
Applies the project assignments chosen on the temporary review page
(project_links.json): 91 more publications and theses (DE + EN) now
carry `projects:`, so their projects list them. The review page and
scripts/apply_project_links.py are removed again, as agreed.

The Formelracing project text listed its paper by hand; that section is
gone now that the project page lists its publications itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K1ZFMqLcGtX9REKfwzty4p
@pointan

pointan commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

@cpraschl Your project_links.json is applied in 3747553:

  • 91 entries newly linked (182 files). No existing link was changed or removed.
  • The review page and the apply script are removed again.
  • The hand-written "Papers" section in the Formelracing text is gone; the project page now lists the paper and 4 theses itself. No other project text had such a list.

The branch is linear on top of main. The missing-projects question is in #35, and the "et al." references are fixed separately in #34.


Generated by Claude Code

@cpraschl
cpraschl merged commit e7604c6 into main Oct 30, 2026
1 check passed
@cpraschl
cpraschl deleted the issue-15-project-crosslinks branch October 30, 2026 09:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cross-link projects with their publications, theses and team members

3 participants