mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-04-02 00:36:56 +00:00
Docs update
This commit is contained in:
parent
d74342916f
commit
9396897bdd
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user