This repository is the source code of the Bitcoin Core project website built with Jekyll.
_posts/<lang>/posts
for blog articles._posts/<lang>/pages
for static pages._posts/<lang>/releases
for Bitcoin Core release notes
File names must be in the format Y-m-d-title.md
, e.g. 2015-12-31-title.md
. File names can be translated.
See CONTRIBUTING.md for more information.
The following Front Matter
is required for the multilingual setup in all files. The required fields are as follows:
name:
group name for unique article. Each translation must share the same group name, e.g.october15-report
id:
each article translation must have a unique ID. Use the language code +-name
field. e.g.en-october15-report
permalink:
the must include the language code, end a trailing slash, e.g./en/2015/12/31/report/
.title:
the translated title of the articletype:
the content type (pages
,posts
,releases
,meetings
, etc.)layout:
the layout template (page
,post
, etc.)lang:
the language code (en
,fr
, etc.)
---
title: Short Title
name: short-title
layout: post
type: posts
lang: en
id: en-short-title
permalink: /en/2016/01/01/short-title
---
This website is based on Jekyll. To build locally, install Ruby 2.7.4 using system packages, rvm, rbenv, or another method. Then clone this repository and change directory into it:
git clone https://github.com/bitcoin-core/bitcoincore.org.git
cd bitcoincore.org
Install the bundle
utility using the Ruby package manager, gem
, and
then use bundle
to install the rest of the Ruby packages needed to
build this site. Note, depending on your system configuration, you may
need to run gem
as the superuser by putting "sudo" followed by a space
before the gem
command. You shouldn't need to use sudo
with the
bundle
command.
gem update --system
gem install bundler
bundle install
To preview the site (this will launch a tiny webserver on port 4000):
bundle exec jekyll server --future
To simply build the site (output placed in the _site
directory):
bundle exec jekyll build --future
Note that the --future
parameter is only required if you're adding any
pages dated in the future (such as prepared release announcements).
To test the site:
bundle exec jekyll build --future --drafts --unpublished
bundle exec htmlproofer --check-html --disable-external --url-ignore '/^\/bin/.*/' ./_site
The additional parameters to jekyll build
ensure that all possible
pages are built and checked.
Contributions welcome. Please see CONTRIBUTING.md for details.
The website uses an old version of the Minimal Mistakes theme. The theme's website provides documentation, including information about configuration variables, creating pages and posts, adding new Javascript, and more. Note that current documentation may describe features not available in the old version of the theme used by the website.