Idea a Very Short Title field VST

I think list-fields are only important for $:/???/ui/ tiddlers, which can have a lot of redundant info.

TW system tiddlers follow some rules.

  • They start with $:/
  • They have a common “primary” prefix $:/<primary>/ eg: $:/config/ or $:/core/
  • The have 1 or more “sub” prefixes: $:/<primary>/<sub>/<sub>/ eg: $:/config/ViewToolbarButtons/Visibility/
  • They have a “detail” suffix: $:/<primary>/<sub>/<sub>/<detail> eg: $:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/opermaview
  • <sub> prefixes can have CamelCase formatting
  • <detail>s can have hypens left-arrow eg: $:/core/images/left-arrow
  • <detail>s can have hyphens and dots eg: $:/core/modules/browser-messaging.js
  • <detail>s can have CamelCase formatting

So we could configure a “shortener” algorithm, that gives us predictable and human readable, but shorter titles.

The longest title is at tw-com is:

$:/config/plugins/menubar/MenuItems/Visibility/$:/plugins/tiddlywiki/menubar/items/pagecontrols

It could be shortened using some rules:

  1. replace $:/ with $$/ as an indicator for a shortened title
  2. reduce <primary>/ to first-character followed by slash eg: conifig/c/ or core/c/
  3. reduce every <sub> with their UPPERCASE chars, if there are some eg: plugins/menubar/MenuItem/Visibilityp/m/MI/V
    3.1 if there is no UPPERCASE char in <sub> use the first lowercase as in 2. eg: plugins/p/
  4. <detail> will be not reduced
    4.1 except if they are combined as in the example below, where Visibility will be reduced
$$/c/p/m/MI/V/$$/p/t/m/i/pagecontrols

So if we search for [all[shadows]] +[suffix[/pagecontrols]] we do get 3 results

  • $:/config/plugins/menubar/MenuItems/Visibility/$:/plugins/tiddlywiki/menubar/items/pagecontrols
  • $:/core/ui/PageTemplate/pagecontrols
  • $:/plugins/tiddlywiki/menubar/items/pagecontrols

Which could be mapped to:

$$/c/p/m/MI/V/$$/p/t/m/i/pagecontrols : <long-name>
$$/c/u/PT/pagecontrols : <long-name>
$$/p/t/m/i/pagecontrols : <long-name>

I’m not sure if that will create duplicates, but I’ll have a closer look, once I do have a “search-replace” regexp that can create the short names.

I know that’s not as short as 3 characters, but IMO definitely more human readable. And the rules should be simple enough, that we can use them without the need of a lot of new UI tooling.

[all[shadows]] +[prefix[$:/core/ui/ViewTemplate]]

This may give us a data-tiddler with:

$$/c/u/VT : $:/core/ui/ViewTemplate
$$/c/u/VT/body : $:/core/ui/ViewTemplate/body
$$/c/u/VT/b/blank : $:/core/ui/ViewTemplate/body/blank
$$/c/u/VT/b/code : $:/core/ui/ViewTemplate/body/code
$$/c/u/VT/b/default : $:/core/ui/ViewTemplate/body/default
$$/c/u/VT/b/import : $:/core/ui/ViewTemplate/body/import
...

If we would limit the shortener to all tiddlers prefixed $:/core/ui/ we can make it even shorter

$$/VT : $:/core/ui/ViewTemplate
$$/VT/body : $:/core/ui/ViewTemplate/body
$$/VT/b/blank : $:/core/ui/ViewTemplate/body/blank
$$/VT/b/code : $:/core/ui/ViewTemplate/body/code
$$/VT/b/default : $:/core/ui/ViewTemplate/body/default
$$/VT/b/import : $:/core/ui/ViewTemplate/body/import
...

just some thoughts. I’m sure I’m missing some usecases, but IMO it may be a start to create shorter titles and still have them somewhat human readable.

-m

1 Like