Encouraging users to cross reference keys across multiple sources beyond Bitcoin.org. Providing one additional source for Wladimir's signing key, and providing a link to the gitian signature repository so that signatures from other developers can be used for verification as well.
Gemfile:
- Upgrade to Jekyll 3.x (3.0.1 tested). This brings several new
features I want to use, most notably *collections* which allows us
to add blog-like collections. I've converted the `_releases` and
`_alerts` pages into collections, although their plugins are
maintained to handle the Download and Active Alert features.
- Upgrade to latest Kramdown.
- Lock Less at 2.4.0. This prevents breaking our Less plugin. Jekyll
3.x provides native support for SCSS, so we may want to switch to
that in time.
- Lock HTML Proofer at 2.1.0. The most recent version was taking
forever to check our pages (I never actually got it to complete).
I'll look into it when I get more time.
Makefile:
- New `make clean` command. Jekyll 3.x by default attempts to do
incremental rebuilds. The new `jekyll clean` command cleans up the
metadata necessary for than so that a full build is performed, and
this new `make clean` command is a wrapper around it so that we
automatically do full rebuilds in the relevant cases. Note: our
plugins aren't fully compatible with the incremental rebuilds, but
I'd like to fix that in the future.
- Remove WEBrick hack to enable previewing with default URL paths (/
instead of /index.html).
- Filter out compliants from Rouge
README.md:
- Now that Alerts (_alerts) are part of a collection, the file names
are no longer parsed for dates, so instructions on adding the date
to the YAML metadata have been added.
_alerts/*:
- Now that alerts are part of a collection, the file names are no
longer parsed to provide dates, so a `date:` field has been added to
the YAML metadata.
_config.yml:
- Some variables renamed per upgrade instructions.
- Switched from old default syntax highlighter Pygments to new default
Rouge. I tried to use Rouge options to keep new output as similar
to old output as possible to making diffing easy, but Rouge adds
extra CSS class info.
- Move `_alerts` and `_releases` into Jekyll 3.x "collections", which
provide the organizational features we were using plugins to
manange. I haven't removed the old plugins because we still use
some of their features (alerts.rb provides active issue and banner
features; releases.rb provides info to Download page)
- _layouts/* can no longer provide default global metadata; that is now
provided in the new `defaults:` section in _config.yml.
_layouts/*:
- Default metadata can no longer be provided in the layout files for
collections, so I've removed it and left a message to see
_config.yml.
_plugins/*:
- Remove filter_for.rb. It's completely broken on Jekyll 3.x because
of changes to Liquid which prevent adding new arguments to the
inherited Liquid::For class. Existing uses of filter_for have been
migrated to built-in for loops prefaced by sorts.
- Remove remove-html-extension.rb: at it said in the comments, this
was a temporary hack to get us to Jekyll 3.0.
_releases/*:
- Rename all the files: prefix a v to the file name so the output html
(e.g. v10.0.0.html) is the same as the source filename (e.g.
v10.0.0.md). This is necessary to migrate them to a Jekyll collection.
- Remove %v from titles: we have to explicitly set the title, like we
used to. Again required for migration to collections.
_templates/events.html & en/rss/events.rss:
- Sort events by date and then loop with regular for loop rather than
filter_for
en/alerts.html & en/rss/alerts.rss:
- Sort alerts by date and then loop with regular for loop rather than
filter_for
en/bitcoin-core/index.md & en/version-history.html & en/rss/releases.rss:
- Sort alerts by date and then loop with regular for loop rather than
filter_for
- Makefile: extend copyright check test to scan all files with YAML
headers
- Exclude alerts from check -- lack of a license shouldn't prevent
us from publishing emergency information
- Also add license to Makefile itself
- Fix all errors caught by new test
- For release notes, also link to github.com/bitcoin/bitcoin
repository as origin
- Also update README.md release instructions to include license
- _contrib/bco-htmlproof: check HTML for correctness; fail on any errors
- _contrib/bco-htmlproof: accept path for individual page to help debug
page problems
- (Many files) Convert `&` in numerous elements to `&`
- _templates/download.html: use Liquid filter to automatically escape
`&` in magnet links. Also premptively tell HTML not to check the
magnet link when checking external links (this check is not currently
enabled)
- _releases/*: Escape `<parameter>` used in multiple Bitcoin Core
release notes
- _templates/choose-you-wallet.html: change mSigna URL from
.../coinvault&referer=bitcoin.org to .../coinvault?referer=bitcoin.org
- _templates/community.html: fix duplicate anchors by renaming one
anchor
- _templates/events.html: move Javascript to separate file because it
contains forbidden HTML close tags within the `<script></script>`
tags.
- (Many files, mostly in _translations/) Fix many broken open tags or
missing close tags.
- _translatios/zh_TW.yml & ko.yml: fix a total of three invalid
characters (control characters)
* Adds Makefile test to ensure all subheadings, except those on Choose
Your Wallet, have an ID (anchor reference)
* Adds an ID to all subheads that didn't have on previously
Uses Ruby html-proofer to check the links. This commit also fixes the
various problems it found, as well as dealing with some of its
non-problem complaints (it doesn't like anchor (a) tags without either
an href, name, or id).
Running HTML proofer takes about 12 minutes on my system (with up to two
threads), during which it prints no text. Travis CI times out after 10
minutes of nothing being written to stdout, so this commit also adds a
background process the Makefile to print a line every minute while make
runs.