UNPKG

panino

Version:

API documentation generator with a strict grammar and testing tools

191 lines (150 loc) 6.05 kB
// // Single document ///////////////////////////////////////// mixin article(obj, parents) if typeof obj === 'string' obj = list[obj] title = obj.id + (obj.type ? ' (' + obj.type + ')' : '') article.docblock(id=obj.path, data-title=title) include _doc_header.jade if obj.type === 'section' || obj.type === 'namespace' || obj.type === 'class' || obj.type === 'mixin' if obj.description .section.description h3 Description .content mixin markdown(obj.description) collection = obj.children.filter(function(x){return x.type === 'namespace'}); if collection.length .section.namespaces h3 Namespaces .content mixin short_description_list(collection) collection = obj.children.filter(function(x){return x.type === 'class'}); if collection.length .section.classes h3 Classes .content mixin short_description_list(collection) collection = obj.children.filter(function(x){return x.type === 'mixin'}); if collection.length .section.mixins h3 Mixins .content mixin short_description_list(collection) if obj.type === 'class' if obj.superclass .section.superclass h3 Superclass .content mixin link(obj.superclass) if obj.subclasses.length .section.subclasses h3 Subclasses .content mixin links(obj.subclasses) if obj.included_mixins .section.mixins h3 Includes .content mixin links(obj.included_mixins) collection = obj.children.filter(function(x){return x.type === 'utility'}) if collection.length .section.utilities h3 Utilities .content mixin links(collection) collection = obj.children.filter(function(x){return x.type === 'constructor'}) if collection.length .section.constructor h3 Constructor .content ul.method-list li mixin link(collection[0]) for selector, title in {'Events': ['event', 'events'], 'Class methods': ['class method', 'class_methods'], 'Class properties': ['class property', 'class_properties'], 'Instance methods': ['instance method', 'instance_methods'], 'Instance properties': ['instance property', 'instance_properties'], 'Constants': ['constant', 'constants']} methods = obj.children.filter(function(x){return x.type === selector[0]}) if methods.length .section(class='#{selector[1]}') h3 #{title} .content ul.method-list for x in methods li mixin link(x, true) else .section.method .content include _signatures.jade include _arguments.jade mixin markdown(obj.description) if obj.bound && ~obj.bound.indexOf('#') p.note.methodized | This method can be called <em>either</em> as an != link(obj.bound, 'instance method', ['link-short']) | <em>or</em> as a generic method. If calling as generic, pass the instance in as the first argument. else if obj.bound && !~obj.bound.indexOf('#') p.note.functionalized | This method can be called <em>either</em> as an instance method <em>or</em> as a != link(obj.bound, 'generic method', ['link-short']) |. If calling as generic, pass the instance in as the first argument. if obj.aliases && obj.aliases.length .alias.aliases | Aliased as: ul for alias in obj.aliases li mixin link(alias) if obj.alias_of .alias.alias-of | Alias of: ul li mixin link(obj.alias_of) if obj.related_to .related-to | Related to: mixin link(obj.related_to) //- children for child in obj.children.filter(function(x){return x.type === 'section'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'utility'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'constructor'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'namespace' || x.type === 'class' || x.type === 'mixin'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'event'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'class method'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'class property'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'instance method'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'instance property'}) mixin article(child, parents.concat(obj)) for child in obj.children.filter(function(x){return x.type === 'constant'}) mixin article(child, parents.concat(obj)) mixin api() for obj in tree.children if (showInternals || !obj.internal) mixin article(obj, []) mixin short_description_list(collection) ul.method-details-list for obj in collection if typeof obj === 'string' obj = list[obj] li.method-description h4 mixin link(obj) if obj.short_description mixin markdown(obj.short_description, true) mixin link(obj, short, classes) != link(obj, short, classes) mixin markdown(text, no_highlight) != markdown(text, no_highlight) mixin links(collection) ul.method-list for obj in collection li mixin link(obj)