generate-selectors v1.0.0
generate-selectors
Version 1.0.0.
generateSelectors is function which produces an shell of empty CSS selectors from markup. It is intended to be used in front-end development workflows. It also exists as a Gulp plugin.
Usage
generateSelectors accepts a single options parameter and returns a string. The result is intended to be used as the content of a stylesheet file.
stylesheet = generateSelectors( options )
Options
ids(Boolean|RegExp|Function) Instructions for generating id specifiers. Defaults totrue.classNames(Boolean|RegExp|Function) Instructions for generating class name specifiers. Defaults totrue.tagNames(Boolean|RegExp|Function) Instructions for generating tag names specifiers. Defaults togenerateSelectors.ignoreDefaultTagNames.styles(false|String) The existing stylesheet contents. Use of this option prevents both existing stylesheet content from being lost and duplicate selectors from being generated. Defaults tofalse, which assumes that an entirely new stylesheet is to be generated.markup(String) The markup from which to generate the selectors. Required.
Instructions for types of specifiers
- Booleans.
trueindicates to include all specifiers of this type,falseindicates to skip this type of specifiers. - Regular Expressions include or exclude specific specifiers via the
.match()method. For example,/^utility-/would require that any specifiers start with'utility-'in order to be included. - Functions include or exclude specific specifiers by acting as predicates. They accept the specifier as as string and return a boolean,
trueto include orfalseto exclude.
Behavior
generateSelectors combines all specifiers which it finds on an element into a single, compound selector. For example, <ul class="navigation" id="main-navigation"> might result in ul#main-navigation.navigation.
Default ignored tag names
The built-in predicate function generateSelectors.ignoreDefaultTagNames is controlled by the array generateSelectors.defaultIgnoredTagNames. If, for example, you wanted to add ul and li to the list of ignored tag names, you could write:
generateSelectors.defaultIgnoredTagNames = generateSelectors.defaultIgnoredTagNames.concat ( 'ul', 'li' )