mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-02-08 09:12:05 +08:00
43 lines
1.0 KiB
Bash
Executable File
43 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env node
|
|
|
|
/**
|
|
* This example script expects a JSON blob generated by react-docgen as input,
|
|
* e.g. react-docgen components/* | buildDocs.sh
|
|
*/
|
|
|
|
var fs = require('fs');
|
|
var generateMarkdown = require('./generateMarkdown');
|
|
var path = require('path');
|
|
|
|
var json = '';
|
|
process.stdin.setEncoding('utf8');
|
|
process.stdin.on('readable', function() {
|
|
var chunk = process.stdin.read();
|
|
if (chunk !== null) {
|
|
json += chunk;
|
|
}
|
|
});
|
|
|
|
process.stdin.on('end', function() {
|
|
buildDocs(JSON.parse(json));
|
|
});
|
|
|
|
function buildDocs(api) {
|
|
// api is an object keyed by filepath. We use the file name as component name.
|
|
for (var filepath in api) {
|
|
var name = getComponentName(filepath);
|
|
var markdown = generateMarkdown(name, api[filepath]);
|
|
fs.writeFileSync(name + '.md', markdown);
|
|
process.stdout.write(filepath + ' -> ' + name + '.md\n');
|
|
}
|
|
}
|
|
|
|
function getComponentName(filepath) {
|
|
var name = path.basename(filepath);
|
|
var ext;
|
|
while ((ext = path.extname(name))) {
|
|
name = name.substring(0, name.length - ext.length);
|
|
}
|
|
return name;
|
|
}
|