mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-16 23:04:50 +00:00
1c23059204
* First pass at dynamic loading/unloading * Show warning for changes to plugins containing JS modules * Use $:/config/RegisterPluginType/* for configuring whether a plugin type is automatically registered Where "registered" means "the constituent shadows are loaded". * Fix the info plugin The previous mechanism re-read all plugin info during startup * Don't prettify JSON in the plugin library * Indicate in plugin library whether a plugin requires reloading * Display the highlighted plugin name in the plugin chooser And if there's no name field fall back to the part of the title after the final slash.
71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
/*\
|
|
title: $:/core/modules/commands/makelibrary.js
|
|
type: application/javascript
|
|
module-type: command
|
|
|
|
Command to pack all of the plugins in the library into a plugin tiddler of type "library"
|
|
|
|
\*/
|
|
(function(){
|
|
|
|
/*jslint node: true, browser: true */
|
|
/*global $tw: false */
|
|
"use strict";
|
|
|
|
exports.info = {
|
|
name: "makelibrary",
|
|
synchronous: true
|
|
};
|
|
|
|
var UPGRADE_LIBRARY_TITLE = "$:/UpgradeLibrary";
|
|
|
|
var Command = function(params,commander,callback) {
|
|
this.params = params;
|
|
this.commander = commander;
|
|
this.callback = callback;
|
|
};
|
|
|
|
Command.prototype.execute = function() {
|
|
var wiki = this.commander.wiki,
|
|
fs = require("fs"),
|
|
path = require("path"),
|
|
upgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,
|
|
tiddlers = {};
|
|
// Collect up the library plugins
|
|
var collectPlugins = function(folder) {
|
|
var pluginFolders = fs.readdirSync(folder);
|
|
for(var p=0; p<pluginFolders.length; p++) {
|
|
if(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {
|
|
pluginFields = $tw.loadPluginFolder(path.resolve(folder,"./" + pluginFolders[p]));
|
|
if(pluginFields && pluginFields.title) {
|
|
tiddlers[pluginFields.title] = pluginFields;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
collectPublisherPlugins = function(folder) {
|
|
var publisherFolders = fs.readdirSync(folder);
|
|
for(var t=0; t<publisherFolders.length; t++) {
|
|
if(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {
|
|
collectPlugins(path.resolve(folder,"./" + publisherFolders[t]));
|
|
}
|
|
}
|
|
};
|
|
collectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));
|
|
collectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));
|
|
collectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));
|
|
// Save the upgrade library tiddler
|
|
var pluginFields = {
|
|
title: upgradeLibraryTitle,
|
|
type: "application/json",
|
|
"plugin-type": "library",
|
|
"text": JSON.stringify({tiddlers: tiddlers})
|
|
};
|
|
wiki.addTiddler(new $tw.Tiddler(pluginFields));
|
|
return null;
|
|
};
|
|
|
|
exports.Command = Command;
|
|
|
|
})();
|