For anybody interested in my on-going development work on this, follow the TW
“Calculator” prototype ready to play with
<https://talk.tiddlywiki.org/t/tw-calculator-prototype-ready-to-play-with/3816>
discussion
over at Talk TiddlyWiki.
On Saturday, June 25, 2022 at 5:44:56 PM UTC-3 Charlie Veniot wrote:
> I've never been in love with the approach of using a javascript macro to
> do basic arithmetic.
>
> Since it is on my mind, I'm turfing what I did before and redoing into
> something that can do way more complex math, but still in a way that feels
> natural.
>
> If you have suggestions, lob them over. Eventually, I'll lob a TiddlyWiki
> instance out on the web for folk to play with.
>
> Eventually, this will be one macro (TiddlyWiki au natural) to handle
> equation solving (i.e. show me the results of an equation) and equation
> building (a little bit like a calculator.)
>
> [image: Screenshot 2022-06-25 5.38.42 PM.png]
>
> On Monday, March 14, 2022 at 10:44:08 PM UTC-3 Charlie Veniot wrote:
>
>> I just updated the TiddlyWiki. The related javascript macro, I had
>> locked it down to make sure nothing other than `"0123456789 ()+-*/%"`
>> would be accepted, but I had totally forgotten about decimals.
>>
>> So now the javascript is locked down to make sure nothing other than
>> `"*0123456789
>> .()+-*/%*"` is accepted.
>>
>> So now this works:
>>
>> `<<EvalThis "{{{ [[25.9]] }}} * ( 1 + ( {{{ [[15%]removesuffix[%]] }}} /
>> 100 ) )">>`
>> i.e.
>> `<<EvalThis "{{ item_price }} * ( 1 + ( {{( [[tax_rate]removesuffix[%]]
>> })} / 100 ) )">>`
>>
>> On Saturday, March 12, 2022 at 2:51:47 PM UTC-4 Charlie Veniot wrote:
>>
>>> After a bit of discussion over on TiddlyTalk
>>> <https://talk.tiddlywiki.org/t/what-are-current-options-for-plain-arithmetic/2699/12>,
>>>
>>> I've resolved a security issue and feel good enough about the little
>>> solution for lengthy/complex (but primitive only) arithmetic expressions.
>>>
>>> In this sample TiddlyWiki instance
>>> <https://cjveniot.neocities.org/TiddlyWikiEvalThisMacro.html>, you'll
>>> find the following two tiddlers needed:
>>>
>>>
>>> - Eval.js (the javascript eval function, locked to only allow the
>>> characters (excluding the double quotes) "0123456789 ()+-*/%"
>>> - EvalThis tiddler with the EvalThis macro.
>>>
>>>
>>> Although I can't stand javascript, I am not fussy about TiddlyWiki
>>> filter operations for lengthy/complex basic arithmetic, and not really fond
>>> of bringing in any of the powerful plugins out there when I don't need that
>>> much oomph.
>>>
>>> Some sample macro references:
>>>
>>> `
>>> <<EvalThis "(100 + 2) / (9 - 1)">>
>>>
>>> <<EvalThis "59 % 3">>
>>>
>>> <<EvalThis "5**3">>
>>>
>>> <<EvalThis "( {{!!a}} * {{!!b}} ) / 2">>
>>>
>>> <$list filter="[range[25]]"> {{!!title}} / 2 = <<EvalThis "{{!!title}} /
>>> 2">><br> </$list>
>>> `
>>>
>>>
>>>
>>>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/e3c2b407-8a40-46a6-9250-bb695b918cb9n%40googlegroups.com.