mirror of
				https://github.com/fooflington/selfdefined.git
				synced 2025-10-30 21:58:32 +00:00 
			
		
		
		
	pug-parser
The pug parser (takes an array of tokens and converts it to an abstract syntax tree)
Installation
npm install pug-parser
Usage
var parse = require('pug-parser');
parse(tokens, options)
Convert Pug tokens to an abstract syntax tree (AST).
options can contain the following properties:
- filename(string): The name of the Pug file; it is included in the produced AST nodes and error handling, if provided.
- plugins(array): An array of plugins, in the order they should be applied.
- src(string): The source of the Pug file; it is used in error handling if provided.
var lex = require('pug-lexer');
var filename = 'my-file.pug';
var src = 'div(data-foo="bar")';
var tokens = lex(src, {filename});
var ast = parse(tokens, {filename, src});
console.log(JSON.stringify(ast, null, '  '))
{
  "type": "Block",
  "nodes": [
    {
      "type": "Tag",
      "name": "div",
      "selfClosing": false,
      "block": {
        "type": "Block",
        "nodes": [],
        "line": 1,
        "filename": "my-file.pug"
      },
      "attrs": [
        {
          "name": "data-foo",
          "val": "\"bar\"",
          "line": 1,
          "column": 5,
          "filename": "my-file.pug",
          "mustEscape": true
        }
      ],
      "attributeBlocks": [],
      "isInline": false,
      "line": 1,
      "column": 1,
      "filename": "my-file.pug"
    }
  ],
  "line": 0,
  "filename": "my-file.pug"
}
new parse.Parser(tokens, options)
Constructor for a Parser class. This is not meant to be used directly unless you know what you are doing.
options may contain the following properties:
- filename(string): The name of the Pug file; it is included in the produced AST nodes and error handling, if provided.
- plugins(array): An array of plugins, in the order they should be applied.
- src(string): The source of the Pug file; it is used in error handling if provided.
License
MIT
