Jeff Williams f27aba37b7 first pass at template overhaul and template API changes
API changes:
+ No more `jsdoc/template` module. Each JSDoc template uses whatever templating system it wants.
+ No more TaffyDB. Each template finds doclets however it wants. (TODO: Update `jsdoc/util/templateHelper` so none of its methods expect a TaffyDB object.)
+ Templates are now loaded with `require('my-template-name-here')`. The resulting object must include a `publish` method.
+ The `publish` method now takes two parameters: a `data` object with `doclets` and `tutorials` properties, and an `options` object. `data.doclets` is just an array.

Other notable changes:
+ No more `haruki` template.
+ Moved the `default` and `silent` templates to new packages.
+ The `.tmpl` files for the `default` template (now called `@jsdoc/template-original`) no longer use custom delimiters.
2019-01-21 14:13:43 -08:00

144 lines
4.5 KiB
Cheetah

<%
var data = obj;
var self = this;
var defaultObjectClass = '';
// Check if the default value is an object or array; if so, apply code highlighting
if (data.defaultvalue && (data.defaultvaluetype === 'object' || data.defaultvaluetype === 'array')) {
data.defaultvalue = "<pre class=\"prettyprint\"><code>" + data.defaultvalue + "</code></pre>";
defaultObjectClass = ' class="object-value"';
}
%>
<%
var properties = data.properties;
if (properties && properties.length && properties.forEach && !data.hideconstructor) {
%>
<h5 class="subsection-title">Properties:</h5>
<%= this.partial('properties.tmpl', data) %>
<% } %>
<dl class="details">
<% if (data.version) {%>
<dt class="tag-version">Version:</dt>
<dd class="tag-version"><ul class="dummy"><li><%= version %></li></ul></dd>
<% } %>
<% if (data.since) {%>
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li><%= since %></li></ul></dd>
<% } %>
<% if (data.inherited && data.inherits && !data.overrides) { %>
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<%= this.linkto(data.inherits, this.htmlsafe(data.inherits)) %>
</li></ul></dd>
<% } %>
<% if (data.overrides) { %>
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<%= this.linkto(data.overrides, this.htmlsafe(data.overrides)) %>
</li></ul></dd>
<% } %>
<% if (data.implementations && data.implementations.length) { %>
<dt class="implementations">Implementations:</dt>
<dd class="implementations"><ul>
<% data.implementations.forEach(function(impl) { %>
<li><%= self.linkto(impl, self.htmlsafe(impl)) %></li>
<% }); %>
</ul></dd>
<% } %>
<% if (data.implements && data.implements.length) { %>
<dt class="implements">Implements:</dt>
<dd class="implements"><ul>
<% data.implements.forEach(function(impl) { %>
<li><%= self.linkto(impl, self.htmlsafe(impl)) %></li>
<% }); %>
</ul></dd>
<% } %>
<% if (data.mixes && data.mixes.length) { %>
<dt class="mixes">Mixes In:</dt>
<dd class="mixes"><ul>
<% data.mixes.forEach(function(a) { %>
<li><%= self.linkto(a, a) %></li>
<% }); %>
</ul></dd>
<% } %>
<% if (data.deprecated) { %>
<dt class="important tag-deprecated">Deprecated:</dt><%
if (data.deprecated === true) { %><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd><% }
else { %><dd><ul class="dummy"><li><%= data.deprecated %></li></ul></dd><% }
%>
<% } %>
<% if (data.author && author.length) {%>
<dt class="tag-author">Author:</dt>
<dd class="tag-author">
<ul><% author.forEach(function(a) { %>
<li><%= self.resolveAuthorLinks(a) %></li>
<% }); %></ul>
</dd>
<% } %>
<% if (data.copyright) {%>
<dt class="tag-copyright">Copyright:</dt>
<dd class="tag-copyright"><ul class="dummy"><li><%= copyright %></li></ul></dd>
<% } %>
<% if (data.license) {%>
<dt class="tag-license">License:</dt>
<dd class="tag-license"><ul class="dummy"><li><%= license %></li></ul></dd>
<% } %>
<% if (data.defaultvalue) {%>
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li<%= defaultObjectClass %>><%= data.defaultvalue %></li>
</ul></dd>
<% } %>
<% if (data.meta && self.outputSourceFiles) {%>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<%= self.linkto(meta.shortpath) %>, <%= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) %>
</li></ul></dd>
<% } %>
<% if (data.tutorials && tutorials.length) {%>
<dt class="tag-tutorial">Tutorials:</dt>
<dd class="tag-tutorial">
<ul><% tutorials.forEach(function(t) { %>
<li><%= self.tutoriallink(t) %></li>
<% }); %></ul>
</dd>
<% } %>
<% if (data.see && see.length) {%>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul><% see.forEach(function(s) { %>
<li><%= self.linkto(s) %></li>
<% }); %></ul>
</dd>
<% } %>
<% if (data.todo && todo.length) {%>
<dt class="tag-todo">To Do:</dt>
<dd class="tag-todo">
<ul><% todo.forEach(function(t) { %>
<li><%= t %></li>
<% }); %></ul>
</dd>
<% } %>
</dl>