diff --git a/scripts/docs/dgeni-config.js b/scripts/docs/dgeni-config.js
index a0cf4217c..49c3a108a 100644
--- a/scripts/docs/dgeni-config.js
+++ b/scripts/docs/dgeni-config.js
@@ -31,12 +31,37 @@ module.exports = function(currentVersion) {
// $runBefore: ['rendering-docs'],
// $process: function(docs){
// docs.forEach(function(doc){
-// if (doc.members && doc.name == "IonicApp"){
-// doc.members.forEach(function(method){
-// if (method.name === "load") {
-// console.log(method);
-// }
-// })
+// if (doc.name == "Camera"){
+//
+// // console.log(doc.tags);
+// // doc.tags.forEach(function(tag){
+// // if(tag.tagName == 'classes'){
+// //
+// // }
+// // });
+//
+// // doc.moduleDoc.exports.forEach(function(d,i){
+// // if(d.name === 'CameraOptions') {
+// // console.log('Name: ' + d.name);
+// // console.log('Type: ' + d.docType);
+// // console.log('First member: ', d.members[0]);
+// // }
+// // });
+//
+//
+// // var exports = doc.exportSymbol.parent.exports;
+// // for(var p in exports) {
+// // if(p == 'CameraOptions')
+// // {
+// // var x = exports[p];
+// // console.log(x.members.quality);
+// // }
+// // }
+// // doc.members.forEach(function(method){
+// // if (method.name === "getPicture") {
+// // console.log(method);
+// // }
+// // })
// }
// })
// }
diff --git a/scripts/docs/tag-defs/tag-defs.js b/scripts/docs/tag-defs/tag-defs.js
index 5c0803ccd..f4a8afad2 100644
--- a/scripts/docs/tag-defs/tag-defs.js
+++ b/scripts/docs/tag-defs/tag-defs.js
@@ -1,5 +1,7 @@
module.exports = [
{'name': 'advanced'},
{'name': 'demo'},
- {'name': 'usage'}
+ {'name': 'usage'},
+ {'name': 'classes'}, // related classes
+ {'name': 'interfaces'} // related interfaces
];
diff --git a/scripts/docs/templates/common.template.html b/scripts/docs/templates/common.template.html
index 252bc5c9b..124490cde 100644
--- a/scripts/docs/templates/common.template.html
+++ b/scripts/docs/templates/common.template.html
@@ -11,6 +11,39 @@ doc: "<$ doc.name $>"
docType: "<$ doc.docType $>"
---
+<@ macro interfaceTable(interface) @>
+<@ for export in doc.moduleDoc.exports -@>
+<@ if export.name == interface @>
+
+
+
+ | Param |
+ Type |
+ Details |
+
+
+
+ <@ for param in export.members @>
+
+ |
+ <$ param.name $>
+ <@ if param.optional @> (optional) <@ endif @>
+ |
+
+ <$ param.returnType | escape $>
+ |
+
+ <$ param.description | marked $>
+ |
+
+ <@ endfor @>
+
+
+
+<@ endif @>
+<@- endfor @>
+<@ endmacro @>
+
<@ macro paramList(paramData) -@>
<@- if paramData -@>(
<@- for param in paramData -@>
@@ -73,15 +106,81 @@ docType: "<$ doc.docType $>"
<$ typeList(fn.typeList) $> <$ fn.description $>
<@- endmacro -@>
+
+
+<@ macro documentClass(doc) @>
+<@- if doc.statics.length -@>
+Static Members
+<@ for method in doc.statics -@>
+<@ if not method.internal @>
+
+<$ functionSyntax(method) $>
+<@- if method.decorators @>
+<@ for prop in method.decorators[0].argumentInfo @>
+<@ if prop.platforms @>
+
+ Platforms:
+ <@- for platform in prop.platforms @>
+ <$ platform $>
+ <@ endfor -@>
+
+<@ endif @>
+<@ endfor @>
+<@- endif @>
+
+<$ method.description $>
+
+<@ if method.params @>
+<$ paramTable(method.params) $>
+<@ endif @>
+
+<@ if method.this -@>
+ Method's `this`
+ <$ method.this $>
+
+<@- endif @>
+
+<@ if method.returns @>
+
+
+ Returns: <$ typeInfo(method.returns) $>
+
+<@ endif @>
+<@ endif @>
+<@ endfor -@>
+<@ endif @>
+
+
+<@- if doc.members and doc.members.length @>
+
+Instance Members
+<@ for method in doc.members -@>
+
+
+ <$ functionSyntax(method) $>
+
+<$ method.description $>
+<@ if method.params -@>
+<$ paramTable(method.params) $>
+<@- endif @>
+<@ if method.this -@>
+ Method's `this`
+ <$ method.this $>
+
+<@- endif @>
+<@ if method.returns -@>
+
+
+ Returns: <$ typeInfo(method.returns) $>
+
+<@- endif @>
+<@- endfor @>
+<@- endif -@>
+<@ endmacro @>
<@ block body @>
-
-
<@ block content @>
-
<@ block header @>
-
-
<@ if doc.docType == "directive" @>
<$ doc.name | dashCase $>
<@ else @>
@@ -108,10 +207,6 @@ docType: "<$ doc.docType $>"
Improve this doc
-<@ if doc.codepen @>
-{% include codepen.html id="<$ doc.codepen $>" %}
-<@ endif @>
-
<@ endblock @>
@@ -141,9 +236,9 @@ docType: "<$ doc.docType $>"
Supported platforms
<@ block platforms @>
- <@- for platform in prop.platforms @>
+ <@ for platform in prop.platforms -@>
- <$ platform $>
- <@ endfor -@>
+ <@- endfor @>
<@ endblock @>
@@ -181,12 +276,11 @@ docType: "<$ doc.docType $>"
- <@ for prop in doc.properties @>
+ <@ for prop in doc.properties -@>
|
<$ prop.name $>
|
-
<@ if hasTypes @>
<$ prop.type.name $>
@@ -197,86 +291,12 @@ docType: "<$ doc.docType $>"
<$ prop.description $>
|
- <@ endfor @>
+ <@- endfor @>
<@ endif @>
-<@- if doc.statics.length -@>
-Static Members
-<@- for method in doc.statics @><@ if not method.internal @>
-
-<$ functionSyntax(method) $>
-
-<@- if method.decorators @>
-<@ for prop in method.decorators[0].argumentInfo @>
-<@ if prop.platforms @>
-
-Platforms:
-<@- for platform in prop.platforms @>
-<$ platform $>
-<@ endfor -@>
-
-<@ endif @>
-<@ endfor @>
-<@ endif -@>
-
-<$ method.description $>
-
-<@ if method.params @>
-<$ paramTable(method.params) $>
-<@ endif @>
-
-<@ if method.this @>
- Method's `this`
- <$ method.this $>
-
-<@ endif @>
-
-<@ if method.returns @>
-
-
- Returns: <$ typeInfo(method.returns) $>
-
-<@ endif @>
-<@ endif @>
-<@ endfor -@>
-<@ endif @>
-
-
-<@- if doc.members and doc.members.length @>
-
-Instance Members
-<@- for method in doc.members @>
-
-
-
-
- <$ functionSyntax(method) $>
-
-
-<$ method.description $>
-
-<@ if method.params @>
-<$ paramTable(method.params) $>
-<@ endif @>
-
-<@ if method.this @>
- Method's `this`
- <$ method.this $>
-
-<@ endif @>
-
-<@ if method.returns @>
-
-
- Returns: <$ typeInfo(method.returns) $>
-
-<@ endif @>
-
-<@ endfor -@>
-
-<@- endif -@>
+<$ documentClass(doc) $>
<@ block advanced @>
<@- if doc.advanced -@>
@@ -285,6 +305,40 @@ docType: "<$ doc.docType $>"
<@- endif -@>
<@ endblock @>
+
+<@ for tag in doc.tags.tags -@>
+<@ if tag.tagName == 'classes' -@>
+Related Classes
+<@ set classes = tag.description.split('\n') @>
+<@ for item in classes -@>
+<@ if item.length > 1 @>
+<@ for export in doc.moduleDoc.exports -@>
+<@ if export.name == item @>
+<$ item $>
+<$ documentClass(export) $>
+<@ endif @>
+<@- endfor @>
+<@ endif @>
+<@- endfor @>
+<@- endif @>
+<@- endfor @>
+
+
+
+<@ for tag in doc.tags.tags -@>
+<@ if tag.tagName == 'interfaces' @>
+Interfaces
+<@ set interfaces = tag.description.split('\n') @>
+<@ for item in interfaces -@>
+<@ if item.length > 1 @>
+<$ item $>
+<$ interfaceTable(item) $>
+<@ endif @>
+<@- endfor @>
+<@ endif @>
+<@- endfor @>
+
+
<@- if doc.see @>
diff --git a/src/plugins/camera.ts b/src/plugins/camera.ts
index 12e61530d..41b5bd6d1 100644
--- a/src/plugins/camera.ts
+++ b/src/plugins/camera.ts
@@ -105,6 +105,9 @@ export interface CameraPopoverOptions {
* // Handle error
* });
* ```
+ * @interfaces
+ * CameraOptions
+ * CameraPopoverOptions
*/
@Plugin({
plugin: 'cordova-plugin-camera',
diff --git a/src/plugins/googlemaps.ts b/src/plugins/googlemaps.ts
index 86cdb96e3..a5aa47363 100644
--- a/src/plugins/googlemaps.ts
+++ b/src/plugins/googlemaps.ts
@@ -87,6 +87,33 @@ export const GoogleMapsAnimation = {
* marker.showInfoWindow();
* });
* ```
+ * @interfaces
+ * AnimateCameraOptions
+ * CameraPosition
+ * MyLocation
+ * MyLocationOptions
+ * VisibleRegion
+ * GoogleMApsMarkerOptions
+ * GoogleMapsMarkerIcon
+ * GoogleMapsCircleOptions
+ * GoogleMapsPolylineOptions
+ * GoogleMapsPolygonOptions
+ * GoogleMapsTileOverlayOptions
+ * GoogleMapsGroundOverlayOptions
+ * GoogleMapsKmlOverlayOptions
+ * GeocoderRequest
+ * GeocoderResult
+ * @classes
+ * GoogleMapsMarker
+ * GoogleMapsCircle
+ * GoogleMapsPolyline
+ * GoogleMapsPolygon
+ * GoogleMapsTileOverlay
+ * GoogleMapsGroundOverlay
+ * GoogleMapsKmlOverlay
+ * GoogleMapsLatLngBounds
+ * GoogleMapsLatLng
+ * Geocoder
*/
@Plugin({
pluginRef: 'plugin.google.maps.Map',