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:
8
playground/examples/attributes.pug
Normal file
8
playground/examples/attributes.pug
Normal file
@@ -0,0 +1,8 @@
|
||||
div#id.left.container(class='user user-' + name)
|
||||
h1.title= name
|
||||
form
|
||||
//- unbuffered comment :)
|
||||
// An example of attributes.
|
||||
input(type='text' name='user[name]' value=name)
|
||||
input(checked, type='checkbox', name='user[blocked]')
|
||||
input(type='submit', value='Update')
|
||||
17
playground/examples/code.pug
Normal file
17
playground/examples/code.pug
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
- var title = "Things"
|
||||
|
||||
-
|
||||
var subtitle = ["Really", "long",
|
||||
"list", "of",
|
||||
"words"]
|
||||
h1= title
|
||||
h2= subtitle.join(" ")
|
||||
|
||||
ul#users
|
||||
each user, name in users
|
||||
// expands to if (user.isA == 'ferret')
|
||||
if user.isA == 'ferret'
|
||||
li(class='user-' + name) #{name} is just a ferret
|
||||
else
|
||||
li(class='user-' + name) #{name} #{user.email}
|
||||
5
playground/examples/dynamicscript.pug
Normal file
5
playground/examples/dynamicscript.pug
Normal file
@@ -0,0 +1,5 @@
|
||||
html
|
||||
head
|
||||
title Dynamic Inline JavaScript
|
||||
script.
|
||||
var users = !{JSON.stringify(users).replace(/<\//g, "<\\/")}
|
||||
3
playground/examples/each.pug
Normal file
3
playground/examples/each.pug
Normal file
@@ -0,0 +1,3 @@
|
||||
ul#users
|
||||
each user, name in users
|
||||
li(class='user-' + name) #{name} #{user.email}
|
||||
10
playground/examples/extend-layout.pug
Normal file
10
playground/examples/extend-layout.pug
Normal file
@@ -0,0 +1,10 @@
|
||||
html
|
||||
head
|
||||
h1 My Site - #{title}
|
||||
block scripts
|
||||
script(src='/jquery.js')
|
||||
body
|
||||
block content
|
||||
block foot
|
||||
#footer
|
||||
p some footer content
|
||||
11
playground/examples/extend.pug
Normal file
11
playground/examples/extend.pug
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
extends extend-layout.pug
|
||||
|
||||
block scripts
|
||||
script(src='/jquery.js')
|
||||
script(src='/pets.js')
|
||||
|
||||
block content
|
||||
h1= title
|
||||
each pet in pets
|
||||
include pet.pug
|
||||
29
playground/examples/form.pug
Normal file
29
playground/examples/form.pug
Normal file
@@ -0,0 +1,29 @@
|
||||
form(method="post")
|
||||
fieldset
|
||||
legend General
|
||||
p
|
||||
label(for="user[name]") Username:
|
||||
input(type="text", name="user[name]", value=user.name)
|
||||
p
|
||||
label(for="user[email]") Email:
|
||||
input(type="text", name="user[email]", value=user.email)
|
||||
.tip.
|
||||
Enter a valid
|
||||
email address
|
||||
such as <em>tj@vision-media.ca</em>.
|
||||
fieldset
|
||||
legend Location
|
||||
p
|
||||
label(for="user[city]") City:
|
||||
input(type="text", name="user[city]", value=user.city)
|
||||
p
|
||||
select(name="user[province]")
|
||||
option(value="") -- Select Province --
|
||||
option(value="AB") Alberta
|
||||
option(value="BC") British Columbia
|
||||
option(value="SK") Saskatchewan
|
||||
option(value="MB") Manitoba
|
||||
option(value="ON") Ontario
|
||||
option(value="QC") Quebec
|
||||
p.buttons
|
||||
input(type="submit", value="Save")
|
||||
7
playground/examples/includes.pug
Normal file
7
playground/examples/includes.pug
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
html
|
||||
include includes/head.pug
|
||||
body
|
||||
h1 My Site
|
||||
p Welcome to my super lame site.
|
||||
include includes/foot.pug
|
||||
14
playground/examples/layout.pug
Normal file
14
playground/examples/layout.pug
Normal file
@@ -0,0 +1,14 @@
|
||||
doctype html
|
||||
html(lang="en")
|
||||
head
|
||||
title Example
|
||||
script.
|
||||
if (foo) {
|
||||
bar();
|
||||
}
|
||||
body
|
||||
h1 Pug - node template engine
|
||||
#container
|
||||
:markdown-it
|
||||
Pug is a _high performance_ template engine for [node](http://nodejs.org),
|
||||
inspired by [haml](http://haml-lang.com/), and written by [TJ Holowaychuk](http://github.com/visionmedia).
|
||||
14
playground/examples/mixins.pug
Normal file
14
playground/examples/mixins.pug
Normal file
@@ -0,0 +1,14 @@
|
||||
include mixins/dialog.pug
|
||||
include mixins/profile.pug
|
||||
|
||||
.one
|
||||
+dialog
|
||||
|
||||
.two
|
||||
+dialog-title('Whoop')
|
||||
|
||||
.three
|
||||
+dialog-title-desc('Whoop', 'Just a mixin')
|
||||
|
||||
#profile
|
||||
+profile(user)
|
||||
3
playground/examples/pet.pug
Normal file
3
playground/examples/pet.pug
Normal file
@@ -0,0 +1,3 @@
|
||||
.pet
|
||||
h2= pet.name
|
||||
p #{pet.name} is <em>#{pet.age}</em> year(s) old.
|
||||
14
playground/examples/rss.pug
Normal file
14
playground/examples/rss.pug
Normal file
@@ -0,0 +1,14 @@
|
||||
doctype xml
|
||||
rss(version='2.0')
|
||||
channel
|
||||
title RSS Title
|
||||
description Some description here
|
||||
link http://google.com
|
||||
lastBuildDate Mon, 06 Sep 2010 00:01:00 +0000
|
||||
pubDate Mon, 06 Sep 2009 16:45:00 +0000
|
||||
|
||||
each item in items
|
||||
item
|
||||
title= item.title
|
||||
description= item.description
|
||||
link= item.link
|
||||
36
playground/examples/text.pug
Normal file
36
playground/examples/text.pug
Normal file
@@ -0,0 +1,36 @@
|
||||
| An example of an
|
||||
a(href='#') inline
|
||||
| link.
|
||||
|
||||
form
|
||||
label Username:
|
||||
input(type='text', name='user[name]')
|
||||
p
|
||||
| Just an example of some text usage.
|
||||
| You can have <em>inline</em> html,
|
||||
| as well as
|
||||
strong tags
|
||||
| .
|
||||
|
||||
| Interpolation is also supported. The
|
||||
| username is currently "#{name}".
|
||||
|
||||
label Email:
|
||||
input(type='text', name='user[email]')
|
||||
p
|
||||
| Email is currently
|
||||
em= email
|
||||
| .
|
||||
|
||||
// alternatively, if we plan on having only
|
||||
// text or inline-html, we can use a trailing
|
||||
// "." to let pug know we want to omit pipes
|
||||
|
||||
label Username:
|
||||
input(type='text')
|
||||
p.
|
||||
Just an example, like before
|
||||
however now we can omit those
|
||||
annoying pipes!.
|
||||
|
||||
Wahoo.
|
||||
11
playground/examples/whitespace.pug
Normal file
11
playground/examples/whitespace.pug
Normal file
@@ -0,0 +1,11 @@
|
||||
- var js = '<script></script>'
|
||||
doctype html
|
||||
html
|
||||
|
||||
head
|
||||
title= "Some " + "JavaScript"
|
||||
!= js
|
||||
|
||||
|
||||
|
||||
body
|
||||
Reference in New Issue
Block a user