CN110187886B - 一种文档网站生成方法及终端 - Google Patents

一种文档网站生成方法及终端 Download PDF

Info

Publication number
CN110187886B
CN110187886B CN201910328652.0A CN201910328652A CN110187886B CN 110187886 B CN110187886 B CN 110187886B CN 201910328652 A CN201910328652 A CN 201910328652A CN 110187886 B CN110187886 B CN 110187886B
Authority
CN
China
Prior art keywords
file
static
code
loader
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910328652.0A
Other languages
English (en)
Other versions
CN110187886A (zh
Inventor
刘德建
陈铭
陈耀灿
郭玉湖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Huayu Education Technology Co Ltd
Original Assignee
Fujian Huayu Education Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Huayu Education Technology Co Ltd filed Critical Fujian Huayu Education Technology Co Ltd
Priority to CN201910328652.0A priority Critical patent/CN110187886B/zh
Publication of CN110187886A publication Critical patent/CN110187886A/zh
Application granted granted Critical
Publication of CN110187886B publication Critical patent/CN110187886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种文档网站生成方法及终端,遍历源代码,获取静态文件,将所述静态文件提交至静态loader;执行静态loader,将所述静态文件转换为JS文件,生成文档网站;本发明只需要编写静态文件,然后通过Loader插件,将静态文件自动转换成动态代码,从而可以快速搭建出具有动态效果的文档网站,提高了网站的生成速度,降低了调试成本同时易于阅读。

Description

一种文档网站生成方法及终端
技术领域
本发明涉及软件领域,特别涉及一种文档网站生成方法及终端。
背景技术
在前端开发过程中,为了让使用者尽快了解某种前端技术(开发框架、ui组件等等),研发者在发布程序的时候也会同时提供一个文档网站,这个网站除了介绍这些前端技术的内容以外,还会通过提供各种丰富的在线演示,帮助使用者尽快的上手。
在传统的开发方式中,文档网站中Demo页面是通过前端代码写成的,这种方式有很多不方便的地方,具体如下:
1、由于代码拥有严格的格式规范限制和框架约束,相比写静态文件,写代码文件的速度要更慢;
2、由于代码可能出现bug,相比于写静态文件,写代码文件会增加调试成本;
3、相比于静态页面,代码风格的页面不容易被阅读。
发明内容
本发明所要解决的技术问题是:提供一种文档网站生成方法及终端,从而快速搭建出具有动态效果的文档网站。
为了解决上述技术问题,本发明采用的技术方案为:
一种文档网站生成方法,包括步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种文档网站生成终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站。
本发明的有益效果在于:一种文档网站生成方法及终端,遍历源代码,获取静态文件,将静态文件提交至静态loader,由静态loader将静态文件转换为JS文件,生成文档网站,即只需要编写静态文件,然后通过Loader插件,将静态文件自动转换成动态代码,从而可以快速搭建出具有动态效果的文档网站,提高了网站的生成速度,降低了调试成本同时易于阅读。
附图说明
图1为本发明实施例的一种文档网站生成方法的流程示意图;
图2为本发明实施例的一种文档网站生成方法的具体流程示意图;
图3为本发明实施例的一种文档网站生成终端的结构示意图。
标号说明:
1、一种文档网站生成终端;2、处理器;3、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
在此之前,为了便于理解本发明的技术方案,对于本发明中涉及的英文缩写、设备等进行说明如下:
(1)、webpack:目前流行的web前端工程打包工具,主要功能是对web前端工程中的源代码进行压缩、混淆、分片等。
(2)、loader:webpack框架提供的一种扩展能力,webpack使用者通过编写自己的loader,可以将自己工程源代码中指定的文件进行转换;在本发明中的静态loader是指将静态文件转换为js文件的loader,md loader是指将MD文件转换为js文件的loader。
(3)、md:在本发明中为MarkDown的缩写,它是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式;在本发明中MD文件是指使用MarkDown编写的文件。
(4)、md解析器:由于MD文件只是一个普通文本,无法直接在浏览器上显示,所以需要使用md解析器,将MD文件解析成数据结构,其中该数据结构如本发明中的AST。
(5)、AST:AST在本发明中为Abstract Syntax Tree的缩写,意为抽象语法树,或简称语法树,它是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
请参照图1至图2,一种文档网站生成方法,包括步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站。
其中,在生成文档网站之前,开发者根据需求编译一个使静态文件转换为JS文件的静态loader。
从上述描述可知,本发明的有益效果在于:遍历源代码,获取静态文件,将静态文件提交至静态loader,由静态loader将静态文件转换为JS文件,生成文档网站,即只需要编写静态文件,然后通过Loader插件,将静态文件自动转换成动态代码,从而可以快速搭建出具有动态效果的文档网站,提高了网站的生成速度,降低了调试成本同时易于阅读。
进一步地,所述步骤S1中的静态文件具体为MD文件,所述静态loader为mdloader。
从上述描述可知,本发明中的静态文件为MD文件,MD文件的语法简洁明了、学习容易,而且功能比纯文本更强,也已经被广泛使用,故而使用MD文件能进一步提高网站的生成速度。
进一步地,所述步骤S2具体为:
S21、对MD文件进行解析,以得到AST;
S22、遍历所述AST,依次判断所述AST的树节点是否为约定格式,若是,则将所述树节点的内容作为原生的js代码返回,否则将所述树节点的内容转换为显示格式的js代码后返回,所述显示格式为浏览器支持的显示格式;
S23、合并所述步骤S22所返回的js代码,以得到JS文件,生成文档网站。
从上述描述可知,对于MD文件,包括一级标题、静态区域等部分的内容是标准的md格式,要将其转换成显示格式的js代码后进行返回;而在约定格式之内的内容,则作为原生的js代码返回即可,从而提供了一种将MD文件快速转换为JS文件的技术方案。
进一步地,所述步骤S21中“对MD文件进行解析”具体为:通过md解析器对MD文件进行解析;
所述步骤S22中“将所述树节点的内容转换为显示格式的js代码后返回”具体为:通过md解析器对所述树节点的内容进行转换,以得到显示格式的js代码,返回显示格式的所述js代码。
从上述描述可知,通过md解析器进行解析以及格式转换,以使得MD文件能够顺利转换成JS文件。
进一步地,所述步骤S23中“合并所述步骤S22所返回的js代码,以得到JS文件”具体为:
通过webpack将所述步骤S22所返回的js代码打包成JS文件。
从上述描述可知,在webpack的配置文件中添加静态loader,使得webpack在遇到静态文件时就自动执行静态loader,从而自动完成对静态文件转换成动态代码的过程。
请参照图3、一种文档网站生成终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站。
从上述描述可知,本发明的有益效果在于:遍历源代码,获取静态文件,将静态文件提交至静态loader,由静态loader将静态文件转换为JS文件,生成文档网站,即只需要编写静态文件,然后通过Loader插件,将静态文件自动转换成动态代码,从而可以快速搭建出具有动态效果的文档网站,提高了网站的生成速度,降低了调试成本同时易于阅读。
进一步地,所述步骤S1中的静态文件具体为MD文件,所述静态loader为mdloader。
从上述描述可知,本发明中的静态文件为MD文件,MD文件的语法简洁明了、学习容易,而且功能比纯文本更强,也已经被广泛使用,故而使用MD文件能进一步提高网站的生成速度。
进一步地,所述步骤S2具体为:
S21、对MD文件进行解析,以得到AST;
S22、遍历所述AST,依次判断所述AST的树节点是否为约定格式,若是,则将所述树节点的内容作为原生的js代码返回,否则将所述树节点的内容转换为显示格式的js代码后返回,所述显示格式为浏览器支持的显示格式;
S23、合并所述步骤S22所返回的js代码,以得到JS文件,生成文档网站。
从上述描述可知,对于MD文件,包括一级标题、静态区域等部分的内容是标准的md格式,要将其转换成显示格式的js代码后进行返回;而在约定格式之内的内容,则作为原生的js代码返回即可,从而提供了一种将MD文件快速转换为JS文件的技术方案。
进一步地,所述步骤S21中“对MD文件进行解析”具体为:通过md解析器对MD文件进行解析;
所述步骤S22中“将所述树节点的内容转换为显示格式的js代码后返回”具体为:通过md解析器对所述树节点的内容进行转换,以得到浏览器支持的显示格式的js代码,返回显示格式的所述js代码。
从上述描述可知,通过md解析器进行解析以及格式转换,以使得MD文件能够顺利转换成JS文件。
进一步地,所述步骤S23中“合并所述步骤S22所返回的js代码,以得到JS文件”具体为:
通过webpack将所述步骤S22所返回的js代码打包成JS文件。
从上述描述可知,在webpack的配置文件中添加静态loader,使得webpack在遇到静态文件时就自动执行静态loader,从而自动完成对静态文件转换成动态代码的过程。
请参照图1至图2,本发明的实施例一为:
一种文档网站生成方法,包括步骤:
S1、遍历源代码,获取静态文件,将静态文件提交至静态loader;
其中,在源代码可能存在多个静态文件,则进行一一转换;
S2、执行静态loader,将静态文件转换为JS文件,生成文档网站。
其中,JS文件即包括有动态的js代码,根据js代码生成文档网站。
请参照图1至图2,本发明的实施例二为:
一种文档网站生成方法,在上述实施例一的基础上,步骤S1中的静态文件具体为MD文件,静态loader为md loader。
步骤S2具体为:
S21、对MD文件进行解析,以得到AST;
其中,步骤S21中“对MD文件进行解析”具体为:通过md解析器对MD文件进行解析;
S22、遍历AST,依次判断AST的树节点是否为约定格式,若是,则将树节点的内容作为原生的js代码返回,否则将树节点的内容转换为显示格式的js代码后返回,显示格式为浏览器支持的显示格式;
其中,步骤S22中“将树节点的内容转换为显示格式的js代码后返回”具体为:通过md解析器对树节点的内容进行转换,以得到显示格式的js代码,返回显示格式的js代码;
如图2所示,对于AST的遍历,从第一个树节点开始判断然后返回js代码,直至AST的所有树节点均判断完为止。
S23、合并步骤S22所返回的js代码,以得到JS文件,生成文档网站;
其中,步骤S23中“合并步骤S22所返回的js代码,以得到JS文件”具体为:
通过webpack将步骤S22所返回的js代码打包成JS文件。
如图2所示,源代码中有可能包括多个MD文件,步骤S2则对多个MD文件按照顺序依次执行步骤S21、步骤S22以及步骤S23。在步骤S23中,若有多个MD文件,则在每一个的MD文件都转换成JS文件之后,对所有的JS文件进行代码优化,最终根据优化后的代码生成文档网站。
在本实施例中,约定格式根据具体环境自行约定,没有任何限制,例如可以约定以符号“+”开始,以符号“#”结束等等。
在本实施例中,假设我们事先约定好一个格式,以“:::demo```js”开始,以“```:::”结束,中间的内容,是一个动态的Demo。此时这个demo.MD文件,内容如下:
Figure BDA0002037011620000071
对上述demo.MD文件执行步骤S22时,具体如下:
“#这里是页面的一级标题”,判断这是一个标准的md格式,将其转换为:“<h1>这里是页面的一级标题</h1>”
“##这里是页面的二级标题”,判断这是一个标准的md格式,将其转换为:“<h2>这里是页面的二级标题</h2>”
“静态区域,可以编写任何你想要的文本”,判断这是一个标准的md格式,将其转换为:“<div>静态区域,可以编写任何你想要的文本</div>”
“:::demo```js”,判断这是一个事先约定格式,于是将其转换为具体的js代码,最终得到的JS文件如下:
Figure BDA0002037011620000072
Figure BDA0002037011620000081
请参照图1至图2,本发明的实施例三为:
一种文档网站生成终端1,包括存储器3、处理器2及存储在存储器3上并可在处理器2上运行的计算机程序,处理器2执行计算机程序时实现上述实施例一中的步骤。
请参照图1至图2,本发明的实施例四为:
一种文档网站生成终端1,在上述实施例三的基础上,处理器2执行计算机程序时实现上述实施例二中的步骤。
综上所述,本发明提供的一种文档网站生成方法及终端,遍历源代码,获取静态文件,将静态文件提交至静态loader,由静态loader将静态文件转换为JS文件,生成文档网站,即只需要编写静态文件,然后通过Loader插件,在webpack的配置文件中添加静态loader,使得webpack在遇到静态文件时就自动执行静态loader,以将静态文件自动转换成动态代码,从而可以快速搭建出具有动态效果的文档网站,提高了网站的生成速度,降低了调试成本同时易于阅读;使用MD文件,降低难度且能进一步提高速度;通过对是否为预定格式的节点内容作不同的处理,从而将MD文件快速转换为JS文件。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种文档网站生成方法,其特征在于,包括步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站;
所述步骤S1中的静态文件具体为MD文件,所述静态loader为md loader;
所述步骤S2具体为:
S21、对MD文件进行解析,以得到AST;
S22、遍历所述AST,依次判断所述AST的树节点是否为约定格式,若是,则将所述树节点的内容作为原生的js代码返回,否则将所述树节点的内容转换为显示格式的js代码后返回,所述显示格式为浏览器支持的显示格式,所述约定格式为根据具体环境自行约定的符号;
S23、合并所述步骤S22所返回的js代码,以得到JS文件,生成文档网站。
2.根据权利要求1所述的一种文档网站生成方法,其特征在于,所述步骤S21中“对MD文件进行解析”具体为:通过md解析器对MD文件进行解析;
所述步骤S22中“将所述树节点的内容转换为显示格式的js代码后返回”具体为:通过md解析器对所述树节点的内容进行转换,以得到显示格式的js代码,返回显示格式的所述js代码。
3.根据权利要求1所述的一种文档网站生成方法,其特征在于,所述步骤S23中“合并所述步骤S22所返回的js代码,以得到JS文件”具体为:
通过webpack将所述步骤S22所返回的js代码打包成JS文件。
4.一种文档网站生成终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、遍历源代码,获取静态文件,将所述静态文件提交至静态loader;
S2、执行静态loader,将所述静态文件转换为JS文件,生成文档网站;
所述步骤S1中的静态文件具体为MD文件,所述静态loader为md loader;
所述步骤S2具体为:
S21、对MD文件进行解析,以得到AST;
S22、遍历所述AST,依次判断所述AST的树节点是否为约定格式,若是,则将所述树节点的内容作为原生的js代码返回,否则将所述树节点的内容转换为显示格式的js代码后返回,所述显示格式为浏览器支持的显示格式,所述约定格式为根据具体环境自行约定的符号;
S23、合并所述步骤S22所返回的js代码,以得到JS文件,生成文档网站。
5.根据权利要求4所述的一种文档网站生成终端,其特征在于,所述步骤S21中“对MD文件进行解析”具体为:通过md解析器对MD文件进行解析;
所述步骤S22中“将所述树节点的内容转换为显示格式的js代码后返回”具体为:通过md解析器对所述树节点的内容进行转换,以得到浏览器支持的显示格式的js代码,返回显示格式的所述js代码。
6.根据权利要求4所述的一种文档网站生成终端,其特征在于,所述步骤S23中“合并所述步骤S22所返回的js代码,以得到JS文件”具体为:
通过webpack将所述步骤S22所返回的js代码打包成JS文件。
CN201910328652.0A 2019-04-23 2019-04-23 一种文档网站生成方法及终端 Active CN110187886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910328652.0A CN110187886B (zh) 2019-04-23 2019-04-23 一种文档网站生成方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910328652.0A CN110187886B (zh) 2019-04-23 2019-04-23 一种文档网站生成方法及终端

Publications (2)

Publication Number Publication Date
CN110187886A CN110187886A (zh) 2019-08-30
CN110187886B true CN110187886B (zh) 2022-04-12

Family

ID=67714972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910328652.0A Active CN110187886B (zh) 2019-04-23 2019-04-23 一种文档网站生成方法及终端

Country Status (1)

Country Link
CN (1) CN110187886B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191176B (zh) * 2019-12-24 2023-04-07 腾讯云计算(北京)有限责任公司 网站内容更新方法、装置、终端及存储介质
CN111596948B (zh) * 2020-04-09 2021-07-16 北京五八信息技术有限公司 一种基于Flutter的文档处理方法和装置
CN114253630B (zh) * 2021-12-23 2023-07-25 上海新炬网络信息技术股份有限公司 基于Java切面修改Form表单变化信息实现日志保存的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108376127A (zh) * 2018-03-15 2018-08-07 武汉斗鱼网络科技有限公司 一种文档生成的方法、装置及计算机可读存储介质
CN109144482A (zh) * 2018-08-22 2019-01-04 海南新软软件有限公司 一种基于webpack的快速开发环境搭建方法及装置
CN109375922A (zh) * 2018-09-26 2019-02-22 深圳壹账通智能科技有限公司 一种接口文档的自动生成方法及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986101B2 (en) * 1999-05-06 2006-01-10 International Business Machines Corporation Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108376127A (zh) * 2018-03-15 2018-08-07 武汉斗鱼网络科技有限公司 一种文档生成的方法、装置及计算机可读存储介质
CN109144482A (zh) * 2018-08-22 2019-01-04 海南新软软件有限公司 一种基于webpack的快速开发环境搭建方法及装置
CN109375922A (zh) * 2018-09-26 2019-02-22 深圳壹账通智能科技有限公司 一种接口文档的自动生成方法及终端设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"demo-md-loader";Theoton;《github 公开网址:https://github.com/Theoton/demo-md-loader》;20180626;第1页 *
基于文档树的XML文件转换;蒋悦等;《计算机工程》;20031105(第21期);第1-3页 *

Also Published As

Publication number Publication date
CN110187886A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN110187886B (zh) 一种文档网站生成方法及终端
Voelter et al. Supporting Diverse Notations in MPS'Projectional Editor.
WO2019214539A1 (zh) 一种文档展示方法和装置
CN111831384B (zh) 语言切换方法和装置、设备及存储介质
Ozik et al. The ReLogo agent-based modeling language
CN111427583A (zh) 组件的编译方法、装置和电子设备及计算机可读存储介质
CN105094836A (zh) 一种生成说明文档的方法和装置
CN116069325B (zh) 前端项目构建方法、装置、设备及计算机可读存储介质
Bellucci et al. Automatic reverse engineering of interactive dynamic web applications to support adaptation across platforms
CN113031932A (zh) 项目开发方法、装置、电子设备及存储介质
Serrano et al. Multitier programming in Hop
CN114153459A (zh) 接口文档生成方法及装置
CN111459537A (zh) 冗余代码去除方法、装置、设备与计算机可读存储介质
US20050177818A1 (en) Integration of external tools into an existing design environment
Betari et al. Model transformations in the MOF meta-modeling architecture: from UML to codeIgniter PHP framework
CN112130952A (zh) 多语言显示方法、装置、设备及产品
Tian et al. Compression of correlated sources using LDPC codes
Hearnden et al. Anti-Yacc: MOF-to-text
CN112307404A (zh) 基于源文件的文档网站的设置方法、装置、设备及介质
CN113741900B (zh) 一种前端页面应用的开发方法、装置及相关设备
Thomson Linking Dataflow Algebra with the CaDiZ Tool
Khamis et al. Generating an NLP Corpus from Java Source Code: The SSL Javadoc Doclet
CN118259891A (zh) 一种vue源码导出方法、设备、程序产品及介质
CN117827171A (zh) 一种通过jsonSchema文件生成项目源码的方法及装置
JP2006011549A (ja) 構造化文書変換装置及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant