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/2b0f4b70-53d5-46bb-980e-773de47b3170n%40googlegroups.com.

Reply via email to