一、背景

笔者曾基于VuePress搭建过一个文档中心,但是在实现在线管理功能之前,很多时候,新建文档需要手动处理很多数据,看有没有可能实现一个脚手架来处理这些问题,所谓脚手架,就是进行文档初始化的一些手工活。

二、创建流任务

创建名为VuePress文档中心脚手架的流任务。

三、添加主流程

因为考虑到脚手架要处理不同类型的任务,我们最好把不同任务拆解成子流程,在主流程里面通过选择来调度子流程,大概的思路是这样。

3.1 设置文档中心目录位置SettingProjectDir

1. 显示选择文件夹对话框,弹窗交互选择当前文档中心所在的文件夹,我们用名为CurrentProjectDir变量来存储它,如果是常用位置,我们还可以设置默认值。

3.2 设置VuePress文档中心约定结构SettingProjectStruct

1. 获取文件夹中子文件夹,从CurrentProjectDir文件夹中获取其子文件夹,并且筛选出多语言特征的,结果存储在变量ProjectLanguageDirs中。

*-*

2. 创建新列表,列表变量为Languages

3. For-Each,遍历ProjectLanguageDirs数据,每项的变量为ProjectLanguageDir

%ProjectLanguageDirs%

4. 拆分文本,通过自定义分隔符\来拆分ProjectLanguageDir,结果存到变量SplitLanguageDirs

\

5. 设置变量,变量名为LanguageDir,提取SplitLanguageDirs的最后一项就可以了。

%SplitLanguageDirs[SplitLanguageDirs.Count - 1]%

6. 将项添加到列表,将LanguageDir结果添加到列表变量Languages中。

%LanguageDir%
%Languages%

7. 显示从列表中选择对话框,对话框标题为选择文档中心语言目录,选择数据来源为Languages结果集合,选择后的变量名CurrentLanguage,用来存储文档中心的当前的语言路径。

%Languages%

8. 设置变量,变量名CurrentLanguageDir来拼装选择后的多语言目录。

%CurrentProjectDir%\%CurrentLanguage%

9. 获取文件夹中子文件夹,从CurrentLanguageDir文件夹中获取其子文件夹,结果存储在变量ProjectCategoryDirs中,得到所有的分类文件夹。

*

10. 创建新列表,列表变量为Categorys

11. For-Each,遍历ProjectCategoryDirs数据,每项的变量为ProjectCategoryDir

%ProjectCategoryDirs%

12. 拆分文本,通过自定义分隔符\来拆分ProjectCategoryDir,结果存到变量SplitCategoryDirs

%ProjectCategoryDir%

13. 设置变量,变量名为CategoryDir,提取SplitCategoryDirs的最后一项就可以了。

%SplitCategoryDirs[SplitCategoryDirs.Count - 1]%

14. 将项添加到列表,将CategoryDir结果添加到列表变量Categorys中。

%CategoryDir%
Categorys

15. 显示从列表中选择对话框,对话框标题为选择文档中心分类目录,选择数据来源为Categorys结果集合,选择后的变量名CurrentCategory,用来存储文档中心的当前的分类路径。

%Categorys%

16. 设置变量,变量名CurrentCategoryDir来拼装选择后的分类目录。

%CurrentProjectDir%\%CurrentLanguage%\%CurrentCategory%

17. 获取文件夹中子文件夹,从CurrentCategoryDir文件夹中获取其子文件夹,结果存储在变量ProjectSolutionDirs中,得到所有的方案文件夹。

*

18. 创建新列表,列表变量为Solutions

19. For-Each,遍历ProjectSolutionDirs数据,每项的变量为ProjectSolutionDir

20. 拆分文本,通过自定义分隔符\来拆分ProjectSolutionDir,结果存到变量SplitSolutionDirs

21. 设置变量,变量名为SolutionDir,提取SplitSolutionDirs的最后一项就可以了。

%SplitSolutionDirs[SplitSolutionDirs.Count - 1]%

22. 将项添加到列表,将SolutionDir结果添加到列表变量Solutions中。

23. 显示从列表中选择对话框,对话框标题为选择文档中心方案目录,选择数据来源为Solutions结果集合,选择后的变量名CurrentSolution,用来存储文档中心的当前的方案路径。

%Solutions%

24. 设置变量,变量名CurrentSolutionDir来拼装选择后的分类目录。

%CurrentProjectDir%\%CurrentLanguage%\%CurrentCategory%\%CurrentSolution%

最新文章

  1. Javascript中event.srcElement和event.target的区别
  2. mysql5.7下的timestampn Error : Invalid default value for 'timestamp'
  3. seo高级指令
  4. 百度地图API说明
  5. VC 类泡泡龙游戏算法
  6. MYSQL使用二进制日志来恢复数据
  7. mac 软件安装
  8. 产生文件命令touch,echo,cat<<EOF>test,less,more,tail,head
  9. Hadoop应用开发实战(flume应用开发、搜索引擎算法、Pipes、集群、PageRank算法)
  10. SQL Server :理解DCM页
  11. 【数据结构&&等差数列】KMP简介和算法的实现(c++ && java)
  12. JavaScript 动画库和开发框架
  13. 聊聊Vue.js的template编译
  14. datanode启动不起来的各种原因
  15. 【UOJ453】【集训队作业2018】围绕着我们的圆环 线性基 DP
  16. 小程序中通过判断id来删除数据,当数据长度为0时,显示隐藏部分(交流QQ群:604788754)
  17. 如何理解MVC?
  18. SDN中的Heavy-Hitter测量文献阅读
  19. vue-新建项目-构建-打包-环境切换
  20. CF444(Div. 1简单题解)

热门文章

  1. Java关键字(八)——synchronized
  2. [bug] Importing maven project 卡在%9不动
  3. 使用Wok管理kvm虚拟机
  4. Linux_yum命令详解
  5. s9 Linux 进程管理命令
  6. 2020-1-19 2.港股打新、REITs和分拆
  7. Linux Socket编程-(转自吴秦(Tyler))
  8. gpgj - 06.估值分析举例
  9. JS中的高阶函数
  10. 拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具