This repository contains the static HTML, Javascript, CSS, and images content of the Binary.com website.
In this document
Other Documents
Pre-installation
Before running or contribute to this project, you need to have the setup of the following packages in your environment
- Ruby, RubyGems
- Sass (
sudo gem install sass) - Node.js (14.17.1 is recommended)
- NPM (see https://nodejs.org/en/download/package-manager/)
- Grunt (
sudo npm install -g grunt-cli)
Quickstart
-
Fork the project
In order to work on your own version of the Binary.com application, please fork the project to your own repo.
-
Clone using SSH
git clone git@github.com:your-github-username/binary-com.git
-
Enter project directory
-
Install your dependencies:
-
To start developing:
-
Open the source code and start editing!
Your site is now running at https://localhost:443
Preview on your local machine
- To preview your changes locally, run
sudo grunt serve - It will watch for Javascript or CSS changes and will rebuild on every change you make.
- To test changes made to templates, you need to re-compile them:
grunt shell:compile_devto re-compile all templates.grunt shell:compile_dev --path=about-usto re-compile only template(s) which serve about-us path in URL.
- To fix eslint errors run
npm run eslint
Test link deployment
There are two types of test link deployment preview:
- Automatic deployment
Upon creating PR, Vercel (https://vercel.com/) will auto-generate the test link inside the PR. you can use that to preview the test link for the changes you have made.
- Manual deployments
You can manually deploy your test link using gh-pages with the following configurations:
Deploy to your gh-pages for the first time
-
Register your application here. This will give you the ability to redirect back to your Github pages after login. Use
https://YOUR_GITHUB_USERNAME.github.io/binary-static/en/logged_inws.htmlfor the Redirect URL andhttps://YOUR_GITHUB_USERNAME.github.io/binary-static/en/redirect.htmlfor the Verification URL.If you're using a custom domain, replace the Github URLs above with your domain. -
In
src/javascript/config.js: Insert theApplication IDof your registered application inuser_app_id.
- NOTE: In order to avoid accidentally committing personal changes to this file, use
git update-index --assume-unchanged src/javascript/config.js
- Run
grunt dev
Deploy js/css and template changes together
Deploy only js/css changes
Deploy some template changes
grunt dev --path=about-us
Using sub-folders
There are times that you are working on various branches at the same time, and you want to deploy/test each branch separately on your gh-pages, you can simply use --branch=branchname for grunt commands:
grunt dev --branch=branchnameThis will deploy your changes to a sub-folder named:br_branchnameand it can be browsed at: https://YOUR_GITHUB_USERNAME.github.io/binary-static/br_branchname/
In order to remove the created folders from your gh-pages, you can use either:
-
grunt dev --cleanup: removes allbr_*folders and deploys to the root folder.or
-
grunt shell:remove_folder --folder=br_branchname1,br_branchname2,...: only removes the specified folder(s) from your gh-pages.or
-
grunt shell:remove_folder --keep --folder=br_branchname1,br_branchname2,...: only keeps the specified folder(s) on your gh-pages and removes everything else. Just add the--keepflag.
Use a custom domain
In order to use your custom domain, please put it in a file named CNAME inside scripts folder of your local clone of binary-static.
Manage releases
git tag ${RELEASE_TARGET}_vYYYYMMDD_${INTEGER} -m 'some message'
RELEASE_TARGETcould be one of staging or production for staging and production release respectively.
Example:
git tag production_v20191010_0 -m 'release fixes to production'Push the tag:
git push origin staging_v20191010_0
Manage translations
- Automatic: this will be done automatically with Github action
- Manual: If you need to add translation manually use manual translation doc