Transcluding Groups of Text from Journal into Topical Tiddlers

Hello, excited to see this group and asking for a little help with direction regarding where to find an answer for functionality that it looks like is no longer supported in TW5. I’d like to start with a direct question and explanation about it’s use. Working to maintain the capability as it was key in the way that I processed information (why I liked tiddlywiki… very personal… very customizable).

I used to be able to use the below to transclude sections of text from any and all tiddlers (in my case mainly Journals) based on header description (see the post from StS “Transclude tiddler based on formatted headline '23”). My use case is that I could use a daily journal tiddler to collect all pertinent information for the day in a single tiddler. Then identifying and grouping “like” information in the journal under Headers with related titles. Such as “To Do”, “Accomplished”, “Meeting Notes”, “Quotes”, " etc… Keeping all forms of information, for that day, in a single journal tiddler. Then having master or topical tiddlers that would transclude that information from all of the journals. So a “To Do” master tiddler (that would pull all “To Do” items from the journals. Listed nicely.), an “Accomplished” master tiddler, a “Quotes” master tiddler, a “My Customer” tiddler, etc… Making it so I did not have to manage a to do list, or quotes, etc. other than making it a stream of consciousness that was captured in my journal. Then using the power of tiddlywiki to pool like information into master tiddlers.

''My: Customer''
<<forEachTiddler
    where
        'tiddler.text.contains("MyCust:") && tiddler.title != "MyCust"'
    sortBy
    	'tiddler.created'
    ascending
    write
        ' "!!!![[" + tiddler.title + "]] +++[List|Click Here to Open]<<tiddler [[" + tiddler.title + "##MyCust:]] $))===\n" '
>>

I understand that I can create individual tiddlers with unique tagging and field information to then be used to transclude various pieces of information. Which for me seems choppy and disjointed. A lot to manage. The above was simple. Journal everything, place it within certain headers within the journal, let master tiddlers transclude and pool the information automatically. For clarification the journal tiddler was not used to log certain data points or fields as much as a loose capture of text/thought. I hope that what I have explained, and am asking for, was communicated in a way that makes sense.

I do appreciate any feedback or direction that might help me accomplish the same thing. It may take my having to scrub “how I used to do it” and adopt a new way? But it worked wonderfully for me in the past. If it is a reference that you have to suggest I’d appreciate it. Thank you.

Hello @JMcNeil and welcome to the forum!

I too recall the growing-pains of migrating to TW5 from Classic. Overall I think it’s worth it, but there were a few sticking-points for me.

I do think most of the trouble was upgrading my own habits, though I recall that a small set of things were smoother on Classic. Still, they are outnumbered by the many features that are fantastically powerful on TW5.

It’s true that TW5 encourages you to use fields for most things that will have data-structure.

Still, there are folks who have been working on some solutions for this kind of challenge — finding bits from within the text field, and collecting them.

Here’s one thread with related discussion: [IDEA] Extract Feature in The TiddlyWiki Core

It mentions…

https://cherrypicker.tiddlyspot.com/
https://tid.li/tw5/hacks.html#Extract%20Macro

I hope others will chime in as well!

One other thought is that something like the Streams plugin is an interface that will feel like a single journal tiddler while you’re using it, but it actually creates a bunch of tiddlers — behind the scenes as it were — that then can be powerfully leveraged in a more granular way.

1 Like

Thank you Springer. I appreciate your response and will dig into your suggestions.

1 Like

Welcome to the Talk TiddlyWiki community!

I’m not sure if the code you’re showing uses syntax from classic TW, or if you were using a plugin that allowed extra abilities. In any event, almost none of the dynamic aspects of TW Classic made it into TW5. It’s its own thing.

With TW5, you put things together primarily using widgets that look like HTML tags but have special abilities. You provide a filter which is really like it’s own mini-programming language. Possibly the most important widget to understand is the <$list> widget.

This is a simplified version of what your code did. I simplified the output since I didn’t really understand what the output would look like, and I’m not really good with output. It uses the regexp filter operator to match your text, but then uses the match operator to reject exact matches. The sort filter operator sorts by created date.


''My: Customer''

<$list filter="[all[tiddlers]regexp[MyCust]!match[MyCust]sort[created]]">

!!!! <$text text=<<currentTiddler>>/> +++<$link>Click Here to Open</$link>
</$list>

Sample output:

image

1 Like

Thank you Mark_S. What I was showing was from a plugin in classic TW. Used it for years and I think I just got comfortable with it’s existence and results. Having to move into the world of TW5 after years of settling for classic TW has been a challenge. But there are a lot of great resources… including this community.

I really appreciate you taking the time to share what you did and provide the version of code that you did.

You and Springer have been great! Thank you again.