fix: add scoped error logging for lexer/parser errors

- Add std.log.scoped(.pugz) to template.zig and view_engine.zig
- Log detailed error info (code, line, column, message) when parsing fails
- Log template path context in ViewEngine on parse errors
- Remove debug print from lexer, use proper scoped logging instead
- Move benchmarks, docs, examples, playground, tests out of src/ to project root
- Update build.zig and documentation paths accordingly
- Bump version to 0.3.1
This commit is contained in:
2026-01-25 17:10:02 +05:30
parent 9d3b729c6c
commit aaf6a1af2d
1148 changed files with 57 additions and 330 deletions

View File

@@ -0,0 +1,260 @@
{
"type": "Block",
"nodes": [
{
"type": "Include",
"file": {
"type": "FileReference",
"line": 2,
"filename": "include.yield.nested.pug",
"path": "auxiliary/yield-nested.pug",
"fullPath": "auxiliary/yield-nested.pug",
"str": "html\n head\n title\n body\n h1 Page\n #content\n #content-wrapper\n yield\n #footer\n stuff",
"ast": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "html",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "head",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "title",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [],
"line": 3,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 3,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 2,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 2,
"filename": "auxiliary/yield-nested.pug"
},
{
"type": "Tag",
"name": "body",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "h1",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Text",
"val": "Page",
"line": 5,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 5,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 5,
"filename": "auxiliary/yield-nested.pug"
},
{
"type": "Tag",
"name": "div",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "div",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "YieldBlock",
"line": 8,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 7,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [
{
"name": "id",
"val": "'content-wrapper'",
"mustEscape": false
}
],
"attributeBlocks": [],
"isInline": false,
"line": 7,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 6,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [
{
"name": "id",
"val": "'content'",
"mustEscape": false
}
],
"attributeBlocks": [],
"isInline": false,
"line": 6,
"filename": "auxiliary/yield-nested.pug"
},
{
"type": "Tag",
"name": "div",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "stuff",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [],
"line": 10,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 10,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 9,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [
{
"name": "id",
"val": "'footer'",
"mustEscape": false
}
],
"attributeBlocks": [],
"isInline": false,
"line": 9,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 4,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 4,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 1,
"filename": "auxiliary/yield-nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 1,
"filename": "auxiliary/yield-nested.pug"
}
],
"line": 0,
"filename": "auxiliary/yield-nested.pug"
}
},
"line": 2,
"filename": "include.yield.nested.pug",
"block": {
"type": "Block",
"nodes": [
{
"type": "Tag",
"name": "p",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Text",
"val": "some content",
"line": 3,
"filename": "include.yield.nested.pug"
}
],
"line": 3,
"filename": "include.yield.nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 3,
"filename": "include.yield.nested.pug"
},
{
"type": "Tag",
"name": "p",
"selfClosing": false,
"block": {
"type": "Block",
"nodes": [
{
"type": "Text",
"val": "and some more",
"line": 4,
"filename": "include.yield.nested.pug"
}
],
"line": 4,
"filename": "include.yield.nested.pug"
},
"attrs": [],
"attributeBlocks": [],
"isInline": false,
"line": 4,
"filename": "include.yield.nested.pug"
}
],
"line": 3,
"filename": "include.yield.nested.pug"
}
}
],
"line": 0,
"filename": "include.yield.nested.pug"
}