Skip to content

feat: user-suppliable venue style packs#249

Merged
dippatel1994 merged 4 commits into
mainfrom
feat/venue-style-packs
Jun 11, 2026
Merged

feat: user-suppliable venue style packs#249
dippatel1994 merged 4 commits into
mainfrom
feat/venue-style-packs

Conversation

@dippatel1994

Copy link
Copy Markdown
Member

Fixes #89 — venues become a directory convention anyone can extend without touching the repo:

  • A venue pack = {methodology_style_guide.md, plot_style_guide.md} + optional venue.yaml (display_name, default aspect_ratio, fonts note). Built-ins live under data/guidelines/<venue>/; user packs under ~/.config/paperbanana/venues/ (or PAPERBANANA_VENUE_DIR / --venue-dir).
  • Resolver: built-ins win name clashes (documented + warned); unknown venues now hard-fail with an error listing both sources — the old silent fall-back-to-neurips is gone. custom stays reserved for the legacy flat-file path.
  • paperbanana venues list and paperbanana venues init <name> (scaffolds from the NeurIPS templates + commented venue.yaml). All six --venue commands, batch/orchestrate, and the Studio dropdown resolve through the registry, so user packs work everywhere.
  • Aspect-ratio defaulting is now user > venue.yaml > planner, with the source surfaced in logs.
  • Pairs with guidelines synthesize --output for corpus-grounded pack creation — together this is the proper answer to the institution-specific style PRs we closed (docs(thesis): add UMS-style Rajah 3.1 Proses Kajian #203feat: add three-phase research methodology flowchart (UMS style) #211).

39 new tests; suite at 867 passing. One judgment call: a known pack missing one guide file warns and uses default text for that guide only (hard-failing would break diagram runs for plot-only packs).

dippatel1994 and others added 4 commits June 11, 2026 16:15
A venue is now a directory convention: {methodology_style_guide.md,
plot_style_guide.md} plus an optional venue.yaml (display_name,
aspect_ratio default, font preferences). --venue resolves built-in
packs first (data/guidelines/<venue>/, flat files for neurips), then
user packs from ~/.config/paperbanana/venues (overridable via
PAPERBANANA_VENUE_DIR or --venue-dir). Unknown venues fail fast with
the available packs from both sources instead of silently falling
back to neurips.

- new resolver module paperbanana/guidelines/venues.py: list_venues(),
  resolve_venue() -> VenuePack, validate_venue(), venue.yaml parsing
  (yaml.safe_load, all fields optional), select_aspect_ratio()
- guideline loaders accept venue_dir and resolve through the venue
  pack registry; Settings.venue is now an open name with a venue_dir
  companion setting (pipeline.venue_dir / PAPERBANANA_VENUE_DIR)
- venue.yaml aspect_ratio becomes the default ratio when the CLI did
  not pass one (user > venue > planner); fonts are appended as a note
  to the loaded style guides
- new CLI commands: 'paperbanana venues list' (built-in + user with
  source column) and 'paperbanana venues init <name>' (scaffolds a
  pack from the NeurIPS templates + commented venue.yaml)
- replaced hardcoded venue tuples in cli.py, workflow_runner.py and
  the studio with resolver-backed validation; studio dropdown now
  lists user packs
- README: Custom venue style packs section; tests for precedence
  (built-in beats user), error listing, venue.yaml parsing, init
  scaffolding, and aspect-ratio defaulting

Fixes #89
- test_default_is_xdg_config_dir compared a /-joined string, failing on
  Windows separators; compare Path.parts instead
- icml/ieee/acl gain venue.yaml: two-column venues now default figures
  to 4:3 (column-friendly) with venue-typical font preferences, so the
  config layer carries real venue knowledge, not just the guides
@dippatel1994 dippatel1994 merged commit 525befa into main Jun 11, 2026
11 checks passed
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.

[Feature]: Expand built-in reference set and add multi-venue style support

1 participant