created: 20150709150749755
modified: 20160709112741259
tags: Mechanisms
title: SavingMechanism
type: text/vnd.tiddlywiki

The SavingMechanism is the mechanism by which TiddlyWiki generates a new HTML file and stores it. It is different from the sync mechanism, which is concerned with synchronising changes to individual tiddlers back to a server (see https://tiddlywiki.com/dev/#SyncAdaptorModules for more details).

The following steps are involved:

# The saver mechanism uses the filter defined in $:/config/SaverFilter to specify which modified tiddlers trigger the dirty state for the wiki. (The dirty state is reflected in the red colouring of the "save changes" button in the sidebar).
# The ButtonWidget is used to generate a [[tm-save-wiki|WidgetMessage: tm-save-wiki]] message to trigger the save operation
# The optional parameter for the message specifies the template that will be used for generating the HTML file, defaulting to $:/core/save/all
#* The plugin $:/plugins/tiddlywiki/tiddlyweb in the client-server configuration replaces the default template with $:/plugins/tiddlywiki/tiddlyweb/save/offline
# The template includes a variable assignment that specifies a filter to select the tiddlers that should be included in the saved file. It then transcludes the main page template `$:/core/templates/tiddlywiki5.html`
#* The template includes a reference to `$(publishFilter)$` that allows the filter to be customised via a global variable
# The [[tm-save-wiki|WidgetMessage: tm-save-wiki]] handler renders the template to generate the HTML file
# The message handler chooses the highest priority "saver" module that can handle saving the file
#* See https://tiddlywiki.com/dev/#Saver for more details