remark-react-docgen-typescript
remark plugin to transform React component to Markdown by react-docgen-typescript
Last updated a month ago by x_xsp .
Apache-2.0 · Original npm · Tarball · package.json
$ cnpm install remark-react-docgen-typescript 
SYNC missed versions from official npm registry.

TypeScript version Node.js version APLv2 Build Status

remark-react-docgen-typescript

remark plugin to transform React component to Markdown by react-docgen-typescript

Getting Started

yarn add -D remark-react-docgen-typescript
import * as remark from 'remark';
import * as reactDocgenTypescript from 'remark-react-docgen-typescript';
import * as vfile from 'to-vfile';

const doc = vfile.readSync('README.md');
console.log(remark().use(reactDocgenTypescript).processSync(doc).contents);

The Component Column.tsx

import * as React from "react";
import { Component } from "react";

/**
 * Column properties.
 */
export interface IColumnProps {
  /** prop1 description */
  prop1?: string;
  /** prop2 description */
  prop2: number;
  /**
   * prop3 description
   */
  prop3: () => void;
  /** prop4 description */
  prop4: "option1" | "option2" | "option3";
}

/**
 * Form column.
 */
export class Column extends Component<IColumnProps> {
  render() {
    return <div>Test</div>;
  }
}

Convert the following Markdown:

# foo-components

## API

[Column](./Column.tsx "react-docgen-typescript:")

Into

# foo-components

## API

### Column

Form column.

#### Props

| Name               | Type                                | Default value | Description              |
| ------------------ | ----------------------------------- | ------------- | ------------------------ |
| prop1              | string                              | "red"         | prop1 description        |
| prop2 _(required)_ | number                              |               | prop2 description        |
| prop3 _(required)_ | () => void                          |               | prop3 description a \| b |
| prop4 _(required)_ | "option1" \| "option2" \| "option3" |               | prop4 description 中文   |

Options

remark().use(reactDocgenTypescript[, options])

render

Custom document rendering

import * as remark from 'remark';
import * as reactDocgenTypescript from 'remark-react-docgen-typescript';
import { ReactDocgenTypescriptRender } from 'remark-react-docgen-typescript/build/types';
import * as vfile from 'to-vfile';
import * as stringWidth from 'string-width';
import { componentDocTableMdastBuilder } from 'react-docgen-typescript-markdown-render';

const tableRender = (componentDoc: ComponentDoc): Table => componentDocTableMdastBuilder(componentDoc, [
  { title: '属性', render: (vo) => u('strong', [u('text', vo.name)]) },
  { title: '描述', render: (vo) => vo.description,},
  { title: '类型', render: (vo) => u('inlineCode', vo.type.name) },
  { title: '默认值', render: (vo) => vo.defaultValue ? vo.defaultValue.value : '-' },
]);

const render: ReactDocgenTypescriptRender = (docs) => u('root', docs.map(vo => tableRender(vo)));;

const doc = vfile.readSync('README.md');

const { contents } = remark()
  .use({
    settings: { stringLength: stringWidth }
  })
  .use(reactDocgenTypescript, { render })
  .processSync(doc);
console.log(contents);

License

Licensed under the APLv2. See the LICENSE file for details.

Current Tags

  • 0.1.7                                ...           latest (a month ago)

14 Versions

  • 0.1.7                                ...           a month ago
  • 0.1.6                                ...           a month ago
  • 0.1.5                                ...           a month ago
  • 0.1.4                                ...           a month ago
  • 0.1.3                                ...           2 months ago
  • 0.1.2                                ...           2 months ago
  • 0.1.1                                ...           2 months ago
  • 0.1.0                                ...           2 months ago
  • 0.0.4-2                                ...           2 months ago
  • 0.0.4-1                                ...           2 months ago
  • 0.0.4-0                                ...           2 months ago
  • 0.0.3                                ...           2 months ago
  • 0.0.2                                ...           2 months ago
  • 0.0.1                                ...           2 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 123
Dependencies (8)
Dev Dependencies (21)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |