Skip to content
Build a Better Web with Status
Branch: develop
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scaffolds Changes site to use hex.io generator Sep 26, 2018
scripts Fix docs sidebar for multilanguage Jun 13, 2019
source Update reference to Xcode for version 10.2 Jun 14, 2019
themes/navy Added language to all static urls Jun 13, 2019
.eslintignore Changes site to use hex.io generator Sep 26, 2018
.eslintrc Changes site to use hex.io generator Sep 26, 2018
.gitignore site overhaul changes Apr 18, 2019
.gitmodules
Jenkinsfile explicitly use hexo configs May 24, 2019
LICENSE Changes site to use hex.io generator Sep 26, 2018
README.md add link to article on elasticsearch cluster Jan 7, 2019
_config.dev.yml explicitly use hexo configs May 24, 2019
_config.prod.yml explicitly use hexo configs May 24, 2019
gulpfile.js explicitly use hexo configs May 24, 2019
package.json update deps to fix vulnerabilities Jun 6, 2019

README.md

Status - Access a Better Web, Anywhere

This repo hosts the code for both status.im on the master branch (which builds and serves through gh-pages), and dev.status.im on the develop branch.

There is an edit button on each page, which will take you directly to the document you need to edit on the develop branch. Please make sure that any changes you make are against develop. The idea is that we can merge recklessly to develop, then anyone see if the changes look OK on dev.status.im.

master is protected and only ever gets changed when merging develop (git merge develop --ff). This method makes for easy maintenance AND allows a larger group of people to push directly to develop and show their changes on the staging site when asking for review, which should smooth out and speed up the process considerably for everyone.

Adding a New Page

If you want to add a page to specific section, rather than just edit an existing page, you'll need to make sure your new page appears on the sidebar and is accessible to everyone.

  1. Add your page to source/<your_section>/<your_file_here>.md
  2. In source/_data/sidebars.yml add the appropriate text to the appropriate place.
  3. In themes/navy/languages/en.yml edit the sidebars section to make sure that your new text in sidebars.yml is rendered correctly.

Testing locally

Make sure you have node.js installed first.

  1. Open Terminal and navigate to the project root directory,
  2. Run npm install,
  3. We share common elements across our sites using submodules, so you'll need to get those too:
    git submodule update --init --recursive
    cd themes/navy/layout/partial/shared-partials
    git checkout master
    git pull
    cd ../../../../../
  1. Run ./node_modules/.bin/gulp build,
  2. In another terminal, run ./node_modules/.bin/hexo serve,
  3. This prevents the need for any global installs, and will allow you to have live reloading for any changes you are making.

Contributing More

  1. If you would like add new styles, you can find all the sass files in themes/navy/source/scss - add your own there and keep things modular, clean and performing well.
  2. If you would like to add some JS for animations of images, or other potential bounties, the place to do that is themes/navy/source/js.
  3. Changing the header, footer, mobile nav, or scripts (in after_footer) can be done in themes/navy/layout/partial.
  4. Each new subdirectory gets it's own route, so if you want to add a new section like status.im/extensions or status.im/contribute, then just create a new directory in source, name it what you want the route to be called, and add an index.md file to it.

If you want it to have a unique layout, set it up something like this:

---
layout: extensions
title: Status Extensions
id: index
---

and then create the appropriate extensions.swig layout file in themes/navy/layout. .swig files are exactly like html - so just write html in there and don't stress.

Unfortunately, adding subdirectories within subdirectories like status.im/security/guides doesn't really work right now if you want to have a sidebar too, because it routes you to the wrong place. This could be the subject of a bounty.

Search Cluster

For providing search an ElasticSearch cluster is used, which is available at https://search.status.im/.

For more information see our article on the Search Cluster.

You can’t perform that action at this time.