A bunch of little changes that together enable external image support.
Try:
```
tiddlywiki editions/tw5.com --verbose --build externalimages
```
Then open `externalimages.html`, look for the images in the more/types
tab of the sidebar, open them and verify that they are set with an
external SRC attribute, not a data URI.
We’re also reverting to the old custom dropdown. Using the select
widget didn’t work out because it couldn’t cleanly work with a text box
allowing custom types to be specified.
Apologies to the translators for the extra work. Each translated
tiddler type needs a new “group” field that contains a locale-specific
group name that in English are “Image”, “Developer” and “Text”.
In 5.0.12-beta, if you change the current language setting then the
current sidebar tab setting is lost. This was because the qualified
title generated for the tabs was incorporating the current language
title, by virtue of a trick used in the PageTemplate to set the
“languageTitle” variable to a field of the current language plugin.
This trick left the current tiddler set to the current language, and
this current tiddler was still in force for the transclusion of the
page template segments.
Now a link to a single tiddler like http://tiddlywiki.com/#HelloThere
will just open that single tiddler (the old behaviour was to also open
the default tiddlers)
In practice, if you look at TabsMacro you’ll see that the width of the
tab content is wrong, and will usually overflow the container. Next
step is to fix that by using flexbox…
Previously, widgets were reading variables from themselves or their
cascaded ancestors. That means that if a widget sets a variable and
then reads the same variable, it will get the same variable back. That
sounds reasonable, until you consider a widget that wants to modify a
variable - eg the tiddler macro. For example:
```
<$tiddler tiddler={{!!report}}>
<$transclude mode="block" />
</$tiddler>
```
Here we first evaluate the `{{!!report}}` reference, which involves
reading the currentTiddler variable, looking up the tiddler, and
retrieving it’s `report` field. The next the tiddler widget is
refreshed, it will use the newly set currentTiddler as the basis for
resolving the `{{!!reference}}` reference.
The fix is to get variables from ancestors, but continue to set them on
ourselves.
We were parsing the boot tiddlers, making them into a widget and then
refreshing the widget tree. The problem is that subsequent chances to
the boot tiddlers themselves wouldn’t be picked up as part of the
refresh.
Now we indirectly parse those UI boot tiddlers through a transclusion,
which does get refreshed in the desired way.