Hi Tobias.

Is It possible to using this plugin to make conditional statement like if 
{{!!foo}} >80 then print A. I am try to make gradebook using TW5. Thank you.

On Monday, December 7, 2015 at 8:00:44 AM UTC+8, Tobias Beer wrote:
>
> Hi everyone,
>
> I hereby release the new eval 
> <http://tobibeer.github.io/tw5-plugins/#eval> plugin (or tobibeer/eval 
> <http://tobibeer.github.io/tw5-plugins/#eval>) which provides an *eval* 
> filter and an *eval* widget ...the latter working similar to the *calc* 
> widget in mklauber/math.js <http://mklauber.github.io/tiddly-mathjs/>, 
> however leveraging a "plug-and-play" library model (and then some).
>
> The *eval* plugin was born out of my desire (and Jeremy's suggestion) to 
> overcome the constraints of let filter 
> <http://let.tiddlyspot.com/#GettingStarted>, (henceforth abandoned,) 
> which started out with similar aspirations, allowing to compute and compare 
> with tidbits, however, somewhat at the wrong end of the stick.
>
> If you prefer to learn by example, take a look at the examples 
> <http://tobibeer.github.io/tw5-plugins/#eval-Examples>.
>
> The repo and the commented, non-minified source code is at:
> https://github.com/tobibeer/tw5-eval
>
> Although quite neatly designed, thoroughly tested and refactored, I have 
> flagged this release as *BETA* so as to invite you to test it, and also 
> to indicate that — architecturally speaking — things might nevertheless 
> still change, perhaps. With or without further modifications, I intend to 
> take it out of BETA in, say, a couple of weeks.
>
> Eval is capable of evaluating expressions leveraging different libraries, 
> for now supporting:
>
>    - *math.js*
>       - you need to separately install tobibeer/math.js 
>       <http://tobibeer.github.io/tw5-plugins/#math.js> which contains 
>       nothing but math.js <http://mathjs.org/> itself
>          - and avails it at *$:/lib/math.js*
>       - should you already use mklauber/math.js 
>       <http://mklauber.github.io/tiddly-mathjs/>, *eval* will load the 
>       *math.js* version it ships with
>          - so there's no need to install *tobibeer/math.js*
>       - *js*
>       - allows to evaluate native javascript
>       - needs to be specifically enabled, see configuration 
>       <http://tobibeer.github.io/tw5-plugins/#eval-Configure>
>       - in other words, you don't even need any *math.js* if...
>          - you are confident to do your math in nothing but js
>          - wish to trim those resource requirements
>       
> The eval filter provides the following capabilities:
>
>    - a *main* expression to be evaluated, obviously ...being the operand
>       - you can specify more expressions, predefined or custom 
>       variables, and options, all in the operand
>          - separate different operand declarations via backslash (*\*), 
>          defined as *name:value* e.g...
>       - an *init* value — initializing the *value* before taking off to 
>    evaluate the main expression against each input title
>    - a *final* expression — a final computation after the *main *expression 
>    had been evaluated against the last input title
>    - the *value* and *title* run-time variables — automatically set for 
>    each input title, for use in the *main* or *final* expression
>    - a *format* option — to have math.js nicely format your output value
>    - a *lib* option — to specify for each filter instance which library 
>    to use in order to evaluate the given expression(s)
>    - custom *variables — *any name that is not a predefined variable or 
>    option
>       - to help make your *main* or *final* expression more readable
>    - the suffix — to define what to return
>       - *no suffix:* returns just the final *value*
>       - *output mode* suffixes, prefixed *$*, use one at a time, 
>       returning...
>          - *$* — those input titles where value is truthy
>          - *$all* — all input titles if the value is truthy for any input 
>          title
>          - *$val* — a list of values, one for each input title
>          - *$expr* — a list of expressions, one for each input title
>          - *$eq* — a list of equations, one for each input title => great 
>          for debugging
>       
> Both *text references* as well as *wikitext-variables* can be used freely 
> in the operand and are substituted in any expression or variable. (*Note*: 
> custom variables are only evaluated on init, not during iterations. They 
> shall also not reference each other).
>
> Ok, so... hope to see you give it a test-ride and let me know what you 
> think, what things may not work (as expected) but also which work just 
> about right. ;-)
>
> ~
>
> For loading libraries, the *eval* plugin does some neat dependency 
> resolving, the gist of which I hope will eventually find its way into the 
> core, in one form or another. That way, we don't ship and install things 
> like *vis* or *math.js* or any other library with any plugins that build 
> on them. Nor does plugin A require plugin B, just to not duplicate a given 
> library. For math.js, for example, there barely any needs for a plugin to 
> depend on a given version of math.js. But even that can be catered for with 
> some minor amends as to version handling / dedicated library versions 
> resolved in just about the same way as *eval* does right now.
>
> Best wishes,
>
> Tobias.
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/f9e8a3d9-398b-473e-bafa-41a6fe7f607a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to