Simple optimisation whereby we defer the main refresh cycle when only
draft tiddlers have been modified.
We defer for 400ms, and keep extending the delay at each fresh draft
modification. The effect is that if the user is using the preview then
they’ll need to pause typing for 400ms before the preview is updated.
Fixes#470, #454, and maybe #206.
Refactoring page rendering so that we can fix the performance issues
with editing drafts. The plan is to defer the refresh cycle if all the
changes are to draft tiddlers.
We need to do a bit more of this to get startup.js into better shape
(and more extensible).
This is an experimental module to help us measure the performance of
the refresh cycle and the filter mechanism. Not intended to replace the
performance measurement features in browser developer tools, just to
make it easier to automate performance checks cross-browser.
The immediate purpose is to help in refactoring the filter mechanism.
The recent change to encapsulate the wiki store “tiddlers” object has
hurt the performance of filters, and it’s going to be helpful to have
decent measurements while refactoring that code.
I’m still not convinced that this stuff should be in the core, and may
well end up removing it after the present refactoring cycle.
Now we get decent visual indication of sync errors, for instance. Still
work to do to coalesce alerts so that the screen doesn’t fill up with
them after an interval. And probably we should add a button to clear
all alerts.
Still quite a few details to work out, but this shows the basic idea of
re-using the theme mechanism to handle language plugins.
Comments and questions welcome.
We re-use some of the existing syncer mechanism. It was already keeping
track of changes to tiddlers in the store when working with a tiddler
syncadaptor. Now it also tracks changes when there is no syncadaptor,
allowing us to provide a warning if there are unsaved changes.
Causes the wiki to be autosaved whenever clicking “done” after editing
a tiddler. Only works with savers that support autosave. We should
probably make autosave configurable
We were re-using the `tw-save-wiki` message both for saving the current
wiki and downloading a new wiki. Now we’ll use the separate
`tw-download-file` message for downloading.
Fixes#236
This is a hacky way of having macro definitions that behave as if they
are global to the wiki.
The new tabs macro itself is cool, though: neatly encapsulates most of
the gubbins around a tab control, and the rendering is quite easy to
style.
Templates are the low-level bits and pieces that allow TW5 to generate
HTML and CSS renderings of tiddlers. The UI folder contains the
user-visible UI of TW5
Get rid of the separate renderContext stack and instead have a parent
pointer on renderer nodes. This lets us walk back up the render tree to
resolve context references
This mechanism will only be triggered by changes to the stylesheet
tiddlers themselves, and not to any dependencies that they might have.
It'll stay that way for a while.
The next thing is making the theme manager actually switch themes,
forcing the right wiki change events to make the stylesheet manager
update itself