releases.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // 读取项目 /doc/guide/changelog.md 文件,生成 releases 文本
  2. // 读取 ../doc/guide/changelog.md 和 ../doc/guide/changelog_en.md 文件,分别获取文件前两个二级标题之间的内容,包括空格和换行符
  3. // 例如:
  4. // ## 0.0.11
  5. //
  6. // - 优化 Input,详见 [Input](https://stdf.design/#/components?nav=input&tab=4)。
  7. //
  8. // ## 0.0.10
  9. // 只取 ## 0.0.11 和 ## 0.0.10 之间的内容
  10. // 结果为:
  11. // - 优化 Input,详见 [Input](https://stdf.design/#/components?nav=input&tab=4)。
  12. // 获取内容暂存为变量 changelogContent
  13. // 英文版的 changelog_en.md 文件同理,获取内容暂存为变量 changelogEnContent
  14. // 然后将获取的两个内容按照 Markdown 格式用单独一行 --- 分开,保存到 ./releases.md 文件中
  15. const fs = require('fs');
  16. const path = require('path');
  17. // const { version } = require('../../package.json');
  18. const changelogPath = path.resolve(__dirname, '../doc/guide/changelog.md');
  19. const changelogEnPath = path.resolve(__dirname, '../doc/guide/changelog_en.md');
  20. const releasesPath = path.resolve(__dirname, './releases.md');
  21. const changelog = fs.readFileSync(changelogPath, 'utf-8');
  22. const changelogEn = fs.readFileSync(changelogEnPath, 'utf-8');
  23. // 注意只取前两个二级标题之间的内容,二级标题不要
  24. const changelogContent = changelog.match(/##\s[\d\.]+\n\n([\s\S]*?)\n\n##\s[\d\.]+/)[1];
  25. const changelogEnContent = changelogEn.match(/##\s[\d\.]+\n\n([\s\S]*?)\n\n##\s[\d\.]+/)[1];
  26. const releasesContent = `${changelogContent}\n\n---\n\n${changelogEnContent}`;
  27. fs.writeFileSync(releasesPath, releasesContent);