The events and contributor plugins both monkey patched the `site`
object. This worked fine when they were loaded once per site build, but
with Jekyll 3.0 automatic site rebuilding in preview and watch modes,
this applied the monkey patch recursively, causing the program to halt.
With this commit, the monkey patching should only occur once per run.
GitHub recently made a change on their end to the URLs with which
profile images are stored. As a result, this has caused the profile
images on the About Us page to break, and tests to fail.
This updates the URL to what GitHub has switched to, in order to resolve
the issue.
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
- _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 a new page linking to all translations of Nakamoto's Bitcoin
paper, and also provides instructions for adding new translations
- Changes all links on the site that used to point directly to the
English bitcoin.pdf to point to the new page.
- Add Spanish Translation by Breathingdog, as well as Spanish strings
for the now page also by Breathingdog
* 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
* 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
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 link to the glossary from each definition
Fix missing BIP37 link
Fix searchbox width on mobiles
Apply more consistent margin and padding for the searchbox
Use H3 titles in the glossary_entry layout for better readability
Always use HTML classes for CSS stylesheets
Fix one typo in glossary.rb
This commit adds the code necessary to generate a new
en/developre-glossary page with entry pages in the en/glossary/
directory, e.g. en/glossary/51-percent-attack.
The glossary page and the individual term pages feature a JavaScript
search engine (no CGI) for just glossary terms. This search box has
also been added to the following pages:
* Developer Documentation (the index page)
* Developer Guide
* Developer Reference
* Developer Examples
The search box requires the following MIT-licensed libraries:
* JQuery
* JQuery UI
* JQuery UI CSS stylesheet
These allow our JS code to be almost trivially simple in js/devsearch.js
This commit adds only code. Actual glossary entry data will be added in
a subsequent commit.
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
* Set filenames once in the download page
* Edit download page for new or updated files
* Add link to the source code, GitHub and torrent download
* Replace long sync instructions by short instructions to run a full node on the download page
Commit originated by Saïvann Carignan and updated by Dave Harding.
* 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.
Adds to the devel reference page detailed documentation on the following
messages: block, getblocks, getdata, getheaders, headers, inv, mempool,
merkleblock, notfound, and tx.
Adds to the devel examples page an example of requesting and parsing a
merkleblock message.
Adds to the devel docs overview pages links to the above two new
P2P sections.
Tweaks the autocrossref plugin ignore pattern to not crossref in the
middle of a GIF image name; this allows the inclusion of animated GIFs.
* Revise P2P Networking section to provide a more detailed description
of initial peer discovery and DNS seeds.
* Tweak autocrossref.rb to allow term blacklisting. Use this new feature
to prevent cross referencing "address" in "IP address" to the
definition of Bitcoin P2PKH/P2SH addresses. This avoids a bunch of
manual "norefs".