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
* New plugin: remove-html-extension falls back to /foo.html when /foo
isn't found in `jekyll serve` mode.
* New Makefile target: `make preview` runs bundle exec jekyll serve
* Updated site docs to describe installing all required dependencies.
Fully tested using a new install of Ubuntu Server 14.04.1
* Set build server to use `make deployment`
* Create Makefile target for 'deployment' to update dependencies if
necessary
* Set Travis CI to run `make travis`
* Create Makefile target for 'travis' to use additional automation logic
* Require in Makefile that everyone use bundle to remove inconsistencies
* Require in Gemfile that everyone use Jekyll 1.3.*
* Require in Gemfile that everyone use Ruby 2.0.0 (already used by
Travis and most developers)
* Remove workaround _plugin/svg.rb which showed SVG files in `jekyll
serve` (fixed in Jekyll 1.0.0)
* Remove inconsistent file path workarounds in _plugins/autocrossref.rb
and _plugins/inline-template.rb
* 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.
Add additional variables to the release note files to allow setting the
version number and date. The version number is required, and can be
used to automatically set the release notes title. The date is optional
and can be set hours/days after the release.
Additionally, a Makefile test is added that checks whether the download
files exist on the Bitcoin.org server. This can help prevent creating a
broken Download page.
* Set variables for all previous releases
* Document variables in README.md
* Update code and templates to use variables
* Add the Download page links to the "dl" CSS class. Also add newlines
to make the HTML a bit easier to parse using sed
* Add a new Liquid plugin to print warnings. This is used to print a
non-error warning if any release is created without the optional date
This commit adds an extra step to the build process to SHA256 checksum
all the files that are built purely based on repository contents. The
checksums file is uploaded to the webserver with the rest of the site
content.
A separate target is added to the Makefile to compare the remote
sha256sums file to a locally-built file to see if they differ. This
allows us to detect when a remote build may have gone astray.
Suggested by Saivann: RPC tables with Name/Type/Presence/Description
format are now in .ntpd CSS class so that we can format them specially.
We also change the style of all dev doc tables to replace bold table
headings (thead) with a double-line border-bottom. This makes the
theads look less like section headings and prevents us from over-using
bold.
Minor: a Makefile warning message has been made more explicit (also
suggested by Saivann) and another Makefile rule was updated to catch
more broken tables.
* All previously-documented RPCs have had their text completely
rewritten.
* All new RPCs and changed RPCs in Bitcoin Core 0.10.0 have been
documented, except for hidden RPCs.
* A new RPC "Quick Reference" section has been added to make finding the
right RPC easier.
* A "See Also" subsection has been added to the end of every RPC
pointing to other relevant information.
* All previous examples in the RPC section have been re-run and updated
as necessary.
* Syntax highlighting has been added wherever possible.
* Hash byte order has been specified as RPC byte order everywhere it's
used in RPCs.
Converts fake subheadings created using **bold** to real HTML
subheadings without adding them to the table of contents.
Also fixes a link broken by commit 4e067ac89e and adds a Makefile
test to catch future similar breakage.
* Describes all remaining messages except filterload. Specificially, the
following messages are described: Addr, Alert, FilterAdd, FilterClear,
GetAddr, Ping, Pong, Reject, VerAck, and Version
* New makefile test: report broken markdown tables
* Put relevant protocol version changes at the top of all message
subsections.
New Makefile lets testers build the static HTML files and then run a few
automated tests to catch problems like missing files and links. The
Makefile is not required; the site can still be built using just Jekyll.
This commit also fixes several image-related errors reported by `make
test` by adding the missing PNG images.