1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-07-01 01:33:16 +00:00

Docs update

This commit is contained in:
Jeremy Ruston 2012-08-04 11:20:47 +01:00
parent d74342916f
commit 9396897bdd

View File

@ -1,22 +1,22 @@
title: PluginMechanism
title: BootMechanism
tags: docs mechanism
!Introduction
TiddlyWiki5 is based on a 500 line boot kernel that runs on node.js or in the browser, and everything else is plugins.
TiddlyWiki5 is based on a 600-line boot kernel that runs on node.js or in the browser, with all other functionality dynamically loaded as plugins.
The kernel boots just enough of the TiddlyWiki environment to allow it to load tiddlers as plugins and execute them (a barebones tiddler class, a barebones wiki store class, some utilities etc.). Plugin modules are written like `node.js` modules; you can use `require()` to invoke sub components and to control load order.
The kernel boots just enough of the TiddlyWiki environment to allow it to load tiddlers and execute JavaScript modules. Plugin modules are written like `node.js` modules.
There are several different types of plugins: parsers, serializers, deserializers, macros etc. It goes much further than you might expect. For example, individual tiddler fields are plugins, too: there's a plugin that knows how to handle the `tags` field, and another that knows how to handle the special behaviour of
There are many different types of module: parsers, serializers, deserializers, macros etc. It goes much further than you might expect. For example, individual tiddler fields are modules, too: there's a module that knows how to handle the `tags` field, and another that knows how to handle the special behaviour of
the `modified` and `created` fields.
Some plugins have further sub-plugins: the wikitext parser, for instance, accepts rules as individual plugins.
Some plugin modules have further sub-plugins: the wikitext parser, for instance, accepts rules as individual plugin modules.
!Plugins and Modules
In TiddlyWiki5, a plugin is a bundle of related tiddlers that are distributed together as a single unit. Plugins can include tiddlers which are JavaScript modules.
In TiddlyWiki5, "plugins" are bundles of tiddlers that are distributed and managed as one; "modules" are JavaScript tiddlers with a module type identifying when and how they should be executed.
The file `core/boot.js` is a barebones TiddlyWiki kernel that is just sufficient to load the core plugin modules and trigger a startup plugin module to load up the rest of the application.
The tiddler [[$:/core/boot.js]] is a barebones TiddlyWiki kernel that is just sufficient to load the core plugin modules and trigger a startup plugin module to load up the rest of the application.
The kernel includes:
@ -65,4 +65,3 @@ TiddlyWiki5 makes extensive use of JavaScript inheritance:
* Tree nodes defined in `$:/core/treenodes/` all inherit from `$:/core/treenodes/node.js`
* Macros defined in `$:/core/macros/` all inherit from `$:/core/treenodes/macro.js`
`tiddlywiki.plugin` files