Javascript 自定义用于生成文档的dgeni管道

Javascript 自定义用于生成文档的dgeni管道,javascript,angular,documentation,pipeline,documentation-generation,Javascript,Angular,Documentation,Pipeline,Documentation Generation,我使用从javascript代码库中提取jsDoc标记并生成降价文档文件 Dgeni工作流依赖于流水线的概念。在dgeni中,这意味着您可以定义一系列依次运行的“处理器”(即函数),任何处理器的输出都作为下一个处理器的输入。每个处理器都有助于生成最终的文档列表,该列表由其中一个处理器保存到硬盘上(几乎放在该序列的末尾) 例如,当来自的包base、jsdoc和nunjuck加载到dgeni实例中时,这是处理器的“默认”序列: info:1:从基本目录中读取文件(摘要) 信息:2:readFiles

我使用从javascript代码库中提取jsDoc标记并生成降价文档文件

Dgeni工作流依赖于流水线的概念。在dgeni中,这意味着您可以定义一系列依次运行的“处理器”(即函数),任何处理器的输出都作为下一个处理器的输入。每个处理器都有助于生成最终的文档列表,该列表由其中一个处理器保存到硬盘上(几乎放在该序列的末尾)

例如,当来自的包
base
jsdoc
nunjuck
加载到dgeni实例中时,这是处理器的“默认”序列:

info:1:从基本目录中读取文件(摘要)
信息:2:readFilesProcessor从基础
信息:3:从数据库读取的文件(摘要)
信息:4:从jsdoc中提取JSDOCcommentsProcessor
信息:5:从jsdoc解析标记(摘要)
信息:6:jsdoc的parseTagsProcessor
信息:7:从jsdoc解析的标签(摘要)
信息:8:从jsdoc中提取标签(摘要)
信息:9:从jsdoc提取标记处理器
信息:10:从jsdoc提取的标签(摘要)
信息:11:jsdoc的codeNameProcessor
信息:12:处理来自数据库的文档(摘要)
信息:13:从数据库处理的文档(摘要)
信息:14:从基础添加额外文档(摘要)
信息:15:从基础添加的额外文档(摘要)
信息:16:从数据库计算ID(摘要)
信息:17:ComputedProcessor从基础
信息:18:从基础计算的ID(摘要)
信息:19:从基础计算路径(摘要)
信息:20:computePathsProcessor from base
信息:21:从基础计算的路径(摘要)
信息:22:从数据库中呈现文档(摘要)
信息:23:renderDocsProcessor从基础开始
信息:24:从基本文档中呈现的文档(摘要)
信息:25:UnescapeComentsProcessor from base
信息:26:jsdoc的InlineAgProcessor
信息:27:从base编写文件(摘要)
信息:28:WriteFileProcessor从基
信息:29:从基座检查锚点链接处理器
信息:30:从base写入的文件(摘要)
在dgeni中,每个处理器的输入/输出是一个对象数组,称为
docs
,其中每个对象都包含源文件中给定jsDoc注释的信息

Dgeni提供了上述处理最常见需求的处理器的默认“框架”。 例如,有一个处理器从源文件中提取jsDoc注释并将其保存在
docs
数组中,还有一个处理器读取该信息并构建要在每个文件中呈现的内容,该内容实际上由另一个处理器保存到磁盘中。。。我希望能让你了解dgeni的工作原理

我确实希望重用
dgeni
dgeni包
已经提供的大部分内容,但是我发现自己需要简化一些行为。 正如我已经说过的那样,
docs
数组包含每个jsDoc注释的一个对象,并且在硬盘上写入
docs
的处理器为该数组中的每个项目输出一个文件。相反,我只需要为代码库中的每个javascript模块保存一个文件,每个文件必须包含有关所有函数/类/常量等的信息。。。属于该javascript模块(如果您不熟悉js模块,请考虑
1模块=1源代码文件

我的问题是:如何干扰/交互dgeni提供的处理器的默认实现? 请记住,以后的处理者可能希望为以前的处理者添加的
文档
数组的每个项目找到一些属性/数据集。 因此,我必须小心不要破坏这个“合同”

我是否应该仅使用自定义逻辑覆盖
WriteFileProcessors()
(以在硬盘上获得所需的输出),但仍然转发我在输入中收到的相同
docs
值(以避免破坏后续处理器中的某些内容),还是有其他推荐方法? 另一种方法是完全覆盖
computePathsProcessor()
(设置我需要的正确输出文件路径)和
renderDocsProcessor()
(根据我的自定义需要聚合输入数组
docs
),并将新的自制对象转发给以下处理器。也许还有别的什么