一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

组件文档生成方法、装置、设备及可读存储介质与流程

2022-02-21 09:44:59 来源:中国专利 TAG:


1.本发明涉及数据处理领域,尤其涉及一种组件文档生成方法、装置、电子设备及可读存储介质。


背景技术:

2.随着互联网的发展,在用户界面开发过程中涉及的组件也越来越多,当开发人员编写完成组件时,还需要编写组件对应的文档以便于其他开发人员使用组件。
3.目前,组件文档的生成通常是开发人员进行组件文档的手动编写,使得生成的组件文档层次不清晰,且需要花费较大的人力成本进行编写,导致组件文档生成的效率较低。


技术实现要素:

4.本发明提供一种组件文档生成方法、装置、电子设备及计算机介质,其主要目的是为了提高组件文档的生成效率。
5.为实现上述目的,本发明提供的一种组件文档生成方法,包括:
6.获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;
7.解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树;
8.从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据;
9.获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档。
10.可选地,所述解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
11.获取所述组件参数对应的参数字符串、所述组件文档标题对应的标题字符串和所述组件源代码对应的源代码字符串;
12.将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
13.可选地,所述将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,包括:
14.对所述参数字符串、所述标题字符串及所述源代码字符串分别进行词法分析,得到所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组;
15.将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分
别连接成树形结构。
16.可选地,所述生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
17.通过对所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组分别进行语法分析,将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分别按照预设语法转化为参数解析树、标题解析树及源代码解析树;
18.对所述参数解析树、所述标题解析树及所述源代码解析树分别进行语义分析,以生成所述参数解析树的多个初始节点、所述标题解析树的多个初始节点及所述源代码解析树的多个初始节点,按照所述参数解析树的多个初始节点之间的层级关系、多个所述标题解析树初始节点之间的层级关系及多个所述源代码解析树初始节点之间的层级关系分别构建与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
19.可选地,所述从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据,包括:
20.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度遍历,得到多个树节点的数据;
21.从多个所述树节点的数据中获取组件数据。
22.可选地,所述对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度遍历,得到多个树节点的数据,包括:
23.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树分别进行压栈操作,得到多个树节点对应的字段;
24.循环所述压栈操作,直到所述压栈操作变为空栈;
25.当所述压栈操作变为所述空栈时,停止循环,并保存所有所述树节点对应的字段;
26.将所述所有树节点对应的字段转化为多个树节点的数据。
27.可选地,所述根据所述组件配置信息将所述组件数据插入至所述markdown组件模板文档中,得到组件文档,包括:
28.根据所述组件配置信息展示组件数据在所述markdown组件模板文档中对应的组件位置,并将所述组件数据插入至所述组件位置,得到组件文档。
29.为了解决上述问题,本发明还提供一种组件文档生成装置,所述装置包括:
30.组件信息获取模块,用于获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;
31.抽象语法树生成模块,用于解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树;
32.组件数据获取模块,用于从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据;
33.组件文档生成模块,用于获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档。
34.为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
35.存储器,存储至少一个计算机程序;及
36.处理器,执行所述存储器中存储的计算机程序以实现上述所述的组件文档生成方法。
37.为了解决上述问题,本发明还提供一种计算机介质,所述计算机介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的组件文档生成方法。
38.本发明实施例中,首先获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;其次,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,由于抽象语法树中包括多个初始节点,且每个节点对应不同的组件数据,所以可以获得层级分明的组件数据,便于用户进行组件源代码查询或修改,有利于提高后续组件文档生成的效率;进而,获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档,可以根据配置信息直接生成组件文档,提高组件文档的生成效率。因此本发明实施例提出的组件文档生成方法、装置、电子设备及可存储介质可以提高组件文档的生成效率。
附图说明
39.图1为本发明一实施例提供的组件文档生成方法的流程示意图;
40.图2为本发明一实施例提供的组件文档生成装置的模块示意图;
41.图3为本发明一实施例提供的实现组件文档生成方法的电子设备的内部结构示意图;
42.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
43.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
44.本发明实施例提供一种组件文档生成方法。所述组件文档生成方法的执行主体包括但不限于服务端、终端等能够被配置为执行本技术实施例提供的该方法的电子设备中的至少一种。换言之,所述组件文档生成方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
45.参照图1所示的本发明一实施例提供的组件文档生成方法的流程示意图,在本发明实施例中,所述组件文档生成方法包括:
46.s1、获取markdown组件模板文档、组件参数、组件文档标题及组件源代码。
47.本发明实施例中,所述markdown组件模板文档是指利用markdown(一种轻量级标记语言)编写的纯文本格式的组件模板文档,其中,组件是指将一段或几段完成各自功能的代码段封装为一个或几个独立的部分。
48.本发明一实施例中,所述markdown组件模板文档的获取可以从开发平台或网页上获取。
49.本发明实施例中,所述组件参数、所述组件文档标题及所述组件源代码是用户利用预设的编程语言提前编写的组件相关信息代码,主要作用是实现用户前端页面的展示,其中,所述组件参数可以为特定的代码,通过所述组件参数可以对组件进行参数页面配置,进而利用预设编译器过滤用户前端页面展示不需要的组件参数,其中,所述组件参数包括:参数名、组件描述、组件类型、组件代码及默认值。
50.较佳地,所述编程语言可以是开源编程语言typescript,所述编译器可以是react-docgen-typescript编译器。
51.本发明一实施例中,所述组件文档标题是指多个组件的子文档标题,每个组件都由对应的子文档来存储信息。
52.本发明实施例中,所述组件源代码是指用户遵循特定编程语言的规则编写的用于执行指定任务的代码,可以用于说明所述组件源代码中各个组件的类型及组件间的交互关系。
53.s2、解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树文档。
54.本发明实施例中,抽象语法树(abstract syntax tree,ast)是指以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构,所述抽象语法树的主要作用是把所述组件参数、所述组件文档标题及所述组件源代码所要表达的逻辑关系体现在具体代码中。
55.详细地,所述解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
56.获取所述组件参数对应的参数字符串、所述组件文档标题对应的标题字符串和所述组件源代码对应的源代码字符串;
57.将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
58.本发明实施例中,可以将所述组件参数、所述组件文档标题和所述组件源代码对应的代码输入预设的转化器,得到所述组件参数对应的参数字符串、所述组件文档标题对应的标题字符串和所述组件源代码对应的源代码字符串,便于抽象语法树的生成。
59.较佳地,所述预设的转化器可以为babel或webpack loader。
60.进一步地,所述将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,包括:
61.对所述参数字符串、所述标题字符串及所述源代码字符串分别进行词法分析,得到所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组;
62.将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分别连接成树形结构。
63.本发明一实施例中,所述词法分析是指将字符串形式的代码转换为一个分词序列
数组tokens,所述词法分析的本质就是对于一些规则的程序化。比如,对于101的数字识别,当程序扫描到第一个数字字符的时候,就开始把它看做数字,直到遇到非数字的字符;再比如,对于“abc”的字符串识别,当扫描到双引号或者单引号的时候,就把它看做字符串,直到遇到另一个双引号或者单引号。
64.本发明实施例中,所述分词序列数组tokens可以是数字、文本标签、标点符号、文本内容及运算符等。
65.详细地,所述生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
66.通过对所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组分别进行语法分析,将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分别按照预设语法转化为参数解析树、标题解析树及源代码解析树;
67.对所述参数解析树、所述标题解析树及所述源代码解析树分别进行语义分析,以生成所述参数解析树的多个初始节点、所述标题解析树的多个初始节点及所述源代码解析树的多个初始节点,按照所述参数解析树的多个初始节点之间的层级关系、多个所述标题解析树初始节点之间的层级关系及多个所述源代码解析树初始节点之间的层级关系分别构建与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
68.本发明一实施例中,所述解析树是包含所有语法信息的树型结构,经过对解析树的语义分析后删减了解析树中包含的一些冗余的语法信息(例如冒号、括号、分号),得到更加简洁的抽象语法树。
69.本发明又一实施例中,所述语法分析是指对所述分词序列数组tokens进行抽象表示;例如,利用非终止符《》对tokens中的内容进行说明,则非终止符《》里的内容表示了语法成分,而tokens中的内容为终止符,通过语法分析可以较好的实现对源代码的信息提取。
70.本发明一可选实施例中,所述语法分析是指将所述分词序列数组tokens转换为解析树的形式,可以通过对所述解析树进行语义分析,生成多个树节点的初始节点,并按照多个树节点间的层级关系构建抽象语法树,实现抽象语法树的深度解析。
71.s3、从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据。
72.本发明实施例中,经过语义分析后的抽象语法树是按照层级关系布置各个节点显示出源代码中的数据结构、优先级和层次,且源代码中的数据中还会包括空白格、注释及重复信息,所以可以对抽象语法树进行深度遍历,获取各个节点对应的数据,从所述数据中获取多个组件的相关信息,可以获取层次更加分明的组件数据,且在大量的组件数据中也可以直接获取用户所需的部分组件数据,无需一一进行查找。
73.本发明实施例中,所述组件相关数据包括显示用户前端页面的多个组件文档、组件对应数据的传输方式、以及描述组件功能和实现功能的相关参数。
74.详细地,所述从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据,包括:
75.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度
遍历,得到多个树节点的数据;
76.从多个所述树节点的数据中获取组件数据。
77.本发明实施例中,所述抽象语法树包括多个树节点,而树节点又包括多个叶子节点;对于抽象语法树进行深度遍历,可以利用babel先从最开始的树节点向下遍历至最后一个树节点,再向上遍历已遍历过的树节点,然后对于已遍历过的有多个叶子节点的树节点从另一个叶子节点开始向下进行遍历,从而达到深度遍历。
78.例如,所述抽象语法树由a、b、c、d四个树节点组成,树节点a又由a1和a2两个叶子节点组成、树节点c由c1和c2两个叶子节点组成,则对抽象语法树进行遍历时,先从树节点a中的叶子节点a1向下遍历至b、c1和c2及d;在向上遍历a、b、c1和c2及d,遍历至a时,再从另外一个叶子节点a2开始向下遍历至d,从而达到深度遍历。
79.进一步地,所述对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度遍历,得到多个树节点的数据,包括:
80.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树分别进行压栈操作,得到多个树节点对应的字段;
81.循环所述压栈操作,直到所述压栈操作变为空栈;
82.当所述压栈操作变为所述空栈时,停止循环,并保存所有所述树节点对应的字段;
83.将所述所有树节点对应的字段转化为多个树节点的数据。
84.本实施例中,所述栈指的是仅在表尾进行插入或删除操作的线性表。不含元素的空表称为空栈。所述树节点对应的字段指的是所有组件功能及实现原理的相关数据。
85.s4、获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据插入至所述markdown组件模板文档中,得到组件文档。
86.本发明实施例中,所述组件配置信息是指所述组件数据的调用过程和展示顺序,可以利用预设的正则规则或预设的文档配置语言(例如yaml语言)获取所述markdown组件模板文档的配置信息。
87.详细地,所述根据所述组件配置信息将所述组件数据插入至所述markdown组件模板文档中,得到组件文档,包括:
88.根据所述组件配置信息展示组件数据在所述markdown组件模板文档中对应的组件位置,并将所述组件数据插入至所述组件位置,得到组件文档。
89.本发明一实施例中,还可以利用组件参数中的调用函数,将组件数据与预设接口连接,将组件数据显示为用户前端页面。
90.本发明实施例中,所述组件文档是用于记录组件中各个对象的属性关系和交互关系,生成的组件文档为更新后的markdown文档,可以通过组件参数中的调用函数对经过更新之后的markdown文档进行渲染,将组件数据显示为用户前端页面。
91.本发明实施例中,首先获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;其次,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,由于抽象语法树中包括多个初始节点,且每个节点对应不同的组件数据,所以可以获得层级分明的组件数据,便于用户进行组件源代码查询或修改,有利于提高后续组件文档生成的效率;进而,获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所
述markdown组件模板文档中,得到组件文档,可以根据配置信息直接生成组件文档,提高组件文档的生成效率。因此本发明实施例提出的组件文档生成方法可以提高组件文档的生成效率。
92.如图2所示,是本发明组件文档生成装置的功能模块图。
93.本发明所述组件文档生成装置100可以安装于电子设备中。根据实现的功能,所述组件文档生成装置可以包括组件信息获取模块101、抽象语法树生成模块102、组件数据获取模块103、组件文档生成模块104,本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
94.在本实施例中,关于各模块/单元的功能如下:
95.组件信息获取模块101,用于获取markdown组件模板文档、组件参数、组件文档标题及组件源代码。
96.本发明实施例中,所述markdown组件模板文档是指利用markdown(一种轻量级标记语言)编写的纯文本格式的组件模板文档,其中,组件是指将一段或几段完成各自功能的代码段封装为一个或几个独立的部分。
97.本发明一实施例中,所述markdown组件模板文档的获取可以从开发平台或网页上获取。
98.本发明实施例中,所述组件参数、所述组件文档标题及所述组件源代码是用户利用预设的编程语言提前编写的组件相关信息代码,主要作用是实现用户前端页面的展示,其中,所述组件参数可以为特定的代码,通过所述组件参数可以对组件进行参数页面配置,进而利用预设编译器过滤用户前端页面展示不需要的组件参数,其中,所述组件参数包括:参数名、组件描述、组件类型、组件代码及默认值。
99.较佳地,所述编程语言可以是开源编程语言typescript,所述编译器可以是react-docgen-typescript编译器。
100.本发明一实施例中,所述组件文档标题是指多个组件的子文档标题,每个组件都由对应的子文档来存储信息。
101.本发明实施例中,所述组件源代码是指用户遵循特定编程语言的规则编写的用于执行指定任务的代码,可以用于说明所述组件源代码中各个组件的类型及组件间的交互关系。
102.所述抽象语法树生成模块102,用于解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树文档。
103.本发明实施例中,抽象语法树(abstract syntax tree,ast)是指以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构,所述抽象语法树的主要作用是把所述组件参数、所述组件文档标题及所述组件源代码所要表达的逻辑关系体现在具体代码中。
104.详细地,所述解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
105.获取所述组件参数对应的参数字符串、所述组件文档标题对应的标题字符串和所述组件源代码对应的源代码字符串;
106.将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
107.本发明实施例中,可以将所述组件参数、所述组件文档标题和所述组件源代码对应的代码输入预设的转化器,得到所述组件参数对应的参数字符串、所述组件文档标题对应的标题字符串和所述组件源代码对应的源代码字符串,便于抽象语法树的生成。
108.较佳地,所述预设的转化器可以为babel或webpack loader。
109.进一步地,所述抽象语法树生成模块102通过执行下述操作将所述参数字符串、所述标题字符串及所述源代码字符串分别按照树形结构进行连接,包括:
110.对所述参数字符串、所述标题字符串及所述源代码字符串分别进行词法分析,得到所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组;
111.将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分别连接成树形结构。
112.本发明一实施例中,所述词法分析是指将字符串形式的代码转换为一个分词序列数组tokens,所述词法分析的本质就是对于一些规则的程序化。比如,对于101的数字识别,当程序扫描到第一个数字字符的时候,就开始把它看做数字,直到遇到非数字的字符;再比如,对于“abc”的字符串识别,当扫描到双引号或者单引号的时候,就把它看做字符串,直到遇到另一个双引号或者单引号。
113.本发明实施例中,所述分词序列数组tokens可以是数字、文本标签、标点符号、文本内容及运算符等。
114.详细地,所述抽象语法树生成模块102通过执行下述操作生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,包括:
115.通过对所述参数字符串包括的参数分词序列数组、所述标题字符串包括的标题分词序列数组及所述源代码字符串包括的源代码分词序列数组分别进行语法分析,将所述参数分词序列数组、所述标题分词序列数组及所述源代码分词序列数组分别按照预设语法转化为参数解析树、标题解析树及源代码解析树;
116.对所述参数解析树、所述标题解析树及所述源代码解析树分别进行语义分析,以生成所述参数解析树的多个初始节点、所述标题解析树的多个初始节点及所述源代码解析树的多个初始节点,按照所述参数解析树的多个初始节点之间的层级关系、多个所述标题解析树初始节点之间的层级关系及多个所述源代码解析树初始节点之间的层级关系分别构建与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树。
117.本发明一实施例中,所述解析树是包含所有语法信息的树型结构,经过对解析树的语义分析后删减了解析树中包含的一些冗余的语法信息(例如冒号、括号、分号),得到更加简洁的抽象语法树。
118.本发明又一实施例中,所述语法分析是指对所述分词序列数组tokens进行抽象表示;例如,利用非终止符《》对tokens中的内容进行说明,则非终止符《》里的内容表示了语法成分,而tokens中的内容为终止符,通过语法分析可以较好的实现对源代码的信息提取。
119.本发明一可选实施例中,所述语法分析是指将所述分词序列数组tokens转换为解析树的形式,可以通过对所述解析树进行语义分析,生成多个树节点的初始节点,并按照多个树节点间的层级关系构建抽象语法树,实现抽象语法树的深度解析。
120.所述组件数据获取模块103,用于从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据。
121.本发明实施例中,经过语义分析后的抽象语法树是按照层级关系布置各个节点显示出源代码中的数据结构、优先级和层次,且源代码中的数据中还会包括空白格、注释及重复信息,所以可以对抽象语法树进行深度遍历,获取各个节点对应的数据,从所述数据中获取多个组件的相关信息,可以获取层次更加分明的组件数据,且在大量的组件数据中也可以直接获取用户所需的部分组件数据,无需一一进行查找。
122.本发明实施例中,所述组件相关数据包括显示用户前端页面的多个组件文档、组件对应数据的传输方式、以及描述组件功能和实现功能的相关参数。
123.详细地,所述组件数据获取模块103通过执行下述操作从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据,包括:
124.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度遍历,得到多个树节点的数据;
125.从多个所述树节点的数据中获取组件数据。
126.本发明实施例中,所述抽象语法树包括多个树节点,而树节点又包括多个叶子节点;对于抽象语法树进行深度遍历,可以利用babel先从最开始的树节点向下遍历至最后一个树节点,再向上遍历已遍历过的树节点,然后对于已遍历过的有多个叶子节点的树节点从另一个叶子节点开始向下进行遍历,从而达到深度遍历。
127.例如,所述抽象语法树由a、b、c、d四个树节点组成,树节点a又由a1和a2两个叶子节点组成、树节点c由c1和c2两个叶子节点组成,则对抽象语法树进行遍历时,先从树节点a中的叶子节点a1向下遍历至b、c1和c2及d;在向上遍历a、b、c1和c2及d,遍历至a时,再从另外一个叶子节点a2开始向下遍历至d,从而达到深度遍历。
128.进一步地,所述对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树进行深度遍历,得到多个树节点的数据,包括:
129.对所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树分别进行压栈操作,得到多个树节点对应的字段;
130.循环所述压栈操作,直到所述压栈操作变为空栈;
131.当所述压栈操作变为所述空栈时,停止循环,并保存所有所述树节点对应的字段;
132.将所述所有树节点对应的字段转化为多个树节点的数据。
133.本实施例中,所述栈指的是仅在表尾进行插入或删除操作的线性表。不含元素的空表称为空栈。所述树节点对应的字段指的是所有组件功能及实现原理的相关数据。
134.所述组件文档生成模块104,用于获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据插入至所述markdown组件模板文档中,得到组
件文档。
135.本发明实施例中,所述组件配置信息是指所述组件数据的调用过程和展示顺序,可以利用预设的正则规则或预设的文档配置语言(例如yaml语言)获取所述markdown组件模板文档的配置信息。
136.详细地,所述根据所述组件配置信息将所述组件数据插入至所述markdown组件模板文档中,得到组件文档,包括:
137.根据所述组件配置信息展示组件数据在所述markdown组件模板文档中对应的组件位置,并将所述组件数据插入至所述组件位置,得到组件文档。
138.本发明一实施例中,还可以利用组件参数中的调用函数,将组件数据与预设接口连接,将组件数据显示为用户前端页面。
139.本发明实施例中,所述组件文档是用于记录组件中各个对象的属性关系和交互关系,生成的组件文档为更新后的markdown文档,可以通过组件参数中的调用函数对经过更新之后的markdown文档进行渲染,将组件数据显示为用户前端页面。
140.本发明实施例中,首先获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;其次,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树,由于抽象语法树中包括多个初始节点,且每个节点对应不同的组件数据,所以可以获得层级分明的组件数据,便于用户进行组件源代码查询或修改,有利于提高后续组件文档生成的效率;进而,获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档,可以根据配置信息直接生成组件文档,提高组件文档的生成效率。因此本发明实施例提出的组件文档生成装置可以提高组件文档的生成效率。
141.如图3所示,是本发明实现组件文档生成方法的电子设备的结构示意图。
142.所述电子设备可以包括处理器10、存储器11、通信总线12和通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如组件文档生成程序。
143.其中,所述存储器11至少包括一种类型的介质,所述介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、本地磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如组件文档生成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
144.所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利
用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如组件文档生成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
145.所述通信总线12可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述通信总线12总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
146.图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
147.例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
148.可选地,所述通信接口13可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。
149.可选地,所述通信接口13还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
150.应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
151.所述电子设备中的所述存储器11存储的组件文档生成程序是多个计算机程序的组合,在所述处理器10中运行时,可以实现:
152.获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;
153.解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树;
154.从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据;
155.获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档。
156.具体地,所述处理器10对上述计算机程序的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
157.进一步地,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作
为独立的产品销售或使用时,可以存储在一个计算机可读取介质中。所述计算机可读介质可以是非易失性的,也可以是易失性的。所述计算机可读介质可以包括:能够携待所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
158.本发明实施例还可以提供一种计算机介质,所述介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
159.获取markdown组件模板文档、组件参数、组件文档标题及组件源代码;
160.解析所述组件参数、所述组件文档标题及所述组件源代码,生成与所述组件参数对应的参数抽象语法树、与所述组件文档标题对应的标题抽象语法树及与所述组件源代码对应的源代码抽象语法树;
161.从所述参数抽象语法树、所述标题抽象语法树及所述源代码抽象语法树中获取组件数据;
162.获取所述markdown组件模板文档的组件配置信息,根据所述组件配置信息将所述组件数据导入至所述markdown组件模板文档中,得到组件文档。
163.进一步地,所述计算机可用介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
164.在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
165.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
166.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
167.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
168.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
169.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
170.此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中
陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
171.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献