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.