Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ben-eb/widow
Add non breaking spaces to the ends of block level elements.
https://github.com/ben-eb/widow
Last synced: 7 days ago
JSON representation
Add non breaking spaces to the ends of block level elements.
- Host: GitHub
- URL: https://github.com/ben-eb/widow
- Owner: ben-eb
- License: mit
- Created: 2015-01-21T17:12:22.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-07-02T14:25:26.000Z (over 9 years ago)
- Last Synced: 2024-10-18T08:31:24.373Z (28 days ago)
- Language: HTML
- Size: 172 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# widow [![Build Status](https://travis-ci.org/ben-eb/widow.svg?branch=master)][ci] [![NPM version](https://badge.fury.io/js/widow.svg)][npm] [![Dependency Status](https://gemnasium.com/ben-eb/widow.svg)][deps]
> Add non breaking spaces to the ends of block level elements.
Install via [npm](https://npmjs.org/package/widow):
```
npm install widow --save
```## Why?
To ensure good typographic style, widow adds non breaking spaces to your HTML
content automatically. It's lightweight and doesn't depend on jQuery; and its
node API will allow you to transform content on the server before it reaches the
client.![comparison](comparison.png)
In node, widow uses [cheerio](https://github.com/cheeriojs/cheerio) to modify a
string of HTML; in the browser, it will modify the current document using
`querySelectorAll`.## Example (node)
```js
var widow = require('widow');
var htmlStr = 'Donut topping lollipop gummi bears
';console.log(widow(htmlStr));
// =>Donut topping lollipop gummi bears
```## Example (browser)
Bundle this code with [browserify](https://github.com/substack/node-browserify):
```js
var widow = require('widow');
widow();
```## API
### widow([html,][options])
The html argument is only required in node. In the browser it will modify the
current `document`.## Options
### selectors
Type: `Array`Which selectors widow should transform. By default it only transforms headings,
blockquotes, list items, paragraphs and table cells. Override this with an array
of query selectors to limit widow's scope.### maxLength
Type: `Integer`
Default: `50`You can specify a maximum length at which widow should apply a non-breaking
space - this is useful if you have headings with large font sizes, and you tend
to use long words in them.## Contributing
Pull requests are welcome. If you add functionality, then please add unit tests
to cover it.## License
MIT © [Ben Briggs](http://beneb.info)
[ci]: https://travis-ci.org/ben-eb/widow
[deps]: https://gemnasium.com/ben-eb/widow
[npm]: http://badge.fury.io/js/widow