diff --git a/docs/docs/options/BottomTabs.md b/docs/docs/options/BottomTabs.md
index 222d91d7fb7..250f173b39b 100644
--- a/docs/docs/options/BottomTabs.md
+++ b/docs/docs/options/BottomTabs.md
@@ -1,6 +1,5 @@
-
+
BottomTabs
-## BottomTabs
**Properties**
| Name | Type |
diff --git a/docs/docs/options/Button.md b/docs/docs/options/Button.md
index 86a2ac7662c..1692adc61a2 100644
--- a/docs/docs/options/Button.md
+++ b/docs/docs/options/Button.md
@@ -1,6 +1,5 @@
-
+Button
-## Button
**Properties**
| Name | Type |
diff --git a/docs/docs/options/NavigationOptions.md b/docs/docs/options/NavigationOptions.md
index 2e6c2a875f3..9d297447197 100644
--- a/docs/docs/options/NavigationOptions.md
+++ b/docs/docs/options/NavigationOptions.md
@@ -1,6 +1,5 @@
-
+NavigationOptions
-## NavigationOptions
**Properties**
| Name | Type |
diff --git a/docs/docs/options/TopBar.md b/docs/docs/options/TopBar.md
index 6063d27df75..bad5c919a09 100644
--- a/docs/docs/options/TopBar.md
+++ b/docs/docs/options/TopBar.md
@@ -1,6 +1,5 @@
-
+TopBar
-## TopBar
**Properties**
| Name | Type |
diff --git a/docs/templates/header.hbs b/docs/templates/header.hbs
new file mode 100644
index 00000000000..e4c478e627a
--- /dev/null
+++ b/docs/templates/header.hbs
@@ -0,0 +1,3 @@
+{{anchorName}}
+
+{{>sig-name}}
\ No newline at end of file
diff --git a/docs/templates/sig-name.hbs b/docs/templates/sig-name.hbs
new file mode 100644
index 00000000000..caf49f806c0
--- /dev/null
+++ b/docs/templates/sig-name.hbs
@@ -0,0 +1,14 @@
+{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}}
+{{#if name}}{{#sig~}}
+{{{@depOpen}~}}
+{{{@codeOpen}~}}
+{{#if @prefix}}{{@prefix}} {{/if~}}
+{{@parent~}}
+{{#if @methodSign}}{{#if (isEvent)}} {{@methodSign}}{{else}}{{@methodSign}}{{/if}}{{/if~}}
+{{{@codeClose}~}}
+{{#if @returnSymbol}} {{@returnSymbol}}{{/if~}}
+{{#if @returnTypes}} {{>linked-type-list types=@returnTypes delimiter=" \| " }}{{/if~}}
+{{#if @suffix}} {{@suffix}}{{/if~}}
+{{{@depClose}~}}
+{{~/sig}}{{/if~}}
+{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}}
\ No newline at end of file
diff --git a/scripts/generate-js-doc.js b/scripts/generate-js-doc.js
index 2826e128a91..f6bb4462bad 100755
--- a/scripts/generate-js-doc.js
+++ b/scripts/generate-js-doc.js
@@ -2,15 +2,16 @@ const jsdoc2md = require('jsdoc-to-markdown');
const fs = require('fs');
const path = require('path');
-const paramsDir = './lib/src/params/';
-const optionsDir = './lib/src/params/options/';
+const PARAMS_DIR = './lib/src/params/';
+const OPTIONS_DIR = './lib/src/params/options/';
const OUTPUT_DIR = './docs/docs/';
-const partial = ['./docs/templates/scope.hbs', './docs/templates/docs.hbs'];
+const OPTION_PARTIALS = ['./docs/templates/header.hbs', './docs/templates/sig-name.hbs'];
+const PARTIALS = ['./docs/templates/scope.hbs', './docs/templates/docs.hbs'];
-const generateMarkdownForFile = ({ file, outputDir }) => {
+const generateMarkdownForFile = ({ file, outputDir, partial }) => {
const templateData = jsdoc2md.getTemplateDataSync({ files: file });
const classNames = getClassesInFile(templateData);
- classNames.forEach((className) => createDocFileForClass(className, templateData, outputDir));
+ classNames.forEach((className) => createDocFileForClass({ className, templateData, outputDir, partial }));
};
function getClassesInFile(templateData) {
@@ -23,15 +24,15 @@ function getClassesInFile(templateData) {
return classNames;
}
-function createDocFileForClass(className, templateData, outputDir) {
+function createDocFileForClass({ className, templateData, outputDir, partial = [] }) {
const template = `{{#class name="${className}"}}{{>docs}}{{/class}}`;
const options = {
data: templateData,
template,
separators: true,
- partial
+ partial: [...PARTIALS, ...partial]
};
- console.log(`rendering ${className}, template: ${template} ${outputDir}`);
+ console.log(`rendering ${className}`);
const output = jsdoc2md.renderSync(options);
fs.writeFileSync(path.resolve(outputDir, `${className}.md`), output);
}
@@ -39,17 +40,18 @@ function createDocFileForClass(className, templateData, outputDir) {
function inputFiles() {
return [
{ file: './lib/src/Navigation.js', outputDir: OUTPUT_DIR },
- ...fs.readdirSync(optionsDir).map((file) => {
+ ...fs.readdirSync(OPTIONS_DIR).map((file) => {
return {
- file: optionsDir + file,
- outputDir: OUTPUT_DIR + 'options/'
+ file: OPTIONS_DIR + file,
+ outputDir: OUTPUT_DIR + 'options/',
+ partial: OPTION_PARTIALS
};
}),
- ...fs.readdirSync(paramsDir)
- .filter((file) => fs.statSync(paramsDir + file).isFile())
+ ...fs.readdirSync(PARAMS_DIR)
+ .filter((file) => fs.statSync(PARAMS_DIR + file).isFile())
.map((file) => {
return {
- file: paramsDir + file,
+ file: PARAMS_DIR + file,
outputDir: OUTPUT_DIR
};
})