Commit graph

350 commits

Author SHA1 Message Date
Chris Wong
cc833dd624 Update to rustc 1.23.0-nightly (6160040d8 2017-11-18) 2017-11-19 19:55:11 +13:00
Chris Wong
9674865846 Combine .push_str() calls across blocks
This also disallows `@let` in non-block contexts, e.g.

    img src=@let foo = bar; ;

This yields a 20 - 50 ns speedup in benchmarks, as well as reducing code
size by a slight amount.
2017-10-07 14:17:38 +13:00
Chris Wong
594af15242 Remove unnecessary extern crate 2017-08-12 19:44:43 +12:00
Chris Wong
5cd51481c9 Rename Renderer to Builder 2017-08-12 17:41:54 +12:00
Chris Wong
a902c97091 Allow braces in toggled classes 2017-08-12 16:50:54 +12:00
Chris Wong
9487dbc3a7 Move some code around 2017-08-12 16:21:13 +12:00
Chris Wong
080b461f1b Release 0.17.1 2017-08-11 21:15:20 +12:00
Chris Wong
f046b64409 Avoid name collisions when Render trait is already in scope
Closes 
2017-08-11 20:00:10 +12:00
Chris Wong
752c4805e4 Release 0.17.0 2017-08-04 22:22:38 +12:00
Chris Wong
1785071f1b Allow terminating void elements with semicolons (;)
When Rust and HTML syntax differ, Maud tends to side with Rust syntax.
This can be seen with string literals, for example, where we use
backslash escapes instead of HTML entities. Using `;` to terminate void
elements is consistent with this idea.

Moreover, this reduces confusion around the generated code. Maud does
not insert an extra slash into the HTML output (as per the spec) but
the syntax may imply otherwise.

This confusion may have been the cause of a [bug I found in the
wild][1], where the code omitted the trailing slash on an `input`
element. I suspect that this is because the author thought that a
trailing slash in the Maud template would lead to one in the HTML
output. Switching to semicolons would prevent this misconception.

[1]: https://github.com/anowell/quasar/pull/3
2017-08-04 20:58:02 +12:00
Chris Wong
21d19adb13 Add some more comments 2017-07-31 22:25:00 +12:00
Chris Wong
c57d41e1a6 Handle conditions which contain braces 2017-07-31 22:03:50 +12:00
Chris Wong
d3586a28f3 Remove braces from let expressions
Also improve spans by passing more of the input through directly
2017-07-31 21:48:11 +12:00
Chris Wong
3de5f7f3e9 Move lints into their own maud_lints crate 2017-07-30 22:18:26 +12:00
Chris Wong
4f7189375e Avoid using quote! in parser 2017-07-30 13:59:35 +12:00
Chris Wong
7dcc7d7063 Fix Clippy warnings 2017-07-29 20:06:28 +12:00
Chris Wong
2213c0dc32 Move escaping routines into a shared maud_htmlescape crate 2017-07-29 20:03:00 +12:00
Chris Wong
37419d9781 Implement match expressions and remove debugging stuff 2017-07-29 14:33:10 +12:00
Chris Wong
fd7e000cda TokenTreeIter values can be cloned now 2017-07-29 13:24:40 +12:00
Chris Wong
513d7f3d73 Implement for expressions 2017-07-23 14:08:19 +12:00
Chris Wong
cd113be71b Implement while expressions 2017-07-23 14:03:23 +12:00
Chris Wong
62bdd4b06a Use literalext from crates.io 2017-07-23 14:00:49 +12:00
Chris Wong
798f9baee8 Implement if expressions 2017-07-23 13:58:42 +12:00
Chris Wong
af57ac41ce Refactor backtracking mechanism 2017-07-23 13:58:42 +12:00
Chris Wong
748ce69f4d Use loop-break-value
It's stable now!
2017-07-23 13:58:42 +12:00
Chris Wong
3d1e82b20e Implement let expressions 2017-07-23 13:58:42 +12:00
Chris Wong
e61385645e Don't throw away spans 2017-07-23 13:58:42 +12:00
Chris Wong
e0c7fcf055 Initial stab at porting to new proc macro interface 2017-07-23 13:58:42 +12:00
Chris Wong
04eb61e870 Use docs.rs for hosting API documentation 2017-06-19 21:25:19 +12:00
Chris Wong
dfad8b3d03 Merge branch 'error_macro_to_function' 2017-06-03 12:42:47 +12:00
Chris Wong
a51a16bdc7 Minor tweaks 2017-06-03 12:42:36 +12:00
Alisha
61bbcfdb69 Remove error macro and make error function 2017-05-30 01:59:18 +10:00
Chris Wong
348712f3f4 Add #![doc(html_root_url = "...")] attribute 2017-05-13 14:16:41 +12:00
Chris Wong
be88fc39d5 Release 0.16.3 2017-04-22 20:00:21 +12:00
Chris Wong
0ec0950c5f Remove FlattenNtFolder
The tests pass without it, so 🤷
2017-04-22 17:29:56 +12:00
Chris Wong
dde603757d Rename PResult to ParseResult 2017-04-22 17:29:56 +12:00
Chris Wong
dfe721c6b7 Update to rustc 1.18.0-nightly (1785bca51 2017-04-21)
Closes 
2017-04-22 17:29:56 +12:00
Chris Wong
d8440bd214 Release 0.16.2 2017-03-07 21:47:46 +13:00
Sander Maijers
fc13564a42 Update to rustc 1.17.0-nightly (b1e31766d 2017-03-03)
Closes 

Squashed commit of the following:

commit f88e4dfa5a62f9d6e00ed0980b6fb6d41d36151c
Author: Chris Wong <lambda.fairy@gmail.com>
Date:   Tue Mar 7 20:54:54 2017 +1300

    Convert errant tabs to spaces

commit 65936efca738459412d8818f911601bf5a2870fa
Author: Sander Maijers <S.N.Maijers@gmail.com>
Date:   Mon Mar 6 17:15:20 2017 +0100

    Refactor to make more generic

commit dc16b665854f1d63f5dd8d4db5c3f9390b1e6cee
Author: Sander Maijers <S.N.Maijers@gmail.com>
Date:   Thu Mar 2 16:47:52 2017 +0100

    Adjust to make compatible with current `libsyntax`

    Was broken since rustc nightly 2017-03-01.
2017-03-07 20:59:51 +13:00
Chris Wong
23399225c3 Add juicy metadata to Cargo.toml 2017-02-17 22:23:44 +13:00
Chris Wong
7b67fe1e3e Release 0.16.1 2017-02-15 22:26:45 +13:00
Chris Wong
fe08789e3f Make PResult type private
Not sure why it was public in the first place
2017-02-11 17:19:12 +13:00
Chris Wong
9ca984c89b Release 0.16.0 2017-02-06 16:12:58 +13:00
Chris Wong
aa2c586e36 Correct maud::DOCTYPE_HTML to maud::DOCTYPE
Closes  (nice)
2017-02-06 15:55:29 +13:00
Chris Wong
4d4ba6c59b Release 0.15.0 2017-01-26 20:15:49 +13:00
Chris Wong
e577411356 Update to rustc 1.16.0-nightly (83c2d9523 2017-01-24) 2017-01-26 16:59:07 +13:00
Chris Wong
f21d1b578e Update to rustc 1.16.0-nightly (1a2ed98d3 2017-01-13) 2017-01-15 15:37:13 +13:00
Chris Wong
c849d9efdf Use if_chain from crates.io 2016-12-29 12:20:08 +13:00
Chris Wong
b2ff33fea6 Use a more flexible if_chain! macro 2016-12-27 21:27:54 +13:00
Chris Wong
f991ebaa78 Lint against PreEscaped("<!DOCTYPE html>")
See 
2016-12-27 21:27:54 +13:00