feat(publications): improve structure + awards/funding/license metadata

Restructure `publication` frontmatter from a flat Markdown string into a
structured object (name, short_name, volume, issue, pages, publisher),
resolved through a new `functions/resolve_publication.html` partial that
also emits a per-page warning pointing legacy sites at `hugoblox migrate
publications`. APA/MLA citation rendering and the publication metadata
row both consume the resolver - no parsing of conventional Markdown
strings at render time.

Add work-level metadata fields surfaced via a new reusable
`components/award_badge.html` partial (variants: pill, card-corner,
inline, row; level-driven icon + colour tokens; pagefind filter):

- `awards[]` - name, level (winner/runner_up/honorable_mention/nominee/
  selected/featured), issuer, date, note, url; skim-row pills above the
  featured image, full row in the metadata grid, corner badges on card
  and slides-gallery views, inline marker on citation views, pill on
  date-title-summary
- `funding[]` - funder + grant + url, rendered as a metadata grid row
- `license` - SPDX-friendly string, metadata grid row
- `peer_reviewed`, `open_access` - status pills, decoupled from
  the publication block so preprints can surface them

Demo content updated in academic-cv (and the same shape in research-lab).
This commit is contained in:
George Cushen committed 2026-05-27 03:53:21 +01:00
1 parent 64cdb4a81a
commit 26c336eb6d
12 files changed
+439 -27

No files matched your search

+1 -1
View File
@@ -122,6 +122,6 @@ sections:
design:
card:
# Card background color (CSS class)
css_class: 'bg-primary-300 dark:bg-primary-700'
css_class: 'bg-gradient-to-br from-primary-500 via-primary-600 to-secondary-600 text-white shadow-2xl'
css_style: ''
---
@@ -23,9 +23,29 @@ publishDate: '2017-01-01T00:00:00Z'
# Enter a publication type from the CSL standard.
publication_types: ['paper-conference']
# Publication name and optional abbreviated publication name.
publication: In *HugoBlox Kit Conference*
publication_short: In *ICW*
# Publication metadata — structured fields used by citation styles and BibTeX export.
publication:
name: "Proceedings of the HugoBlox Kit Conference"
short_name: "ICW"
peer_reviewed: true
open_access: true
license: CC-BY-4.0
# Awards, honors, and recognitions. Surfaced as badges on the page and in listings.
awards:
- name: "Best Paper Award"
level: winner
note: "Top 5 of 8000 submissions"
- name: "Oral Presentation"
level: selected
# Funders and grants. Required by many funders for compliance reporting.
funding:
- funder: "National Science Foundation"
grant: "NSF-2401234"
- funder: "European Research Council"
grant: "ERC-StG-101234"
abstract: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.
@@ -16,9 +16,29 @@ publishDate: "2017-01-01T00:00:00Z"
# Enter a publication type from the CSL standard.
publication_types: ["article-journal"]
# Publication name and optional abbreviated publication name.
publication: "*Journal of Source Themes, 1*(1)"
publication_short: ""
# Publication metadata — structured fields used by citation styles and BibTeX export.
publication:
name: "Journal of Source Themes"
volume: 1
issue: 1
peer_reviewed: true
open_access: true
license: CC-BY-4.0
# Awards, honors, and recognitions. Surfaced as badges on the page and in listings.
# Note: a Test of Time award years after publication uses an explicit `date` that differs from the page date.
awards:
- name: "Test of Time Award"
level: winner
date: "2025"
note: "Awarded for sustained impact 10 years after publication."
- name: "Editor's Choice"
level: featured
funding:
- funder: "National Science Foundation"
grant: "NSF-1234567"
abstract: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.
@@ -12,9 +12,16 @@ publishDate: "2017-01-01T00:00:00Z"
# Enter a publication type from the CSL standard.
publication_types: ["article"]
# Publication name and optional abbreviated publication name.
publication: ""
publication_short: ""
# Publication metadata — structured fields used by citation styles and BibTeX export.
# Preprints typically have no formal venue; omit `publication` until the work is accepted.
peer_reviewed: false
open_access: true
license: CC-BY-4.0
funding:
- funder: "Wellcome Trust"
grant: "WT-219123/Z/19/Z"
abstract: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.