website/README.md

198 lines
7.1 KiB
Markdown
Raw Permalink Normal View History

2017-09-26 13:32:41 +02:00
# ![ipdb/site](_src/_assets/img/share-image.png)
2016-03-03 13:17:20 +01:00
2017-09-26 16:55:54 +02:00
> The blockchain database network for the decentralized stack
2017-08-09 17:12:21 +02:00
> https://ipdb.io
2016-03-03 13:17:20 +01:00
2018-09-28 12:08:19 +02:00
[![Build Status](https://travis-ci.com/ipdb/website.svg?branch=master)](https://travis-ci.com/ipdb/website)
2017-08-09 17:12:21 +02:00
[![css bigchaindb](https://img.shields.io/badge/css-bigchaindb-39BA91.svg)](https://github.com/bigchaindb/stylelint-config-bigchaindb)
[![js ascribe](https://img.shields.io/badge/js-ascribe-39BA91.svg)](https://github.com/ascribe/javascript)
2017-10-10 12:24:02 +02:00
[![Greenkeeper badge](https://badges.greenkeeper.io/ipdb/website.svg)](https://greenkeeper.io/)
2017-08-09 17:12:21 +02:00
2018-01-05 00:38:09 +01:00
[**Live**](https://ipdb.io) | [**Styleguide**](https://ipdb.io/styleguide/)
2018-09-28 12:08:19 +02:00
## Table of Contents
2017-08-09 17:12:21 +02:00
- [Content editing](#content-editing)
2018-09-28 13:11:16 +02:00
- [Pages](#pages)
- [Special pages](#special-pages)
2018-09-28 12:08:19 +02:00
- [Front page](#front-page)
2017-08-09 17:12:21 +02:00
- [Development](#development)
2018-09-28 13:11:16 +02:00
- [Install dependencies](#install-dependencies)
- [Development build](#development-build)
2017-08-09 17:12:21 +02:00
- [Continuous deployment: always be shipping](#continuous-deployment-always-be-shipping)
- [Manual deployment](#manual-deployment)
2018-09-28 13:11:16 +02:00
- [Prerequisite: authentication](#prerequisite-authentication)
- [Staging build & beta deployment](#staging-build-beta-deployment)
- [Production build & live deployment](#production-build-live-deployment)
- [Coding conventions & Browser support](#coding-conventions-browser-support)
- [(S)CSS](#s-css)
- [js](#js)
- [Authors & Contributors](#authors-contributors)
2017-08-09 17:12:21 +02:00
- [License](#license)
2018-09-28 12:08:19 +02:00
---
## Content editing
2017-08-09 17:12:21 +02:00
Most content on the site can be edited on GitHub without messing with HTML markup.
The site's source and structure is in the [`_src/`](_src) folder. Ignore everything with an underscore in its name.
When viewing a file on GitHub you will see a small pencil icon in the top right. Click that to edit the file.
2018-09-28 12:08:19 +02:00
### Pages
2017-08-09 17:12:21 +02:00
All pages are simple Markdown files. Markdown is a way of telling the site how an element should be marked up, like headings & bold text:
```markdown
I'm a simple paragraph. No fancy symbols needed.
# I'm a heading 1
## I'm a heading 2
You can make text **bold like so**
```
2018-09-28 12:08:19 +02:00
### Special pages
2017-08-09 17:12:21 +02:00
Some pages like front page source their content dynamically during site build. This is so we have a single source of truth for content used in multiple places on the site.
- [`_src/_data/content-front.yml`](_src/_data/content-front.yml)
2017-08-29 18:28:23 +02:00
- [`_src/_data/content-foundation.yml`](_src/_data/content-foundation.yml)
2017-08-09 17:12:21 +02:00
2018-09-28 12:08:19 +02:00
## Development
2017-08-09 17:12:21 +02:00
You need to have the following tools installed on your development machine before moving on:
2018-09-28 13:06:58 +02:00
- [Node.js](http://nodejs.org/) & [npm](https://npmjs.org/)
2017-08-09 17:12:21 +02:00
- [Ruby](https://www.ruby-lang.org) (for sanity, install with [rvm](https://rvm.io/))
- [Bundler](http://bundler.io/)
2018-09-28 12:08:19 +02:00
### Install dependencies
2017-08-09 17:12:21 +02:00
Run the following command from the repository's root folder to install all dependencies.
```bash
npm i && bundle install
```
2018-09-28 12:08:19 +02:00
### Development build
2017-08-09 17:12:21 +02:00
Spin up local dev server and livereloading watch task, reachable under [https://localhost:1337](https://localhost:1337):
```bash
gulp
```
2018-09-28 12:08:19 +02:00
## Continuous deployment: always be shipping
2017-08-09 17:12:21 +02:00
The site gets built & deployed automatically via Travis. This is the preferred way of deployment, it makes sure the site is always deployed with fresh dependencies and only after a successful build.
Build & deployment happens under the following conditions on Travis:
- every push builds the site
- **live deployment**: every push to the master branch initiates a live deployment
- **beta deployment**: every new pull request and every subsequent push to it initiates a beta deployment
2018-09-28 12:08:19 +02:00
## Manual deployment
2017-08-09 17:12:21 +02:00
For emergency live deployments or beta deployments, the manual method can be used. The site is hosted in an S3 bucket and gets deployed via a gulp task.
2018-09-28 12:08:19 +02:00
### Prerequisite: authentication
2017-08-09 17:12:21 +02:00
To deploy the site, you must authenticate yourself against the AWS API with your AWS credentials. Get your AWS access key and secret and add them to `~/.aws/credentials`:
2018-09-28 12:08:19 +02:00
```bash
2017-08-09 17:12:21 +02:00
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
```
This is all that is needed to authenticate with AWS if you've setup your credentials as the default profile.
If you've set them up as another profile, say `[ipdb]` you can grab those credentials by using the `AWS_PROFILE` variable like so:
```bash
AWS_PROFILE=ipdb gulp deploy --live
```
In case that you get authentication errors or need an alternative way to authenticate with AWS, check out the [AWS documentation](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html).
2018-09-28 12:08:19 +02:00
### Staging build & beta deployment
2017-08-09 17:12:21 +02:00
The staging build is a full production build but prevents search engine indexing & Google Analytics tracking.
```bash
# make sure your local npm packages & gems are up to date
npm update && bundle update
# make staging build in /_dist
# build preventing search engine indexing & Google Analytics tracking
gulp build --staging
# deploy contents of /_dist to beta
gulp deploy --beta
```
2018-09-28 12:08:19 +02:00
### Production build & live deployment
2017-08-09 17:12:21 +02:00
```bash
# make sure your local npm packages & gems are up to date
npm update && bundle update
# make production build in /_dist
gulp build --production
# deploy contents of /_dist to live
gulp deploy --live
```
2018-09-28 12:08:19 +02:00
## Coding conventions & Browser support
2017-08-09 17:12:21 +02:00
Lint with ESLint & [stylelint](https://stylelint.io) in your editor or run:
```bash
npm test
```
2017-09-04 22:37:00 +02:00
As a rule of thumb, make your CSS & JavaScript work in the last 2 versions of modern browsers, and ideally in IE 11. Adapt the `browserslist` key values in the [`package.json`](package.json) when a change in visitor statistics allows that.
2018-09-28 12:08:19 +02:00
### (S)CSS
2017-08-09 17:12:21 +02:00
Follows [stylelint-config-bigchaindb](https://github.com/bigchaindb/stylelint-config-bigchaindb) which itself extends [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard).
2018-09-28 12:08:19 +02:00
### js
2017-08-09 17:12:21 +02:00
Follows [ascribe/javascript](https://github.com/ascribe/javascript) which itself extends [airbnb/javascript](https://github.com/airbnb/javascript).
2017-09-07 10:54:42 +02:00
Try to not use any jQuery, always prefer vanilla JavaScript.
2017-09-04 22:37:00 +02:00
2017-09-07 10:54:42 +02:00
At the moment, jQuery is only used for the form submissions for its simple `$.ajax` functionality, and neither `XMLHttpRequest` or `fetch` seem to work with MailChimp.
2017-09-04 22:37:00 +02:00
2018-09-28 12:08:19 +02:00
## Authors & Contributors
2017-08-09 17:12:21 +02:00
2017-09-26 16:55:54 +02:00
- Greg McMullen ([@gmcmullen](https://github.com/gmcmullen)) - [IPDB Foundation](https://ipdb.io)
2018-10-01 14:24:10 +02:00
- Matthias Kretschmann ([@kremalicious](https://github.com/kremalicious)) - [BigchainDB](https://www.bigchaindb.com)/[Ocean Protocol](https://oceanprotocol.com)
2016-03-03 13:17:20 +01:00
- Members of the BigchainDB development team
2017-08-09 17:12:21 +02:00
- Representatives of Caretakers in the IPDB
2018-09-28 12:08:19 +02:00
## License
2017-08-09 17:12:21 +02:00
For all code in this repository the Apache License, Version 2.0 is applied.
2018-09-28 12:08:19 +02:00
```text
2018-09-28 13:06:58 +02:00
Copyright Interplanetary Database Foundation 2018. All rights reserved.
2017-08-09 17:12:21 +02:00
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
2016-03-03 13:17:20 +01:00
2017-08-09 17:12:21 +02:00
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```