It looks like you're catching on fast.

The one thing that concerns me is that with this code:

removesuffix<suffix>

I don't see where variable "suffix" was defined anywhere. So "senses" will 
be wiped out by it. Pardon me if I've missed something, my eyes aren't what 
they used to be.

On Monday, April 13, 2020 at 2:20:12 PM UTC-7, Jalen MichalsLevy wrote:
>
> Thanks for your help! I see that nested lists are very useful. And I 
> didn't know about transcluding in filter notation like that. I see what 
> you're saying about the second part being sensitive to typos. I realized 
> that in making these tiddlers that I am trying to change, I have used many 
> short-hands for referring to 'passive Perception'. I have used 'passive 
> perception', 'passive Perception', 'PP', and 'pp'. Very sloppy of me, I 
> will admit, though i have never been formally trained in coding so I am 
> learning the housekeeping as I go. Because of this, I decided to try your 
> assigned exercise! I don't think I was able to include a fail-safe, but 
> rather made it more fool proof. Check out what I have:
>
> __''Step 1'': Select precise language used in "senses" field:__ 
>
> <$select tiddler = "$:/TempPassivePerceptionTest" >
> <option>---</option>
> <option>passive perception</option>
> <option>passive Perception</option>
> <option>PP</option>
> <option>pp</option>
> </$select>
>
> <hr>
>
> __''Step 2'': Grab passive Perception from "senses" field and put it in 
> its own field:__
>
> <$set name = 'y' value = {{$:/TempPassivePerceptionTest}}>
> <$button>Create Passive Perception Fields
>
> <$list filter="[regexp:senses<y>]">
> <$list filter = "[<currentTiddler>get[senses]split[ ]last[1]]" variable = 
> 'x'>
> <$action-setfield  pp=<<x>>/>
>
> </$list>
> </$list>
> </$button>
> <$set>
>
> <hr>
>
>
> __''Step 3'': Get rid of the 'passive Perception' and score from the 
> "senses" field:__
>
> <$set name = 'y' value = {{$:/TempPassivePerceptionTest}}>
> <$button>Change Senses
> <$list filter = "[regexp:senses<y>]">
> <$list filter = "[<currentTiddler>get[senses]split[ ]last[1]]" variable = 
> 'x'>
>
> <$action-setfield  
> senses={{{[<currentTiddler>get[senses]removesuffix<suffix>] }}}/>
>
> </$list>
> </$list>
> </$button>
> </$set>
>
> <hr>
> <!-- List of tiddlers and relevant values -->
>
> <span style = "color:darkred;"> ''List of affected tiddlers | Last Item in 
> the "senses" field | Contents of "pp" field'' </span>
>
> <$set name = 'y' value = {{$:/TempPassivePerceptionTest}}>
> <$list filter = "[regexp:senses<y>]">
> <$list filter = "[<currentTiddler>get[senses]split[ ]last[1]]" variable = 
> 'x'>
> <br><$link to = {{!!title}}> {{!!title}} </$link> | <<x>> | {{!!pp}}
> </$list>
> </$list>
> </$set>
>
>
>
> On Sunday, April 12, 2020 at 9:41:44 PM UTC-4, Mark S. wrote:
>>
>> Be sure to have a backup file before trying this! 
>>
>> This method requires you to hit a button twice. First to populate 
>> "passiveperception", and then again to trim the end of senses. 
>> This is because you might not want to push the second button. 
>>
>> Note that the second part in particular will be very sensitive to typos. 
>> If it's wrong even by case or extra white space, it will change "sense" to 
>> nothing!
>> Sorry, there should be a fail safe mechanism, but it would take too long. 
>> Putting in a fail safe is left to the 
>> student as an exercise. ;-)
>>
>> Good luck!
>>
>> \define passiveperception() passive Perception $(x)$
>> <$button>Change All Passive Perception
>>
>> <$list filter="[has[senses]]">
>> <$list filter = "[<currentTiddler>get[senses]split[ ]last[1]]" variable = 
>> 'x'>
>> <$action-setfield  passiveperception=<<x>>/>
>>
>> <!-- <<x>> <br/>this is so I could verify that the variable 'x' held the 
>> correct value -->
>> </$list>
>> </$list>
>>
>> </$button>
>>
>> <$button>Change Senses
>>
>> <$list filter="[has[senses]]">
>> <$list filter = "[<currentTiddler>get[senses]split[ ]last[1]]" variable = 
>> 'x'>
>> <$action-setfield 
>>  senses={{{[<currentTiddler>get[senses]removesuffix<passiveperception>] }}}/
>> >
>>
>> <!-- <<x>> <br/>this is so I could verify that the variable 'x' held the 
>> correct value -->
>> </$list>
>> </$list>
>>
>> </$button>
>>
>>
>>
>> On Sunday, April 12, 2020 at 3:11:45 PM UTC-7, Jalen MichalsLevy wrote:
>>>
>>> Hi there, 
>>>
>>> I have many tiddlers (of the same unique type), which contain the field 
>>> "senses". The 'senses' field contains values that look something like this: 
>>> "Darkvision 60ft., passive Perception 12". Now, it has come to my attention 
>>> that it would be far more useful for Passive Perception to be its own field 
>>> with its own numeric value. Instead of doing this manually, as there are 
>>> hundreds of tiddlers like this, I want to make a button that will do this 
>>> by batch. Basically, I want to take the last word (which is actually a 
>>> number in all cases) from the 'senses' field and put it into a new 
>>> "passive-perception field". I have played around with the list widget and 
>>> filter notation, trying to use the 'enlist' operator and the 'last' 
>>> operator, and was able to make it work for a single tiddler (see below). 
>>> But I think I am definitely missing something that ties it all together and 
>>> makes it work for a batch. Any help would be appreciated. Bonus points if 
>>> you can also tell me how to delete the words 'passive Perception ##' from 
>>> the end of the 'senses' field. Thank you!
>>>
>>> Code for a single tiddler:
>>> <$list filter = "[{Boar!!senses}split[ ]last[1]]" variable = 'x'>
>>>
>>> <<x>> <!-- this is so I could verify that the variable 'x' held the 
>>> correct value -->
>>>
>>> <$button set = "Boar!!passiveperception" setTo = <<x>> >
>>> Change Boar's Passive Perception
>>> </$button>
>>>
>>> </$list>
>>>
>>> Thank you!
>>>
>>> -Jalen
>>>
>>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/64ef062f-4040-49e2-96f9-cf3bdbaee692%40googlegroups.com.

Reply via email to