🌿 Parsley the template parser has been released to maven.wocommunity.org so it's now easy to try out. Just add it to your pom.xml.
Parsley is not "automatically enabled" when added as a dependency, since it contains utility functionality you might want to use without having it as your default template parser. You must activate it somewhere during application initialization to use it as your default parser, for example in your Application class constructor as shown below.
<dependency>
<groupId>is.rebbi</groupId>
<artifactId>parsley</artifactId>
<version>1.2.0</version>
</dependency>
<!-- make sure to also remove WOOgnl from the pom if present -->
public Application() {
parsley.Parsley.register();
parsley.Parsley.showInlineRenderingErrors( isDevelopmentModeSafe() ); // For enabling inline error reporting in dev mode
}
Parsley is an evolution of Project Wonder's WOOgnl template parser. It's largest currently visible "new feature" is inline display of some common templating errors during development, replacing the beloved meter long stack trace pages.
Parsley's largest changes are behind the scenes though. It parses templates to an AST before converting them to a WO Dynamic Element template. This is what enables the inline error messages and will allow for some more fun functionality as we extend it. Parsley's template parser is also used in ng-objects, meaning templates that work in WO under Parsley are syntactically guaranteed to carry over.
Note that Parsley does not support all of WOOgnl's features. Specifics can be found in the section "Differences from WOOgnl" in the README
| 🤸♀️ wonder-slim | Simplify class structure for ERExtensions' dynamic element patches | Jun 27 |
| 💋 parslips | Move Inline Binding Shortcuts preferences to the Zombies category | Jun 27 |
| 💋 parslips | Reload tag aliases when a parsley-tag-aliases.properties changes | Jun 27 |
| 🌿 parsley | Add a note on parsley directly registering wonder elements | Jun 27 |
| 🌿 parsley | Removed the "not in 5.4" tag comments. No one cares. | Jun 27 |
| 💋 parslips | Bump wonder-slim project template to 8.0.3 | Jun 26 |
| 🤸♀️ wonder-slim | Update parsley v1.6.0 -> v1.6.1-SNAPSHOT | Jun 26 |
| ⚙️️ wonder-slim-deployment | Update wonder-slim v8.0.2 -> v8.0.3 | Jun 26 |
| 👨⚕️ examiner | Update wonder-slim v8.0.2 -> v8.0.3, parsley v1.5.0 -> v1.6.0 | Jun 26 |
| 💋 parslips | Add changelog entry for the shared tag registry | Jun 26 |
| 🤸♀️ wonder-slim | 8.0.3 | Jun 26 |
| 🌿 parsley | 1.6.0 | Jun 26 |
| 🌿 parsley | 1.5.0 | Jun 18 |
| 🤸♀️ wonder-slim | 8.0.2 | Jun 18 |
| 🦡 vermilingua | 1.1.5 | Jun 15 |
| 🤸♀️ wonder-slim | 8.0.1 | Jun 1 |
| 🌿 parsley | 1.4.2 | Jun 1 |
| 🦡 vermilingua | 1.1.4 | Apr 24 |
| 🚀 ng-objects | 0.1.1 | Apr 22 |
| 🦡 vermilingua | 1.1.3 | Apr 15 |
| 🌿 parsley | Switch components bypass tag-alias resolution (runtime dynamicElementWithName) | Jun 27 |
| 🧩 apiext-format | Root <wo class> uses the simple class name (Obj-C relic) — reconcile with FQN class references | Jun 25 |
| 🧩 apiext-format | Value sets — allowed values for a binding (literal enums and dynamic sources) | Jun 25 |
| 🧩 apiext-format | Declare the primary HTML element an element renders as | Jun 25 |
| 🧩 apiext-format | Review, document, and possibly redesign the binding-validation syntax | Jun 25 |
| 🧩 apiext-format | Element/component use scope (access control / visibility) | Jun 25 |
| 🤸♀️ wonder-slim | bfcache: stale page on back/forward after an ajax update | Jun 22 |
| 🦡 vermilingua | Write a file to the WOA containing some info about the build | Jun 22 |
| 🤖 modulo | Audit and complete the set of adaptor headers modulo injects | Jun 19 |
| 🦡 vermilingua | Non-clean rebuilds leave deleted/renamed resources in the .woa | Jun 15 |