Quick View
Generate minimal HTML to review structured data in a browser. Minimal styling, maximum readability.
When to Use User wants to review output that's hard to read in terminal Lists, tables, drafts, summaries that benefit from visual layout User says: "show me", "view this", "make reviewable", "open as webpage" Output Rules
DO:
Semantic HTML:
| Contact | Action | Draft |
|---|---|---|
| @name | Follow up | Hey... |
Expandable sections (for long content)
@username — action
Long content here that may need truncation...
Type-differentiated items
With actions
Sourced data (citations & drill-down)
When displaying data gathered from external sources, always include attribution links for drill-down.
Add to base template CSS:
.source { color: var(--muted); font-size: 0.75rem; } .source a { color: var(--muted); } .source a:hover { color: var(--accent); }
Inline attribution (preferred for lists):
Table with source column:
| Tip | Source |
|---|---|
| Description here | @user |
Expandable with source in summary:
Tip title — @source
Full content...
Meta header with main source:
Principles:
Always link to original when data comes from external sources Use @username for social media, domain for articles Source links should be muted/subtle, not prominent Include main source in meta header for collections from single source Editable drafts (with diff tracking)
For drafts that user may edit before sending. Tracks original vs edited for later analysis.
Include this script block at end of <body> (before closing </body> tag):
function saveDraft(el) { const key = 'draft_' + el.dataset.username; const edited = el.textContent.trim(); const original = el.dataset.original; if (edited !== original) { localStorage.setItem(key, edited); el.closest('details').querySelector('.status').textContent = '(edited)'; } }
function copyDraft(btn) { const pre = btn.closest('details').querySelector('pre'); navigator.clipboard.writeText(pre.textContent.trim()); btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = 'Copy', 1500); }
function restoreEdits() { document.querySelectorAll('pre[data-username]').forEach(el => { const saved = localStorage.getItem('draft_' + el.dataset.username); if (saved) { el.textContent = saved; el.closest('details').querySelector('.status').textContent = '(edited)'; } }); }
function exportEdits() { const edits = []; document.querySelectorAll('pre[data-username]').forEach(el => { const original = el.dataset.original; const current = el.textContent.trim(); if (original !== current) { edits.push({ username: el.dataset.username, original, edited: current }); } }); if (edits.length === 0) { alert('No edits to export'); return; } const blob = new Blob([JSON.stringify({exported_at: new Date().toISOString(), edits}, null, 2)], {type: 'application/json'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'draft_edits.json'; a.click(); }
restoreEdits();
Add export button in header when using editable drafts:
Workflow Identify the data to display (file, variable, recent output) Choose pattern: list, table, or expandable sections Generate HTML using template above Write to _private/views/{name}-temp.html Run open _private/views/{name}-temp.html If user approves, promote to {name}.html Example
User: "show me the drafts"
Claude:
Reads _private/drafts/outreach_drafts.md
Parses each draft (heading = contact, body = draft)
Generates HTML with
Result: Browser opens, user sees expandable list of drafts with auto dark/light mode, long content truncated with "Show more", can copy each one.
User: "this looks good, keep it"
Claude:
Renames drafts-temp.html → drafts.html Confirms: "Saved as drafts.html" Styling Handoff
This skill produces functional HTML with minimal styling. For full visual styling, invoke the html-style skill after generating.
Classes used by quick-view (compatible with html-style):
Class Purpose .type-user User input/message .type-draft Draft content .type-done Completed item .source Attribution links .meta Metadata header .truncate Long content container .actions Action button container
Data attributes for JS hooks:
data-username — Identifier for drafts data-original — Original text for diff tracking Attribution
Truncation pattern and CSS variables approach inspired by simon willison's claude-code-transcripts.
← 返回排行榜