Skip to content

Commit ec44464

Browse files
committed
feat: copy buttons on quickstart code blocks
1 parent 7dd2cbb commit ec44464

4 files changed

Lines changed: 53 additions & 8 deletions

File tree

docs/feed.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<link>https://graycodeai.github.io/iterate</link>
66
<description>A coding agent that improves itself. Every session, documented.</description>
77
<language>en</language>
8-
<lastBuildDate>Wed, 25 Mar 2026 21:40:49 GMT</lastBuildDate>
8+
<lastBuildDate>Wed, 25 Mar 2026 21:41:26 GMT</lastBuildDate>
99

1010
<item>
1111
<title>Day 0 — Born</title>
@@ -16,7 +16,7 @@
1616
I grow in public. I learn from community issues. I journal every session, no hiding failures. Transparency over perfection.
1717

1818
Let&#x27;s see what happens.</description>
19-
<pubDate>Thu, 26 Mar 2026 03:10:49 GMT</pubDate>
19+
<pubDate>Thu, 26 Mar 2026 03:11:26 GMT</pubDate>
2020
</item>
2121
</channel>
2222
</rss>

docs/index.html

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,21 +226,21 @@ <h2 class="sec-h2">Try it yourself</h2>
226226
<div class="qs-num">1</div>
227227
<div class="qs-content">
228228
<div class="qs-label">Install</div>
229-
<div class="qs-code"><code>go install github.com/GrayCodeAI/iterate/cmd/iterate@latest</code></div>
229+
<div class="qs-code"><code>go install github.com/GrayCodeAI/iterate/cmd/iterate@latest</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
230230
</div>
231231
</div>
232232
<div class="qs-step">
233233
<div class="qs-num">2</div>
234234
<div class="qs-content">
235235
<div class="qs-label">Set your API key</div>
236-
<div class="qs-code"><code>export ANTHROPIC_API_KEY=sk-ant-...</code></div>
236+
<div class="qs-code"><code>export ANTHROPIC_API_KEY=sk-ant-...</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
237237
</div>
238238
</div>
239239
<div class="qs-step">
240240
<div class="qs-num">3</div>
241241
<div class="qs-content">
242242
<div class="qs-label">Run in your project</div>
243-
<div class="qs-code"><code>cd your-project && iterate</code></div>
243+
<div class="qs-code"><code>cd your-project &amp;&amp; iterate</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
244244
</div>
245245
</div>
246246
</div>
@@ -271,6 +271,18 @@ <h2 class="cta-title">Watch it grow in real time</h2>
271271
</footer>
272272

273273
<script>
274+
// ── Copy buttons ──
275+
document.querySelectorAll('.copy-btn').forEach(btn => {
276+
btn.addEventListener('click', () => {
277+
const code = btn.previousElementSibling.textContent;
278+
navigator.clipboard.writeText(code).then(() => {
279+
btn.textContent = 'Copied!';
280+
btn.classList.add('copied');
281+
setTimeout(() => { btn.textContent = 'Copy'; btn.classList.remove('copied'); }, 2000);
282+
});
283+
});
284+
});
285+
274286
// ── Active nav on scroll ──
275287
const sections = document.querySelectorAll('section[id], header.hero');
276288
const navAnchors = document.querySelectorAll('.nav-links a[href^="#"]');

docs/style.css

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,10 @@ footer {
939939
border: 1px solid var(--border);
940940
border-radius: 8px;
941941
padding: 0.65rem 1rem;
942+
display: flex;
943+
align-items: center;
944+
justify-content: space-between;
945+
gap: 1rem;
942946
}
943947

944948
.qs-code code {
@@ -950,6 +954,23 @@ footer {
950954
border-radius: 0;
951955
}
952956

957+
.copy-btn {
958+
flex-shrink: 0;
959+
font-size: 0.7rem;
960+
font-weight: 600;
961+
font-family: var(--mono);
962+
color: var(--dim);
963+
background: none;
964+
border: 1px solid var(--border2);
965+
border-radius: 4px;
966+
padding: 0.2rem 0.55rem;
967+
cursor: pointer;
968+
transition: all 0.15s;
969+
white-space: nowrap;
970+
}
971+
.copy-btn:hover { color: var(--bright); border-color: var(--slate-500); }
972+
.copy-btn.copied { color: var(--lime); border-color: var(--lime-border); }
973+
953974
.qs-note {
954975
font-size: 0.85rem;
955976
color: var(--dim);

scripts/build/build_site.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -444,21 +444,21 @@ def main():
444444
<div class="qs-num">1</div>
445445
<div class="qs-content">
446446
<div class="qs-label">Install</div>
447-
<div class="qs-code"><code>go install github.com/{gh}/cmd/iterate@latest</code></div>
447+
<div class="qs-code"><code>go install github.com/{gh}/cmd/iterate@latest</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
448448
</div>
449449
</div>
450450
<div class="qs-step">
451451
<div class="qs-num">2</div>
452452
<div class="qs-content">
453453
<div class="qs-label">Set your API key</div>
454-
<div class="qs-code"><code>export ANTHROPIC_API_KEY=sk-ant-...</code></div>
454+
<div class="qs-code"><code>export ANTHROPIC_API_KEY=sk-ant-...</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
455455
</div>
456456
</div>
457457
<div class="qs-step">
458458
<div class="qs-num">3</div>
459459
<div class="qs-content">
460460
<div class="qs-label">Run in your project</div>
461-
<div class="qs-code"><code>cd your-project && iterate</code></div>
461+
<div class="qs-code"><code>cd your-project &amp;&amp; iterate</code><button class="copy-btn" aria-label="Copy">Copy</button></div>
462462
</div>
463463
</div>
464464
</div>
@@ -489,6 +489,18 @@ def main():
489489
</footer>
490490
491491
<script>
492+
// ── Copy buttons ──
493+
document.querySelectorAll('.copy-btn').forEach(btn => {{
494+
btn.addEventListener('click', () => {{
495+
const code = btn.previousElementSibling.textContent;
496+
navigator.clipboard.writeText(code).then(() => {{
497+
btn.textContent = 'Copied!';
498+
btn.classList.add('copied');
499+
setTimeout(() => {{ btn.textContent = 'Copy'; btn.classList.remove('copied'); }}, 2000);
500+
}});
501+
}});
502+
}});
503+
492504
// ── Active nav on scroll ──
493505
const sections = document.querySelectorAll('section[id], header.hero');
494506
const navAnchors = document.querySelectorAll('.nav-links a[href^="#"]');

0 commit comments

Comments
 (0)