一、背景

笔者曾基于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%

流程自动化RPA,Power Automate Desktop系列 - 构建VuePress文档中心脚手架的更多相关文章

  1. 流程自动化RPA,Power Automate Desktop系列 - 不讲武德的Windows10内置应用

    简介 Power Automate Desktop 扩展Power Automate中的现有机器人流程自动化(RPA)功能,并使您能够自动化所有重复的桌面流程. 使用预生成的拖放操作或记录您自己的桌面 ...

  2. 流程自动化RPA,Power Automate Desktop系列 - 创建WPF程序安装包及升级包

    一.背景 之前写过的几个WPF小工具,每次发布都需要给它打安装包和升级包,涉及到一些系列繁琐的手工操作,有了Power Automate Desktop,于是便寻思着能不能做成一个自动化的流来使用. ...

  3. 流程自动化RPA,Power Automate Desktop系列 - DotNet Core打包并发布Nuget Package

    一.背景 DotNet Core通常基于Nuget来实现包管理,如果你想要把自己的实现共享给其他人,通常我们需要把本地项目打包好,然后发布到对应的Nuget Server上,以便于其他人可以查找.安装 ...

  4. 流程自动化RPA,Power Automate Desktop系列 - 批量备份Git仓库做好灾备

    一.背景 打个比如,你在Github上的代码库需要批量的定时备案到本地的Gitlab上,以便Github不能访问时,可以继续编写,这时候我们可以基于Power Automate Desktop来实现一 ...

  5. 流程自动化RPA,Power Automate Desktop系列 - 发布文档中心

    一.背景 内网中有一个基于VuePress搭建的静态文档中心,但是每次修改后都需要重新Build一次才行,之前都是手动执行命令,现在可以基于Power Automate Desktop来创建任务了. ...

  6. Spring Boot中使用Swagger2构建API文档

    程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...

  7. springboot+mybatis-puls利用swagger构建api文档

    项目开发常采用前后端分离的方式.前后端通过API进行交互,在Swagger UI中,前后端人员能够直观预览并且测试API,方便前后端人员同步开发. 在SpringBoot中集成swagger,步骤如下 ...

  8. 基于 Python 官方 GitHub 构建 Python 文档

    最近在学 Python,所以总是在看 Python 的官方文档, https://docs.python.org/2/ 因为祖传基因的影响,我总是喜欢把这些文档保存到本地,不过 Python 的文档实 ...

  9. springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务

    springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...

随机推荐

  1. [bug] IDEA springboot项目 访问静态资源 html页面 报404

    原因 复制的静态资源目录没有编译 解决 检查target目录中,是否有static目录,若没有,重新右键项目install即可 若还不能解决,尝试浏览器缓存和IDEA编译设置,详见参考链接 参考 ht ...

  2. head元素的内容

    一.head元素 head元素的内容用来向浏览器提供一些文档信息,此外还可以包含js脚本和css层叠样式单.head中一般包含title.meta.css.js等内容,head中元素的内容在浏览器中不 ...

  3. git push 时发生错误 error: src refspec master does not match any. error: failed to push some refs to

    很多相关解决办法都是最后要 push 到远端的 master 上,但很多其实要求不能把个人的修改内容直接 push 到 master 主分支. 因此,当我想将本地 feature/work1 分支的修 ...

  4. etc/sudoers配置文件详解-(转自xoker)

    从编写 sudo 配置文件/etc/sudoers开始: sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示 ...

  5. http keep-alive 的一些理解

    在日常的工作中涉及到了关于检测用户是否在线的功能需求,在方案设计过程中考虑过使用http-keepalive的方式,由于我们获取到的keepalive是经过nginx转发的keep-alive,所以最 ...

  6. Django中的中英文切换

    setting.py文件中 其中 zh-Hans是简体中文 zh-Hant是繁体中文 所以更改setttings.py 下 LANGUAGE_CODE = 'zh-Hans'即可 # 英文 LANGU ...

  7. 【SpringBoot基础系列】手把手实现国际化支持实例开发

    [SpringBoot基础系列]手把手实现国际化支持实例开发 国际化的支持,对于app开发的小伙伴来说应该比价常见了:作为java后端的小伙伴,一般来讲接触国际化的机会不太多,毕竟业务开展到海外的企业 ...

  8. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  9. openresty - nginx - 配置

    local function local_print(str) local dbg = io.open("conf/lua/logs/output.txt", "a+&q ...

  10. GO文件读写02---写文件

    缓冲式写入文件 func main034() { //创建并写入 //file, err := os.OpenFile("测试文件", os.O_CREATE|os.O_WRONL ...