[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82795":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":28,"discoverSource":29},82795,"posterly","Chenruishuo\u002Fposterly","Chenruishuo","Build academic conference posters as a single HTML\u002FCSS file, rendered to print-ready PDF via headless Chromium. A coding-agent skill.",null,"Python",103,3,53,0,2,29,49,20,65.21,"MIT License",false,"main",true,[],"2026-06-12 04:01:39","# posterly\n\n> Build academic conference posters as a single HTML\u002FCSS file, rendered to print-ready PDF via headless Chromium.\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](LICENSE)\n![Python: 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10+-blue.svg)\n![Agent skill](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcoding_agent-skill-7B2CBF.svg)\n\n**This is a coding-agent skill, not a hosted service.** Clone, install, and either invoke `\u002Fposterly` from your agent or call the CLIs directly. There is no cloud, no signup, no telemetry.\n\n> [!NOTE]\n> **Built with Claude, works with Codex too.** posterly is developed primarily with Claude (Opus 4.7 \u002F 4.8), but in testing Codex (GPT-5.5) drives it just as well — and any coding agent with skill support should be fine. Hit a snag? A ⭐ and an issue are always welcome!\n\nA poster in `posterly` is **one HTML file** styled for an exact print canvas. The skill ships three neutral templates, four sanity-check CLIs, and a render pipeline that produces a PDF at exact ICML \u002F NeurIPS \u002F ICLR \u002F CVPR dimensions. Inside your agent, `\u002Fposterly` walks you through venue lookup → template pick → content fill → render — see `SKILL.md` for the full workflow it follows.\n\n---\n\n## Showcase\n\nThree real conference posters — built with `posterly` from **publicly-available papers** (the authors' own) and shipped here as worked examples. Every one passes `preflight`, `measure`, and `polish`; click a thumbnail for the print-ready PDF, or open the editable source under `examples\u002F`.\n\n*Tooling: each was produced by **Claude Opus 4.7 \u002F 4.8** (reasoning effort `xhigh`) driving `posterly`, with **GPT-5.5** (`xhigh`) as the secondary model for the paper-to-poster content audit.*\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fshowcase\u002Fpowerflow_icml2026.pdf\">\u003Cimg src=\"docs\u002Fshowcase\u002Fpowerflow_icml2026.jpg\" alt=\"PowerFlow — ICML 2026 poster\" width=\"80%\">\u003C\u002Fa>\u003Cbr>\n  \u003Cb>PowerFlow: Unlocking the Dual Nature of LLMs via Principled Distribution Matching\u003C\u002Fb>\u003Cbr>\n  ICML 2026 · Chen, Chen, Li, Huang (IIIS, Tsinghua) · \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2603.18363\">arXiv\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChenruishuo\u002FPowerFlow\">code\u003C\u002Fa> · \u003Ca href=\"examples\u002Fpowerflow_icml2026\u002Fposter.html\">source\u003C\u002Fa> · \u003Ca href=\"docs\u002Fshowcase\u002Fpowerflow_icml2026.pdf\">PDF\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fshowcase\u002Ftdgfn_icml2026.pdf\">\u003Cimg src=\"docs\u002Fshowcase\u002Ftdgfn_icml2026.jpg\" alt=\"TD-GFN — ICML 2026 poster\" width=\"80%\">\u003C\u002Fa>\u003Cbr>\n  \u003Cb>Beyond the Proxy: Trajectory-Distilled Guidance for Offline GFlowNet Training (TD-GFN)\u003C\u002Fb>\u003Cbr>\n  ICML 2026 · Chen, Wang, Hu, Li, Huang (IIIS, Tsinghua) · \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.20110\">arXiv\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChenruishuo\u002FTD-GFN\">code\u003C\u002Fa> · \u003Ca href=\"examples\u002Ftdgfn_icml2026\u002Fposter.html\">source\u003C\u002Fa> · \u003Ca href=\"docs\u002Fshowcase\u002Ftdgfn_icml2026.pdf\">PDF\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fshowcase\u002Foptail_neurips2024.pdf\">\u003Cimg src=\"docs\u002Fshowcase\u002Foptail_neurips2024.jpg\" alt=\"OPT-AIL — NeurIPS 2024 poster\" width=\"80%\">\u003C\u002Fa>\u003Cbr>\n  \u003Cb>OPT-AIL: Provably &amp; Practically Efficient Adversarial Imitation Learning with General Function Approximation\u003C\u002Fb>\u003Cbr>\n  NeurIPS 2024 · Xu, Zhang, Chen, Sun, Yu (Nanjing University · Polixir.ai) · \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.00610\">arXiv\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FLAMDA-RL\u002FOPT-AIL\">code\u003C\u002Fa> · \u003Ca href=\"examples\u002Foptail_neurips2024\u002Fposter.html\">source\u003C\u002Fa> · \u003Ca href=\"docs\u002Fshowcase\u002Foptail_neurips2024.pdf\">PDF\u003C\u002Fa>\n\u003C\u002Fp>\n\n> [!TIP]\n> A **theory-heavy** paper — loss functions, optimism-regularized Bellman error, eluder coefficients, complexity tables, theorem boxes — all typeset via MathJax and clearing every gate. Drafted end-to-end (paper → print-ready PDF) in **1 h 11 m**.\n\nThe ICML posters are four-column landscape; OPT-AIL is three-column. All carry the `data-measure-role` markup the gates read and double as the largest end-to-end fixtures in the repo: copy one, swap in your content, and re-render with `tools\u002Frender_preview.py examples\u002F\u003Cname>\u002Fposter.html`.\n\n---\n\n## Also built with Codex — community\n\nProof the Codex path holds up outside our own tests: a community contributor drove `posterly` end-to-end with **Codex (GPT-5.5)** — no Claude in the loop — to turn their ICML 2026 paper into this poster.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fcommunity\u002Fcflower_icml2026.pdf\">\u003Cimg src=\"docs\u002Fcommunity\u002Fcflower_icml2026.jpg\" alt=\"CFlower — ICML 2026 poster, built with Codex\" width=\"80%\">\u003C\u002Fa>\u003Cbr>\n  \u003Cb>Improving LLM-Based Recommenders with Conservative Generative Flow Networks (CFlower)\u003C\u002Fb>\u003Cbr>\n  ICML 2026 · Yu, Niu, Zhu, Zhang, Wang, Wang (USTC) · \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyuxuan9982\u002FCFlower\">code\u003C\u002Fa> · \u003Ca href=\"docs\u002Fcommunity\u002Fcflower_icml2026.pdf\">PDF\u003C\u002Fa>\n\u003C\u002Fp>\n\nBuilt one with Codex (or any other agent)? Open a PR or an issue — we'd love to feature it here.\n\n---\n\n## Why HTML + CSS, not LaTeX?\n\n- **Tweak loop in seconds, not minutes.** Edit CSS, refresh — vs. LaTeX `recompile + scan log + re-open PDF`.\n- **Modern layout primitives.** Flexbox, grid, gradients, `text-wrap: balance`, web-fonts — all things LaTeX poster classes (`tcbposter`, `tikzposter`, `beamerposter`) either don't have or need package-on-package for.\n- **Programmatically lintable.** Every \"is this column overflowing?\" check that you'd do by squinting at a PDF is a Playwright geometry query here.\n- **Exact print output.** `@page { size: 60in 36in }` + Chromium's `page.pdf()` produces a PDF whose dimensions are exactly the canvas — not \"approximately A0 after scaling\".\n\nTrade-off: no native math typesetting; templates load MathJax 3 from a CDN by default. To go offline, download a MathJax v3 release and change the template's `\u003Cscript src=…>` to `mathjax\u002Fes5\u002Ftex-svg.js` — there's an inline comment next to the CDN link in each template showing exactly which line to edit.\n\n---\n\n## Install\n\n**The lazy way — hand it to your agent.** Paste this to your coding agent (Claude, Codex, …):\n\n> Install this skill for me: https:\u002F\u002Fgithub.com\u002FChenruishuo\u002Fposterly\n\nIt will clone the repo into `~\u002F.claude\u002Fskills\u002F`, install the Python deps, and run the smoke test. The manual steps below are the fallback (or for a non-agent setup).\n\n```bash\n# 1. Clone into ~\u002F.claude\u002Fskills\u002F for Claude Code auto-discovery\n#    (other agents: point them at this dir however they load skills)\ngit clone https:\u002F\u002Fgithub.com\u002FChenruishuo\u002Fposterly ~\u002F.claude\u002Fskills\u002Fposterly\ncd ~\u002F.claude\u002Fskills\u002Fposterly\n\n# 2. Python deps\npython -m pip install \"playwright>=1.40\"\npython -m playwright install chromium\n# On a fresh Linux box you may also need the system libs Chromium links against:\n#   python -m playwright install --with-deps chromium\n#   # or sudo apt install libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 \\\n#   #                     libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 \\\n#   #                     libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2\n\n# 3. System dep for verify-final's pdfinfo\n#    Linux:   apt install poppler-utils\n#    macOS:   brew install poppler\n#    Windows: choco install poppler\n\n# 4. Smoke test\ncd examples\u002Fhello_world\npython ..\u002F..\u002Ftools\u002Fposter_check.py preflight  poster.html\npython ..\u002F..\u002Ftools\u002Fposter_check.py measure    poster.html\npython ..\u002F..\u002Ftools\u002Fposter_check.py polish     poster.html\npython ..\u002F..\u002Ftools\u002Frender_preview.py          poster.html\npython ..\u002F..\u002Ftools\u002Fposter_check.py verify-final poster_preview.pdf --from-html poster.html\n\n# 5. (dev) run the test suite\npython -m pip install \"pytest>=7\" && python -m pytest\n```\n\nAll four `poster_check.py` calls should print `PASS` and `render_preview.py` should write `poster_preview.pdf` + `poster_preview.png` into the directory. If that works, install is good.\n\n**Tests (dev):** posterly is clone-only — no PyPI; `pyproject.toml` holds the deps + pytest config. The suite covers the four gates' logic plus Poppler- and Chromium-gated end-to-end checks against `examples\u002Fhello_world` (auto-skipped when those binaries aren't present).\n\n---\n\n## What's in here\n\n```\nposterly\u002F\n├── SKILL.md             ← workflow your agent follows when you \u002Fposterly\n├── tools\u002F\n│   ├── poster_check.py  ← preflight \u002F measure \u002F polish \u002F verify-final CLIs\n│   ├── render_preview.py← print-emulated PDF + thumbnail PNG\n│   └── _posterly\u002F       ← internal modules\n├── templates\u002F           ← landscape_4col, landscape_hero, portrait_2col\n├── examples\u002F\n│   ├── hello_world      ← smallest poster that clears every gate (install check)\n│   ├── powerflow_icml2026 ← real ICML 2026 poster (4-col landscape)\n│   ├── tdgfn_icml2026     ← real ICML 2026 poster (4-col landscape)\n│   └── optail_neurips2024 ← real NeurIPS 2024 poster (3-col, math-heavy)\n├── docs\u002Fshowcase\u002F       ← rendered PDFs + thumbnails for the showcase above\n└── tests\u002F               ← pytest suite (canvas \u002F preflight \u002F polish \u002F verify-final)\n```\n\nThe four sanity-check CLIs at a glance:\n\n- `preflight`     — static lint: LaTeX residue, raw `\u003C` inside math, missing local images, remote-image warnings (a print poster should be self-contained), missing `data-measure-role` markup.\n- `measure`       — print-emulated geometry: column-bottom spread, gap to footer, poster bbox aligned to the page.\n- `polish`        — soft visual checks: figure-AR sizing, broken\u002Fzero-size images (FIG\u002FBROKEN), typography orphans, space-between fill, card trailing whitespace (CARD\u002FTRAILING — a stretched card padded with blank space).\n- `verify-final`  — `pdfinfo`-based PDF sanity: page count, dimensions, file size.\n\nDetailed thresholds and tuning flags are in `SKILL.md`. See `templates\u002FREADME.md` for the template gallery and the conventions a new template must follow.\n\n---\n\n## Customizing your poster\n\nThe three knobs you'll actually touch:\n\n- **Colors \u002F fonts**: edit `:root` design tokens (`--accent`, `--gold`, `--font-serif`, …) in the template you copied.\n- **Logos**: drop into the same directory as `poster.html`, reference as `images\u002Fyour_logo.png`.\n- **QR code**: give `\u002Fposterly` your paper\u002Fcode URL and Claude generates the QR for you — the showcase posters' codes were made this way. Templates ship an inline SVG placeholder so they render offline; to make one by hand, `qrencode -o qr.png -s 12 \"\u003Curl>\"` (Linux) or `python -c \"import qrcode; qrcode.make('\u003Curl>').save('qr.png')\"`, then point the QR `\u003Cimg src=…>` at it.\n\n---\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","posterly 是一个用于创建学术会议海报的工具，将海报设计为单个HTML\u002FCSS文件，并通过无头Chromium渲染为适合打印的PDF。其核心功能包括提供三个中立模板、四个检查命令行工具以及一个能够生成符合ICML、NeurIPS等会议尺寸要求的PDF渲染管道。主要使用Python 3.10+编写，支持Claude和Codex等编码代理进行操作。适用于需要快速且专业地制作学术会议展示材料的研究人员或学生，无需云服务注册或数据追踪，保证了使用的便捷性和隐私性。","2026-06-11 04:09:16","CREATED_QUERY"]