I’m adding some functionality to my Captain’s Log, “daily notes” Tinderbox, inspired by Tom Erickson’s Proteus notebook (1996).
Captain’s Log is structured as a kind of deck log, with containers for Year, Month, Day and Entry. I use Tabs to constrain a view to a given Month or Day.
After some time, this becomes a rather long list of entries in a month, and visually scanning them from the Month view only gives the entry titles, which may not be enough to prompt recall of what the entry was about. (There are special categories of entries that are tagged or otherwise identified by prototype (special icons), which can be gathered by agents.)
Erickson writes:
Section and Subsection TOCs
The section and subsection TOCs are simply lists of their contents. The section TOC contains a list ofsubsections, and the subsection TOC contains a list of pages (where each page is represented by the first line of its contents). Clicking on any item in the TOC will take you to the appropriate page. Figure 3 shows an example of a subsection TOC (the “May '94” subsection of the “Daily Notes” section ). (Over time a convention has evolved of summarizing a content page’s important entries on its first line, enabling the TOC page to function as a sort of abstract or summary of its subsection.)
What I have conceived is using the $Text of a Month container in a similar fashion. What I’ve been able to accomplish so far is to create, for now, a Stamp:
$Text=collect(descendants,$Subtitle).replace(";","\n");
I’m using a Rule in a prototype p_Note to create $Subtitle:
$Subtitle=$Name+": "+$Text;
So far, everything seems to work. I suppose there may be a more elegant, or more generalized solution using $MyString in lieu of $Subtitle, but it was easier for me to figure out how to use $Subtitle. (I originally tried to see if collect() could return more than one attribute, $Name and the first line of $Text, but I don’t think that’s possible.)
I have two questions. The first perhaps relates to the “type” of data collect() returns, as the $Text that the stamp is applied to opens and closes with a square bracket “[” and “]”. I’d like to make those go away, mostly for aesthetic reasons. (Parenthetically, semi-colons in the source note $Text do some weird things, which is why they’re missing in Yeats.)
I suspect there may be some fancy “replace” thing I need to do, but it eludes me just now.
The far more challenging question is how do I make each of these lines in the Month container’s $Text, link to their original note (entry)?
For the moment, I see this stamp being applied at the close of a month, so it would be a “one and done,” action.
Since Day containers generally contain no $Text, they make a nice divider:
So, how do I make the square brackets go away?
How do I make each of those lines in $Text link to their source notes?
(I’m getting better, but this is a bit more advanced than I can begin to conceive a solution.)
I started a little model file to accomplish this part, and I’ve attached it here.
TOC Test.tbx (217.4 KB)