doczjs/docz
It has never been so easy to document your things!
repo name | doczjs/docz |
repo link | https://github.com/doczjs/docz |
homepage | https://docz.site |
language | TypeScript |
size (curr.) | 9210 kB |
stars (curr.) | 18137 |
created | 2018-03-17 |
license | MIT License |
Docz makes it easy to write and publish beautiful interactive documentation for your code.
Create MDX files showcasing your code and Docz turns them into a live-reloading, production-ready site.
Table of Contents
- Why ?
- Start a New Project
- Add Docz to an Existing Project
- Build
- Deploy
- Examples
- More info on docz.site
- Used by
- Contributors
- Contributing
Why ?
Documenting code is one of the most important and time-heavy processes when developing software.
A lot of time is spent on building and maintaining custom documentation sites.
Docz enables you to quickly create live-reloading, seo-friendly, production-ready documentation sites with MDX and customize the look, feel and behavior when required by leveraging GatsbyJS and Gatsby theme shadowing.
Start a New Project
Use create-docz-app to quickly get started :
npx create-docz-app my-docz-app
# or
yarn create docz-app my-docz-app --example typescript
Add Docz to an Existing Project
Start by adding docz
as a dependency :
$ yarn add docz # react react-dom
# or
$ npm install docz # react react-dom
Note:
react
andreact-dom
will not be installed automatically. You’ll have to install them yourself.
Then, add .mdx
files anywhere in your project:
---
name: Button
route: /
---
import { Playground, Props } from 'docz'
import Button from './Button'
# Button
<Props of={Button} />
## Basic usage
<Playground>
<Button type="submit">Click me</Button>
<Button>No, click me</Button>
</Playground>
And a Button component Button.jsx
:
import React from 'react'
import t from 'prop-types'
const Button = ({ children, type }) => <button type={type}>{children}</button>
Button.propTypes = {
/**
* This is a description for this prop.
* Button type.
*/
type: t.oneOf(['button', 'submit', 'reset']),
}
Button.defaultProps = {
type: 'button',
}
export default Button
Finally, run:
yarn docz dev
This will start a local development server and open your documentation site in the browser.
Build
yarn docz build
will generate a static site for your site in .docz/dist/
.
You can try it out with yarn docz serve
or by serving the generated site with your favorite static file server (e.g. npx serve .docz/dist
).
You can have yarn docz build
emit to a different directory by providing a path to the dest
field in your doczrc.js or from the command line : yarn docz build --dest docs-site-directory
.
Deploy
The output of docz consists of static assets only. This allows you to deploy your generated docz
site with any static site hosting provider you’d like.
Start by building your site with yarn docz build
, if you haven’t provided a dest
flag to your config then you will find your generated files in .docz/dist
to copy to the server.
Examples
- with basic
- with a gatsby site
- with react native
- with styled-components
- with typescript
- with algolia search
- with gatsby-remark-vscode
- with react-router
- with flow
- with images
- with sass
- with less
- with stylus
- with css modules: works out of the box.
You can check the complete list of docz examples here.
More info on docz.site
Used by
- Welcome UI : Customizable design system with react • styled-components • styled-system and reakit.
- React Hooks Testing Library : 🐏 Simple and complete React hooks testing utilities that encourage good testing practices.
- Mobx React : mobx-react documentation site.
- React Google Charts : A thin, typed, React wrapper over Google Charts Visualization and Charts API.
- Entur : Entur operates the national registry for all public transport in Norway.
- FAB Specification : 💎 FABs are a compile target for frontend applications.
- @umijs/hooks: React Hooks Library.
- React Yandex Maps: Yandex Maps API bindings for React.
- Components-extra: Customizable react component blocks built with material-ui and styled-components.
- Add your site
Contributors
This project exists thanks to all the people who contribute. [Contribute].
Contributing
All kinds of contributions are very welcome and appreciated !
If you want to contribute time to docz then here’s a list of suggestions to get you started :
- Star the project.
- Help people in the issues by sharing your knowledge and experience.
- Find and report issues.
- Submit PRs to help solve issues or add features.
- Influence the future of docz with feature requests.
If you’re looking for a place to start make sure to check issues tagged with :
And make sure to read the Contributing Guide before making a pull request.
You can also contribute money to help secure docz’s future.