
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
breakdance-util
Advanced tools
Utility functions for breakdance plugins.
Install with npm:
$ npm install --save breakdance-util
var utils = require('breakdance-util');
Visit the breakdance documentation for more information about using and customizing breakdance.
Wrapper for creating the handlers for compiling a tag that has *.open and *.close nodes, in a single function call.
Params
open {String}: The opening tag to renderclose {String}: The closing tag to renderstate {Object}handler {Function}: Visitor function to modify the nodereturns {undefined}Example
breakdance.set('div', utils.block('', ''));
breakdance.set('address', block('\n<address>\n', '\n</address>\n'));
// optionally pass a handler function to access the "parent" node
breakdance.set('abbr', block('<abbr>', '</abbr>', function(node) {
var attr = utils.toAttribs(node.attribs, ['title']);
if (attr) {
node.open = '<abbr' + attr + '>';
}
}))
Stringify the attribs for a node.
Params
attribs {Object}: Object of attributes to stringifynames {Array}: Array of names to only stringify attributes with those names.returns {String}: Returns a string of attributes, e.g. src="foo.jpg"Example
var str = utils.toAttribs(node.attribs);
Attempt to get a "language" value from the given attribs. Used with code/pre tags.
Params
attribs {Object}: The node.attribs objectreturns {String}Example
breakdance.set('code', function(node) {
var lang = utils.getLang(node.attribs);
// console.log(lang);
});
Formats the link part of a "src" or "href" attribute on the given node.
Params
node {Object}key {String}: Either 'src' or 'href'compiler {Object}: Pass the breakdance compiler instance, for state and options.returns {String}Example
// this is how <img> tags are rendered
breakdance.set('img', function(node) {
var attribs = node.attribs || {};
if (attribs.src) {
this.emit('![' + (attribs.alt || '').trim());
this.mapVisit(node);
var src = utils.formatLink(node, 'src', this);
this.emit(']' + src);
//=> 
}
})
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Please read the contributing guide for advice on opening issues, pull requests, and coding standards.
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Jon Schlinkert
Copyright © 2017, Jon Schlinkert. MIT
This file was generated by verb-generate-readme, v0.4.2, on February 05, 2017.
FAQs
Utility functions for breakdance plugins.
We found that breakdance-util demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.