Token导航 LogoToken导航TokenDH.com
前端设计操作浏览器github未标认证来源可访问许可证需确认审计提醒

posterskill-academic-posters海报技巧学术海报

Agent Skill

posterskill-academic-posters 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

22,992

周安装

958

GitHub Stars

39

下载量

7,664
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:posterskill-academic-posters(海报技巧学术海报)
来源仓库:https://github.com/aradotso/trending-skills
仓库路径:skills/posterskill-academic-posters
安装命令:
npx skills add https://github.com/aradotso/trending-skills --skill posterskill-academic-posters
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aradotso/trending-skills --skill posterskill-academic-posters

简介

用于处理 GitHub 仓库、Issue 和 Pull Request 等协作信息。

  • 适合围绕仓库状态、代码变更或协作事项进行内容整理。
  • 可辅助生成学术海报模板、跟踪投稿进度或归档会议资料。
  • 安装前建议确认权限范围和维护状态。posterskill-academic-posters 属于前端设计类 Skill,可作为该场景下的辅助能力补充。
  • 注意是否会触发联网、命令执行或文件读写操作。

SKILL.md

posterskill — Academic Poster Generator

Skill by ara.so — Daily 2026 Skills collection.

posterskill is a Claude Code skill that generates print-ready, interactive conference posters from your Overleaf paper source. It produces a single self-contained HTML file with a built-in drag-and-drop visual editor — no build step, no server required.

Installation & Setup

git clone git@github.com:ethanweber/posterskill.git poster
cd poster

# Clone your Overleaf paper source
git clone https://git.overleaf.com/YOUR_PROJECT_ID overleaf

# Optional: add reference posters for style matching
cp ~/Downloads/some_reference_poster.pdf references/

Start Claude Code and trigger the skill:

claude
/make-poster

Claude will ask for your project website URL and any formatting specs, then generate a poster/ directory with index.html.

Directory Structure

poster/                  # this repo
├── .claude/
│   └── commands/
│       └── make-poster.md   # the skill command
├── overleaf/            # your cloned Overleaf project
├── references/          # optional reference PDFs for style matching
└── poster/              # generated output
    ├── index.html       # the poster (self-contained)
    └── logos/           # downloaded institutional logos

What Gets Generated

The output poster/index.html is a React app (loaded via CDN) containing:

  • CARD_REGISTRY — each card's title, color, and JSX body content
  • DEFAULT_LAYOUT — column structure and card ordering
  • DEFAULT_LOGOS — institutional logos for the header
  • window.posterAPI — programmatic API for layout automation

Visual Editor Features

Open poster/index.html in Chrome to access the built-in editor:

FeatureHow to Use
Resize columnsDrag column dividers left/right
Resize cardsDrag row dividers up/down within a column
Swap cardsClick one diamond handle, then another
Move/insert cardsClick a handle, then click a drop zone
Adjust font sizeClick A- / A+ buttons in toolbar
Preview print layoutClick Preview button
Export layoutClick Copy Config to get JSON

Programmatic API (window.posterAPI)

Available in the browser console or via Playwright automation:

// Swap two cards by ID
posterAPI.swapCards('method', 'results')

// Move a card to a specific column and position
posterAPI.moveCard('quant', 'col1', 2)

// Resize a column (in mm)
posterAPI.setColumnWidth('col1', 280)

// Set a specific card's height (in mm)
posterAPI.setCardHeight('method', 150)

// Scale all text globally
posterAPI.setFontScale(1.5)

// Measure whitespace waste (lower = better layout)
posterAPI.getWaste()

// Get the current layout as an object
posterAPI.getLayout()

// Get the full config as JSON (paste back to Claude)
posterAPI.getConfig()

// Reset to default layout
posterAPI.resetLayout()

Iteration Workflow

The core loop for refining your poster:

  1. Claude generates first draft, opens poster/index.html in your browser
  2. You edit in the browser — drag dividers, swap cards, resize columns
  3. Click "Copy Config" in the toolbar to export your layout as JSON
  4. Paste the JSON back to Claude — it updates DEFAULT_LAYOUT in the HTML
  5. Repeat until the layout is perfect
  6. Print to PDF: File → Print → Margins: None, Background Graphics: On

Playwright Automation (used internally by Claude)

Claude uses Playwright to automate layout verification. You can use it too:

const { chromium } = require('playwright');

async function optimizePoster() {
  const browser = await chromium.launch();
  const page = await browser.newPage();

  await page.goto(`file://${__dirname}/poster/index.html`);

  // Use the posterAPI to adjust layout programmatically
  const waste = await page.evaluate(() => posterAPI.getWaste());
  console.log('Whitespace waste:', waste);

  // Resize a column
  await page.evaluate(() => posterAPI.setColumnWidth('col1', 300));

  // Take a screenshot for visual verification
  await page.screenshot({ path: 'poster-preview.png', fullPage: true });

  // Generate PDF at print resolution
  await page.pdf({
    path: 'poster.pdf',
    width: '841mm',   // A0 landscape width
    height: '1189mm',
    printBackground: true,
  });

  await browser.close();
}

Card Registry Structure

Each card in the poster is defined in CARD_REGISTRY:

const CARD_REGISTRY = {
  abstract: {
    title: "Abstract",
    color: "#f0f4ff",
    body: `
      <p>Your abstract text here. Supports full JSX including
      <strong>bold</strong>, <em>italic</em>, and inline math.</p>
    `
  },
  method: {
    title: "Method",
    color: "#fff8f0",
    body: `
      <img src="figures/pipeline.png" style={{width:'100%'}} />
      <p>Caption describing the pipeline above.</p>
    `
  },
  results: {
    title: "Results",
    color: "#f0fff4",
    body: `
      <table>...</table>
    `
  }
};

Default Layout Structure

const DEFAULT_LAYOUT = {
  columns: [
    {
      id: 'col1',
      widthMm: 280,
      cards: ['abstract', 'method']
    },
    {
      id: 'col2',
      widthMm: 320,
      cards: ['results', 'quant']
    },
    {
      id: 'col3',
      widthMm: 280,
      cards: ['conclusion', 'references']
    }
  ]
};

Inputs Claude Uses

InputWhere It Comes FromRequired
Paper contentoverleaf/ directoryYes
Project websiteURL (asked at runtime)Yes
Reference postersreferences/*.pdfNo
Author websiteURL for brand matchingNo
Formatting specsConference URL or textAsked if missing
LogosAuto-downloaded to poster/logos/Auto

Common Patterns

Adding a custom figure card

// In CARD_REGISTRY, add a new card
custom_fig: {
  title: "Qualitative Results",
  color: "#fafafa",
  body: `
    <div style={{display:'grid', gridTemplateColumns:'1fr 1fr', gap:'8px'}}>
      <img src="figures/result1.png" style={{width:'100%'}} />
      <img src="figures/result2.png" style={{width:'100%'}} />
    </div>
    <p style={{fontSize:'0.85em', textAlign:'center'}}>
      Comparison on held-out test scenes.
    </p>
  `
}

Then add it to DEFAULT_LAYOUT:

{ id: 'col2', widthMm: 320, cards: ['results', 'custom_fig'] }

Logos configuration

const DEFAULT_LOGOS = [
  { src: 'logos/university.png', height: 60 },
  { src: 'logos/lab.png', height: 50 },
  { src: 'logos/sponsor.png', height: 45 },
];

Printing to PDF

In Chrome:

  1. Open poster/index.html
  2. Click Preview to verify layout
  3. Ctrl+P / Cmd+P
  4. Set Margins: None
  5. Enable Background graphics
  6. Set paper size to your conference spec (A0, 36×48in, etc.)
  7. Save as PDF

Troubleshooting

Poster looks different in print vs browser → Use Chrome (not Firefox/Safari). Enable "Background graphics" in print dialog.

Figures not loading → Ensure figure paths in the HTML are relative to poster/index.html. Claude copies figures to poster/figures/ — verify the directory exists.

Logos not fetched → Claude uses Playwright to download logos from your project website. If it fails, manually copy logo files to poster/logos/ and update DEFAULT_LOGOS paths.

Layout config not updating after paste → Make sure you paste the full JSON from Copy Config — Claude looks for the complete DEFAULT_LAYOUT and DEFAULT_LOGOS objects to replace.

Font too small/large for poster size → Use posterAPI.setFontScale(1.2) in the browser console, or click A+ / A- buttons, then Copy Config and paste to Claude.

Whitespace gaps between cards → Run posterAPI.getWaste() in console to quantify. Use posterAPI.setCardHeight('cardId', heightMm) to tune card heights, or drag row dividers manually.

Example Output

See the Fillerbuster poster (repo) as a live example of posterskill output.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.18%
按下载量换算2,773

Claude

31.72%
按下载量换算2,431

Cursor

17.12%
按下载量换算1,312

Gemini CLI

9.2%
按下载量换算705

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills