# Welcome to the Blockstack documentation repo!
This README explains the user cases, source file organization, and procedures for building the Blockstack documentation. You can find the documentation at https://docs.blockstack.com
You can also make use of the **Edit this page on GitHub** link from any https://docs.blockstack.org page.
## Authoring Environment Setup
When setting up your machine for the first time, run:
```bash
#install Ruby Version Manager (rvm.io/rvm/install)
\curl -sSL https://get.rvm.io | bash -s stable
# restart terminal or run the following source command:
source ~/.rvm/scripts/rvm
# install Ruby 2.7 and the needed dependencies
rvm install 2.6
rvm use 2.6 --default
gem install bundler
# make sure you're in the root of your clone of this repo and run
bundle install
```
Then when authoring, run:
```bash
jekyll serve
```
You can preview your changes by visiting `http://localhost:4000`
## Docker Instructions for Authoring
Don't want to install a bunch of stuff and don't mind the overhead of using Docker? Do this instead:
```bash
docker build -t blockdocs .
```
From then on, you can run:
```bash
docker run -p 4000:4000 -ti -v "$(pwd)":/usr/src/app blockdocs
```
## Documentation backend
Our documentation is written in Markdown (`.md`), built using [Jekyll](https://jekyllrb.com/), and deployed to a Netlify server. Serving the content from Netlify allows us to use functionality (plugins/javascript) not supported with standard GitHub pages.
Some content is single sourced. Modifying single source content requires an understanding of that concept, how it works with Liquid tags, and the organization of this repo's source files.
[UIKit](https://getuikit.com/docs/introduction) provides the documentation theme. There is explicit use of HTML plus UIKit components directly in files where needed for special layouts. And there is use of CSV and JSON source files transformed with [Liquid template language](https://help.shopify.com/en/themes/liquid) to produce reference content.
## How the Source Files are Organized
Directories that contain information used to build content.
Directory |
Purpose |
Technical Repo(s) |
android |
SDK tutorial. |
https://github.com/blockstack/blockstack-android |
browser |
Information for end-users about our identity, Storage, and using the browser. |
https://github.com/blockstack/blockstack-browser |
common |
Contains several shell files that redirect to our reference documentation sites such as Javascript, IOS, and so forth. The reference docs are linked from the developer, core, and Gaia menus. |
Each of these references are generated by their respective repos, core.blockstack.org from blockstack-core , Javascript docs from the blockstack.js and so forth. |
core |
Information for wallet, blockchain, or Clarity developers -- including Atlas, BNS, and so forth. This content STILL needs to be synced with the master docs subdirectory in blockstack-core. |
blockstack-core |
develop |
Information for application developers covers using the Javascript library, our mobile SDKs, and the concepts hat support them. |
This information was never associated with a single repo. Much of it does rely heavily on https://github.com/blockstack/blockstack.js. |
faqs |
Contains files for single-sourcing all the FAQs. The Blockstack docs has a single page that lists all the faqs; then several pages in different sections re-use this information. See the FAQs section below for detail about how these files figure into FAQS. |
Not related to repo. |
-includes |
Information reused (markdown or html) in many places, common html used in pages and notes. |
These files don't correspond to a repository. |
ios |
SDK tutorial. |
https://github.com/blockstack/blockstack-ios |
org |
Information for Stacks holders and people curious about what Blockstack does |
Not associated with any repository. |
storage |
Information for developers using storage in their apps or creating Gaia servers. |
https://github.com/blockstack/blockstack-gaia |
These are the other directories in the site structure: