UNPKG

pug-walk-extract-text

Version:

Walk and transform a Pug AST, extracting text nodes from e.g. script and style tags

24 lines (21 loc) 940 B
var test = require('tape') var fs = require('fs') var lexer = require('pug-lexer') var parser = require('pug-parser') var walkExtract = require('./') function shouldExtract (node) { return node.type === 'Tag' && (node.name === 'script' || node.name === 'style') } test('extract scripts and styles', function(t) { t.plan(1) var text = fs.readFileSync('fixture.pug', { encoding: 'utf-8' }) var results = walkExtract(parser(lexer(text)), text, shouldExtract) t.deepEqual(results.map(function (r) { delete r.node; return r }), [ { text: "alert('piped')\nalert('piped-no-space')", indent: 8, line: 5 }, { text: "print 'hello'", indent: 31, line: 7 }, { text: "body { background: #efefef; color: #444; }\n html { font-size: 105%; }", indent: 6, line: 9 }, { text: "alert('inline')", indent: 11, line: 13 }, { text: "console.log({\n dot: 'ted'\n})", indent: 6, line: 15 }, { text: "@testFilter", indent: 6, line: 19 }, ]) })