React documentation keeper allows user to create documentation for their components and view them directly with custom configurations in their projects.
npm i react-dockeep
Then use it in your index.js
(if using create-react-app)
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import Doc from 'react-dockeep';
const CONFIG = {/* Your configurations here */}
ReactDOM.render(
<React.StrictMode>
<Doc config={CONFIG}>
<App />
</Doc>
</React.StrictMode>,
document.getElementById('root')
);
Name | required | type | default | description |
---|---|---|---|---|
config | true | object | The config that controls the components and documentation | |
url | false | string | 'doc' | The url that will be used to browse the components |
The documentation will be rendered based on the configuration provided, here are the fields that can be configured.
Name | required | type | default | description |
---|---|---|---|---|
components | true | array | A list of components with configuration |
Name | required | type | default | description |
---|---|---|---|---|
component | true | function | class | The component that will be rendered | |
name | false | string | The given component's name | The name of the component |
description | false | string | 'No description' | The description of the component |
props | false | array | [] | A list of props that will be applied to the component with documentation |
code | false | string | The example code, please notice that the name of the tag must match the component name |
Name | required | type | default | description |
---|---|---|---|---|
name | true | string | The name of the prop | |
value | true | string | The value of the prop | |
required | false | boolean | false | Whether this prop is required by the component or not |
default | false | any | The default value of the prop | |
type | false | string | 'any' | The type of the prop |
doc | false | string | '' | The documentation of this prop |
Here is a screenshot of the example:
The above documentation can be generated by the following config:
{
component: Modal,
description: "Wrapped the Modal component from React Bootstrap",
props: [
{
name: "header",
value: "",
default: "",
doc: "The header of the Modal, header will not be displayed if this is not given",
type: "string"
},
{
name: "body",
value: "Hello World",
required: true,
doc: "Body of the modal",
type: "string"
},
{
name: "footer",
value: "",
default: "",
doc: "The footer of the Modal, footer will not be displayed if this is not given",
type: "string"
},
]
}
To run examples use npm start
and go to http://localhost:8080 in your browser, see examples folder for more information
- Add example
- Prevent name duplications
-
Improve add config using functions(Push to v1.1.0) - Change all bootstrap elements to React Bootstrap
- Implement the search feature of the sidebar
- Proper warning and error display
-
Figure out a way when user deleted required props and error is thrown(This only happens in react development mode)
- Config using functions
-
Allow users to handle routing by themselves(Push to v1.2.0) - Allow users to write example code by themselves
-
Allow users to control sections by themselves(Push to v1.2.0)