kopia lustrzana https://github.com/miklobit/TiddlyWiki5
Extend the init command to allow editions to be merged
Now we can say “—init tw5.com clientserver” to get the tw5.com content with the client server plugins.print-window-tiddler
rodzic
3f6bf2452a
commit
a1ad735822
|
@ -24,28 +24,34 @@ var Command = function(params,commander) {
|
|||
|
||||
Command.prototype.execute = function() {
|
||||
var fs = require("fs"),
|
||||
path = require("path"),
|
||||
editionName = this.params[0] || "empty";
|
||||
path = require("path");
|
||||
// Check that we don't already have a valid wiki folder
|
||||
if($tw.boot.wikiTiddlersPath) {
|
||||
return "Wiki folder is not empty";
|
||||
}
|
||||
// Check the edition exists
|
||||
var editionPath = path.resolve($tw.boot.corePath,$tw.config.editionsPath) + "/" + editionName;
|
||||
if(!$tw.utils.isDirectory(editionPath)) {
|
||||
return "Edition '" + editionName + "' not found";
|
||||
}
|
||||
// Copy the edition content
|
||||
var err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);
|
||||
if(!err) {
|
||||
this.commander.streams.output.write("Copied edition '" + editionName + "' to " + $tw.boot.wikiPath + "\n");
|
||||
// Loop through each of the specified editions
|
||||
var editions = this.params.length > 0 ? this.params : ["empty"];
|
||||
for(var editionIndex=0; editionIndex<editions.length; editionIndex++) {
|
||||
var editionName = editions[editionIndex];
|
||||
// Check the edition exists
|
||||
var editionPath = path.resolve($tw.boot.corePath,$tw.config.editionsPath) + "/" + editionName;
|
||||
if(!$tw.utils.isDirectory(editionPath)) {
|
||||
return "Edition '" + editionName + "' not found";
|
||||
}
|
||||
// Copy the edition content
|
||||
var err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);
|
||||
if(!err) {
|
||||
this.commander.streams.output.write("Copied edition '" + editionName + "' to " + $tw.boot.wikiPath + "\n");
|
||||
} else {
|
||||
return err;
|
||||
}
|
||||
}
|
||||
// Tweak the tiddlywiki.info to remove any included wikis
|
||||
var packagePath = $tw.boot.wikiPath + "/tiddlywiki.info",
|
||||
packageJson = JSON.parse(fs.readFileSync(packagePath));
|
||||
delete packageJson.includeWikis;
|
||||
fs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));
|
||||
return err;
|
||||
return null;
|
||||
};
|
||||
|
||||
exports.Command = Command;
|
||||
|
|
|
@ -10,7 +10,6 @@ Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edit
|
|||
--init <edition>
|
||||
```
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
|
@ -19,7 +18,8 @@ tiddlywiki ./MyWikiFolder --init empty
|
|||
|
||||
Note:
|
||||
|
||||
* The edition directory will be created if necessary
|
||||
* The "edition" defaults to ''empty''
|
||||
* The init command will fail if the wiki folder does not exist, or is not empty
|
||||
* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file
|
||||
|
||||
* The init command can be used multiple times to merge editions. Editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)
|
||||
|
|
Ładowanie…
Reference in New Issue