components-helper
Based on the docs to provide code prompt files for vue component library
Last updated 3 years ago by tolking .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install components-helper 
SYNC missed versions from official npm registry.

components-helper

Based on the documents to provide code prompt files for vue component library

Reference documents format reference test files

Changelog

Installation

yarn add components-helper -D
# or
npm i components-helper --save-dev

Usage

const { main } = require('components-helper')

main({
  // Options
})

example

then in package.json

{
  "scripts": {
+    "build:helper": "node helper/file.js"
  },
+  "vetur": {
+    "tags": "config outDir/tags.json",
+    "attributes": "config outDir/attributes.json"
+  },
+  "web-types": "config outDir/web-types.json"
}

Options

<summary>TOC</summary>

entry

  • Required: true
  • Type: string | string[]

Specify the entry directory. refer: fast-glob

for example:

  • docs/*.md -- matches all files in the docs
  • docs/(a|b).md -- matches files a.md and b.md
  • docs/!(a|b).md -- matches files except for a.md and b.md

fastGlobConfig

  • Type: object

The config of fast-glob

outDir

  • Required: true
  • Type: string

Specify the output directory. For example, `lib``

name

  • Required: true
  • Type: string

name of the component library.

version

  • Required: true
  • Type: string

the version of the component library.

space

  • Type: number | string

Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read

separator

  • Type: string
  • Default: /

the separator for propsOptions, slotsSubtags, type ...

reComponentName

  • Type: (title: string, fileName: string, path: string) => string
  • Defult: hyphenate(title || fileName)

rewriting the name of the component

for example (title) => 'prefix-' + title.replace(/\B([A-Z])/g, '-$1').toLowerCase()

reDocUrl

  • Type: (fileName: string, header?: string, path: string) => string | undefind

rewriting the doc url of the component

reAttribute

  • Type: (value: string, key: string, row: string[], title: string) => string | undefined
arg
  • value: current value
  • key: the key value of the current column
  • row: all values of the current row
  • title: the title of current tabel

rewriting the attribute of the component

reVeturDescription

  • Type: (description?: string, defaultValue?: string, docUrl?: string) => string
  • Default: same like ${description}, default: ${defaultValue}.\n\n[Docs](${docUrl})

rewriting the description of vetur

reWebTypesSource

  • Type: (title: string, fileName: string, path: string) => Source

rewriting the source of web-types. (the name of export from the component library)

reWebTypesType

  • Type: (type: string) => undefined | string | BaseContribution

Only some common types are processed internally, and the rest are exported from the component library by default. If your document also references types in third-party libraries, you can choose to override the relevant behavior through this function

tags

  • Type: string
  • Default: tags.json

name for tags of the vetur

attributes

  • Type: string
  • Default: attributes.json

name for attributes of the Vetur

webTypes

  • Type: string
  • Default: web-types.json

name for web-types of the WebStorm

props

  • Type: string (This is a regular string and ignores case.)
  • Default: props

The title of the props table. other string in the header will be identified as sub-component

propsName

  • Type: string
  • Default: Name

The header name of the Name in the props table

propsDescription

  • Type: string
  • Default: Description

The header name of the Description in the props table

propsType

  • Type: string
  • Default: Type

The header name of the Type in the props table

propsOptions

  • Type: string
  • Default: Options

The header name of the Options in the props table

propsDefault

  • Type: string
  • Default: Default

The header name of the Default in the props table

events

  • Type: string (This is a regular string and ignores case.)
  • Default: events

The title of the events table. other string in the header will be identified as sub-component

eventsName

  • Type: string
  • Default: Name

The header name of the Name in the events table

eventsDescription

  • Type: string
  • Default: Description

The header name of the Description in the events table

slots

  • Type: string (This is a regular string and ignores case.)
  • Default: slots

The title of the slots table. other string in the header will be identified as sub-component

slotsName

  • Type: string
  • Default: Name

The header name of the Name in the slots table

slotsDescription

  • Type: string
  • Default: Description

The header name of the Description in the slots table

slotsType

  • Type: string
  • Default: Type

The header name of the Type in the slots table

slotsSubtags

  • Type: string
  • Default: Subtags

The header name of the Subtags in the slots table

directives

  • Type: string (This is a regular string and ignores case.)
  • Default: directives

The title of the directives table. other string in the header will be identified as sub-component

directivesName

  • Type: string
  • Default: Name

The header name of the Name in the directives table

directivesDescription

  • Type: string
  • Default: Description

The header name of the Description in the directives table

directivesType

  • Type: string
  • Default: Type

The header name of the Type in the directives table

titleRegExp

  • Type: RegExp | string (This is a regular string.)
  • Default: /#+\s+(.*)\n+([^(#|\n)]*)/g

matches the title and description information from docs

tableRegExp

  • Type: RegExp | string (This is a regular string.)
  • Default: /#+\s+(.*)\n+(\|?.+\|.+)\n\|?\s*:?-+:?\s*\|.+((\n\|?.+\|.+)+)/g

matches the title and table header and the table contains information from docs

fileNameRegExp

  • Type: RegExp | string (This is a regular string.)
  • Default: /\/((\w|-)+)\.\w+$/

matches the file name from the path

Advancement

about titleRegExp

matches the first format information in the docs

/#+\s+(.*)\n+([^(#|\n)]*)/

# title
description

and

## title

matches other formats, For example:

/#+\s+(.*)\n+>\s*([^(#|\n)]*)/g

# title
> description

about tableRegExp

matches the format information in the docs

/#+\s+(.*)\n+(\|?.+\|.+)\n|?\s*:?-+:?\s*|.+((\n\|?.+\|.+)+)/g

### title
| header |
| ------ |
| column |
| column |

and

### sub-component title
| header |
| :----- |
| column |
| column |

by default matches all tables, Optimize it through tableRegExp, For example:

/#+\s+(.*\s*Props|.*\s*Events|.*\s*Slots|.*\s*Directives)\n+(\|?.+\|.+)\n|?\s*:?-+:?\s*|.+((\n\|?.+\|.+)+)/g

### Props / Events / Slots / Directives
| header |
| ------ |
| column |
| column |

and

### sub-component Props
| header |
| ------ |
| column |
| column |

other

When this document does not include the primary title or Props Events Slots and Directives, this component is not created.

License

MIT

Current Tags

  • 2.1.4                                ...           latest (3 years ago)

11 Versions

  • 2.1.4                                ...           3 years ago
  • 2.1.3                                ...           4 years ago
  • 2.1.2                                ...           4 years ago
  • 2.1.1                                ...           4 years ago
  • 2.1.0                                ...           4 years ago
  • 2.0.0                                ...           4 years ago
  • 1.0.5                                ...           4 years ago
  • 1.0.4                                ...           5 years ago
  • 1.0.3                                ...           5 years ago
  • 1.0.2                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (1)
Dev Dependencies (12)
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org | Home |