Make the core into a plugin

print-window-tiddler
Jeremy Ruston 2013-03-28 17:07:30 +00:00
rodzic c411ee5106
commit cd36f594c5
10 zmienionych plików z 18 dodań i 9 usunięć

Wyświetl plik

@ -599,7 +599,7 @@ $tw.Wiki.prototype.definePluginModules = function() {
$tw.utils.each(this.shadowTiddlers,function(element,title,object) {
var tiddler = self.getTiddler(title);
if(!$tw.utils.hop(self.tiddlers,title)) { // Don't define the module if it is overidden by an ordinary tiddler
if(tiddler.fields.type === "application/javascript" && tiddler.hasField("module-type")) {
if(tiddler.hasField("module-type")) {
// Define the module
$tw.modules.define(tiddler.fields.title,tiddler.fields["module-type"],tiddler.fields.text);
}
@ -1035,7 +1035,7 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
}
// Load any plugins listed in the wiki info file
if(wikiInfo.plugins) {
var pluginBasePath = path.resolve($tw.boot.bootPath,$tw.config.pluginsPath);
var pluginBasePath = path.resolve($tw.boot.corePath,$tw.config.pluginsPath);
for(var t=0; t<wikiInfo.plugins.length; t++) {
pluginFields = $tw.loadPluginFolder(path.resolve(pluginBasePath,"./" + wikiInfo.plugins[t]));
if(pluginFields) {
@ -1072,10 +1072,12 @@ $tw.loadWikiTiddlers = function(wikiPath,parentPaths) {
};
$tw.loadTiddlers = function() {
// Load the core tiddlers
// Load the boot tiddlers
$tw.utils.each($tw.loadTiddlersFromPath($tw.boot.bootPath),function(tiddlerFile) {
$tw.wiki.addTiddlers(tiddlerFile.tiddlers);
});
// Load the core tiddlers
$tw.wiki.addTiddler($tw.loadPluginFolder($tw.boot.corePath));
// Load the tiddlers from the wiki directory
$tw.boot.wikiInfo = $tw.loadWikiTiddlers($tw.boot.wikiPath);
};
@ -1107,6 +1109,7 @@ $tw.boot.startup = function() {
$tw.boot.files = {};
// System paths and filenames
$tw.boot.bootPath = path.dirname(module.filename);
$tw.boot.corePath = path.resolve($tw.boot.bootPath,"../core");
// If the first command line argument doesn't start with `--` then we
// interpret it as the path to the wiki folder, which will otherwise default
// to the current folder
@ -1119,7 +1122,7 @@ $tw.boot.startup = function() {
}
$tw.boot.wikiTiddlersPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiTiddlersSubDir);
// Read package info
$tw.packageInfo = JSON.parse(fs.readFileSync($tw.boot.bootPath + "/../package.json"));
$tw.packageInfo = JSON.parse(fs.readFileSync($tw.boot.corePath + "/../package.json"));
// Check node version number
if($tw.utils.checkVersions($tw.packageInfo.engines.node.substr(2),process.version.substr(1))) {
$tw.utils.error("TiddlyWiki5 requires node.js version " + $tw.packageInfo.engine.node);

Wyświetl plik

@ -90,8 +90,7 @@ exports.startup = function() {
$tw.crypto.setPassword(null);
});
// Apply stylesheets
var styleTiddlers = $tw.wiki.getTiddlersWithTag("$:/core/styles");
$tw.utils.each(styleTiddlers,function(title) {
$tw.utils.each($tw.modules.types.stylesheet,function(moduleInfo,title) {
// Stylesheets don't refresh, yet
var parser = $tw.wiki.parseTiddler(title),
renderTree = new $tw.WikiRenderTree(parser,{wiki: $tw.wiki});

Wyświetl plik

@ -375,7 +375,7 @@ application/x-tiddler-dictionary: the tiddler is parsed as sequence of name:valu
Other types currently just return null.
*/
exports.getTiddlerData = function(title,defaultData) {
var tiddler = this.tiddlers[title],
var tiddler = this.getTiddler(title),
data;
if(tiddler && tiddler.fields.text) {
switch(tiddler.fields.type) {

7
core/plugin.info 100644
Wyświetl plik

@ -0,0 +1,7 @@
{
"title": "$:",
"description": "TiddlyWiki5 core plugin",
"author": "JeremyRuston",
"version": "0.0.0",
"coreVersion": ">=5.0.0"
}

Wyświetl plik

@ -1,5 +1,5 @@
title: $:/core/styles/base
tags: $:/core/styles
module-type: stylesheet
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline
\define border-radius(radius)

Wyświetl plik

@ -4,4 +4,4 @@
This is invoked as a shell script by NPM when the `tiddlywiki` command is typed
*/
var tiddlywiki = require("./core/boot.js");
var tiddlywiki = require("./boot/boot.js");