Skip to content

Commit 1f54f63

Browse files
committed
Add AST transform
1 parent 7fd22bb commit 1f54f63

File tree

5 files changed

+42
-15
lines changed

5 files changed

+42
-15
lines changed

README.md

+17-5
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@
22

33
# mdast-squeeze-paragraphs
44

5-
[![Build Status](https://travis-ci.org/eush77/mdast-squeeze-paragraphs.svg)](https://travis-ci.org/eush77/mdast-squeeze-paragraphs)
6-
[![Dependency Status][david-badge]][david]
5+
[![Build Status][travis-badge]][travis] [![Dependency Status][david-badge]][david]
76

8-
Remove empty paragraphs left from other [mdast](http://mdast.js.org) transformations.
7+
Remove empty paragraphs left from other [mdast] transformations.
98

9+
This module provides both AST transformation and a plugin.
10+
11+
[mdast]: https://github.com/wooorm/mdast
12+
13+
[travis]: https://travis-ci.org/eush77/mdast-squeeze-paragraphs
14+
[travis-badge]: https://travis-ci.org/eush77/mdast-squeeze-paragraphs.svg
1015
[david]: https://david-dm.org/eush77/mdast-squeeze-paragraphs
1116
[david-badge]: https://david-dm.org/eush77/mdast-squeeze-paragraphs.png
1217

1318
## Example
1419

1520
```js
21+
> mdastSqueezeParagraphs = require('mdast-squeeze-paragraphs/plugin')
22+
1623
> mdast.use(mdastStripBadges)
1724
.process('![](http://img.shields.io/)\n\ntext')
1825
'\n\ntext\n'
26+
1927
> mdast.use(mdastStripBadges)
2028
.use(mdastSqueezeParagraphs)
2129
.process('![](http://img.shields.io/)\n\ntext')
@@ -24,9 +32,13 @@ Remove empty paragraphs left from other [mdast](http://mdast.js.org) transformat
2432

2533
## API
2634

27-
#### `mdast.use(mdastSqueezeParagraphs)`
35+
#### `mdastSqueezeParagraphs(ast)`
36+
37+
Remove empty paragraphs from the AST. Return the reference to the AST for convenience.
38+
39+
#### `mdast.use(require('mdast-squeeze-paragraphs/plugin'))`
2840

29-
Remove empty paragraphs from the AST.
41+
Use this transformation as a plugin.
3042

3143
## Install
3244

index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
'use strict';
22

33

4-
module.exports = function () {
5-
return function (ast) {
6-
ast.children = ast.children.filter(function (node) {
7-
return !(node.type == 'paragraph' && !node.children.length);
8-
});
9-
};
4+
module.exports = function (ast) {
5+
ast.children = ast.children.filter(function (node) {
6+
return !(node.type == 'paragraph' && !node.children.length);
7+
});
8+
9+
return ast;
1010
};

package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"test": "tape test/*.js"
99
},
1010
"files": [
11-
"index.js"
11+
"index.js",
12+
"plugin.js"
1213
],
1314
"homepage": "https://github.com/eush77/mdast-squeeze-paragraphs",
1415
"repository": "eush77/mdast-squeeze-paragraphs",
@@ -32,6 +33,7 @@
3233
],
3334
"dependencies": {},
3435
"devDependencies": {
36+
"clone": "^1.0.2",
3537
"mdast": "^0.26.2",
3638
"tape": "^4.0.0"
3739
}

plugin.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'use strict';
2+
3+
var squeezeParagraphs = require('./');
4+
5+
6+
module.exports = function () {
7+
return squeezeParagraphs;
8+
};

test/test.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
'use strict';
22

3-
var mdastSqueezeParagraphs = require('..');
3+
var mdastSqueezeParagraphs = require('..'),
4+
mdastSqueezeParagraphsPlugin = require('../plugin');
45

56
var test = require('tape'),
6-
mdast = require('mdast');
7+
mdast = require('mdast'),
8+
clone = require('clone');
79

810

911
test(function (t) {
1012
var input = require('./input');
1113
var output = require('./output');
1214

13-
t.deepEqual(mdast().use(mdastSqueezeParagraphs).run(input), output);
15+
t.deepEqual(mdastSqueezeParagraphs(clone(input)), output,
16+
'Works as an AST transformation');
17+
t.deepEqual(mdast.use(mdastSqueezeParagraphsPlugin).run(input), output,
18+
'Works as a plugin');
1419
t.end();
1520
});

0 commit comments

Comments
 (0)