Tinderbox Meetup 18 AUG 2024 (Video): Creating Notes from Attri Value and Obsidian Property Parsing

Tinderbox Meetup 18 AUG 2024: Creating Notes from Attri Value and Obsidian Property Parsing

Level Intermediate
Published Date 8/19/24
Type Meetup
Revision No 3
Revision Date 9/22/24
Revision History Rev 2: Updated sample file, replaced eval() with action(), moved item clearing; Rev 3: updated watch folder
Acknowledgements @eastgate, @mwra
Tags .at(), .eachLine()., .split(), 5Cs of Personal Knowledge Management, Action Code, Attribute, BBEdit, BBEdit Playground, ChatGPT, Eastgate, Identity Praxis, Inc., Michael Becker, Obsidian, Properties, RegEx, Tinderbox, eval(), include(), action()
Video Length 01:39:56
Video URL https://youtu.be/eavxUp5afqg
Example File TBX L - Obsidian Stream Parsing R4.tbx (159.6 KB)
Chat File [GMT20240818-160141_RecordingnewChat.txt
TBX Version 10
Host Michael Becker

In this Tinderbox Meetup, we 1) reviewed and helped @ (Paul Christy) debug a script to create Contact notes based on the Participants from imported emails, 2) walked through a process to import Obsidian (Obs) notes into Tinderbox with Watch Folder and then extract Obs properties using the .eachLine() stream parser. We wrapped up with Michael demonstrating 1) how to copy Glossary terms in a Word file and then to past them into Tinderbox and clean them up using explode, .split(), and .at() operators, and 2) how to manage unique file names IDs and image `^includes()^ when working with a co-author using a separate TBX file. Spoiler Alert: For the Obs flow, we ran into a question for eval() that we’ve posted to @eastgate—this question needs to be addressed to complete the workflow.

1 Like

Thanks for a great session! This was extremely helpful.

During the session we had an issue with

{eval(vAttri)+=$1;};

for a prototype.

I also tried

{action(“$” + vAttri + “+=” + $1);}

but the prototype still is not assigned as far as I can tell.

I think action is preferred to eval?

thanks, Frederick

@eastgate and @mwra figured out the solution for us. You are right, we should use action() in replace of eval(). Here is the updated stamp an file. :slight_smile.

Works great now. Next weekend we can do a bit more refinement that I have in mind.

var:boolean IsAttri=false;
var:string vAttri=;
var:list vList;
$Text("Log")="";

$Text.eachLine(aLine){
   //Checkf or attribute
   //$Text("Log")=aLine;
   if(aLine.icontains("(.*?):")){
      IsAttri=true;
      //$Text("Log")+=$1;
      vAttri=$1;
      //Capture id Value
      if(vAttri=="id"){$id=aLine.following(": ");};
      if(vAttri=="Prototype"){$Prototype=aLine.following(": ");};
      if(vAttri=="StartDate"){$StartDate=aLine.following(": ");};
      vAttri="$"+vAttri;
   }else{
      aLine=aLine.asString.replace('"',"").replace("\[\[","").replace("\]\]","");
      $Text("Log")=vAttri;
      if(aLine.icontains("^  - (.*)")){
       action(vAttri+"+="+$1);
      };
   };
};

TBX L - Obsidian Stream Parsing R3.tbx (9.2 MB)

3 Likes