The core kss API can be imported with:
var kss = require('kss');The main object is a function that will build a style guide given the correct options.
kss(options);The various constructors and methods can then be accessed with:
const KssStyleGuide = require('kss').KssStyleGuide;
const KssSection = require('kss').KssSection;
const KssModifier = require('kss').KssModifier;
const KssParameter = require('kss').KssParameter;
const kss = require('kss');
const traverse = require('kss').traverse();
const parse = require('kss').parse();The usual style guide build process:
- The command-line tool uses
lib/clito gather the command line options, which passes the options tokss(). - The
kss()function takes an object of options and callstraverse(). - The
traverse()function reads all thesourcedirectories and callsparse(). - The
parse()function finds the KSS comments in the provided text, creates a JSON object containing all the parsed data and passes it thenew KssStyleGuide(data)constructor to create a style guide object. - The
kss()function loads the specified builder, which is a collection of files and an optional module that provides a sub-class ofKssBuilderBase. kss()passes its options to the builder the builder'saddOptions()method.- The builder's
prepare()method is given theKssStyleGuideobject and can do any pre-build tasks, like initializing its templating system (if it has one.) - The builder's
build()method is run and the style guide files are created in the specified destination.
- Source:
Classes
Methods
(static) parse(input, optionsopt) → {KssStyleGuide}
Parse an array/string of documented CSS, or an array of file objects with their content.
Each File object in the array should be formatted as:
{ base: "path to source directory", path: "full path to file", contents: "content" }.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
input |
* | The input to parse |
|
options |
Object |
<optional> |
Options to alter the output content. Same as the
options in |
- Source:
Returns:
Returns a KssStyleGuide object.
- Type
- KssStyleGuide
(static) traverse(directories, optionsopt) → {Promise}
Traverse a directory, parse its contents, and create a KssStyleGuide.
Callbacks receive an instance of KssStyleGuide.
If you want to parse anything other than css, less, sass, or stylus files then you'll want to use options.mask to target a different set of file extensions.
kss.traverse('./stylesheets', { mask: '*.css' }).then(function(styleGuide) {
styleGuide.sections('2.1.1') // <KssSection>
});There a few extra options you can pass to kss.traverse which will effect
the output:
- mask: Use a regex or string (e.g.
*.less|*.css) to only parse files matching this value. Defaults to:*.css|*.less|*.sass|*.scss|*.styl|*.stylus - markdown: kss-node supports built-in Markdown formatting of its
documentation, thanks to markdown-it. It's
enabled by default, but you can disable it by adding
markdown: falseto theoptionsobject. - header: kss-node makes the header available separately from the
description. To make kss-node behave like the Ruby KSS, disable this option
and the title will remain a part of the description. This setting is
enabled by default, but you can disable it by adding
header: falseto your options.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
directories |
String | Array | The directories to traverse |
|
options |
Object |
<optional> |
Options to alter the output content (optional) |
- Source:
Returns:
A Promise object resolving to a KssStyleGuide.
- Type
- Promise
(inner) kss(optionsopt) → {Promise.<(KssStyleGuide|null)>}
Builds a style guide given the proper options.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
options |
object |
<optional> |
A collection of options. |
- Source:
Returns:
A Promise object resolving to a
KssStyleGuide object, or to null if the clone option is used.
- Type
- Promise.<(KssStyleGuide|null)>