Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion build/render.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,20 @@ const ASSET_QUERY = /(assets\/(?:vendor\/bootstrap-icons\/bootstrap-icons\.css|c
A non-greedy match on </div> would work on the empty shell but not on an
already-built file, where the header contains nested divs of its own -- so
the build has to be greedy here to stay idempotent. */
/* Trailing whitespace on generated lines, removed at the point of writing.

Template literals indent their blank lines along with everything else, so
the rendered pages carry a few hundred lines that are nothing but spaces.
Harmless to a browser, and `git diff --check` flags each one as it enters a
diff, which puts noise in front of every reviewer of every change that
happens to shift those lines.

Applied to the site's own pages only. The offline Workshop artifact is
written separately and deliberately untouched: its bytes are published as a
SHA-256 and signed by an attestation, so "harmless formatting" is exactly
the kind of change that must not reach it. */
const tidy = html => html.replace(/[ \t]+$/gm, '');

const SHELL = /<div id="site-header">[\s\S]*<\/div>(?=\s*<noscript)/;
const NOSCRIPT = /<noscript>[\s\S]*?<\/noscript>/;

Expand Down Expand Up @@ -172,6 +186,7 @@ for (const [file, key] of Object.entries(FILES)) {

let out = html.replace(SHELL, () => filled);
if (NOSCRIPT.test(out)) out = out.replace(NOSCRIPT, () => noscriptFor(key));
out = tidy(out);
if (out !== source) {
writeFileSync(path, out);
changed++;
Expand Down Expand Up @@ -291,7 +306,7 @@ for (const guide of publishedGuides) {
</body>
</html>
`;
writeFileSync(`docs/guides/${guide.slug}.html`, html);
writeFileSync(`docs/guides/${guide.slug}.html`, tidy(html));
console.log(` guides/${guide.slug}.html`.padEnd(46) + `${Math.round(html.length / 1024)} KB`);
}

Expand Down
16 changes: 8 additions & 8 deletions docs/coinkite.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@
</div>
</header></div>
<main id="main-content">

<section class="sc-hero has-media">

<div class="container">

<div class="row g-5 align-items-center">
<div class="col-lg-7 sc-hero-copy">
<span class="sc-eyebrow">Coinkite product family</span>
Expand All @@ -93,7 +93,7 @@ <h1>Canadian-built tools for<br><em>keys, signing, and physical bitcoin.</em></h
<div class="container">
<div class="sc-section-head"><span class="sc-eyebrow">The key distinction</span><h2>Signer, card, or bearer instrument?</h2><p>Start with the role—not the form factor.</p></div>
<div class="row g-4">

<div class="col-md-6 col-xl-3">
<article class="sc-card">
<div class="sc-card-body">
Expand All @@ -104,7 +104,7 @@ <h3>COLDCARD Q / Mk5</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-3">
<article class="sc-card">
<div class="sc-card-body">
Expand All @@ -115,7 +115,7 @@ <h3>TAPSIGNER</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-3">
<article class="sc-card">
<div class="sc-card-body">
Expand All @@ -126,7 +126,7 @@ <h3>SATSCARD</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-3">
<article class="sc-card">
<div class="sc-card-body">
Expand Down Expand Up @@ -213,7 +213,7 @@ <h3>Do not mistake it for</h3><ul class="sc-caution-list"><li>A debit card, Ligh
</article>

<div class="sc-callout mt-4"><h3>Supply-chain rule</h3><p>Coinkite recommends buying from its store or an authorized reseller and inspecting security products for tampering. A discount is not worth uncertainty about who handled a signing device.</p></div>

<p class="sc-source-note">
Product details checked against <a href="https://coinkite.com/" target="_blank" rel="noopener">Coinkite</a>, <a href="https://coldcard.com/" target="_blank" rel="noopener">COLDCARD</a>, <a href="https://tapsigner.com/" target="_blank" rel="noopener">TAPSIGNER</a>, <a href="https://satscard.com/" target="_blank" rel="noopener">SATSCARD</a>.
Features, availability, and pricing can change.
Expand Down
26 changes: 13 additions & 13 deletions docs/devices.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,14 @@
</div>
</header></div>
<main id="main-content">

<section class="sc-hero has-background-media">

<figure class="sc-hero-background-media" aria-hidden="true">
<img src="assets/img/devices-hero.jpg" alt="" width="1584" height="672" fetchpriority="high">
</figure>
<div class="container">

<div class="sc-hero-copy">
<span class="sc-eyebrow">Hardware signers</span>
<h1>The many paths<br><em><span class="sc-hero-flip" aria-live="polite" data-flip-phrases='["to sovereignty.","to self custody.","to financial freedom.","to cold storage.","to peace of mind."]'><span class="sc-hero-flip-item is-active">to sovereignty.</span></span></em></h1>
Expand Down Expand Up @@ -112,7 +112,7 @@ <h3>Don't blindly trust device randomness</h3>
</aside>
<div class="sc-section-head"><span class="sc-eyebrow">Shortlist</span><h2>Nine useful reference points</h2><p>This is not a winner-takes-all ranking. Each device represents a different balance of transparency, convenience, connectivity, and operator skill.</p></div>
<div class="row g-4 sc-path-options sc-device-card-grid">

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#trezor" aria-label="Read details: Trezor Safe 7"></a>
Expand All @@ -127,7 +127,7 @@ <h3>Trezor Safe 7</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#bitkey-device" aria-label="Read details: Bitkey"></a>
Expand All @@ -142,7 +142,7 @@ <h3>Bitkey</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#bitbox" aria-label="Read details: BitBox02"></a>
Expand All @@ -157,7 +157,7 @@ <h3>BitBox02</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#jade" aria-label="Read details: Blockstream Jade Plus"></a>
Expand All @@ -172,7 +172,7 @@ <h3>Blockstream Jade Plus</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#coldcard" aria-label="Read details: COLDCARD Q / Mk5"></a>
Expand All @@ -187,7 +187,7 @@ <h3>COLDCARD Q / Mk5</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#passport" aria-label="Read details: Foundation Passport"></a>
Expand All @@ -202,7 +202,7 @@ <h3>Foundation Passport</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#seedsigner" aria-label="Read details: SeedSigner"></a>
Expand All @@ -217,7 +217,7 @@ <h3>SeedSigner</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#krux" aria-label="Read details: Krux"></a>
Expand All @@ -232,7 +232,7 @@ <h3>Krux</h3>
</div>
</article>
</div>

<div class="col-md-6 col-xl-4">
<article class="sc-card sc-product-card sc-path-card-link">
<a class="sc-card-cover-link" href="#ledger" aria-label="Read details: Ledger"></a>
Expand Down Expand Up @@ -520,7 +520,7 @@ <h3>Ledger</h3>
<div class="sc-detail-footer"><a class="sc-text-link" href="https://www.ledger.com/" target="_blank" rel="noopener">Official site <i class="bi bi-arrow-up-right"></i></a>
<div class="sc-product-guides"><a class="sc-text-link" href="guides/ledger-setup.html" title="Ledger: first-time setup — Beginner · 35 min hands-on" aria-label="Ledger: first-time setup — Beginner · 35 min hands-on">Guide <i class="bi bi-arrow-right" aria-hidden="true"></i></a></div></div></article>


<p class="sc-source-note">
Product details checked against <a href="https://coldcard.com/" target="_blank" rel="noopener">COLDCARD</a>, <a href="https://trezor.io/trezor-safe-7-bitcoin-only" target="_blank" rel="noopener">Trezor</a>, <a href="https://selfcustody.github.io/krux/" target="_blank" rel="noopener">Krux</a>, <a href="https://blockstream.com/jade/jade-plus/" target="_blank" rel="noopener">Blockstream</a>, <a href="https://bitkey.world/" target="_blank" rel="noopener">Bitkey</a>, <a href="https://bitbox.swiss/bitbox02/bitcoin-only/" target="_blank" rel="noopener">BitBox</a>, <a href="https://seedsigner.com/" target="_blank" rel="noopener">SeedSigner</a>, <a href="https://foundation.xyz/passport" target="_blank" rel="noopener">Foundation</a>, <a href="https://www.ledger.com/" target="_blank" rel="noopener">Ledger</a>.
Features, availability, and pricing can change.
Expand Down
8 changes: 4 additions & 4 deletions docs/exchanges.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,14 @@
</div>
</header></div>
<main id="main-content">

<section class="sc-hero has-background-media">

<figure class="sc-hero-background-media" aria-hidden="true">
<img src="assets/img/exchanges-hero.jpg" alt="" width="1584" height="672" fetchpriority="high">
</figure>
<div class="container">

<div class="sc-hero-copy">
<span class="sc-eyebrow">Canadian exchanges</span>
<h1>From <span class="sc-outlined-word sc-hero-fiat" data-text="FIAT"><span class="sc-word-fill">FIAT</span></span> IOUs<br><em>to true <span class="sc-outlined-word sc-hero-command-destination" data-text="BITCOIN"><span class="sc-word-fill">BITCOIN</span></span> ownership.</em></h1>
Expand Down Expand Up @@ -240,7 +240,7 @@ <h2>Six Canadian routes</h2>
<div class="col-lg-6"><article id="bitbuy" class="sc-detail is-custodial h-100"><div class="sc-exchange-brand"><img src="assets/img/exchanges/bitbuy.png" alt="" width="48" height="48" loading="lazy"><h2>Bitbuy</h2></div><p>A Canadian crypto marketplace offering Express and Pro trading, Interac and bank funding, external withdrawals, and multiple assets. It operates under Coinsquare Capital Markets.</p><h3>Why people consider it</h3><ul class="sc-check-list"><li>Canadian-focused onboarding and regulation.</li><li>Choice between simple quotes and a Pro interface.</li></ul><h3>Check</h3><ul class="sc-caution-list"><li>Express quotes include spread; Pro uses maker/taker pricing.</li><li>Crypto withdrawal fees can change with the asset and network.</li></ul><a class="sc-text-link" href="https://bitbuy.ca/en-ca/fees" target="_blank" rel="noopener">Official site <i class="bi bi-arrow-up-right"></i></a></article></div>
</div>


<p class="sc-source-note">
Product details checked against <a href="https://www.bullbitcoin.com/buy" target="_blank" rel="noopener">Bull Bitcoin</a>, <a href="https://bitcoinwell.com/about" target="_blank" rel="noopener">Bitcoin Well</a>, <a href="https://shakepay.com/bitcoin" target="_blank" rel="noopener">Shakepay</a>, <a href="https://ndax.io/en/fees" target="_blank" rel="noopener">Ndax</a>, <a href="https://www.kraken.com/ca" target="_blank" rel="noopener">Kraken Canada</a>, <a href="https://bitbuy.ca/en-ca/fees" target="_blank" rel="noopener">Bitbuy</a>.
Features, availability, and pricing can change.
Expand Down
6 changes: 3 additions & 3 deletions docs/glossary.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@
</div>
</header></div>
<main id="main-content">

<section class="sc-hero has-background-media">

<figure class="sc-hero-background-media" aria-hidden="true">
<img src="assets/img/glossary-hero.jpg" alt="" width="1570" height="656" fetchpriority="high">
</figure>
<div class="container">

<div class="sc-hero-copy">
<span class="sc-eyebrow">Bitcoin reference</span>
<h1>The <span class="sc-outlined-word sc-hero-command-destination" data-text="BITCOIN"><span class="sc-word-fill">BITCOIN</span></span> Glossary.</h1>
Expand Down
Loading