Add Material icons to all pages, rewrite examples page as step-by-step guide
All checks were successful
Build and deploy docs / deploy (push) Successful in 3s

This commit is contained in:
2026-07-30 14:20:59 +02:00
parent 5af5607fc7
commit f03a985ae5
25 changed files with 226 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
# How BAL compares # :material-scale-balance: How BAL compares
!!! info "This information may be out of date" !!! info "This information may be out of date"
This page compares other projects (Nunchuk, Liana) whose features and prices change This page compares other projects (Nunchuk, Liana) whose features and prices change

View File

@@ -1,38 +1,92 @@
# REAL EXAMPLE # :material-script-text: An example of a proper succession plan with Bitcoin
!!! danger "Draft — needs review before publishing" A concrete, start-to-finish walkthrough of how someone actually sets up a Bitcoin
This page has not been checked against the plugin's actual behaviour. It inheritance with BAL — and keeps it current for years without spending anything.
was written from the manual's own descriptions elsewhere, which may not
be complete or precise enough on their own — treat every claim below,
especially about costs and timing, as unverified until confirmed with
the developers or by testing directly. Do not treat it as authoritative
yet.
Real-world scenarios, to make the mechanics concrete. ## Step by step
## Inheritance across three continents, renewed for years at no cost <div class="steps" markdown>
**The setup.** Four heirs, living in three different countries. A delivery time of **5 years**, and several Will-Executors selected from the [WeList](will-executors/welist.md) for redundancy. <div class="step" markdown>
**:material-shield-check: Start from Electrum.** You use [Electrum](https://electrum.org),
a state-of-the-art Bitcoin wallet with one of the longest security track records in the
ecosystem. BAL builds on it rather than reinventing the wallet.
</div>
**Cost at setup: zero.** Both fees — the miner fee and the Will-Executor fee — are only paid **once**, at the moment a Will-Executor actually broadcasts the inheritance. Setting up the will, signing it, and sending it to several servers costs nothing beyond the wallet's own normal use. <div class="step" markdown>
**:material-usb-flash-drive: Add a hardware wallet (optional).** If you want, pair Electrum
with a hardware device to raise the security of your keys even further. BAL works the same
either way — Electrum still does all the signing.
</div>
**Staying current costs nothing, as long as you don't push the date later.** Ordinary use of the wallet — receiving funds, spending some, adding or editing an heir — makes the plugin rebuild the will automatically. Because this **anticipates** the delivery date by one day and redistributes it to the same Will-Executors, it is a free operation: no on-chain fee, no signature beyond the one Electrum already asks for. See [Postponing vs anticipating](user-guide/updating.md#postponing-vs-anticipating). <div class="step" markdown>
**:material-account-heart: You have funds to protect.** You hold bitcoin in Electrum that,
in case of an accident, death, or a lost seed, should reach your children — or simply a
backup wallet of your own.
</div>
!!! warning "One thing this does *not* do for free" <div class="step" markdown>
Bringing forward the inheritance simply brings the date forward by one day and resends it to the Will-Executors, at no cost. **:material-puzzle: Install the BAL plugin.** Add Bitcoin After Life to Electrum. See
If, on the other hand, you wish to maintain a fixed time horizon — "always 5 years from today", as explained in the [Delivery time](user-guide/delivery-time.md) section — in this case the date is postponed each time it is updated. [Installation](getting-started/installation.md).
This involves postponing the date further into the future, which requires a full on-chain transaction to first invalidate the previously distributed will. This incurs a mining fee on the Bitcoin blockchain. </div>
**What this looks like over time:** <div class="step" markdown>
**:material-auto-fix: Set up the inheritance with the guided wizard.** BAL walks you through
the whole thing step by step — see [Create your first will](getting-started/quick-start.md).
</div>
- **Year 0.** The will is created: 5 years out, 4 heirs, several Will-Executors. Cost: 0. <div class="step" markdown>
- **Year 12.** The wallet is used normally — a few incoming and outgoing transactions. Each one triggers a free refresh. The delivery date itself hasn't moved, so the horizon has quietly shrunk to 34 years. Cost: 0. **:material-account-group: Add your heirs and their shares.** Enter how many heirs receive
- **Year 3.** Time to push the horizon back out to 5 years. This is a postponement: one small on-chain transaction to invalidate the old will before signing the new one. Cost: one miner fee, paid by the wallet owner. the funds and the share for each. *To avoid future disputes, equal shares for everyone are
- **Onward.** Repeat every 23 years — see [How often to renew](user-guide/updating.md#how-often-to-renew). Each cycle also picks up newer Will-Executors that joined the network since the last renewal. usually the wisest choice.*
</div>
The heirs are not involved in any way throughout this entire process. They simply need to keep their receiving wallet safe, or the sheets on which the seed is written (Bitcoin private keys, 12 or 24 words), which we will have taken care to give them if they do not already have a Bitcoin wallet or are not old enough to manage one. <div class="step" markdown>
They do not need to know the date of the will, nor do they need to take any action: the entire mechanism operates invisibly until the day it is needed. **:material-calendar-clock: Choose the delivery date.** For example 5 or 10 years from now.
Furthermore, they do not know how much in Bitcoin funds awaits them, unless we choose to tell them. </div>
<div class="step" markdown>
**:material-file-sign: The plugin builds the post-dated transaction.** It includes the fee
for the miners and for the Will-Executors — the servers that hold the will until the chosen
date and, on that day, broadcast it to the Bitcoin nodes that will accept the transaction.
!!! success "Setting up and updating a will costs nothing"
You pay no fee to create or update an inheritance. The fees exist only in the transaction
itself and are paid **only if and when** the inheritance is actually executed.
</div>
<div class="step" markdown>
**:material-refresh: Renew it once a year or two.** Mark it in your calendar. When you renew
— adding an heir, changing shares — the plugin rewrites the inheritance transaction and
re-sends it to the Will-Executors **dated one day earlier**, so you avoid an on-chain
transaction and any mining fee. Renewing regularly brings two real advantages:
- **More redundancy** — each renewal can pick up additional Will-Executors that will hold
your will until the delivery date.
- **Future-proofing** — a fresh time-locked transaction can incorporate future Bitcoin
protocol upgrades, such as quantum-resistant security, as they arrive.
</div>
</div>
## Using your wallet normally
Setting up an inheritance does not freeze your wallet — you keep using Electrum as usual.
If you **receive** or **spend** funds after the will is set up, the next time you close
Electrum the BAL plugin checks your balance (by inspecting your UTXOs) and warns you if the
inheritance needs updating.
Here too the plugin **anticipates the date by one day**. So a will set to execute on
**30 July 2031** is reissued for **29 July 2031** — with no need to write anything on-chain
and no miner fee. This works because an *earlier* time-locked transaction automatically
invalidates the later one it replaces.
!!! info "Why anticipating is free, and postponing is not"
Moving the date **earlier** (anticipating) is free, because the new transaction simply
supersedes the old one. Moving the date **later** (postponing) is the one case that needs
a real on-chain transaction, and therefore a small miner fee. For the full mechanics see
[Keeping the will up to date](user-guide/updating.md#postponing-vs-anticipating).
--- ---

View File

@@ -1,4 +1,4 @@
# FAQ # :material-help-circle: FAQ
## The project ## The project

View File

@@ -1,4 +1,4 @@
# Installation # :material-puzzle: Installation
## Requirements ## Requirements

View File

@@ -1,4 +1,4 @@
# Create your first will # :material-auto-fix: Create your first will
The plugin ships with a **guided wizard** that walks you through the whole setup. You only need two decisions: *who inherits* and *when*. The plugin ships with a **guided wizard** that walks you through the whole setup. You only need two decisions: *who inherits* and *when*.

View File

@@ -26,11 +26,11 @@ You set your heirs and a delivery date. The plugin builds a time-locked transact
<div class="grid cards" markdown> <div class="grid cards" markdown>
- **New here?** → [Installation](getting-started/installation.md), then [create your first will](getting-started/quick-start.md). - :material-rocket-launch:{ .card-ico } **New here?** → [Installation](getting-started/installation.md), then [create your first will](getting-started/quick-start.md).
- **Want the details?** → [Heirs and shares](user-guide/heirs.md), [Delivery time](user-guide/delivery-time.md), [The WILL tab](user-guide/will-tab.md). - :material-book-open-variant:{ .card-ico } **Want the details?** → [Heirs and shares](user-guide/heirs.md), [Delivery time](user-guide/delivery-time.md), [The WILL tab](user-guide/will-tab.md).
- **Curious about the servers?** → [What Will-Executors are](will-executors/what-they-are.md). - :material-server-network:{ .card-ico } **Curious about the servers?** → [What Will-Executors are](will-executors/what-they-are.md).
- **Want to run one?** → [Running a Will-Executor](will-executors/running-a-server.md). - :material-server:{ .card-ico } **Want to run one?** → [Running a Will-Executor](will-executors/running-a-server.md).
- **Just have a question?** → [**FAQ**](faq.md) — costs, hardware wallets, what happens if a server disappears, and more. - :material-help-circle:{ .card-ico } **Just have a question?** → [**FAQ**](faq.md) — costs, hardware wallets, what happens if a server disappears, and more.
</div> </div>

View File

@@ -0,0 +1,29 @@
// Prepend a Material icon to selected top-level nav entries (section titles and
// a couple of standalone links) in the sidebar, matched by exact label text.
// Nav labels are plain text in mkdocs.yml, so the theme cannot carry an icon for
// them — this adds it on the client side.
(function () {
var ICONS = {
'Getting started': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"m13.13 22.19-1.63-3.83c1.57-.58 3.04-1.36 4.4-2.27zM5.64 12.5l-3.83-1.63 6.1-2.77C7 9.46 6.22 10.93 5.64 12.5M21.61 2.39S16.66.269 11 5.93c-2.19 2.19-3.5 4.6-4.35 6.71-.28.75-.09 1.57.46 2.13l2.13 2.12c.55.56 1.37.74 2.12.46A19.1 19.1 0 0 0 18.07 13c5.66-5.66 3.54-10.61 3.54-10.61m-7.07 7.07c-.78-.78-.78-2.05 0-2.83s2.05-.78 2.83 0c.77.78.78 2.05 0 2.83s-2.05.78-2.83 0m-5.66 7.07-1.41-1.41zM6.24 22l3.64-3.64c-.34-.09-.67-.24-.97-.45L4.83 22zM2 22h1.41l4.77-4.76-1.42-1.41L2 20.59zm0-2.83 4.09-4.08c-.21-.3-.36-.62-.45-.97L2 17.76z\"/></svg>",
'User guide': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 21.5c-1.35-.85-3.8-1.5-5.5-1.5-1.65 0-3.35.3-4.75 1.05-.1.05-.15.05-.25.05-.25 0-.5-.25-.5-.5V6c.6-.45 1.25-.75 2-1 1.11-.35 2.33-.5 3.5-.5 1.95 0 4.05.4 5.5 1.5 1.45-1.1 3.55-1.5 5.5-1.5 1.17 0 2.39.15 3.5.5.75.25 1.4.55 2 1v14.6c0 .25-.25.5-.5.5-.1 0-.15 0-.25-.05-1.4-.75-3.1-1.05-4.75-1.05-1.7 0-4.15.65-5.5 1.5M12 8v11.5c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5V7c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5m1 3.5c1.11-.68 2.6-1 4.5-1 .91 0 1.76.09 2.5.28V9.23c-.87-.15-1.71-.23-2.5-.23q-2.655 0-4.5.84zm4.5.17c-1.71 0-3.21.26-4.5.79v1.69c1.11-.65 2.6-.99 4.5-.99 1.04 0 1.88.08 2.5.24v-1.5c-.87-.16-1.71-.23-2.5-.23m2.5 2.9c-.87-.16-1.71-.24-2.5-.24-1.83 0-3.33.27-4.5.8v1.69c1.11-.66 2.6-.99 4.5-.99 1.04 0 1.88.08 2.5.24z\"/></svg>",
'Will-Executors': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 19h1a1 1 0 0 1 1 1h7v2h-7a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1H2v-2h7a1 1 0 0 1 1-1h1v-2H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-7zM4 3h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1m5 4h1V5H9zm0 8h1v-2H9zM5 5v2h2V5zm0 8v2h2v-2z\"/></svg>",
'Protocol': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 2v6h2v3H5c-1.11 0-2 .89-2 2v3H1v6h6v-6H5v-3h6v3H9v6h6v-6h-2v-3h6v3h-2v6h6v-6h-2v-3c0-1.11-.89-2-2-2h-6V8h2V2z\"/></svg>",
'Example inheritance plan': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M17.8 20c-.4 1.2-1.5 2-2.8 2H5c-1.7 0-3-1.3-3-3v-1h12.2c.4 1.2 1.5 2 2.8 2zM19 2c1.7 0 3 1.3 3 3v1h-2V5c0-.6-.4-1-1-1s-1 .4-1 1v13h-1c-.6 0-1-.4-1-1v-1H5V5c0-1.7 1.3-3 3-3zM8 6v2h7V6zm0 4v2h6v-2z\"/></svg>",
'How BAL compares': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 3c-1.27 0-2.4.8-2.82 2H3v2h1.95L2 14c-.47 2 1 3 3.5 3s4.06-1 3.5-3L6.05 7h3.12c.33.85.98 1.5 1.83 1.83V20H2v2h20v-2h-9V8.82c.85-.32 1.5-.97 1.82-1.82h3.13L15 14c-.47 2 1 3 3.5 3s4.06-1 3.5-3l-2.95-7H21V5h-6.17C14.4 3.8 13.27 3 12 3m0 2a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m-6.5 5.25L7 14H4zm13 0L20 14h-3z\"/></svg>",
'Security & Privacy': "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 6c1.4 0 2.8 1.1 2.8 2.5V11c.6 0 1.2.6 1.2 1.3v3.5c0 .6-.6 1.2-1.3 1.2H9.2c-.6 0-1.2-.6-1.2-1.3v-3.5c0-.6.6-1.2 1.2-1.2V9.5C9.2 8.1 10.6 7 12 7m0 1.2c-.8 0-1.5.5-1.5 1.3V11h3V9.5c0-.8-.7-1.3-1.5-1.3\"/></svg>"
};
function decorate() {
document.querySelectorAll('.md-nav--primary label.md-nav__link, .md-nav--primary .md-nav__item--section > .md-nav__link, .md-nav--primary a.md-nav__link').forEach(function (label) {
var span = label.querySelector('.md-ellipsis');
if (!span) return;
var name = span.textContent.trim();
if (!ICONS[name] || label.querySelector('.nav-sec-ico')) return;
var holder = document.createElement('span');
holder.className = 'nav-sec-ico';
holder.innerHTML = ICONS[name];
label.insertBefore(holder, label.firstChild);
});
}
if (document.readyState !== 'loading') decorate();
else document.addEventListener('DOMContentLoaded', decorate);
})();

View File

@@ -1,4 +1,4 @@
# How the protocol works # :material-cog: How the protocol works
A summary of the mechanism, for readers who want to understand what happens underneath the interface. A summary of the mechanism, for readers who want to understand what happens underneath the interface.

View File

@@ -1,4 +1,4 @@
# Security & Privacy # :material-shield-lock: Security & Privacy
## Where trust actually sits ## Where trust actually sits

View File

@@ -408,3 +408,90 @@ img.diagram + em {
.md-typeset .compact-table table:not([class]) { font-size: .515rem; } .md-typeset .compact-table table:not([class]) { font-size: .515rem; }
.md-typeset .compact-table table:not([class]) th { font-size: .46rem; } .md-typeset .compact-table table:not([class]) th { font-size: .46rem; }
.md-typeset .compact-table code { font-size: .9em; } .md-typeset .compact-table code { font-size: .9em; }
/* -------- Numbered step list (examples page) ------------------------------ */
.md-typeset .steps { counter-reset: step; margin: 1.3em 0; }
.md-typeset .steps .step {
position: relative;
padding: .15rem 0 .15rem 3rem;
margin: 0 0 1.2rem;
min-height: 2rem;
}
/* number badge */
.md-typeset .steps .step::before {
counter-increment: step;
content: counter(step);
position: absolute;
left: 0;
top: -.05rem;
width: 2rem;
height: 2rem;
border-radius: 50%;
background: var(--bal-accent);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: .9rem;
}
/* connector line between badges */
.md-typeset .steps .step:not(:last-child)::after {
content: "";
position: absolute;
left: .97rem;
top: 2.2rem;
bottom: -1.2rem;
width: 2px;
background: var(--bal-line);
}
.md-typeset .steps .step > :first-child { margin-top: 0; }
.md-typeset .steps .step > :last-child { margin-bottom: 0; }
/* the Material icon at the start of each step title, tinted accent */
.md-typeset .steps .step .twemoji {
color: var(--bal-accent);
margin-right: .15rem;
}
.md-typeset .steps .step .twemoji svg {
width: 1.1rem;
height: 1.1rem;
vertical-align: -.2rem;
}
/* admonitions nested inside a step sit tighter */
.md-typeset .steps .step .admonition { margin: .6rem 0 0; }
/* -------- Nav section icons (added by nav-section-icons.js) ---------------- */
.md-nav--primary .nav-sec-ico {
display: inline-flex;
vertical-align: -.15em;
margin-right: .4em;
}
.md-nav--primary .nav-sec-ico svg {
width: .95rem;
height: .95rem;
fill: var(--bal-accent);
}
/* -------- Homepage "Where to start" card icons ---------------------------- */
.md-typeset .grid.cards .card-ico {
color: var(--bal-accent);
margin-right: .35em;
}
.md-typeset .grid.cards .card-ico svg {
width: 1.1rem;
height: 1.1rem;
vertical-align: -.2rem;
}
/* -------- Page-title (H1) icons ------------------------------------------- */
/* A themed Material icon sits at the start of each page's H1 (added in the
Markdown as :material-...:). Make it larger than body icons and tint accent. */
.md-typeset h1 .twemoji {
color: var(--bal-accent);
margin-right: .5rem;
}
.md-typeset h1 .twemoji svg {
width: 1.6rem;
height: 1.6rem;
vertical-align: -.28rem;
}

View File

@@ -1,4 +1,4 @@
# Offline backup transaction # :material-usb-flash-drive: Offline backup transaction
Beyond the Will-Executor network, the plugin can save the signed inheritance transaction to a **file you keep yourself**. It is the fallback for the (unlikely) scenario where every Will-Executor holding your will has ceased to operate. Beyond the Will-Executor network, the plugin can save the signed inheritance transaction to a **file you keep yourself**. It is the fallback for the (unlikely) scenario where every Will-Executor holding your will has ceased to operate.

View File

@@ -1,4 +1,4 @@
# Check Alive # :material-heart-pulse: Check Alive
**Check Alive** is the plugin's "are you still around?" mechanism. It is available in **advanced mode**. **Check Alive** is the plugin's "are you still around?" mechanism. It is available in **advanced mode**.

View File

@@ -1,4 +1,4 @@
# Compatibility # :material-check-decagram: Compatibility
## Wallet types ## Wallet types

View File

@@ -1,4 +1,4 @@
# Delivery time # :material-calendar-clock: Delivery time
The **delivery time** (technically the transaction's `nLockTime`) is the date on which the Will-Executors broadcast your inheritance to the Bitcoin network. The **delivery time** (technically the transaction's `nLockTime`) is the date on which the Will-Executors broadcast your inheritance to the Bitcoin network.

View File

@@ -1,4 +1,4 @@
# Hardware wallets # :material-key-chain-variant: Hardware wallets
BAL works with **any hardware wallet supported by Electrum** — Ledger, Trezor, Coldcard, BitBox02, Jade, KeepKey and others. BAL works with **any hardware wallet supported by Electrum** — Ledger, Trezor, Coldcard, BitBox02, Jade, KeepKey and others.

View File

@@ -1,4 +1,4 @@
# Heirs and shares # :material-account-group: Heirs and shares
The **HEIRS** tab is where you define who receives your bitcoin. The **HEIRS** tab is where you define who receives your bitcoin.

View File

@@ -1,4 +1,4 @@
# Keeping the will up to date # :material-refresh: Keeping the will up to date
An inheritance transaction spends specific UTXOs. If those UTXOs change, the transaction the Will-Executors are holding becomes invalid — so the will has to be rebuilt. An inheritance transaction spends specific UTXOs. If those UTXOs change, the transaction the Will-Executors are holding becomes invalid — so the will has to be rebuilt.

View File

@@ -1,4 +1,4 @@
# Backing up wallet and will # :material-content-save: Backing up wallet and will
## Where your will actually lives ## Where your will actually lives

View File

@@ -1,4 +1,4 @@
# Using BAL as a wallet recovery net (or wallet backup) # :material-lifebuoy: Using BAL as a wallet recovery net (or wallet backup)
Inheritance is not the only use for a time-locked transaction. The same mechanism gives you a **decentralized safety net against losing your seed**. Inheritance is not the only use for a time-locked transaction. The same mechanism gives you a **decentralized safety net against losing your seed**.

View File

@@ -1,4 +1,4 @@
# The WILL tab # :material-format-list-checks: The WILL tab
The **WILL** tab is the technical view of your inheritance: one row per inheritance transaction, per Will-Executor. The **WILL** tab is the technical view of your inheritance: one row per inheritance transaction, per Will-Executor.

View File

@@ -1,4 +1,4 @@
# Choosing Will-Executors in the plugin # :material-checkbox-marked-circle-outline: Choosing Will-Executors in the plugin
The plugin downloads the [WeList](welist.md) directory by default and tries to use as many Will-Executors as possible. You can also add servers manually, or draw from alternative lists — the WeList makes discovery easier, it does not control access to the network. The plugin downloads the [WeList](welist.md) directory by default and tries to use as many Will-Executors as possible. You can also add servers manually, or draw from alternative lists — the WeList makes discovery easier, it does not control access to the network.

View File

@@ -1,4 +1,4 @@
# Running a Will-Executor # :material-console: Running a Will-Executor
This page covers setting up your own Will-Executor node. If you are wondering *why* you would, start with [What Will-Executors are](what-they-are.md). This page covers setting up your own Will-Executor node. If you are wondering *why* you would, start with [What Will-Executors are](what-they-are.md).

View File

@@ -1,4 +1,4 @@
# The WeList directory # :material-format-list-bulleted: The WeList directory
The **WeList** is the public directory of Will-Executors, published at [welist.bitcoin-after.life](https://welist.bitcoin-after.life/). The plugin downloads it by default, so listed servers appear automatically when you set up a will. The **WeList** is the public directory of Will-Executors, published at [welist.bitcoin-after.life](https://welist.bitcoin-after.life/). The plugin downloads it by default, so listed servers appear automatically when you set up a will.

View File

@@ -1,4 +1,4 @@
# What Will-Executors are # :material-server: What Will-Executors are
A Will-Executor is a server with one narrow job: **it stores pre-signed inheritance transactions and broadcasts them to the Bitcoin network on the date the user chose.** Nothing else. A Will-Executor is a server with one narrow job: **it stores pre-signed inheritance transactions and broadcasts them to the Bitcoin network on the date the user chose.** Nothing else.

View File

@@ -37,10 +37,11 @@ theme:
extra_css: extra_css:
# The ?v= suffix defeats browser caching of the stylesheet. Bump the number # The ?v= suffix defeats browser caching of the stylesheet. Bump the number
# whenever you change extra.css and the browser keeps showing the old style. # whenever you change extra.css and the browser keeps showing the old style.
- stylesheets/extra.css?v=14 - stylesheets/extra.css?v=17
extra_javascript: extra_javascript:
- javascripts/brand-notranslate.js # keep "Bitcoin After Life" untranslated in Chrome - javascripts/brand-notranslate.js # keep "Bitcoin After Life" untranslated in Chrome
- javascripts/nav-section-icons.js # small Material icon before each nav section title
nav: nav:
- Home: index.md - Home: index.md
@@ -66,7 +67,7 @@ nav:
- Running a Will-Executor: will-executors/running-a-server.md - Running a Will-Executor: will-executors/running-a-server.md
- Protocol: - Protocol:
- How it works: protocol/how-it-works.md - How it works: protocol/how-it-works.md
- REAL EXAMPLE: examples.md - Example inheritance plan: examples.md
- How BAL compares: comparison.md - How BAL compares: comparison.md
- Security & Privacy: security-privacy.md - Security & Privacy: security-privacy.md
@@ -91,6 +92,9 @@ markdown_extensions:
- pymdownx.details - pymdownx.details
- pymdownx.superfences - pymdownx.superfences
- pymdownx.tabbed: { alternate_style: true } - pymdownx.tabbed: { alternate_style: true }
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- toc: { permalink: true } - toc: { permalink: true }
# --- Italian translation (not enabled yet) ------------------------------------ # --- Italian translation (not enabled yet) ------------------------------------