Joshua 

Thanks for your thoughts.

To others, can someone help me understand why my posts often don't get many 
(if any) response?  The first time this was posted it also inspired almost 
no response. This time as well. This happens to several of my posts, so I'm 
curious as to my "disconnect" with the community somehow. 

On Wednesday, March 3, 2021 at 8:27:43 PM UTC-6 joshua....@gmail.com wrote:

> If we did add a relationship type to links, it helps to unpack the 
> WikiText version of Links into their <$link> widget equivalent.
>
> [[LinkText|CurrentTiddler]] unpacks to the following "parse tree" json in 
> the internal javascript
> ```
> { type: "link", attributes: { to: {type: "string", value: link} }, 
> children: [{ type: "text", text: text }
> ```
> which is the equivalent to typing:
> ```
> <$link to="CurrentTiddler"><$text text="LinkText"/></$link>
> ```
>
> Now, as we want "typed" links to other tiddlers, and probably not to 
> external resources (hey, make a tiddler that points there), then we can 
> re-use the pattern fro the "extended external link" WikiText, and the 
> "extended image" WikiText. It would look something like:
>
> ```
> [type:relationship[LinkText|CurrentTiddler]]
> ```
> which would then render as
> ```
> { type: "link", attributes: { to: {type: "string", value: link}, type: 
> {type: "string", value: type} }, children: [{ type: "text", text: text }
> ```
> and be the equivalent of typing
> ```
> <$link to="CurrentTiddler" type="relationship"><$text 
> text="LinkText"/></$link>
> ```
>
> So, you could not use referenced (transcluded, macro, variable) data for 
> the type in the WikiText version, but you could in the full Widget version.
>
> Something to think about....
>
> Best,
> Joshua Fontany
>
> On Wednesday, March 3, 2021 at 12:46:09 PM UTC-8 dieg...@gmail.com wrote:
>
>> Hello all,
>>
>> I thought again about one of my previous posts, and I thought I'd try 
>> reposting it and editing it to encourage more conversation/ideas around 
>> this topic.
>>
>> In my mind, *linking* is one of the two major pillars of TW 
>> (searching/filtering being the other - why I think a lot and comment a lot 
>> about search). If I want to link to a tiddler there are *four* (used to 
>> be three) issues of concern:
>>
>> 1. what I want to type
>>
>>    - Aliases provided by the un-link plugin are magical here! A tiddler 
>>    with "long title of method" can save me many keystrokes (and potential 
>>    typos!) if I just type the name of the alias.
>>    - Critically, this is decoupled from where I want the *link to go*, 
>>    and what I want it to *render as*. I don't ever want to type "a very 
>>    long title", or if the core also supports uniqueIDs, I don't want to type 
>>    timestamps. 
>>    - Something that I think should be incorporated into the core (!!!!) 
>>    (or at least with uni-link) is the Edit-Comptext dropdown plugin 
>>    <https://snowgoon88.github.io/TW5-extendedit/>. This plugin already 
>>    lets you define custom dropdown templates, so its natural to incorporate 
>>    the filters uni-link provides. 
>>
>>
>> 2. where I want the link to go
>>
>>    - If we're not just focusing on aliases for a second, this isn't as 
>>    straightforward as I initially thought - frequently I want a link to go 
>> to 
>>    a tiddler with a specific title (this is the obvious case).
>>    - Sometimes I want a link to go to a specific tiddler, *regardless of 
>>    its title**. *For example, my TW is constantly evolving as my system 
>>    of knowledge is evolving - I rename things, reorganize, etc 
>>    *frequently.* If I rename a method, or person, etc. all of my links 
>>    to this tiddler no longer work 
>>    - (there have been previous discussions of renaming tiddlers 
>>       triggering a search/replace). 
>>       - * The recently introduced relink plugin solves this particular 
>>       problem! *
>>       - I am more interested in being able to link to a tiddler by some 
>>    kind of unique ID (for example, created timestamp, or another field) - 
>> *that 
>>    way, renaming a tiddler's title does not trigger massive textual changes 
>> in 
>>    the rest of my tiddlers*
>>       - I use version control, so it's a bit annoying when I rename one 
>>       tiddler, my commit object contains changes to 20 other tiddlers whose 
>> links 
>>       to this one tiddler also had to change. 
>>       - Uni-link address this issue, by introducing a (hopefully) unique 
>>       field: *aliases*.
>>       - So now I can link to [[coolMethod|?]] *regardless of the actual 
>>       title of that tiddler!* This is a wonderful feature!
>>    
>>
>> 3. what I want the link to render/display as in view mode
>>
>>    - TW already supports some version of this, as sometimes it's 
>>    appropriate to render a tiddler's title, other times its caption. I just 
>>    want to extend this so that the user has more fine-grained control over 
>>    this. 
>>    
>>
>> 4. What kind of relationship I want the link to represent
>>
>>    - Thanks to the illuminating typed links thread 
>>    <https://groups.google.com/g/tiddlywiki/c/C0CqNyKU1Jc/m/KgwIfWy5AQAJ>, 
>>    I've come to realize this is also a central concept in linking! 
>>    - Coupled with the ideas given in the recent "Athens" thread about 
>>    thinking of your knowledge graph more *formally* as an actual graph, 
>>    it makes sense to think of the kind of connection you want to represent. 
>>
>>
>> Link Syntax:
>> Note: below I introduce some spaces to help with legibility, not paying 
>> attention to the fact that they actually aren't in the syntax.
>>
>> Currently, the core supports two link types:
>>
>>    - [[ link target ]]
>>    - [[ Display text | link target ]]
>>
>> Uni-link introduces two more:
>>
>>    - [[ alias name |?]] - links to a target that has 'alias name' in its 
>>    aliases field. Note you did *not* specify the target name at all! 
>>    Only its alias! 
>>    - [[ alias name |? fieldNameToRender]] - links as above, but displays 
>>    not the alias name or the target name, but the content of the field given
>>
>> We see that the last uni-link syntax gives the following:
>>
>>    - ✅ lets me type a short alias for any target 
>>    - ✅ allows me to NOT have to specify the target tiddler with a long 
>>    name
>>    - ✅ changing the target tiddler name does NOT affect any alias links
>>    - ✅ lets me easily specify what I want the link to display/render as
>>
>> The only missing feature (besides the autocomplete given by the 
>> EditComptext plugin) is specifying the relationship type. 
>>
>> I have no idea what syntax would "make the most sense" but I can propose 
>> some: 
>>
>>    - relationshipType::[[ aliasName |? fieldNameToRender]] - like in 
>>    Roam?
>>    - [[ aliasName |? fieldNameToRender | relationshipType]]
>>
>> I'll let others think of a better syntax given TWs internals. 
>>
>> I'm anxious to hear others thoughts! 
>>
>> Diego
>>
>

-- 
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/485b3997-7726-4c23-a3de-d011edf0a506n%40googlegroups.com.

Reply via email to