amis/packages/amis-ui/scripts/GenDoc.ts

89 lines
2.0 KiB
TypeScript
Raw Normal View History

chore: 开发环境切成 vite (#5677) * 尝试使用 vite 跑开发环境 * 尝试使用 vite 跑开发环境 * 尝试使用 vite 跑开发环境 * 尝试使用 vite 跑开发环境 * 样式文档调整 * 修复有多个 __inline 时的报错 * scirpt 调整 * feat:chart接入事件动作 (#5669) * chore: input-group 没有 name 不应该报 warning (#5667) * chore: 处理编译TS Warning,调整TableStore中label解析的顺序 (#5670) * feat: timeline时间轴支持自定义图标 (#5668) * fix:折叠器Collapse自定义图标&inputNumber对含后缀生效 * 修改 * 正则修改 * 正则修改 * 正则修改 * feat:将默认px替换为rem 2px===0.125rem * feat:timeline时间轴支持自定义图标 Co-authored-by: xujiahao01 <xujiahao01@baidu.com> * fix: 调整echarts-stat使用方式,兼容vite打包异步非esm模块 (#5672) * feat: chart 支持配置加载 geojson 及百度地图 (#5674) * feat: chart 支持配置 geoURL 及 geoName * 增加百度地图配置 * chore: 修复 coverage 运行报错 (#5678) * chore: coverage 执行换成 v8 解决内存问题 (#5679) * 尝试使用 vite 跑开发环境 * amis-formula 也添加 esm 模块 * 代码合并有问题,做些调整 Co-authored-by: hsm-lv <80095014+hsm-lv@users.noreply.github.com> Co-authored-by: 吴多益 <wuduoyi@baidu.com> Co-authored-by: RUNZE LU <36724300+lurunze1226@users.noreply.github.com> Co-authored-by: 徐佳豪 <1440054388@qq.com> Co-authored-by: xujiahao01 <xujiahao01@baidu.com> Co-authored-by: 刘丹 <365533093@qq.com>
2022-11-02 22:45:12 +08:00
import path from 'path';
import fs from 'fs';
import {promisify} from 'util';
const readdir = promisify(fs.readdir);
const statPath = promisify(fs.stat);
const DIR = path.join(__dirname, '../scss/helper');
export async function main() {
const files = await getFiles(DIR);
for (const relativePath of files) {
const filepath = path.join(DIR, relativePath);
const contents = await readFileAsync(filepath);
const markdowns: Array<string> = [];
contents.replace(
/\/\*\!markdown\n([\s\S]+?)\*\//g,
(_: string, md: string) => {
markdowns.push(md.trim());
return _;
}
);
if (markdowns.length) {
let mdFilePath = filepath.replace(/\.scss$/, '.md');
await writeFileAsync(mdFilePath, markdowns.join('\n'));
console.log(`write ${mdFilePath}`);
}
}
console.log('Done');
}
async function getFiles(
dir: string,
prefix: string = '',
ret: Array<string> = []
) {
const files = await readdir(dir);
for (let i = 0, len = files.length; i < len; i++) {
const name = files[i];
const filepath = path.join(dir, name);
const stat = await statPath(filepath);
if (stat.isDirectory()) {
await getFiles(filepath, prefix ? path.join(prefix, name) : name, ret);
} else {
ret.push(prefix ? path.join(prefix, name) : name);
}
}
return ret;
}
function readFileAsync(filename: string): Promise<string> {
return new Promise((resolve, reject) => {
fs.readFile(filename, 'utf8', (err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
}
function writeFileAsync(filename: string, content: string): Promise<void> {
return new Promise<void>((resolve, reject) => {
fs.writeFile(
filename,
content,
{
encoding: 'utf8'
},
err => {
if (err) {
reject(err);
} else {
resolve();
}
}
);
});
}
main().catch(e => console.error(e));