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,3 @@
script(type='text/x-template')
#user(id!='user-<%= user.id %>')
h1 <%= user.title %>

View File

@@ -0,0 +1,4 @@
when 5
.foo
when 6
.bar

View File

@@ -0,0 +1,2 @@
case foo
.div

View File

@@ -0,0 +1,4 @@
if foo
div
else bar
article

View File

@@ -0,0 +1,2 @@
else
.foo

View File

@@ -0,0 +1 @@
foo()+bar()

View File

@@ -0,0 +1 @@
div("foo"abc)

View File

@@ -0,0 +1 @@
div(foo!~abc)

View File

@@ -0,0 +1,2 @@
//- #1871
p #[strong a}

View File

@@ -0,0 +1,2 @@
mixin foo(a, b)
+foo('a'b'b')

View File

@@ -0,0 +1,3 @@
mixin foo
block
bar

View File

@@ -0,0 +1,2 @@
:not-a-valid-filter
foo bar

View File

@@ -0,0 +1,2 @@
div
block

View File

@@ -0,0 +1 @@
div(title=[)

View File

@@ -0,0 +1 @@
This folder collects examples of files that are not valid `pug`, but were at some point accepted by the parser without throwing an error. The tests ensure that all these cases now throw some form of error message (hopefully a helpful one).

View File

@@ -0,0 +1,2 @@
input
| Inputs cannot have content

View File

@@ -0,0 +1 @@
input Input's can't have content

View File

@@ -0,0 +1 @@
input= 'Inputs cannot have code'

View File

@@ -0,0 +1,3 @@
div
div
article

View File

@@ -0,0 +1 @@
+#{myMixin

View File

@@ -0,0 +1,4 @@
mixin item
block
+item( Contact

View File

@@ -0,0 +1 @@
#{myMixin