diff --git a/README.md b/README.md
index 44721a49..be03d38b 100644
--- a/README.md
+++ b/README.md
@@ -71,11 +71,10 @@ The `_data/cliRef.json` file is generated from the `blockstack-cli` subcommand `
3. Make sure the generated docs are clean.
-## Clarity Command Line
+## Clarity Reference
-As of 8/19 Clarity is in the [develop](https://github.com/blockstack/blockstack-core/tree/develop) branch of core. You can build the Clarity command line from the Docker image.
+As of 8/12/19 Clarity is in the [develop](https://github.com/blockstack/blockstack-core/tree/develop) branch of core. You can build the Clarity command line from the Docker image. `core/src/vm/docs/mod.rs`
-docker run -it -v $HOME/blockstack-dev-data:/data/ 6524 blockstack-core docgen | jsonpp > ~/repos/docs.blockstack/_data/clarityRef.json
1. Pull the latest developer preview from the Docker Hub.
@@ -89,7 +88,7 @@ docker run -it -v $HOME/blockstack-dev-data:/data/ 6524 blockstack-core docgen |
docker run -it -v $HOME/blockstack-dev-data:/data/ blockstack/blockstack-core:clarity-developer-preview blockstack-core docgen | jsonpp > ~/repos/docs.blockstack/_data/clarityRef.json
```
-3. Build the documentation and verify the CLI docs are building correctly.
+3. Build the documentation and verify the Clarity reference is building correctly.
# Technology Reference
diff --git a/_core/smart/clarityRef.md b/_core/smart/clarityRef.md
index c1830b1b..cf16e734 100644
--- a/_core/smart/clarityRef.md
+++ b/_core/smart/clarityRef.md
@@ -129,27 +129,36 @@ Response types represent the result of a public function. Use this type to indic
Response types contain two subtypes -- a response type in the event of `ok` (that is, a public function returns an integer code on success) and an `err` type (that is, a function returns a buffer on error).
-## Native variables
+## Keyword reference
-The Clarity language includes native variables you can use in your contract.
-
-### block-height
-
-The height of a block in the Stacks blockchain. Block height is the number of blocks in the chain between any given block and the very first block in the blockchain. You can obtain a `block-height` via the `get-block-info` function.
+{% capture keyword_list %}
+{% for entry in site.data.clarityRef.keywords %}
+{{ entry.name }}||{{ entry.output_type }}||{{ entry.description }}||{{ entry.example }}
+{% if forloop.last == false %}::{% endif%}
+{% endfor %}
+{% endcapture %}
+{% assign keyword_array = keyword_list | split: '::' | sort %}
+{% for keyword in keyword_array %}
+{% assign keyword_vals = keyword | split: '||' %}
+### {{keyword_vals[0] | lstrip | rstrip}}
-### contract-name
+{{keyword_vals[1] | lstrip | rstrip }}
-Represents the current contract.
+{{keyword_vals[2]}}
-### tx-sender
+**Example**
-Represents the current principal. This variable does not change during inter-contract calls. This means that if a transaction invokes a function in a given smart contract, that function is able to make calls into other smart contracts on your behalf. This enables a wide variety of applications, but it comes with some dangers for users of smart contracts. Static analysis of Clarity contracts guarantees the language allows clients to deduce which functions a given smart contract will ever call. Good clients should always warn users about any potential side effects of a given transaction.
+```cl
+{{keyword_vals[3] | lstrip | rstrip }}
+```
+
Input type: | -{{function_vals[2] | lstrip | rstrip }} |
-
---|---|
Output type: | -{{function_vals[3] | rstrip }} |
-
{{function_vals[2] | lstrip | rstrip }}
{{function_vals[3] | lstrip | rstrip }}
+
{{function_vals[4]}}
-