Skip to content

Add enhanced reviewer credits with ORCID support#113

Open
arfon wants to merge 2 commits intomainfrom
add-reviewer-credits
Open

Add enhanced reviewer credits with ORCID support#113
arfon wants to merge 2 commits intomainfrom
add-reviewer-credits

Conversation

@arfon
Copy link
Member

@arfon arfon commented Nov 13, 2025

Summary

This PR adds support for crediting reviewers in published papers with full names and ORCID identifiers.

Motivation

Currently, reviewers are only identified by GitHub handles. This enhancement allows proper academic credit for peer review work by displaying reviewer names and linking to their ORCID profiles.

Changes

New Features

  • Reviewers can be specified in the paper's YAML frontmatter with:
    • Full name + ORCID (name links to ORCID profile with badge)
    • Name only (plain text, no link)
  • Supports same name formats as authors (simple name or structured given-names/surname)
  • ORCID validation with checksum verification
  • Works in both LaTeX and ConTeXt outputs

Backward Compatibility

  • Existing workflow with GitHub handles continues to work unchanged
  • No breaking changes to existing papers or workflows

Files Added

  • data/filters/normalize/reviewers.lua: Name and ORCID normalization logic
  • docs/reviewers.md: Complete usage documentation
  • test/metadata-reviewers-enhanced.yaml: Test case demonstrating new format

Files Modified

  • data/filters/normalize-metadata.lua: Integrated reviewer normalization
  • data/templates/default.latex: Display reviewers with ORCID links
  • data/templates/default.context: Display reviewers with ORCID links

Example Usage

reviewers:
  - name: Jane Smith
    orcid: 0000-0001-2345-6789
  - given-names: John
    surname: Doe
    orcid: 0000-0002-3456-7890
  - name: Anonymous Reviewer

Important Notes

  • Reviewer metadata must be added by paper authors/reviewers after review is complete but before publication
  • We are not ORCID members, so cannot automatically update reviewers' ORCID records
  • Reviewers must manually add peer review activities to their ORCID profiles if desired

Testing

Tested with test/metadata-reviewers-enhanced.yaml which demonstrates:

  • Reviewer with full name + ORCID
  • Reviewer with structured name + ORCID
  • Reviewer with name only (no ORCID)

Allow reviewers to be credited in published papers with full names and
ORCID identifiers. Reviewers can be specified in the paper's YAML
frontmatter with either:
- Full name + ORCID (name links to ORCID profile with badge)
- Name only (plain text, no link)

Key features:
- Supports same name formats as authors (simple name or structured
  given-names/surname with aliases)
- ORCID validation with checksum verification
- Backward compatible with existing GitHub handle workflow
- Works in both LaTeX and ConTeXt outputs

Files added:
- data/filters/normalize/reviewers.lua: Name and ORCID normalization
- docs/reviewers.md: Complete usage documentation
- test/metadata-reviewers-enhanced.yaml: Test case

Files modified:
- data/filters/normalize-metadata.lua: Call reviewer normalization
- data/templates/default.latex: Display reviewers with ORCID links
- data/templates/default.context: Display reviewers with ORCID links

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@arfon
Copy link
Member Author

arfon commented Nov 13, 2025

👋 @tarleb – as you might be able to tell, me and Claude tried to implement support for a new YAML frontmatter segment to enable reviewers to be described properly in the paper.

I have literally never written a line of Lua in my life, so please be warned 🙈

$for(reviewers)$
\useURL[$it$][https://github.com/$it$][][@$it$]
\from[$it$]
$if(reviewers.name)$
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can ignore changes in the ConTeXt template, as it's currently unused. Probably best to remove the whole file to lessen the maintenance burden.

Side note: we could try again using Typst instead of ConTeXt. There appears to be a lot of enthusiasm for that, it would speed up PDF compilation considerably, and the PDFs are accessible by default. Maybe someone with enough time and enthusiasm would be willing to re-create the JOSS layout in Typst? I could handle the rest.

Copy link
Member Author

@arfon arfon Mar 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. We can probably just remove that template at this point.

@@ -0,0 +1,167 @@
local List = require 'pandoc.List'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of this is taken from data/filters/normalize-author-names.lua and from data/filters/normalize/authors.lua. It would be better to require those file (or to factor out some of that code).

Tbh, I forgot why there are two files with similar names that effectively do one task. I should probably clean that up.

@EwoutH
Copy link

EwoutH commented Dec 9, 2025

@arfon thanks again for this effort. What’s needed to move it forward?

@arfon
Copy link
Member Author

arfon commented Mar 9, 2026

👋 @tarleb – just checking in here. Is it possible to ship this PR as-is without further refactoring?

@tarleb
Copy link
Collaborator

tarleb commented Mar 12, 2026

IMHO, if we can get the code to what we want, then we can ship it.

Medium term, my plan is to

  1. formalize the way author metadata is specified, probably doing so in the context of OXA
  2. write an implementation that handles that exact structure
  3. port it to pandoc
  4. write a compatibility layer for inara

So I don't mind if we "polute" the code base a bit. This part of the code should be ripped out and replaced anyway at some point.

@arfon
Copy link
Member Author

arfon commented Mar 15, 2026

Sounds reasonable to me @tarleb, definitely like the longer-term plan/direction here (metadata formats, pandoc etc.).

IMHO, if we can get the code to what we want, then we can ship it.

My main issue with this is I don't really have things set up to actually test so would appreciate your support on that front.

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.

3 participants