locco
v1.0.2
Published
locco =====
Downloads
5
Readme
locco
Simple documentation extractor.
Usage
locco --adapter=markdown --source=**/*.js --commentStart=// \
--escapeSequence=! --adapter-readme=locco.js
adapter
: The adapter to be used. Locco searches for adapter matching thelocco-<name>
pattern. Install markdown adapter withnpm install -g locco-markdown
source
: The glob pattern matching the files to be parsed.- optional
commentStart
: Start of the comment line. Defaults to//
- optional
escapeSequence
: Characters that right after the start of comment indicate that the comment is not documentation. - dependant on adapter
adapter-<property>
: option sent to the adapter
Or programmatically:
var locco = require("locco")
var loccoMarkdown = require("locco-markdown")
locco({
source: "**/*.js",
commentStart: "//",
escapeSequence: "!",
adapter: new loccoMarkdown({
readme: "locco.js"
})
})
Installation
npm install -g locco
Then you need to install some adapter for it or add your own.
Adapters
Look for NPMs starting with locco-
.
Known adapters
Writing an adapter
To just log each line to the console:
var locco = require("locco");
var loggerAdapter = {
comment: function (data) {
console.log("From file: " + data.file.path)
console.log("...a comment line: " + data.comment)
},
code: function (data) {
console.log("From file: " + data.file.path)
console.log("...a code line: " + data.code)
}
}
locco({
source: "**/*.rb",
commentStart: "#",
escapeSequence: "!",
adapter: loggerAdapter
})
If you want to write to a file, the adapter should
implement the event emitter interface (use
Mediador if you don't know how
to implement one) and emit post
events with each line to be
written.
var locco = require("locco")
var Mediador = require("mediador")
var loggerAdapter = {
comment: function (data) {
console.log("From file: " + data.file.path)
console.log("...a comment line: " + data.comment)
this.emit("post", [
"destination.file.html",
"<p>" + data.comment + "</p>"
])
},
code: function (data) {
console.log("From file: " + data.file.path)
console.log("...a code line: " + data.code)
this.emit("post", [
"destination.file.html",
"<p><code>" + data.code + "</code></p>"
])
}
}
loggerAdapter.on = Mediador.prototype.on
loggerAdapter.off = Mediador.prototype.off
loggerAdapter.emit = Mediador.prototype.emit
locco({
source: "**/*.rb",
commentStart: "#",
escapeSequence: "!",
adapter: loggerAdapter
})
License
Copyright 2014 Xavier Via
ISC license.
See LICENSE attached.