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,5 @@
extends layout.pug
append head
script(src='app.js')

View File

@@ -0,0 +1,7 @@
html
block head
script(src='vendor/jquery.js')
script(src='vendor/caustic.js')
body
block body

View File

@@ -0,0 +1,6 @@
extends app-layout.pug
append head
script(src='foo.js')
script(src='bar.js')

View File

@@ -0,0 +1,5 @@
extends layout
block append head
script(src='app.js')

View File

@@ -0,0 +1,7 @@
html
block head
script(src='vendor/jquery.js')
script(src='vendor/caustic.js')
body
block body

View File

@@ -0,0 +1,9 @@
<html>
<script src="vendor/jquery.js"></script>
<script src="vendor/caustic.js"></script>
<script src="app.js"></script>
<script src="foo.js"></script>
<script src="bar.js"></script>
<body>
</body>
</html>

View File

@@ -0,0 +1,6 @@
extends app-layout
block append head
script(src='foo.js')
script(src='bar.js')

View File

@@ -0,0 +1 @@
include include.locals.error.pug

View File

@@ -0,0 +1 @@
include include.syntax.error.pug

View File

@@ -0,0 +1 @@
extends layout.locals.error.pug

View File

@@ -0,0 +1 @@
extends layout.syntax.error.pug

View File

@@ -0,0 +1 @@
extends compile.with.include.locals.error.pug

View File

@@ -0,0 +1 @@
extends compile.with.include.syntax.error.pug

View File

@@ -0,0 +1 @@
div(attr='val')(foo='bar')

View File

@@ -0,0 +1,2 @@
= foo()

View File

@@ -0,0 +1,2 @@
= foo(

View File

@@ -0,0 +1,7 @@
extends ./layout.pug
block title
title My Article
block contents
// oops, that's not a block

View File

@@ -0,0 +1,2 @@
.included-layout
block include-body

View File

@@ -0,0 +1,4 @@
extends ./include-layout.pug
block include-body
.include-body

View File

@@ -0,0 +1,7 @@
extends ./layout.pug
block body-a
.body-a
block body-b
.body-b
include ./include.pug

View File

@@ -0,0 +1,3 @@
.layout-body
block body-a
block body-b

View File

@@ -0,0 +1,2 @@
= foo()

View File

@@ -0,0 +1,6 @@
doctype html
html
head
block title
body
block body

View File

@@ -0,0 +1,2 @@
= foo(

View File

@@ -0,0 +1,5 @@
html
body
= foo.length
block content

View File

@@ -0,0 +1,5 @@
mixin bang
+foo
mixin foo
p bar

View File

@@ -0,0 +1,2 @@
mixin mixin-with-error(foo)
- foo.length

View File

@@ -0,0 +1,5 @@
extends root.pug
block content
.content
| Defined content

View File

@@ -0,0 +1,5 @@
block content
| default content
block head
script(src='/app.js')

View File

@@ -0,0 +1,32 @@
.data
ol.sortable#contents
each item in report
if (!item.parent)
div
li.chapter(data-ref= item.id)
a(href='/admin/report/detail/' + item.id)
= item.name
- var chp = item.id
ol.sortable
each item in report
if (item.parent === chp && item.type === 'section')
div
li.section(data-ref= item.id)
a(href='/admin/report/detail/' + item.id)
= item.name
- var sec = item.id
ol.sortable
each item in report
if (item.parent === sec && item.type === 'page')
div
li.page(data-ref= item.id)
a(href='/admin/report/detail/' + item.id)
= item.name
- var page = item.id
ol.sortable
each item in report
if (item.parent === page && item.type === 'subpage')
div
li.subpage(data-ref= item.id)
a(href='/admin/report/detail/' + item.id)
= item.name

View File

@@ -0,0 +1,5 @@
extends layout.pug
prepend head
script(src='app.js')

View File

@@ -0,0 +1,7 @@
html
block head
script(src='vendor/jquery.js')
script(src='vendor/caustic.js')
body
block body

View File

@@ -0,0 +1,9 @@
<html>
<script src="foo.js"></script>
<script src="bar.js"></script>
<script src="app.js"></script>
<script src="vendor/jquery.js"></script>
<script src="vendor/caustic.js"></script>
<body>
</body>
</html>

View File

@@ -0,0 +1,6 @@
extends app-layout.pug
prepend head
script(src='foo.js')
script(src='bar.js')

View File

@@ -0,0 +1,5 @@
extends layout.pug
block prepend head
script(src='app.js')

View File

@@ -0,0 +1,7 @@
html
block head
script(src='vendor/jquery.js')
script(src='vendor/caustic.js')
body
block body

View File

@@ -0,0 +1,9 @@
<html>
<script src="foo.js"></script>
<script src="bar.js"></script>
<script src="app.js"></script>
<script src="vendor/jquery.js"></script>
<script src="vendor/caustic.js"></script>
<body>
</body>
</html>

View File

@@ -0,0 +1,6 @@
extends app-layout.pug
block prepend head
script(src='foo.js')
script(src='bar.js')

View File

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

View File

@@ -0,0 +1,3 @@
extends layout.with.runtime.error.pug
block content
| some content

View File

@@ -0,0 +1,3 @@
include mixin.error.pug
+mixin-with-error(null)

View File

@@ -0,0 +1,2 @@
script(src='/jquery.js')
script(src='/caustic.js')