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 7d663099..a0f17ff0 100644 --- a/book.toml +++ b/book.toml @@ -5,13 +5,14 @@ multilingual = false src = "." title = "Building Secure Contracts" description = "Follow 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/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; +}