Rendering MediaWiki-format proposals as a static site
Render the Bitcoin Improvement Proposals as a browsable static site.
The README in the repo is the Ethereum EIPs README, left in place, which is a fair record of where the approach came from. The build is the work.
BIPs are not a tidy corpus. They are a mix of MediaWiki and markdown, and each carries a metadata preamble that is not YAML front matter, so nothing off the shelf parses it. Before a static site generator can render one page, something has to read that preamble and turn it into template variables.
_data/statuses.yaml holds the status vocabulary, which matters more than it
sounds. Draft, Proposed, Active, Final, Replaced, Withdrawn are what readers
filter and sort by, and if status is free text scraped from each document you
get variants and typos and a filter that quietly misses proposals. A controlled
list makes an unrecognised status a build error rather than an invisible
omission.
_includes/biptable.html and bipnums.html generate the index,
_layouts/bip.html renders each proposal, and assets referenced inside a
proposal resolve relative to it, which needs handling because source and output
trees are shaped differently.
bip_validator was the related project.