File tree Expand file tree Collapse file tree 9 files changed +105
-20
lines changed Expand file tree Collapse file tree 9 files changed +105
-20
lines changed Original file line number Diff line number Diff line change
1
+ language : node_js
2
+ node_js :
3
+ - " 5"
4
+ - " 4"
5
+ - " 0.12"
6
+ - " 0.11"
7
+ - " iojs"
Original file line number Diff line number Diff line change 1
1
# postcss-comment
2
2
Allow postcss to support inline comments.
3
3
4
+ [ ![ npm] ( https://nodei.co/npm/postcss-comment.png?downloads=true )] ( https://www.npmjs.org/package/postcss-comment )
5
+
6
+ [ ![ version] ( https://img.shields.io/npm/v/postcss-comment.svg )] ( https://www.npmjs.org/package/postcss-comment )
7
+ [ ![ status] ( https://travis-ci.org/zoubin/postcss-comment.svg?branch=master )] ( https://travis-ci.org/zoubin/postcss-comment )
8
+ [ ![ dependencies] ( https://david-dm.org/zoubin/postcss-comment.svg )] ( https://david-dm.org/zoubin/postcss-comment )
9
+ [ ![ devDependencies] ( https://david-dm.org/zoubin/postcss-comment/dev-status.svg )] ( https://david-dm.org/zoubin/postcss-comment#info=devDependencies )
10
+
4
11
## Usage
5
12
6
13
``` bash
7
- npm i --save postcss postcss-comment
14
+ npm i --save-dev postcss postcss-comment
8
15
9
16
```
10
17
18
+ ### As parser
19
+
11
20
``` javascript
12
- require (' postcss-comment' )
13
21
var postcss = require (' postcss' )
22
+ var parser = require (' postcss-comment' )
14
23
15
- // or
16
- // var postcss = require('postcss-comment')
24
+ var fs = require (' fs' )
25
+
26
+ var file = __dirname + ' /inline.css'
27
+
28
+ postcss ()
29
+ .process (
30
+ fs .readFileSync (file, ' utf8' ),
31
+ { from: file, parser: parser }
32
+ )
33
+ .then (function (result ) {
34
+ console .log (result .css )
35
+ })
36
+
37
+ ```
38
+
39
+ ### Hook require
40
+
41
+ ``` javascript
42
+ require (' postcss-comment/hookRequire' )
43
+ var postcss = require (' postcss' )
17
44
18
45
var fs = require (' fs' )
19
46
@@ -30,6 +57,8 @@ postcss()
30
57
31
58
```
32
59
60
+ ## Example
61
+
33
62
inline.css:
34
63
``` css
35
64
/*
Original file line number Diff line number Diff line change
1
+ var Parser = require ( 'postcss/lib/parser' )
2
+ var tokenizer = require ( './lib/tokenize' )
3
+
4
+ Parser . prototype . tokenize = function ( ) {
5
+ this . tokens = tokenizer ( this . input )
6
+ }
7
+
8
+ module . exports = require ( 'postcss' )
9
+
Original file line number Diff line number Diff line change 1
- var Parser = require ( 'postcss/lib/parser' )
2
- var tokenizer = require ( './lib/tokenize' )
3
-
4
- Parser . prototype . tokenize = function ( ) {
5
- this . tokens = tokenizer ( this . input )
6
- }
7
-
8
- module . exports = require ( 'postcss' )
1
+ exports . parse = require ( './lib/parse' )
9
2
Original file line number Diff line number Diff line change
1
+ var Input = require ( 'postcss/lib/input' )
2
+ var Parser = require ( './parser' )
3
+
4
+ module . exports = function ( css , opts ) {
5
+ var input = new Input ( css , opts )
6
+ var parser = new Parser ( input )
7
+ parser . tokenize ( )
8
+ parser . loop ( )
9
+
10
+ return parser . root
11
+ }
12
+
Original file line number Diff line number Diff line change
1
+ var inherits = require ( 'util' ) . inherits
2
+ var Parser = require ( 'postcss/lib/parser' )
3
+ var tokenizer = require ( './tokenize' )
4
+
5
+ inherits ( InlineParser , Parser )
6
+
7
+ module . exports = InlineParser
8
+
9
+ function InlineParser ( input ) {
10
+ Parser . call ( this , input )
11
+ }
12
+
13
+ InlineParser . prototype . tokenize = function ( ) {
14
+ this . tokens = tokenizer ( this . input )
15
+ }
Original file line number Diff line number Diff line change @@ -225,16 +225,11 @@ module.exports = function tokenize(input) {
225
225
content = '/*' + css . slice ( pos + 2 , next + 1 ) ;
226
226
content = content . replace ( / \* \/ / g, '*\\/' ) + ' */'
227
227
228
- nextLine = line ;
229
- nextOffset = offset ;
230
-
231
228
tokens . push ( [ 'comment' , content ,
232
229
line , pos - offset ,
233
- nextLine , next - nextOffset
230
+ line , next - offset
234
231
] ) ;
235
232
236
- offset = nextOffset ;
237
- line = nextLine ;
238
233
pos = next ;
239
234
240
235
} else {
Original file line number Diff line number Diff line change 1
1
var test = require ( 'tap' ) . test
2
- var postcss = require ( '..' )
2
+ var postcss = require ( '../hookRequire ' )
3
3
var path = require ( 'path' )
4
4
var fs = require ( 'fs' )
5
5
var fixtures = path . resolve . bind ( path , __dirname , 'fixtures' )
@@ -8,7 +8,7 @@ function readFile(file) {
8
8
return fs . readFileSync ( file , 'utf8' )
9
9
}
10
10
11
- test ( 'inline comment ' , function ( t ) {
11
+ test ( 'hookRequire ' , function ( t ) {
12
12
t . plan ( 1 )
13
13
var file = fixtures ( 'inline.css' )
14
14
postcss ( )
@@ -20,3 +20,4 @@ test('inline comment', function (t) {
20
20
)
21
21
} )
22
22
} )
23
+
Original file line number Diff line number Diff line change
1
+ var test = require ( 'tap' ) . test
2
+ var parser = require ( '..' )
3
+ var postcss = require ( 'postcss' )
4
+ var path = require ( 'path' )
5
+ var fs = require ( 'fs' )
6
+ var fixtures = path . resolve . bind ( path , __dirname , 'fixtures' )
7
+
8
+ function readFile ( file ) {
9
+ return fs . readFileSync ( file , 'utf8' )
10
+ }
11
+
12
+ test ( 'parser' , function ( t ) {
13
+ t . plan ( 1 )
14
+ var file = fixtures ( 'inline.css' )
15
+ postcss ( )
16
+ . process ( readFile ( file ) , { from : file , parser : parser } )
17
+ . then ( function ( result ) {
18
+ t . equal (
19
+ result . css ,
20
+ readFile ( fixtures ( 'inline.expected.css' ) )
21
+ )
22
+ } )
23
+ } )
24
+
You can’t perform that action at this time.
0 commit comments