aboutsummaryrefslogtreecommitdiffstats
path: root/packages/react-docs/README.md
blob: 3909e41c502c39d7d0c5c31becba06c8cc26d0fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
## @0xproject/react-docs

A full-page React component for rendering beautiful documentation for Solidity and Typescript code generated with [TypeDoc](http://typedoc.org/) or [Doxity](https://github.com/0xproject/doxity).

<div style="text-align: center;">
<img src="./screenshot.png" style="padding-bottom: 20px; padding-top: 20px;" width="80%" />
<div>react-docs generating 0x's smart contract docs</div>
</div>

#### Features

*   Mobile optimized
*   Reads Javadoc-style comments in your code to generate class/method/argument/return/type comments.
*   Syntax highlighting support for TypeScript & Solidity
*   Type declaration linking
*   Type declaration popovers to avoid clicking through to the definition
*   Section/method/type anchors for easily pointing others to a specific part of your docs.
*   Version picker
*   Customizable sidebar header
*   Supports custom markdown sections so you can easily add an intro or installation instructions.

## Installation

```bash
yarn add @0xproject/react-docs
```

## Usage

View the [live example](http://react-docs-example.s3-website-us-east-1.amazonaws.com/) that renders the [@0xproject/web3-wrapper](https://github.com/0xProject/0x-monorepo/tree/development/packages/web3-wrapper) Typescript package. It's source code is in the [example directory](./example).

This package exposes both a single `Documentation` react component that will render a docs page, as well as all of it's sub-components in case someone wants to build their own layout.

Currently this package still has some external dependencies outside of the `Documentation` component, so please start your project off by copying the `example` directory and modifying from there.

## Future improvements

Feel free to contribute to these improvements!

*   Allow user to pass in styling for all major elements similar to [Material-UI](http://www.material-ui.com/).
*   Allow user to define an alternative font and have it change everywhere.
*   Add source links to Solidity docs (currently unsupported by Doxity).

## Contributing

We strongly encourage the community to help us make improvements. To report bugs within this package, please create an issue in this repository.

Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.

### Install Dependencies

If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:

```bash
yarn config set workspaces-experimental true
```

Then install dependencies

```bash
yarn install
```

### Build

```bash
yarn build
```

### Lint

```bash
yarn lint
```

### Run Example

```bash
yarn dev
```

### Deploy Example to S3 bucket

You will need to adapt the `deploy_example` command in the `package.json` to point to an S3 bucket you've created. Make sure the bucket is publicly accessible to everyone.

You will also need to install the [aws-cli](https://github.com/aws/aws-cli) and configure it with your AWS credentials.

```bash
yarn deploy_example
```