This might be a controversial change as it also means that it is no
longer possible to include `$:/state/…` tiddlers in a wiki to set up
the initial configuration.
The new importvariables widget imports macro/variable definitions from
the specified tiddlers and makes them available to its children.
Allows us to split PageMacros up into separate tiddlers.
We still support loading macros from $:/core/ui/PageMacros to help
people upgrading.
Fixes#644 and #559
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.
Now we respond dynamically to changes in the location hash in the URL
bar. It means that you can do links in HTML as `<a
href=“#HelloThere”>go</a>` and in Markdown as `[example
link](#HelloThere).`
We still need to make startup.js more modular
At this point we respect any permalink at startup, but we don’t yet
dynamically update the permalink, nor do we respond to ongoing
permalink changes.
The permalink separator being `%00` seems like it might be a bit
controversial. It buys us not having to wrap tiddler titles in double
square brackets if they contain spaces.
Another thing is that this scheme doesn’t support tiddler filters; the
plan is to support them like this:
http://tiddlywiki.com/#!Target%00%00[tag[task]sort[created]]
1. Moved some methods out of boot.js because they are not needed until
after bootup
2. Added alternate message for editing an overridden shadow tiddler
3. Minor style tweaks
Replace this with a $tw.wiki.isModifiedTiddler(title) as part of the
wiki object. This allows it to be used outside of the current Wiki which
can change.