What's the standard way to not writing Title

The “Recent tiddlers” sidebar list output is generated by the <<timeline>> macro (see $:/core/macros/timeline).
This macro already has some infrastructure for customizing the output. Take note of the first few lines of the macro definition:

<!-- Override one or both of the following two macros with a global or local macro of the same name 
if you need to change how titles are displayed on a timeline -->

\define timeline-title() <$view field="title"/>
\define timeline-link() <$link to={{!!title}}><<timeline-title>></$link>

Thus, you can create a tiddler (e.g., MyTimeline), tagged with $:/tags/Macro, containing something like this:

\define timeline-link()
<$link/>
<pre style="margin:0 1em;font-size:80%;line-height:1em;color:initial;white-space:normal;">
<$let excerpt={{{ [{!!text}split[]limit[100]join[]] }}}><<excerpt>></$let>
</pre>
\end

The result is that the “Recent” sidebar list will show each title, followed by a 100-character excerpt of that tiddler’s content.

A similar (but slightly more involved) approach can be used to customize the search results output.

  • Start by cloning the $:/core/ui/DefaultSearchResultList tiddler.
  • Give it a new title (e.g., MySearchResults)
  • Change the caption field to something like Excerpts
  • Completely replace the text field contents with:
\define searchResultsExcerpt()
<pre style="margin:0 1em;font-size:80%;line-height:1em;color:initial;white-space:normal;">
<$let excerpt={{{ [{!!text}split[]limit[100]join[]] }}}><<excerpt>></$let>
</pre>
\end
{{$:/core/ui/DefaultSearchResultList}}
  • Then, edit the shadow tiddler $:/core/ui/ListItemTemplate
  • Change the text field contents from:
<div class="tc-menu-list-item"><$link /></div>

to

<div class="tc-menu-list-item"><$link /><<searchResultsExcerpt>></div>

You will now have an additional tab displayed in the sidebar search results. The second tab (called “Excerpts”) will show the same lists as the $:/core/ui/DefaultSearchResultList, but with the addition of a 100-character excerpt of each tiddler’s contents.

enjoy,
-e

But when you modify the text later, this won’t work.

For example, calendar entries, you may add details, or drag to change the time duration later (in tw-calendar plugin). And “quick memo”, that you only write down text, you may modify the text later.

I just hope every plugin using same rule, and core Recent tabs too, without need to customize it. So this should be a rule in the core.

To be honest I am not clear why you wanted these non titles. My suggestion would work for some use cases but clearly not yours.

Perhaps you mean automatic titles that have a caption or text displayed as if it were the title if the automatic titles is still in use.

I do not think this nessasarily should be in the core unless very well designed and usable in many ways, in part because its easy to introduce this only when needed with custom new tiddler buttons and a title cascade.

  • I already have title tools that replace the real title with caption or alt-title.
  • Have you tried setting the caption field to {{!!text}} such that if current tiddler is valid, lists that use the caption field should do as you ask.
  • have you tried changing the streams filter that generates titles?. I tend to use system titles so they do not appear in recent lists.

After my wiki reach 26k tiddlers after importing Evernote, there are many image tiddlers with hash in title, so search will hit them every time.

If you have enough random titles, you can’t stop search feature hit them, because any word can be included in some hash.

So by prefix the title with λ:/, you not only mean

  1. title is auto generated
  2. don’t show them in official Recent tab
  3. Official View template don’t show it as title. If no caption find, just show nothing.

But also mean

  1. Don’t search this title

@linonetwo my first reaction to this is to just make use of the $:/ namespace, even further qualified to $:/evernote/tiddlername however if you want to use another namespace it is a matter of making changes in various places to achive the equivalent. For example;

  • Modify the standard search to exclude tiddler prefix[λ:/] from the search
  • Modify the recent tab to not show them either

However I would favor importing, or export the then import the tiddlers within a plugin then they will be shadows unless modified, and will not appear in search results, and it will be possibly for you to determine if they have being changed since import.

  • You may have to include [all[shadows_tiddlers]] to list such tiddlers going forward.

The way in which tiddlywiki treats the system namespace differently is deeply interwoven into tiddlywiki’s core and not easy to replicate but it is possible. For example you could create a new filter operator (now a custom one) that works like is[system] such as is[lamda]

  • However as far as I can see you don’t need anything more than the system namespace eg $:/λ/ would work.
  • Use a title cascade to treat tiddlers beginning with your namespace differently.
  • I recommend you build something that allows this to be toggled on and off because it could compromise tiddlywikis operation, at least for your own design effort.

Thanks, though λ:/ looks simpler, If I encounter too much trouble building this, I will try $:/λ/ instead.

That’s true, hiding things could make user coufuse, then user may need to toggle it off to debug.

And I actually want to modify code in GitHub - Jermolene/TiddlyWiki5: A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc. , not in my own plugin or wiki, so there can be more plugin appear, that allow user not writing title.

I see, you already discuss it in Simplest way to make missing tiddlers display:none or visibility:invisible? - #34 by TW_Tones

I am still not sure what you mean titleless.

Do you mean use a generated title but dont display it?

  • if so I can do it for you but I think there is a better approach.

Yes you can follow those other instructions but I raised the developer thread with a review to extending the hackability to allow new namespaces. Hows your javascript? Perhaps you can help me?

[Edited]

If I return to your question at the top of the post, I have already used the custom naming of streams tiddlers to hide them by changing the configured naming standard from something like tiddlername/numericsubtiddler to $:/streams/numericsubtiddler.

  • This way all streams tiddlers are under the same prefix and hidden as system
    • the only way we know where the master tiddler is, is in the listfield in each tiddler.

I love streams but not set it up or used it recently.

I set $:/config/sq/streams/new-node-title in
settings > Steams settings > Template wikified for node title to

<<stream-root-title>>/<<now "[UTC]YYYY0MM0DD0hh0mm0ssXXX">>