1 | #!/usr/bin/env node
|
2 |
|
3 | var cleaner = require('./index.js'),
|
4 | fs = require('fs'),
|
5 | parseArgs = require('minimist'),
|
6 | argv = parseArgs(process.argv.slice(2)),
|
7 | inFile = argv['_'][0],
|
8 | outFile = argv['_'][1],
|
9 | options = {
|
10 | 'attr-to-remove': getOptAsArray(argv['attr-to-remove']),
|
11 | 'block-tags': getOptAsArray(argv['block-tags']),
|
12 | 'break-around-comments': getOptAsBool(argv['break-around-comments']),
|
13 | 'break-after-br': getOptAsBool(argv['break-after-br']),
|
14 | 'empty-tags': getOptAsArray(argv['empty-tags']),
|
15 | 'indent': argv['indent'],
|
16 | 'remove-comments': getOptAsBool(argv['remove-comments']),
|
17 | 'remove-empty-paras': getOptAsBool(argv['remove-empty-paras']),
|
18 | 'replace-nbsp': getOptAsBool(argv['replace-nbsp']),
|
19 | 'tags-to-remove': getOptAsArray(argv['tags-to-remove']),
|
20 | 'add-attr-to-remove': getOptAsArray(argv['add-attr-to-remove']),
|
21 | 'add-block-tags': getOptAsArray(argv['add-block-tags']),
|
22 | 'add-empty-tags': getOptAsArray(argv['add-empty-tags']),
|
23 | 'add-tags-to-remove': getOptAsArray(argv['add-tags-to-remove'])
|
24 | };
|
25 |
|
26 | function getOptAsArray(opt) {
|
27 | if (opt === undefined) {
|
28 | return undefined;
|
29 | }
|
30 |
|
31 | return opt.split(',');
|
32 | }
|
33 |
|
34 | function getOptAsBool(opt) {
|
35 | if (opt === undefined) {
|
36 | return undefined;
|
37 | }
|
38 |
|
39 | return opt === true || opt === 'true';
|
40 | }
|
41 |
|
42 | fs.readFile(inFile, 'utf-8', function (err, data) {
|
43 | if (err) {
|
44 | throw err;
|
45 | }
|
46 |
|
47 | cleaner.clean(data, options, function (html) {
|
48 | if (outFile) {
|
49 | return fs.writeFile(outFile, html, function (err) {
|
50 | if (err) {
|
51 | throw err;
|
52 | }
|
53 | });
|
54 | }
|
55 |
|
56 | console.log(html);
|
57 | });
|
58 | });
|