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
At some point, GitHub began attributing commits created by Nakamoto to
GitHub user saracen. I can't find any actual contributions by that user
to Bitcoin [Core], so this commit re-attributes all saracen commits to
Nakamoto on the site contributor listing.
- _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 new page /en/blog
* Adds new feed for blog posts to /en/rss/blog.xml
* Adds "Blog" link to site footer
* Adds three back-dated blog posts to give the blog some initial
content.
This reverts commit e3dcf0ce1f, reversing
changes made to c71e9fdf2d.
Once again we had a broken new plugin that Travis CI and local building
didn't catch.
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
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.