1
- import { Package } from 'dgeni' ;
1
+ import {
2
+ Document ,
3
+ Package ,
4
+ } from 'dgeni' ;
2
5
import linksPackage from 'dgeni-packages/links' ;
3
6
import typescriptPackage from 'dgeni-packages/typescript' ;
4
7
@@ -42,6 +45,11 @@ import {
42
45
DESIGN_PATH ,
43
46
} from '../config' ;
44
47
import { daffodilBasePackage } from '../daffodil-base-package' ;
48
+ import {
49
+ EXAMPLES_PROCESSOR_PROVIDER ,
50
+ ExamplesProcessor ,
51
+ } from './processors/examples' ;
52
+ import { ConvertToJsonProcessor } from '../../processors/convertToJson' ;
45
53
46
54
const API_PACKAGE_NAME = 'daffodil-api' ;
47
55
@@ -62,6 +70,7 @@ export const apiDocsBase = new Package('api-base', [
62
70
. processor ( ...ADD_SUBPACKAGE_EXPORTS_PROCESSOR_PROVIDER )
63
71
. processor ( ...MARKDOWN_CODE_PROCESSOR_PROVIDER )
64
72
. processor ( ...COLLECT_LINKABLE_SYMBOLS_PROCESSOR_PROVIDER )
73
+ . processor ( ...EXAMPLES_PROCESSOR_PROVIDER )
65
74
. factory ( 'API_DOC_TYPES_TO_RENDER' , ( EXPORT_DOC_TYPES ) => EXPORT_DOC_TYPES . concat ( [ 'component' , 'directive' , 'pipe' ] ) )
66
75
. config ( ( readFilesProcessor , readTypeScriptModules , tsParser ) => {
67
76
@@ -76,8 +85,15 @@ export const apiDocsBase = new Package('api-base', [
76
85
readTypeScriptModules . basePath = API_SOURCE_PATH ;
77
86
readTypeScriptModules . hidePrivateMembers = true ;
78
87
} )
79
- . config ( ( markdown : MarkdownCodeProcessor , EXPORT_DOC_TYPES , addKind : AddKindProcessor , breadcrumb : BreadcrumbProcessor ) => {
88
+ . config ( (
89
+ markdown : MarkdownCodeProcessor ,
90
+ EXPORT_DOC_TYPES ,
91
+ addKind : AddKindProcessor ,
92
+ breadcrumb : BreadcrumbProcessor ,
93
+ examples : ExamplesProcessor ,
94
+ ) => {
80
95
markdown . docTypes . push ( ...EXPORT_DOC_TYPES ) ;
96
+ examples . docTypes . push ( ...EXPORT_DOC_TYPES ) ;
81
97
addKind . docTypes . push ( ...EXPORT_DOC_TYPES , 'package' , 'module' ) ;
82
98
breadcrumb . docTypes . push ( ...EXPORT_DOC_TYPES , 'package' ) ;
83
99
markdown . contentKey = 'description' ;
@@ -96,10 +112,22 @@ export const apiDocsBase = new Package('api-base', [
96
112
parseTagsProcessor . tagDefinitions = parseTagsProcessor . tagDefinitions . concat ( [
97
113
{ name : 'docs-private' } ,
98
114
{ name : 'inheritdoc' } ,
115
+ {
116
+ name : 'example' ,
117
+ multi : true ,
118
+ transforms : ( doc : Document , tag : any , value : any ) => {
119
+ const match = value . match ( / ^ ( .* ) $ / gm) ;
120
+ tag . caption = match [ 0 ] ;
121
+ tag . body = value . replace ( match [ 0 ] , '' ) . trim ( ) ;
122
+
123
+ return value ;
124
+ } ,
125
+ } ,
99
126
] ) ;
100
127
} )
101
- . config ( ( convertToJson , API_DOC_TYPES_TO_RENDER ) => {
128
+ . config ( ( convertToJson : ConvertToJsonProcessor , API_DOC_TYPES_TO_RENDER ) => {
102
129
convertToJson . docTypes = convertToJson . docTypes . concat ( API_DOC_TYPES_TO_RENDER ) ;
130
+ convertToJson . extraFields . push ( 'examples' ) ;
103
131
} )
104
132
. config ( ( templateFinder ) => {
105
133
// Where to find the templates for the API doc rendering
0 commit comments