diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 0cbf155e..d20de03a 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -10,15 +10,17 @@ jobs:
permissions:
contents: read
runs-on: ubuntu-latest
+
+ env:
+ CARGO_TERM_COLOR: always
+
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install mdbook
run: |
- mkdir mdbook
- curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook
- echo `pwd`/mdbook >> $GITHUB_PATH
+ cargo install --git https://github.com/montyly/mdBook.git mdbook || true
- name: Build artifacts
run: mdbook build
- name: Upload artifact
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 79cddafb..1764ca45 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -46,3 +46,16 @@ To run `markdown-link-check`:
```bash
$ find . -name \*.md -print0 | xargs -0 -n1 markdown-link-check
```
+
+## Create the book
+
+We use `mdbook` to generate [secure-contracts.com](https://secure-contracts.com/).
+
+To run it locally:
+```
+$ cargo install --git https://github.com/montyly/mdBook.git mdbook
+$ mdbook build
+```
+
+
+Note: we use https://github.com/montyly/mdBook.git, which contains https://github.com/rust-lang/mdBook/pull/1584.
diff --git a/README.md b/README.md
index 9fc44815..3c5e8c29 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,9 @@
![](https://github.com/crytic/building-secure-contracts/workflows/CI/badge.svg) ![](https://github.com/crytic/building-secure-contracts/workflows/Echidna/badge.svg)
-Follow our guidelines and best practices to write secure smart contracts.
+This repository, brought to you by [Trail of Bits](https://www.trailofbits.com/), outlines guidelines and best practices to write secure smart contracts.
+
+We welcome contributions, and you can contribute by following our [contributing guidelines](https://github.com/crytic/building-secure-contracts/blob/master/CONTRIBUTING.md).
**Table of contents:**
@@ -34,3 +36,7 @@ Follow our guidelines and best practices to write secure smart contracts.
- exercises expected to require ~two hours to practically learn its operation.
- [Resources](./resources): Various online resources
- [Trail of Bits blogposts](./resources/tob_blogposts.md): List of blockchain related blogposts made by Trail of Bits
+
+
+# License
+secure-contracts and building-secure-contracts are licensed and distributed under the [AGPLv3 license](https://github.com/crytic/building-secure-contracts/blob/master/LICENSE). Contact us if you're looking for an exception to the terms.
\ No newline at end of file
diff --git a/book.toml b/book.toml
index 2b8b5d01..16e2cbe1 100644
--- a/book.toml
+++ b/book.toml
@@ -5,13 +5,14 @@ multilingual = false
src = "."
title = "Building Secure Contracts"
description = "This repository, brought to you by Trail of Bits, outlines our guidelines and best practices to write secure smart contracts."
+logo = "static/TOB_Black.svg"
[output.html]
git-repository-url = "https://github.com/crytic/building-secure-contracts"
edit-url-template = "https://github.com/crytic/building-secure-contracts/edit/master/{path}"
-default-theme = "ayu"
cname = "crytic.github.io/building-secure-contracts"
no-section-label = true
+additional-css = ["static/custom.css"]
[output.html.fold]
enable = true
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 00000000..06813a4c
Binary files /dev/null and b/favicon.png differ
diff --git a/favicon.svg b/favicon.svg
new file mode 100644
index 00000000..e13f0d95
--- /dev/null
+++ b/favicon.svg
@@ -0,0 +1,5 @@
+
diff --git a/program-analysis/echidna/README.md b/program-analysis/echidna/README.md
index 88a915c4..a03f4241 100644
--- a/program-analysis/echidna/README.md
+++ b/program-analysis/echidna/README.md
@@ -6,12 +6,12 @@ Watch our [Fuzzing workshop](https://www.youtube.com/watch?v=QofNQxW_K08&list=PL
**Table of contents:**
-- [Introduction](./introduction/README.md): Introductory material to fuzzing and Echidna
-- [Basic](./basic/README.md): Learn the first steps on how to use Echidna
-- [Advanced](./advanced/README.md): Learn advanced features of Echidna
+- [Introduction](introduction): Introductory material to fuzzing and Echidna
+- [Basic](basic): Learn the first steps on how to use Echidna
+- [Advanced](advanced): Learn advanced features of Echidna
- [Fuzzing tips](./fuzzing_tips.md): General fuzzing tips
- [Frequently Asked Questions](./frequently_asked_questions.md): Answers to common questions about Echidna
-- [Exercises](./exercises/README.md): Exercises
+- [Exercises](exercises): Exercises
Join the team on Slack at: https://empireslacking.herokuapp.com/ #ethereum
diff --git a/static/TOB_Black.svg b/static/TOB_Black.svg
new file mode 100644
index 00000000..cf0df3a6
--- /dev/null
+++ b/static/TOB_Black.svg
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/static/custom.css b/static/custom.css
new file mode 100644
index 00000000..4987331d
--- /dev/null
+++ b/static/custom.css
@@ -0,0 +1,7 @@
+.sidebar .sidebar-scrollbox .sidebar-book-logo img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ width: 50%;
+ max-width: max-content;
+}