Hey, Tony —
The trouble in your case is that you're putting the formulas in quotes,
which makes TiddlyWiki treat them as strings. The experimental syntax for
attribute values is just *<tag attribute=(= 2+2 =) />* — no quotes outside
the mushroom brackets. Generally I use the formula-vars
<https://evanbalster.com/tiddlywiki/formulas.html#FormulaVarsWidget> widget
when I want to set one or more variables to formula-computed values. You
could use the vars widget with the new syntax for the same effect...
Be mindful of how you format the date strings, too (or use to_tw_date).
Things I'm thinking about right now:
- "if" and "else" widgets that work with formulas and switch their
content on and off.
- Functions to query transclusions/filters/variables with string
arguments
- eg. transclude(<<otherTiddler>>, "this-field")
- eg. filter("[range[1," & <<rangeMax>> & "]]")
- eg. variable("item" & <<index>>)
- Functions to grab transclusions/variables as raw text rather than
formula data.
- Might make the functions above do this, and add a "datum" function
that emulates the behavior of the direct syntax.
On Friday, 29 December 2017 21:22:33 UTC-6, TonyM wrote:
>
> Post Script,
>
> Of note is being able to add calculations to elements in TiddlyWiki and
> HTML which would otherwise be controlled using java script which is not so
> accessible to a novice in TiddlyWiki.
>
> Keep up the good work.
> Tony
>
> On Saturday, 30 December 2017 14:16:00 UTC+11, TonyM wrote:
>>
>> Evan,
>>
>> That works like a dream. Thank you.
>>
>> As you say "tiddlywiki-oriented functions" here are some that come to
>> mind I am trying to identify based on the current implementation
>>
>> if then else or other logical operators to transclude a tiddler, or
>> include content.
>>
>> For example hiding or displaying content based on logic from prior
>> answers or calculations.
>>
>> I am currently building a couple of macros to provide buttons with the
>> ability to increment a date by N days, weeks months etc...
>> My Problem is ensuring the result not the formula is returned. I have
>> calculated using formulas the new date and still struggling to right this
>> back to the input date field.
>> I think this already possible I am just trying to workout how to do it,
>> and as simply as possible.
>>
>> Here is a snipit that is not working.
>>
>> \define commitdateaction(label,datefield,update)
>> <$button tooltip="Change $datefield$ to $update$" class="tc-btn-invisible
>> tc-tiddlylink" >
>> <$action-setfield $field="$datefield$" $value="$update$"/>
>> $label$
>> </$button>
>> \end
>>
>> \define dateincrements(datefield,inc:"D W F M Q H Y")
>> <$set name=indate value="(= tw_date( {{!!$datefield$}} ) =)">
>> <!-- Main Loop -->
>> <$list filter="$inc$" variable=period>
>> <$list filter="[<period>prefix[D]]" variable=incperiod>
>> <!-- Day -->
>> <$set name=multiple value="1">
>> <$set name=label
>> value="(={{!!dateinc}}*<<multiple>>=)<<incperiod>>">
>> <$set name=newdate value="(=to_tw_date(add_days(<<indate>>,
>> <<multiple>>*{{!!dateinc}}))=)" >
>> <$macrocall $name="commitdateaction" label="<<label>>"
>> datefield=$datefield$ update=<<newdate>> />
>> </$set>
>> </$set>
>> </$set>
>> </$list>
>> ....
>>
>> <$select field=dateinc default='1'>
>> <$list filter='1 2 3 4 5 6 12' >
>> <option value=<<currentTiddler>>><$view field='title'/></option>
>> </$list>
>> </$select>
>> <!---
>> <$select field=dateincdec default='+'>
>> <option value="+">+</option>
>> <option value="-">-</option>
>> </$select>
>> Save and Provide Reset
>> -->
>> </$set>
>> <<newdate>>
>> \end
>>
>> Regards
>> Tony
>>
>>
>> On Saturday, 30 December 2017 13:07:44 UTC+11, Evan Balster wrote:
>>>
>>> Hello, Tony —
>>>
>>> Assuming you have both the formula plugin *and* the attribute-modules
>>> plugin installed, un-quoting your attributes will make them into formulas
>>> (instead of literal strings):
>>>
>>> \define showtodayrange(datefield1,datefield2)
>>> <progress
>>> value=(= days( date( {{!!$datefield1$}} ) , now() ) =)
>>> max=(= days( date( {{!!$datefield1$}} ) , date( {{!!$datefield2$}}
>>> )) =)/>
>>> \end
>>>
>>> The attribute-modules plugin is really just a stand-in for my core pull
>>> request, and the "safer" way to do this is to use the <<formula ...>> macro
>>> instead of the direct syntax. In this case you do quote the formula, but
>>> you don't include the mushroom brackets:
>>>
>>> \define showtodayrange(datefield1,datefield2)
>>> <progress
>>> value=<<formula "days( date( {{!!$datefield1$}} ) , now() )">>
>>> max=<<formula "days( date( {{!!$datefield1$}} ) , date(
>>> {{!!$datefield2$}} ))">>/>
>>> \end
>>>
>>> Gets me thinking about how I'd like to add some more tiddlywiki-oriented
>>> functions like transclude(tiddlerName, fieldName) and
>>> filter(expressionString) to formulas...
>>>
>>> On Friday, 29 December 2017 19:47:37 UTC-6, TonyM wrote:
>>>>
>>>> Evan,
>>>>
>>>> Thanks for another update.
>>>>
>>>> FYI: I drag this to my wiki and it is named untitled until I hit the
>>>> import button, not sure but there may be a plugin setting needing update.
>>>>
>>>> Also;
>>>>
>>>> I am trying to see if I can get the following to work, basicaly as a
>>>> version of Formulas as Tag Attributes
>>>>
>>>> Total days between, with a progress bar of days so far relative to today
>>>>
>>>> \define showtodayrange(datefield1,datefield2)
>>>> <progress value="(= days( date( {{!!$datefield1$}} ) , now() ) =)"
>>>> max="(= days( date( {{!!$datefield1$}} ) , date( {{!!$datefield2$}} ))
>>>> =)"></progress>
>>>> \end
>>>>
>>>> Regards
>>>> Tony
>>>>
>>>>
>>>> On Saturday, 30 December 2017 10:59:55 UTC+11, Evan Balster wrote:
>>>>>
>>>>> Formula 0.1.7 released:
>>>>> https://evanbalster.com/tiddlywiki/formulas.html
>>>>> GitHub and issue tracking:
>>>>> https://github.com/EvanBalster/TiddlyWikiFormula
>>>>>
>>>>> Changes:
>>>>>
>>>>> - Add math functions styled after GLSL for visual calculations
>>>>> - fract, modulo/mod, atan2, clamp, mix, step, smoothstep
>>>>> - Add capture group index to regexextract and regexextract1
>>>>> Functions
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#Functions>.
>>>>> - EG. regexextract("cats, red cats, and blue cats", "([a-z]+)
>>>>> cats", 1) results in red and blue.
>>>>> - Fix FormulaWidget
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#FormulaWidget>
>>>>> always
>>>>> parsing output in inline mode.
>>>>> - Make inline the default parsing mode for FormulaWidget
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#FormulaWidget>
>>>>> .
>>>>> - Add *experimental* $noRefresh option in FormulaVarsWidget
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#FormulaVarsWidget>
>>>>> .
>>>>> - This suppresses full-refreshing, resulting in a potentially
>>>>> significant performance boost (see
>>>>>
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#Harmonic%20Lattice>)
>>>>> when variables change.
>>>>> - This can cause incorrect refresh behavior.
>>>>> - Add *experimental* support for Formulas as Tag Attributes
>>>>>
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#Formulas%20as%20Tag%20Attributes>
>>>>> .
>>>>> - Example: <td colspan=(= 2+2 =)/>
>>>>> - For now, this requires a second plugin
>>>>>
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#%24%3A%2Fplugins%2Febalster%2Fattribute-modules>
>>>>> that
>>>>> modifies the TiddlyWiki core!
>>>>> - I've started a Pull Request
>>>>> <https://github.com/Jermolene/TiddlyWiki5/pull/3072> that would
>>>>> add official support to TiddlyWiki core for extensions like this.
>>>>>
>>>>> The changes here mostly have to do with things I've been interested
>>>>> in lately — specifically explorable explanations with SVG rendering
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#Real%20Projective%20Line>
>>>>> and
>>>>> datamining TiddlyWiki's source code with regular expressions
>>>>> <https://evanbalster.com/tiddlywiki/formulas.html#Widget%20Variable%20Inspector>
>>>>> .
>>>>>
>>>>> On Friday, 22 December 2017 20:07:54 UTC-6, TonyM wrote:
>>>>>>
>>>>>> Evan,
>>>>>>
>>>>>> Very small font, and 6 was, not easy to read. Sorry.
>>>>>>
>>>>>> I am doing the same as you, investing a great deal of time in
>>>>>> tiddlywiki for professional reasons and maximising my return to the
>>>>>> community, I have a dozen solutions in Progress and Have not published
>>>>>> any
>>>>>> yet.
>>>>>>
>>>>>> If it interests you
>>>>>> The key one I am working on now, which is benefiting from your
>>>>>> solution, thus I will need to bundle your plugin, is a "universal
>>>>>> tiddler
>>>>>> disposition tool".
>>>>>> Be it code, macros, contacts, ideas, todo, book reading, book
>>>>>> writing, reference notes etc... every tiddler can have or travel through
>>>>>> various life cycles including reoccuring ones.
>>>>>> I am providing a way to indicate the nature of each tiddler as it
>>>>>> exists in the tiddlyverse, I am then providing canned listings according
>>>>>> to
>>>>>> these dispositions, which are largely date driven.
>>>>>>
>>>>>> The theory is, with nothing more than describing what a given tiddler
>>>>>> is via its disposition, then using tools I provide to query such
>>>>>> dispositions the user effectively gains an unlimited number of solutions
>>>>>> and applications.
>>>>>>
>>>>>> For my business it turbo charges rapid development of solutions.
>>>>>>
>>>>>> This is the virtuous circle of a healthy open source community.
>>>>>>
>>>>>> Regards
>>>>>> Tony
>>>>>>
>>>>>> On Saturday, 23 December 2017 12:29:30 UTC+11, Evan Balster wrote:
>>>>>>>
>>>>>>> Hey, Tony —
>>>>>>>
>>>>>>> Pleased to serve! I'm building this with my own needs in mind
>>>>>>> foremost, but I happened to be in a situation where I could justify
>>>>>>> putting
>>>>>>> professional time into the project and make something fairly robust and
>>>>>>> feature-rich. I get a lot of satisfaction out of putting together a
>>>>>>> nice
>>>>>>> tool, and it's a fun diversion from my larger project. :)
>>>>>>>
>>>>>>> The Get your Plugin indicates the plugin is Version 0.1.0 although
>>>>>>>> it is now 0.1.6
>>>>>>>
>>>>>>>
>>>>>>> Et tu, cache? Try refreshing.
>>>>>>>
>>>>>>>
>>>>>>> On Friday, 22 December 2017 19:14:40 UTC-6, TonyM wrote:
>>>>>>>>
>>>>>>>> Evan,
>>>>>>>>
>>>>>>>> For you
>>>>>>>> At https://evanbalster.com/tiddlywiki/formulas.html the Get your
>>>>>>>> Plugin indicates the plugin is Version 0.1.0 although it is now
>>>>>>>> 0.1.6
>>>>>>>>
>>>>>>>> From me
>>>>>>>> Thanks so much for your work here, Looking ahead I can see dozens
>>>>>>>> of features/solutions I wish to build, being supported by "formulas".
>>>>>>>>
>>>>>>>> It seems this path you have taken is already removing barriers,
>>>>>>>> that appeared in tiddlywiki for some time, and providing shortcuts to
>>>>>>>> others.
>>>>>>>>
>>>>>>>> Of course the number of features are so rich I have had too little
>>>>>>>> time to investigate and test how to solve some of my problems. But you
>>>>>>>> have
>>>>>>>> made my obsession with tiddlywiki even stronger.
>>>>>>>>
>>>>>>>> You may of spent some time building this but that time is possibly
>>>>>>>> small compared to the time I will now spend learning to leveraging it,
>>>>>>>> not
>>>>>>>> to mention that in the long run I will save time and reduce design to
>>>>>>>> deployment times.
>>>>>>>>
>>>>>>>> Be aware, I for one, and I presume many others, are very grateful
>>>>>>>> for your work here. I can only wish you all the best in return and
>>>>>>>> thank
>>>>>>>> you deeply.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Tony
>>>>>>>>
>>>>>>>>
>>>>>>>> On Saturday, 23 December 2017 10:41:25 UTC+11, Evan Balster wrote:
>>>>>>>>>
>>>>>>>>> Announcing Formula 0.1.6:
>>>>>>>>> https://evanbalster.com/tiddlywiki/formulas.html
>>>>>>>>> GitHub & issue tracking:
>>>>>>>>> https://github.com/EvanBalster/TiddlyWikiFormula
>>>>>>>>>
>>>>>>>>> - Enhanced performance.
>>>>>>>>> - Add range Operator for counting.
>>>>>>>>> - *FormulaWidget results are now wikified by default*.
>>>>>>>>> - Made filter behavior more consistent with TiddlyWiki
>>>>>>>>> - Support compound filters with + and - (these break
>>>>>>>>> precedence rules).
>>>>>>>>> - *Arrays now convert to strings in TiddlyWiki list format.*
>>>>>>>>> - Implement escape sequences in String Literal.
>>>>>>>>> - \\, \', \", \n, \r, \t, \v, \f, \b, \0, \u1234 (unicode)
>>>>>>>>> - Add calendar functions: is_leap_year(y), days_in_year(y),
>>>>>>>>> days_in_month(y,m)
>>>>>>>>> - Add math functions: gcd and lcm
>>>>>>>>> - Fix support for (?igm) flags in regular expression strings.
>>>>>>>>> - Make regexextract and regexreplace search globally by
>>>>>>>>> default.
>>>>>>>>> - Make regexmatch and regexextract1 search non-globally by
>>>>>>>>> default.
>>>>>>>>> - Implement selective evaluation to save performance.
>>>>>>>>> - Logic functions supported: if
>>>>>>>>> - (Still experimenting with this, and may go in a very
>>>>>>>>> different direction).
>>>>>>>>> - Implement operand c
>>>>>>>>>
>>>>>>>>>
--
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 post to this group, send email to [email protected].
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/4282b849-5de2-498b-9e93-7dc8d7512353%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.