Skip to content

documentationjs/documentation-schema

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api-json

api-json is a documentation data standard. It can be generated by documentation engines like documentationjs or written by hand.

api-json enables a two stage documentation process:

  1. documentation extraction or authorship
  2. output formatting

Maximum example

{
  "name": "sort",
  "kind": "function",
  "description": "Create a stream.Transform that sorts its input of comments\nby the name tag, if any, and otherwise by filename.",
  "memberof": "module",
  "scope": "static",
  "context": {
    "loc": {
      "start": {
        "line": 9,
        "column": 0
      },
      "end": {
        "line": 23,
        "column": 2
      }
    },
    "file": "/Users/tmcw/src/documentation/streams/sort.js",
    "code": "var sort = require('sort-stream');\n\n/**\n * Create a stream.Transform that sorts its input of comments\n * by the name tag, if any, and otherwise by filename.\n * @name sort\n * @return {stream.Transform} a transform stream\n */\nmodule.exports = function () {\n\n  function getSortKey(comment) {\n    for (var i = 0; i < comment.tags.length; i++) {\n      if (comment.tags[i].title === 'name') {\n        return comment.tags[i].name;\n      }\n    }\n    return comment.context.file;\n  }\n\n  return sort(function (a, b) {\n    return getSortKey(a).localeCompare(getSortKey(b));\n  });\n};"
  },
  "returns": [
    {
      "title": "returns",
      "description": "a transform stream",
      "type": {
        "type": "NameExpression",
        "name": "stream.Transform"
      }
    }
  ]
}

Minimal example

{
  "name": "sort",
  "kind": "function",
  "description": "Create a stream.Transform that sorts its input of comments\nby the name tag, if any, and otherwise by filename.",
  "memberof": "module",
  "scope": "static",
  "returns": [
    {
      "title": "returns",
      "description": "a transform stream",
      "type": {
        "type": "NameExpression",
        "name": "stream.Transform"
      }
    }
  ]
}

Meaning

{
  "name": // this is the name of the function, object, class, or namespace
  "kind": // http://usejsdoc.org/tags-type.html
  "description": // http://usejsdoc.org/tags-description.html
  "memberof": // http://usejsdoc.org/tags-memberof.html
  "scope": // http://usejsdoc.org/tags-instance.html
  "context": {
    "loc": {
      // this contains 'start' and 'end' objects in the same style
      // as the esprima javascript parser
    },
    "file": // absolute path to the relevant source code
    "code": // extracted source code, potentially excerpted
  },
  "returns": [
    {
      "title": "returns",
      "description": "a transform stream",
      "type": {
        "type": "NameExpression",
        "name": "stream.Transform"
      }
    }
  ],
  "params": [
    ...
  ],
  "throws": [
    ...
  ]
}

About

A standard schema for JSDoc comments

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy