The calendar's deadline table rendered every recorded submission cycle, so
elapsed rounds sorted to the top and read as the next thing due — 13 of its 17
rows were already in the past. Underneath that, the fetcher preserves
`source: manual` entries forever without ever checking whether they still
describe a future deadline, and 11 of 13 cloud-edge venues are manual.
Preserving them is correct: WikiCFP cannot express multi-cycle venues and does
not carry most systems conferences at all, so re-fetching would replace
researched rounds with worse data or nothing. What was missing is a signal.
- Extract the cycle helpers into cycles.py so the fetcher and the generator
share one definition of which round a reader should act on. cycles_of()
reads an entry without folding flat fields into a cycles list, which would
otherwise rewrite every single-round entry the fetcher writes back.
- The calendar table lists open cycles only; a venue whose every round has
elapsed moves to an "Awaiting the next call" table instead of vanishing.
- pa-fetch-deadlines records those venues under a new stale: key and probes
the year-bumped CFP URL to say which ones already have a next edition
online. A candidate must return 200, mention the target year, and be newer
than any year the entry records — venues.yaml still points SC at sc24.
- README: Task 7 and a matching agent prompt for keeping deadlines current,
since nothing in this repo refreshes them on its own.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Three things worked against the year grid. The page inherited PaperMod's
720px column, so twelve months across three columns left day cells too
narrow for any label; the calendar layout now runs to 1100px, which the
nine-column deadline table below the grid wants anyway.
Each cell was also short enough to fit a single deadline, collapsing the
days that carry both an abstract and a paper into a '+2 more' link. The
view hardcodes dayMaxEvents, so the height comes from aspectRatio: month
tables are width / ratio over six rows, and 1.1 leaves about 50px a week.
Finally, 'OSDI — abstract deadline' never fit a day cell and rendered as
a cropped fragment. The year view keeps the venue, which is the part that
identifies the dot, and leaves the rest to the hover text and the month
and list views.
'+N more' still appears when a day carries three deadlines, and was drawn
with the library's default event border, an unmapped blue that read as a
stray button; it becomes quiet text, and the popover it opens picks up
the calendar's own card treatment.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pull in @fullcalendar/multimonth so the deadline calendar can show all
twelve months at once, between the month grid and the year list. Events
render as dots there and the type scales down, so the month tables stay
legible two or three to a row.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PaperMod ships grey on grey, which read as flat and dim on pages that are
mostly tables. Both schemes are now redefinitions of PaperMod's own
variables, so the theme picks them up without further overrides, plus
--accent, --warm and --wash for the placements below. Every text pair
clears WCAG AA.
Venue tables drop the full 1px grid for horizontal rules, a tinted header
and an accent row hover; domain and tag code spans become chips. Warm
marks the one cell worth finding first in a headered table — the ICORE
rank, the SCImago quartile, the still-open cycle — and detail-page fact
tables are excluded, since bold there is a row label, not emphasis.
The FullCalendar variable mapping was dark-only, leaving light mode on
the library's stock chrome; it now maps once through theme variables and
covers both. Event colours were saturated with white text on top, so they
become five pale chips carrying explicit dark ink, legible on either
theme.
Ranks were also emitting '**A***', which closes the emphasis on the
second star and leaves the third loose — visible once ranks had their own
colour.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The home page fell back to PaperMod's recursive page list, which dumped
digest pages instead of the research topics they belong to. Add a home
layout that renders one card per entry in data/topics.yaml, with venue
counts, the nearest upcoming deadline, and section shortcuts.
With the topics listed there, drop the topic menu from the header and
show the current topic beside the site title instead, so the selected
research area is visible from every page. The breadcrumbs then repeated
that prefix, so override the partial to start below the topic section.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two small presentation fixes.
The calendar page dropped its "Journal Special Issues" heading entirely when
no entry existed, which is the state since f132f6b removed the two unverified
CFPs. With only the conference table left, the page read as if journals
weren't tracked at all rather than as having no open call. The heading now
always renders, carrying a line that says so and why: these journals use
rolling submission, so special issue CFPs are their only dated deadlines.
In the digests list the intro paragraph sat flush against the first card.
PaperMod gives .post-entry a bottom margin only, and .md-content zeroes its
last child's, so nothing supplied the gap — the theme never hits this because
its own .md-content usage sits inside a .post-entry. Added a page-intro class
with a bottom margin matching the card-to-card gap, in the extended stylesheet
rather than the submodule.
Hugo isn't installed here, so the digests spacing is reasoned from the theme
CSS rather than rendered.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The two special_issues entries were proof-of-concept data and could not be
corroborated: no TPDS "Edge AI Systems" or open FGCS "Serverless Computing
at the Edge" call is findable, and both named real researchers as guest
editors. Removed rather than corrected — nothing verifiable exists to
replace them with. No open special issue was found at any tracked journal,
so the field stays absent until a real CFP appears.
Audited the rest of the data while there. All 39 candidate pools come from
DBLP and all 471 digested papers reconcile against them, so the paper set
is sound. Three defects surfaced:
- DBLP returns HTML-escaped text and fetch_papers never decoded it, so 136
entities sat in the cached pools and "Theodore Y. Ts'o" reached the
published ATC-2024 digest. Decoded at the fetch boundary and cleaned the
existing files through the YAML parser.
- SC event_dates recorded the exhibition window (Nov 17-19) instead of the
conference (Nov 15-20); EuroSys ran a day long (Apr 19-24 vs 19-23).
Both verified against the official sites, which also confirm every
SC, EuroSys and OSDI submission deadline is exact.
- TC-2025 digest carried a paraphrased title, now matching DBLP.
EuroSys only records its spring cycle; the fall cycle has no home in the
one-deadline-per-venue schema.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Moves 30 commits forward from f207ce6 (v8.0-109 → v8.0-139). The notable
one is 87de3fb, which migrates the theme to the template system introduced
in Hugo v0.146: layouts/partials → layouts/_partials, layouts/_default/*
→ layouts/*, shortcodes → _shortcodes.
Our four overrides still resolve from the legacy paths, which Hugo keeps
supporting, so they are left where they are. Verified against a subpath
build that the header menu, the render-link hook, both custom layouts, the
extend_head calendar CSS and the extended stylesheet all still apply.
theme.toml now declares min_version 0.146.0; CI pins 0.165.0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The shorter .first-entry hero block was edited directly in
site/themes/PaperMod. The parent repo only records a submodule's commit
SHA, so those edits were never committed, and CI checks the submodule out
fresh with submodules: recursive — the deployed site rendered with
upstream's 320px/260px values.
Relocate them to site/assets/css/extended/custom.css, which PaperMod's
head.html concatenates after its core CSS, and restore the submodule to a
clean checkout of the pinned upstream commit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Hugo/PaperMod static site tracking 13 conferences and 7 journals for
edge and cloud systems research. Includes FullCalendar deadline view,
ICORE/SCImago rankings, DBLP paper digest pipeline, and Python
fetch/generate scripts. PaperMod added as a git submodule.