hide source location if outputSourceFiles is false (#571)

This commit is contained in:
Jeff Williams 2014-02-16 09:15:14 -08:00
parent 34d98ed438
commit 8a50d1f064
3 changed files with 64 additions and 43 deletions

View File

@ -108,13 +108,15 @@ function getPathFromDoclet(doclet) {
doclet.meta.filename;
}
function generate(title, docs, filename, resolveLinks) {
resolveLinks = resolveLinks === false ? false : true;
function generate(title, docs, filename, opts) {
opts = opts || {};
var docData = {
title: title,
docs: docs
docs: docs,
opts: opts
};
var resolveLinks = (opts.resolveLinks === false) ? false : true;
var outpath = path.join(outdir, filename),
html = view.render('container.tmpl', docData);
@ -145,7 +147,7 @@ function generateSourceFiles(sourceFiles, encoding) {
}
generate('Source: ' + sourceFiles[file].shortened, [source], sourceOutfile,
false);
{ resolveLinks: false });
});
}
@ -480,13 +482,25 @@ exports.publish = function(taffyData, opts, tutorials) {
attachModuleSymbols( find({ kind: ['class', 'function'], longname: {left: 'module:'} }),
members.modules );
// output pretty-printed source files by default; do this before generating any other pages, so
// that the other pages can link to the source files
if (!conf['default'] || conf['default'].outputSourceFiles !== false) {
var generateOpts = {
// output pretty-printed source files by default
outputSourceFiles: (function(c) {
if (!c || c.outputSourceFiles !== false) {
return true;
}
return false;
})(conf['default'])
};
// generate pretty-printed source files first so other pages can link to them
if (generateOpts.outputSourceFiles) {
generateSourceFiles(sourceFiles, opts.encoding);
}
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
if (members.globals.length) {
generate('Global', [{kind: 'globalobj'}], globalUrl, generateOpts);
}
// index page displays information from package.json and lists files
var files = find({kind: 'file'}),
@ -496,7 +510,7 @@ exports.publish = function(taffyData, opts, tutorials) {
packages.concat(
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
).concat(files),
indexUrl);
indexUrl, generateOpts);
// set up the lists that we'll use to generate pages
var classes = taffy(members.classes);
@ -508,27 +522,32 @@ exports.publish = function(taffyData, opts, tutorials) {
Object.keys(helper.longnameToUrl).forEach(function(longname) {
var myClasses = helper.find(classes, {longname: longname});
if (myClasses.length) {
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname],
generateOpts);
}
var myModules = helper.find(modules, {longname: longname});
if (myModules.length) {
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname],
generateOpts);
}
var myNamespaces = helper.find(namespaces, {longname: longname});
if (myNamespaces.length) {
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
generate('Namespace: ' + myNamespaces[0].name, myNamespaces,
helper.longnameToUrl[longname], generateOpts);
}
var myMixins = helper.find(mixins, {longname: longname});
if (myMixins.length) {
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname],
generateOpts);
}
var myExternals = helper.find(externals, {longname: longname});
if (myExternals.length) {
generate('External: ' + myExternals[0].name, myExternals, helper.longnameToUrl[longname]);
generate('External: ' + myExternals[0].name, myExternals,
helper.longnameToUrl[longname], generateOpts);
}
});

View File

@ -1,4 +1,5 @@
<?js
var data = obj;
var self = this;
docs.forEach(function(doc, i) {
?>
@ -37,7 +38,7 @@
<div class="description"><?js= doc.description ?></div>
<?js } ?>
<?js= self.partial('details.tmpl', doc) ?>
<?js= self.partial('details.tmpl', { doc: doc, opts: data.opts }) ?>
<?js if (doc.examples && doc.examples.length) { ?>
<h3>Example<?js= doc.examples.length > 1? 's':'' ?></h3>

View File

@ -1,17 +1,18 @@
<?js
var data = obj;
var doc = data.doc || {};
var self = this;
var defaultObjectClass = '';
// Check if the default value is an object, if so, apply code highlighting
if (data.defaultvalue && data.defaultvaluetype === 'object') {
data.defaultvalue = "<pre class=\"prettyprint\"><code>" + data.defaultvalue + "</code></pre>";
if (doc.defaultvalue && doc.defaultvaluetype === 'object') {
doc.defaultvalue = "<pre class=\"prettyprint\"><code>" + doc.defaultvalue + "</code></pre>";
defaultObjectClass = ' class="object-value"';
}
?>
<dl class="details">
<?js
var properties = data.properties;
var properties = doc.properties;
if (properties && properties.length && properties.forEach) {
?>
@ -21,85 +22,85 @@ if (data.defaultvalue && data.defaultvaluetype === 'object') {
<?js } ?>
<?js if (data.version) {?>
<?js if (doc.version) {?>
<dt class="tag-version">Version:</dt>
<dd class="tag-version"><ul class="dummy"><li><?js= version ?></li></ul></dd>
<dd class="tag-version"><ul class="dummy"><li><?js= doc.version ?></li></ul></dd>
<?js } ?>
<?js if (data.since) {?>
<?js if (doc.since) {?>
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li><?js= since ?></dd>
<dd class="tag-since"><ul class="dummy"><li><?js= doc.since ?></dd>
<?js } ?>
<?js if (data.inherited && data.inherits) { ?>
<?js if (doc.inherited && doc.inherits) { ?>
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<?js= this.linkto(data.inherits, this.htmlsafe(data.inherits)) ?>
<?js= this.linkto(doc.inherits, this.htmlsafe(doc.inherits)) ?>
</li></dd>
<?js } ?>
<?js if (data.deprecated) { ?>
<?js if (doc.deprecated) { ?>
<dt class="important tag-deprecated">Deprecated:</dt><?js
if (data.deprecated === true) { ?><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd><?js }
else { ?><dd><ul class="dummy"><li><?js= data.deprecated ?></li><ul></dd><?js }
if (doc.deprecated === true) { ?><dd class="yes-def tag-deprecated"><ul class="dummy"><li>Yes</li></ul></dd><?js }
else { ?><dd><ul class="dummy"><li><?js= doc.deprecated ?></li><ul></dd><?js }
?>
<?js } ?>
<?js if (data.author && author.length) {?>
<?js if (doc.author && doc.author.length) {?>
<dt class="tag-author">Author:</dt>
<dd class="tag-author">
<ul><?js author.forEach(function(a) { ?>
<ul><?js doc.author.forEach(function(a) { ?>
<li><?js= self.resolveAuthorLinks(a) ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.copyright) {?>
<?js if (doc.copyright) {?>
<dt class="tag-copyright">Copyright:</dt>
<dd class="tag-copyright"><ul class="dummy"><li><?js= copyright ?></li></ul></dd>
<dd class="tag-copyright"><ul class="dummy"><li><?js= doc.copyright ?></li></ul></dd>
<?js } ?>
<?js if (data.license) {?>
<?js if (doc.license) {?>
<dt class="tag-license">License:</dt>
<dd class="tag-license"><ul class="dummy"><li><?js= license ?></li></ul></dd>
<dd class="tag-license"><ul class="dummy"><li><?js= doc.license ?></li></ul></dd>
<?js } ?>
<?js if (data.defaultvalue) {?>
<?js if (doc.defaultvalue) {?>
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li<?js= defaultObjectClass ?>><?js= data.defaultvalue ?></li>
<li<?js= defaultObjectClass ?>><?js= doc.defaultvalue ?></li>
</ul></dd>
<?js } ?>
<?js if (data.meta) {?>
<?js if (doc.meta && data.opts.outputSourceFiles) {?>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<?js= self.linkto(meta.shortpath) ?>, <?js= self.linkto(meta.shortpath, 'line ' + meta.lineno, null, 'line' + meta.lineno) ?>
<?js= self.linkto(doc.meta.shortpath) ?>, <?js= self.linkto(doc.meta.shortpath, 'line ' + doc.meta.lineno, null, 'line' + doc.meta.lineno) ?>
</li></ul></dd>
<?js } ?>
<?js if (data.tutorials && tutorials.length) {?>
<?js if (doc.tutorials && doc.tutorials.length) {?>
<dt class="tag-tutorial">Tutorials:</dt>
<dd class="tag-tutorial">
<ul><?js tutorials.forEach(function(t) { ?>
<ul><?js doc.tutorials.forEach(function(t) { ?>
<li><?js= self.tutoriallink(t) ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.see && see.length) {?>
<?js if (doc.see && doc.see.length) {?>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul><?js see.forEach(function(s) { ?>
<ul><?js doc.see.forEach(function(s) { ?>
<li><?js= self.linkto(s) ?></li>
<?js }); ?></ul>
</dd>
<?js } ?>
<?js if (data.todo && todo.length) {?>
<?js if (doc.todo && doc.todo.length) {?>
<dt class="tag-todo">To Do:</dt>
<dd class="tag-todo">
<ul><?js todo.forEach(function(t) { ?>
<ul><?js doc.todo.forEach(function(t) { ?>
<li><?js= t ?></li>
<?js }); ?></ul>
</dd>