@cparra/apexdocs 1.13.8 → 2.0.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.eslintrc.js +12 -0
  2. package/.prettierrc.js +7 -0
  3. package/README.md +98 -31
  4. package/ROADMAP.md +18 -0
  5. package/docs/Gemfile.lock +49 -23
  6. package/docs/Sample-Classes/SampleClass.md +138 -115
  7. package/docs/Sample-Interfaces/SampleInterface.md +5 -7
  8. package/docs/index.md +12 -27
  9. package/examples/apex/SampleClass.cls +25 -8
  10. package/examples/apex/SampleInterface.cls +2 -3
  11. package/examples/{apex/SampleClass2.cls → force-app/main/default/classes/SampleClass.cls} +34 -17
  12. package/examples/force-app/main/default/classes/SampleInterface.cls +16 -0
  13. package/lib/cli/generate.js +17 -21
  14. package/lib/index.d.ts +1 -1
  15. package/lib/index.js +2 -1
  16. package/lib/model/manifest-diff.d.ts +24 -2
  17. package/lib/model/manifest-diff.js +60 -2
  18. package/lib/model/manifest-diff.js.map +1 -1
  19. package/lib/service/apex-file-reader.d.ts +1 -1
  20. package/lib/service/apex-file-reader.js +4 -4
  21. package/lib/service/apex-file-reader.js.map +1 -1
  22. package/lib/settings.d.ts +17 -18
  23. package/lib/settings.js +27 -36
  24. package/package.json +19 -10
  25. package/src/application/Apexdocs.ts +40 -0
  26. package/src/cli/generate.ts +52 -64
  27. package/src/index.ts +1 -1
  28. package/src/model/__tests__/manifest-diff.spec.ts +142 -0
  29. package/src/model/__tests__/manifest.spec.ts +15 -0
  30. package/src/model/file.ts +23 -0
  31. package/src/model/manifest-diff.ts +94 -0
  32. package/src/model/manifest.ts +60 -0
  33. package/src/model/markdown-file.ts +56 -0
  34. package/src/model/markdown-generation-util/field-declaration-util.ts +42 -0
  35. package/src/model/markdown-generation-util/index.ts +3 -0
  36. package/src/model/markdown-generation-util/method-declaration-util.ts +128 -0
  37. package/src/model/markdown-generation-util/type-declaration-util.ts +29 -0
  38. package/src/model/markdown-home-file.ts +48 -0
  39. package/src/model/markdown-type-file.ts +75 -0
  40. package/src/service/__tests__/apex-file-reader.spec.ts +79 -0
  41. package/src/service/__tests__/manifest-factory.spec.ts +16 -0
  42. package/src/service/apex-file-reader.ts +44 -0
  43. package/src/service/file-system.ts +28 -0
  44. package/src/service/file-writer.ts +25 -0
  45. package/src/service/manifest-factory.ts +12 -0
  46. package/src/service/parser.ts +18 -0
  47. package/src/service/walkers/class-walker.ts +31 -0
  48. package/src/service/walkers/enum-walker.ts +8 -0
  49. package/src/service/walkers/interface-walker.ts +12 -0
  50. package/src/service/walkers/walker-factory.ts +19 -0
  51. package/src/service/walkers/walker.ts +35 -0
  52. package/src/settings.ts +57 -0
  53. package/src/transpiler/file-container.ts +13 -0
  54. package/src/transpiler/markdown/class-file-generatorHelper.ts +16 -0
  55. package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +7 -0
  56. package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +22 -0
  57. package/src/transpiler/markdown/markdown-transpiler-base.ts +28 -0
  58. package/src/transpiler/processor-type-transpiler.ts +12 -0
  59. package/src/transpiler/transpiler.ts +18 -0
  60. package/src/util/logger.ts +31 -0
  61. package/tsconfig.json +9 -3
  62. package/.prettierrc +0 -5
  63. package/docs/Sample-Classes/SampleClass2.md +0 -115
  64. package/docs/single-file/Sample-Classes/SampleClass.md +0 -115
  65. package/examples/config/config.json +0 -5
  66. package/lib/AsJsDocsProcessor.d.ts +0 -9
  67. package/lib/AsJsDocsProcessor.js +0 -61
  68. package/lib/ClassFileGeneratorHelper.d.ts +0 -5
  69. package/lib/ClassFileGeneratorHelper.js +0 -30
  70. package/lib/ClassFileGeneratorHelper.test.d.ts +0 -1
  71. package/lib/ClassFileGeneratorHelper.test.js +0 -32
  72. package/lib/Command/Generate.d.ts +0 -2
  73. package/lib/Command/Generate.js +0 -54
  74. package/lib/Command/__test__/Generte.test.d.ts +0 -1
  75. package/lib/Command/__test__/Generte.test.js +0 -30
  76. package/lib/Configuration.d.ts +0 -34
  77. package/lib/Configuration.js +0 -37
  78. package/lib/DocsProcessor.d.ts +0 -7
  79. package/lib/DocsProcessor.js +0 -12
  80. package/lib/DocsifyDocsProcessor.d.ts +0 -4
  81. package/lib/DocsifyDocsProcessor.js +0 -9
  82. package/lib/DocsifyDocsProcessor.test.d.ts +0 -1
  83. package/lib/DocsifyDocsProcessor.test.js +0 -7
  84. package/lib/FileManager.d.ts +0 -6
  85. package/lib/FileManager.js +0 -28
  86. package/lib/JekyllDocsProcessor.d.ts +0 -9
  87. package/lib/JekyllDocsProcessor.js +0 -23
  88. package/lib/JekyllDocsProcessor.test.d.ts +0 -1
  89. package/lib/JekyllDocsProcessor.test.js +0 -21
  90. package/lib/JsHelper.d.ts +0 -12
  91. package/lib/JsHelper.js +0 -72
  92. package/lib/MarkdownDocsProcessor.d.ts +0 -22
  93. package/lib/MarkdownDocsProcessor.js +0 -360
  94. package/lib/MarkdownHelper.d.ts +0 -13
  95. package/lib/MarkdownHelper.js +0 -78
  96. package/lib/Parser/ClassParser.d.ts +0 -5
  97. package/lib/Parser/ClassParser.js +0 -83
  98. package/lib/Parser/EnumParser.d.ts +0 -5
  99. package/lib/Parser/EnumParser.js +0 -45
  100. package/lib/Parser/FileParser.d.ts +0 -8
  101. package/lib/Parser/FileParser.js +0 -211
  102. package/lib/Parser/MethodParser.d.ts +0 -5
  103. package/lib/Parser/MethodParser.js +0 -109
  104. package/lib/Parser/PropertyParser.d.ts +0 -5
  105. package/lib/Parser/PropertyParser.js +0 -46
  106. package/lib/Parser/__test__/ClassParser.test.d.ts +0 -1
  107. package/lib/Parser/__test__/ClassParser.test.js +0 -52
  108. package/lib/Parser/__test__/FileParser.test.d.ts +0 -1
  109. package/lib/Parser/__test__/FileParser.test.js +0 -12
  110. package/lib/Parser/__test__/MethodParser.test.d.ts +0 -1
  111. package/lib/Parser/__test__/MethodParser.test.js +0 -69
  112. package/lib/Parser/__test__/PropertyParser.test.d.ts +0 -1
  113. package/lib/Parser/__test__/PropertyParser.test.js +0 -14
  114. package/lib/Parser/__test__/testFileContents.d.ts +0 -1
  115. package/lib/Parser/__test__/testFileContents.js +0 -82
  116. package/lib/Settings.test.d.ts +0 -1
  117. package/lib/Settings.test.js +0 -38
  118. package/lib/model/ApexModel.d.ts +0 -30
  119. package/lib/model/ApexModel.js +0 -85
  120. package/lib/model/ClassModel.d.ts +0 -39
  121. package/lib/model/ClassModel.js +0 -125
  122. package/lib/model/EnumModel.d.ts +0 -6
  123. package/lib/model/EnumModel.js +0 -28
  124. package/lib/model/MethodModel.d.ts +0 -18
  125. package/lib/model/MethodModel.js +0 -74
  126. package/lib/model/PropertyModel.d.ts +0 -6
  127. package/lib/model/PropertyModel.js +0 -40
  128. package/lib/model/__test__/ClassModel.test.d.ts +0 -1
  129. package/lib/model/__test__/ClassModel.test.js +0 -79
  130. package/lib/model/__test__/MethodModel.test.d.ts +0 -1
  131. package/lib/model/__test__/MethodModel.test.js +0 -55
  132. package/lib/model/__test__/PropertyModel.test.d.ts +0 -1
  133. package/lib/model/__test__/PropertyModel.test.js +0 -25
  134. package/lib/utils.d.ts +0 -12
  135. package/lib/utils.js +0 -49
  136. package/lib/utils.test.d.ts +0 -1
  137. package/lib/utils.test.js +0 -35
  138. package/src/AsJsDocsProcessor.ts +0 -67
  139. package/src/ClassFileGeneratorHelper.test.ts +0 -44
  140. package/src/ClassFileGeneratorHelper.ts +0 -35
  141. package/src/Command/Generate.ts +0 -69
  142. package/src/Command/__test__/Generte.test.ts +0 -39
  143. package/src/Configuration.ts +0 -69
  144. package/src/DocsProcessor.ts +0 -15
  145. package/src/DocsifyDocsProcessor.test.ts +0 -6
  146. package/src/DocsifyDocsProcessor.ts +0 -7
  147. package/src/FileManager.ts +0 -32
  148. package/src/JekyllDocsProcessor.test.ts +0 -28
  149. package/src/JekyllDocsProcessor.ts +0 -26
  150. package/src/JsHelper.ts +0 -78
  151. package/src/MarkdownDocsProcessor.ts +0 -422
  152. package/src/MarkdownHelper.ts +0 -91
  153. package/src/Model/ApexModel.ts +0 -102
  154. package/src/Model/ClassModel.ts +0 -140
  155. package/src/Model/EnumModel.ts +0 -27
  156. package/src/Model/MethodModel.ts +0 -80
  157. package/src/Model/PropertyModel.ts +0 -37
  158. package/src/Model/__test__/ClassModel.test.ts +0 -100
  159. package/src/Model/__test__/MethodModel.test.ts +0 -70
  160. package/src/Model/__test__/PropertyModel.test.ts +0 -34
  161. package/src/Parser/ClassParser.ts +0 -88
  162. package/src/Parser/EnumParser.ts +0 -47
  163. package/src/Parser/FileParser.ts +0 -251
  164. package/src/Parser/MethodParser.ts +0 -119
  165. package/src/Parser/PropertyParser.ts +0 -46
  166. package/src/Parser/__test__/ClassParser.test.ts +0 -70
  167. package/src/Parser/__test__/FileParser.test.ts +0 -14
  168. package/src/Parser/__test__/MethodParser.test.ts +0 -90
  169. package/src/Parser/__test__/PropertyParser.test.ts +0 -18
  170. package/src/Parser/__test__/testFileContents.ts +0 -81
  171. package/src/Settings.test.ts +0 -54
  172. package/src/Settings.ts +0 -65
  173. package/src/utils.test.ts +0 -40
  174. package/src/utils.ts +0 -52
package/.eslintrc.js ADDED
@@ -0,0 +1,12 @@
1
+ module.exports = {
2
+ parser: '@typescript-eslint/parser',
3
+ parserOptions: {
4
+ ecmaVersion: 2020,
5
+ sourceType: 'module',
6
+ },
7
+ extends: [
8
+ 'plugin:@typescript-eslint/recommended',
9
+ 'plugin:prettier/recommended',
10
+ ],
11
+ rules: {},
12
+ };
package/.prettierrc.js ADDED
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ semi: true,
3
+ trailingComma: 'all',
4
+ singleQuote: true,
5
+ printWidth: 120,
6
+ tabWidth: 2,
7
+ };
package/README.md CHANGED
@@ -1,21 +1,76 @@
1
1
  # ApexDocs
2
2
 
3
3
  <p align="center">
4
- <b>ApexDocs is a Node.js library with CLI capabilities to generate documentation for Salesforce Apex classes.</b>
4
+ <b>ApexDocs is a Node.js library with CLI capabilities to docGenerator documentation for Salesforce Apex classes.</b>
5
5
  </p>
6
6
 
7
7
  [![License](https://img.shields.io/github/license/cesarParra/apexdocs)](https://github.com/cesarParra/apexdocs/blob/master/LICENSE)
8
8
 
9
9
  ## Description
10
10
 
11
- ApexDocs was built as an alternative to the [Java based ApexDoc tool](https://github.com/SalesforceFoundation/ApexDoc) originally created by Aslam Bari and later maintained by Salesforce.org, as that tool is no longer being maintained.
11
+ ApexDocs was originally built as an alternative to
12
+ the [Java based ApexDoc tool](https://github.com/SalesforceFoundation/ApexDoc) originally created by Aslam Bari and
13
+ later maintained by Salesforce.org, as that tool is no longer being maintained.
12
14
 
13
- ApexDocs is a Node.js library built on Typescript and hosted on [npm](https://www.npmjs.com/package/@cparra/apexdocs). It offers CLI capabilities to automatically generate a set of files that fully document each one of you classes. Additionally it can be imported and consumed directly by your JavaScript code.
15
+ ApexDocs is a Node.js library built on Typescript and hosted on [npm](https://www.npmjs.com/package/@cparra/apexdocs).
16
+ It offers CLI capabilities to automatically docGenerator a set of files that fully document each one of you classes.
17
+ Additionally, it can be imported and consumed directly by your JavaScript code.
14
18
 
15
19
  There are some key differences between ApexDocs and the Java based ApexDoc tool:
16
20
 
17
- - **Recursive file search through your module directory structure**. In an `sfdx` based project, all of your classes will be documented by specifying the top-most directory where file search should begin.
18
- - **Unopinionated documentation site generation**. Instead of creating HTML files, ApexDocs generates a Markdown (.md) file per Apex class being documented. This means you can host your files in static web hosting services that parse Markdown like Github Pages or Netlify, and use site generators like Jekyll or Gatsby. This gives you the freedom to decide how to style your site to match your needs.
21
+ - **Recursive file search through your module directory structure**. In an `sfdx` based project, all of your classes
22
+ will be documented by specifying the top-most directory where file search should begin.
23
+ - **Unopinionated documentation site generation**. Instead of creating HTML files, ApexDocs generates a Markdown (.md)
24
+ file per Apex class being documented. This means you can host your files in static web hosting services that parse
25
+ Markdown like Github Pages or Netlify, and use site generators like Jekyll or Gatsby. This gives you the freedom to
26
+ decide how to style your site to match your needs.
27
+
28
+ ## Version 2.X
29
+
30
+ Version shares almost* all the same functionality (and more) of 1.X , but is a rewrite from the ground up of the tool,
31
+ so please be aware if migrating from a 1.X version.
32
+
33
+ The Apex code parsing logic for the 1.X codebase was almost a one-to-one translation of the Java based ApexDoc tool to
34
+ Javascript. With 2.X the parsing logic has been improved and extracted out of this codebase, and into its own standalone
35
+ NPM module which is solely focused on Apex code reflection: https://www.npmjs.com/package/@cparra/apex-reflection
36
+
37
+ This allows for an improved code quality of both code bases and an increased ease of introducing future improvements and
38
+ fixing issues.
39
+
40
+ But please be aware: migration to 2.X is not recommended at this time for production until a GA release.
41
+
42
+ ### Differences between the versions
43
+
44
+ When migrating from 1.X please be aware of these changes between the major versions:
45
+
46
+ #### Deprecated features
47
+
48
+ * The `--group` CLI parameter has been deprecated. All files are grouped by default.
49
+
50
+ #### Features not yet migrated to 2.X
51
+
52
+ * The `--configPath` CLI parameter has been temporarily deprecated. We are planning on reintroducing it but the config
53
+ file will use a different format.
54
+ * Internal linking between files using the `@see` annotation and {@link FileName} and <<FileName>> syntax has not been
55
+ implemented.
56
+
57
+ #### New features
58
+
59
+ * All Apex annotations are now supported through the `--scope` CLI parameter, not just `namespaceaccessible`. This means
60
+ that scopes like `auraenabled`, `invocablemethod`, `invocablevariable`, `remoteaction`, and all other valid Apex
61
+ annotations are supported.
62
+ * Just like Javadoc, both `@throws` and `@exception` are supported when referencing an exception thrown by a method or
63
+ constructor.
64
+ * Any custom annotation defined in the Apexdoc is at the class level are supported, for example the following will be
65
+ output to the resulting markdown file:
66
+
67
+ ```apex
68
+ /**
69
+ * @MyCustomAnnotation This is a custom annotation
70
+ */
71
+ public class MyClass {
72
+ }
73
+ ```
19
74
 
20
75
  ### Demo
21
76
 
@@ -23,7 +78,7 @@ ApexDocs currently supports generating markdown files for Jekyll and Docsify sit
23
78
 
24
79
  ### In the wild
25
80
 
26
- - [Nimble AMS Docs](https://nimbleuser.github.io/nams-api-docs/#/public-apis/)
81
+ - [Nimble AMS Docs](https://nimbleuser.github.io/nams-api-docs/#/api-reference/)
27
82
  - [Yet Another Salesforce Logger](https://cesarparra.github.io/yet-another-salesforce-logger/#/)
28
83
 
29
84
  ### [Docsify](https://docsify.js.org/)
@@ -41,7 +96,7 @@ Demo
41
96
  ## Installation
42
97
 
43
98
  ```bash
44
- npm i @cparra/apexdocs
99
+ npm i -g @cparra/apexdocs
45
100
  ```
46
101
 
47
102
  ## Usage
@@ -65,12 +120,13 @@ The CLI supports the following parameters:
65
120
  | --recursive | -r | Whether .cls classes will be searched for recursively in the directory provided. | `true` | No |
66
121
  | --scope | -p | A list of scopes to document. Values should be separated by a space, e.g --scope public private | `global namespaceaccessible public` | No |
67
122
  | --targetGenerator | -g | Define the static file generator for which the documents will be created. Currently supports jekyll and docsify. | `jekyll` | No |
68
- | --configPath | -c | The path to the JSON configuration file that defines the structure of the documents to generate. | N/A | No |
123
+ | --configPath | -c | The path to the JSON configuration file that defines the structure of the documents to docGenerator. | N/A | No |
69
124
  | --group | -o | Define whether the generated files should be grouped by the @group tag on the top level classes. | `true` | No |
70
125
 
71
126
  #### Configuration File
72
127
 
73
- You can optionally specify the path to a configuration JSON file through the `--configPath` parameter. This let's you have some additional control over the content outputs.
128
+ You can optionally specify the path to a configuration JSON file through the `--configPath` parameter. This let's you
129
+ have some additional control over the content outputs.
74
130
 
75
131
  The configuration file allows you to specify the following:
76
132
 
@@ -80,7 +136,8 @@ _Note_: Everything in the configuration file is optional. When something is not
80
136
 
81
137
  Default: None
82
138
 
83
- Allows you to specify the root directory for where the files are being generated. This can be helpful when embedding the generated docs into an existing site so that the links are generated correctly.
139
+ Allows you to specify the root directory for where the files are being generated. This can be helpful when embedding the
140
+ generated docs into an existing site so that the links are generated correctly.
84
141
 
85
142
  `defaultGroupName`
86
143
 
@@ -92,9 +149,11 @@ Defines the `@group` name to be used when a file does not specify it.
92
149
 
93
150
  Default: None
94
151
 
95
- Defines the name of the language that will be used when generating `@example` blocks. Use this when you are interested in using syntax highlighting for your project.
152
+ Defines the name of the language that will be used when generating `@example` blocks. Use this when you are interested
153
+ in using syntax highlighting for your project.
96
154
 
97
- Even though the source code material for which documentation is generated is always `Apex`, generally you will be able to use a syntax highlighter that recognizes `java` source code, so set this value to `java` in those cases.
155
+ Even though the source code material for which documentation is generated is always `Apex`, generally you will be able
156
+ to use a syntax highlighter that recognizes `java` source code, so set this value to `java` in those cases.
98
157
 
99
158
  `home` (Object)
100
159
 
@@ -104,7 +163,8 @@ Gives you control over the home page.
104
163
 
105
164
  Default: None
106
165
 
107
- Allows you to embedd custom content into your home page by using the `header` property to point to the a file which contents will be added to the top of the generated home page.
166
+ Allows you to embed custom content into your home page by using the `header` property to point to the file which
167
+ contents will be added to the top of the generated home page.
108
168
 
109
169
  Specify the path with the content that you want to embed.
110
170
 
@@ -128,7 +188,9 @@ Whether the `@date` tag should be used to add the file's date to the page.
128
188
 
129
189
  Default: 1
130
190
 
131
- The starting H tag level for the document. Each title will use this as the starting point to generate the approaprite `<h#>` tag. For example, if set to 1, the class' file name at the top of the file will use an `<h1>` tag, the `Properties` title will be `<h2>`, each property name will be an `<h3>`, etc.
191
+ The starting H tag level for the document. Each title will use this as the starting point to docGenerator the
192
+ appropriate `<h#>` tag. For example, if set to 1, the class' file name at the top of the file will use an `<h1>` tag,
193
+ the `Properties` title will be `<h2>`, each property name will be an `<h3>`, etc.
132
194
 
133
195
  ```
134
196
  {
@@ -150,9 +212,10 @@ The starting H tag level for the document. Each title will use this as the start
150
212
 
151
213
  If you are just interested in the documentation parsing capabilities, you can import ApexDocs into your own project.
152
214
 
153
- Use the `generate` function to create a list of `ClassModel` that includes all of the parsed information from your .cls files.
215
+ Use the `docGenerator` function to create a list of `ClassModel` that includes all the parsed information from your .cls
216
+ files.
154
217
 
155
- `generate(sourceDirectory[,recursive][,scope][,outputDir])`
218
+ `docGenerator(sourceDirectory[,recursive][,scope][,outputDir])`
156
219
 
157
220
  - `sourceDirectory` \<string>
158
221
  - `recursive` \<boolean>
@@ -160,14 +223,15 @@ Use the `generate` function to create a list of `ClassModel` that includes all o
160
223
  - `outpurDir` \<string>
161
224
 
162
225
  ```javascript
163
- var { generate } = require('@cparra/apexdocs');
226
+ var { docGenerator } = require('@cparra/apexdocs');
164
227
 
165
- let documentedClasses = generate('src', true, ['global'], 'docs');
228
+ let documentedClasses = docGenerator('src', true, ['global'], 'docs');
166
229
  ```
167
230
 
168
231
  ## Documentation Format
169
232
 
170
- ApexDocs picks up blocks of comments throughout your `.cls` files. The block must begin with `/**` and span through multiple lines, ending with `*/`.
233
+ ApexDocs picks up blocks of comments throughout your `.cls` files. The block must begin with `/**` and span through
234
+ multiple lines, ending with `*/`.
171
235
 
172
236
  ### Documenting Classes
173
237
 
@@ -183,11 +247,12 @@ The following tags are supported on the class level:
183
247
 
184
248
  **Example**
185
249
 
186
- ```java
250
+ ```apex
187
251
  /**
188
252
  * @description This is my class description.
189
253
  */
190
- public with sharing class TestClass { }
254
+ public with sharing class TestClass {
255
+ }
191
256
  ```
192
257
 
193
258
  ### Documenting Enums
@@ -200,11 +265,13 @@ The following tags are supported on the enum level:
200
265
 
201
266
  **Example**
202
267
 
203
- ```java
268
+ ```apex
204
269
  /**
205
270
  * @description This is my enum description.
206
271
  */
207
- public Enum ExampleEnum { VALUE_1, VALUE_2 }
272
+ public Enum ExampleEnum {
273
+ VALUE_1, VALUE_2
274
+ }
208
275
  ```
209
276
 
210
277
  ### Documenting Properties
@@ -217,11 +284,11 @@ The following tags are supported on the property level:
217
284
 
218
285
  **Example**
219
286
 
220
- ```java
287
+ ```apex
221
288
  /**
222
289
  * @description This is my property description.
223
290
  */
224
- public String ExampleProperty { get; set; }
291
+ public String ExampleProperty { get; set; }
225
292
  ```
226
293
 
227
294
  ### Documenting Methods and Constructors
@@ -240,7 +307,7 @@ The following tags are supported on the method level:
240
307
 
241
308
  **Example**
242
309
 
243
- ```java
310
+ ```apex
244
311
  /**
245
312
  * @description This is my method description.
246
313
  * @param action The action to execute.
@@ -248,13 +315,13 @@ The following tags are supported on the method level:
248
315
  * @example
249
316
  * Object result = SampleClass.call('exampleAction');
250
317
  */
251
- public static Object call(String action) {
318
+ public static Object call(String action) {
252
319
  ```
253
320
 
254
321
  ### Inline linking
255
322
 
256
- Apexdocs allows you to reference other classes from anywhere in your docs, and automatically creates a link to that class
257
- file for easy navigation.
323
+ Apexdocs allows you to reference other classes from anywhere in your docs, and automatically creates a link to that
324
+ class file for easy navigation.
258
325
 
259
326
  Apexdocs recognizes 2 different syntax when linking files:
260
327
 
@@ -263,13 +330,13 @@ Apexdocs recognizes 2 different syntax when linking files:
263
330
 
264
331
  **Example**
265
332
 
266
- ```java
333
+ ```apex
267
334
  /**
268
335
  * @description This is my method description. This method receives an <<ExampleClass>>.
269
336
  * @param param1 An <<ExampleClass>> instance. Can also do {@link ExampleClass}
270
337
  * @return The result of the operation.
271
338
  */
272
- public static Object class(ExampleClass param1) {
339
+ public static Object class(ExampleClass param1) {
273
340
  ```
274
341
 
275
342
  ## Typescript
package/ROADMAP.md ADDED
@@ -0,0 +1,18 @@
1
+ [] Automatic Resolution of links (@see and {@link FileName})
2
+
3
+ [] Respect access modifiers where the properties/methods are different from the class declaration. For example,
4
+ AuraEnabled properties do not live in an AuraEnabled class, so there's no way to just generate docs to showcase the
5
+ AuraEnabled properties of a class without some sort of combination of also exposing other public/globals
6
+
7
+ [] Versioning capabilities. When creating the doc you specify a version number, and a new directory is created for the
8
+ files, instead of just overriding
9
+
10
+ [] New generatortype: To JsDocs from AuraEnabled
11
+
12
+ [] More unit tests
13
+
14
+ [] config.js support to allow for injections, home header, etc.
15
+
16
+ [] Add configuration setting that allows someone to set the "namespace"
17
+
18
+ [] Homepage support similar to what docsify does
package/docs/Gemfile.lock CHANGED
@@ -13,21 +13,38 @@ GEM
13
13
  colorator (1.1.0)
14
14
  commonmarker (0.17.13)
15
15
  ruby-enum (~> 0.5)
16
- concurrent-ruby (1.1.6)
17
- dnsruby (1.61.3)
18
- addressable (~> 2.5)
19
- em-websocket (0.5.1)
16
+ concurrent-ruby (1.1.9)
17
+ dnsruby (1.61.7)
18
+ simpleidn (~> 0.1)
19
+ em-websocket (0.5.2)
20
20
  eventmachine (>= 0.12.9)
21
21
  http_parser.rb (~> 0.6.0)
22
- ethon (0.12.0)
23
- ffi (>= 1.3.0)
22
+ ethon (0.15.0)
23
+ ffi (>= 1.15.0)
24
24
  eventmachine (1.2.7)
25
25
  eventmachine (1.2.7-x64-mingw32)
26
- execjs (2.7.0)
27
- faraday (1.0.0)
26
+ execjs (2.8.1)
27
+ faraday (1.8.0)
28
+ faraday-em_http (~> 1.0)
29
+ faraday-em_synchrony (~> 1.0)
30
+ faraday-excon (~> 1.1)
31
+ faraday-httpclient (~> 1.0.1)
32
+ faraday-net_http (~> 1.0)
33
+ faraday-net_http_persistent (~> 1.1)
34
+ faraday-patron (~> 1.0)
35
+ faraday-rack (~> 1.0)
28
36
  multipart-post (>= 1.2, < 3)
29
- ffi (1.12.2)
30
- ffi (1.12.2-x64-mingw32)
37
+ ruby2_keywords (>= 0.0.4)
38
+ faraday-em_http (1.0.0)
39
+ faraday-em_synchrony (1.0.0)
40
+ faraday-excon (1.1.0)
41
+ faraday-httpclient (1.0.1)
42
+ faraday-net_http (1.0.1)
43
+ faraday-net_http_persistent (1.2.0)
44
+ faraday-patron (1.0.0)
45
+ faraday-rack (1.0.0)
46
+ ffi (1.15.4)
47
+ ffi (1.15.4-x64-mingw32)
31
48
  forwardable-extended (2.6.0)
32
49
  gemoji (3.0.1)
33
50
  github-pages (204)
@@ -79,7 +96,7 @@ GEM
79
96
  octokit (~> 4.0)
80
97
  public_suffix (~> 3.0)
81
98
  typhoeus (~> 1.3)
82
- html-pipeline (2.12.3)
99
+ html-pipeline (2.14.0)
83
100
  activesupport (>= 2)
84
101
  nokogiri (>= 1.4)
85
102
  http_parser.rb (0.6.0)
@@ -192,7 +209,7 @@ GEM
192
209
  jekyll (>= 3.0, < 5.0)
193
210
  kramdown (1.17.0)
194
211
  liquid (4.0.3)
195
- listen (3.2.1)
212
+ listen (3.7.0)
196
213
  rb-fsevent (~> 0.10, >= 0.10.3)
197
214
  rb-inotify (~> 0.9, >= 0.9.10)
198
215
  mercenary (0.3.6)
@@ -200,26 +217,27 @@ GEM
200
217
  jekyll (>= 3.5, < 5.0)
201
218
  jekyll-feed (~> 0.9)
202
219
  jekyll-seo-tag (~> 2.1)
203
- multi_json (1.14.1)
220
+ multi_json (1.15.0)
204
221
  multipart-post (2.1.1)
205
- nokogiri (1.11.5-x64-mingw32)
222
+ nokogiri (1.12.5-x64-mingw32)
206
223
  racc (~> 1.4)
207
- nokogiri (1.11.5-x86_64-linux)
224
+ nokogiri (1.12.5-x86_64-linux)
208
225
  racc (~> 1.4)
209
- octokit (4.16.0)
226
+ octokit (4.21.0)
210
227
  faraday (>= 0.9)
211
228
  sawyer (~> 0.8.0, >= 0.5.3)
212
229
  pathutil (0.16.2)
213
230
  forwardable-extended (~> 2.6)
214
231
  public_suffix (3.1.1)
215
- racc (1.5.2)
216
- rb-fsevent (0.10.3)
232
+ racc (1.6.0)
233
+ rb-fsevent (0.11.0)
217
234
  rb-inotify (0.10.1)
218
235
  ffi (~> 1.0)
219
236
  rouge (3.13.0)
220
- ruby-enum (0.7.2)
237
+ ruby-enum (0.9.0)
221
238
  i18n
222
- rubyzip (2.2.0)
239
+ ruby2_keywords (0.0.5)
240
+ rubyzip (2.3.2)
223
241
  safe_yaml (1.0.5)
224
242
  sass (3.7.4)
225
243
  sass-listen (~> 4.0.0)
@@ -229,15 +247,22 @@ GEM
229
247
  sawyer (0.8.2)
230
248
  addressable (>= 2.3.5)
231
249
  faraday (> 0.8, < 2.0)
250
+ simpleidn (0.2.1)
251
+ unf (~> 0.1.4)
232
252
  terminal-table (1.8.0)
233
253
  unicode-display_width (~> 1.1, >= 1.1.1)
234
- typhoeus (1.3.1)
254
+ typhoeus (1.4.0)
235
255
  ethon (>= 0.9.0)
236
256
  tzinfo (2.0.1)
237
257
  concurrent-ruby (~> 1.0)
238
258
  tzinfo-data (1.2019.3)
239
259
  tzinfo (>= 1.0.0)
240
- unicode-display_width (1.6.1)
260
+ unf (0.1.4)
261
+ unf_ext
262
+ unf_ext (0.0.8)
263
+ unf_ext (0.0.8-x64-mingw32)
264
+ unicode-display_width (1.8.0)
265
+ wdm (0.1.1)
241
266
 
242
267
  PLATFORMS
243
268
  x64-mingw32
@@ -248,6 +273,7 @@ DEPENDENCIES
248
273
  jekyll-feed (~> 0.6)
249
274
  minima (~> 2.0)
250
275
  tzinfo-data
276
+ wdm (~> 0.1.0)
251
277
 
252
278
  BUNDLED WITH
253
- 2.1.4
279
+ 2.2.29