diff --git a/core/boot.js b/core/boot.js index 2d8920312..eb5f4fabc 100644 --- a/core/boot.js +++ b/core/boot.js @@ -116,19 +116,20 @@ $tw.config.fileExtensionInfo = { // Content type mappings $tw.config.contentTypeInfo = { - "application/x-tiddler": {encoding: "utf8"}, - "application/x-tiddler-html-div": {encoding: "utf8"}, - "application/x-tiddlywiki-recipe": {encoding: "utf8"}, - "text/plain": {encoding: "utf8"}, - "text/css": {encoding: "utf8"}, - "text/html": {encoding: "utf8"}, - "application/javascript": {encoding: "utf8"}, - "application/json": {encoding: "utf8"}, - "application/pdf": {encoding: "base64"}, - "image/jpeg": {encoding: "base64"}, - "image/png": {encoding: "base64"}, - "image/gif": {encoding: "base64"}, - "image/svg+xml": {encoding: "utf8"} + "text/x-tiddlywiki": {encoding: "utf8", extension: ".tid"}, + "application/x-tiddler": {encoding: "utf8", extension: ".tid"}, + "application/x-tiddler-html-div": {encoding: "utf8", extension: ".tiddler"}, + "application/x-tiddlywiki-recipe": {encoding: "utf8", extension: ".recipe"}, + "text/plain": {encoding: "utf8", extension: ".txt"}, + "text/css": {encoding: "utf8", extension: ".css"}, + "text/html": {encoding: "utf8", extension: ".html"}, + "application/javascript": {encoding: "utf8", extension: ".js"}, + "application/json": {encoding: "utf8", extension: ".json"}, + "application/pdf": {encoding: "base64", extension: ".pdf"}, + "image/jpeg": {encoding: "base64", extension: ".jpg"}, + "image/png": {encoding: "base64", extension: ".png"}, + "image/gif": {encoding: "base64", extension: ".gif"}, + "image/svg+xml": {encoding: "utf8", extension: ".svg"} }; /////////////////////////// Utility functions diff --git a/core/modules/serializers.js b/core/modules/serializers.js index 519235b64..bd7d6f4b2 100644 --- a/core/modules/serializers.js +++ b/core/modules/serializers.js @@ -36,6 +36,12 @@ exports["text/html"] = function(tiddlers) { }); }; +exports["application/x-tiddler"] = function(tiddlers) { + return mapEachTiddler(this,tiddlers,function(tiddler) { + return tiddler.getFieldStringBlock({exclude: ["text"]}) + "\n\n" + tiddler.fields.text; + }); +} + exports["application/x-tiddler-css"] = function(tiddlers) { return mapEachTiddler(this,tiddlers,function(tiddler) { var attributes = {type: "text/css"}; // The script type is set to text/javascript for compatibility with old browsers diff --git a/tw5dropbox/appwiki/plugins/dropbox-app.js b/tw5dropbox/appwiki/plugins/dropbox-app.js index 756370d1b..12b534752 100644 --- a/tw5dropbox/appwiki/plugins/dropbox-app.js +++ b/tw5dropbox/appwiki/plugins/dropbox-app.js @@ -40,6 +40,8 @@ exports.startup = function(loggedIn) { if(hadChanges) { $tw.plugins.dropbox.saveTiddlerIndex("/" + $tw.plugins.dropbox.wikiName + "/index.html",function(error) { console.log("Saved tiddler index"); + // Sync any subsequent tiddler changes + $tw.plugins.dropbox.setupSyncer($tw.wiki); }); } }); diff --git a/tw5dropbox/plugins/dropbox.js b/tw5dropbox/plugins/dropbox.js index 62b74ba83..e217b740b 100644 --- a/tw5dropbox/plugins/dropbox.js +++ b/tw5dropbox/plugins/dropbox.js @@ -3,7 +3,9 @@ title: $:/plugins/dropbox/dropbox.js type: application/javascript module-type: startup -Startup the Dropbox integration plugin +Main Dropbox integration plugin + + \*/ (function(){ @@ -20,7 +22,8 @@ var queryLoginMarker = "login=true"; $tw.plugins.dropbox = { client: null, // Dropbox.js client object - fileInfo: {}, // Hashmap of each file as retrieved from Dropbox: {versionTag:,title:} + fileInfo: {}, // Hashmap of each filename as retrieved from Dropbox: {versionTag:,title:} + titleInfo: {}, // Hashmap of each tiddler title retrieved from Dropbox to filename titleIsLoggedIn: "$:/plugins/dropbox/IsLoggedIn", titleUserName: "$:/plugins/dropbox/UserName", titlePublicAppUrl: "$:/plugins/dropbox/PublicAppUrl", @@ -225,6 +228,7 @@ console.log("loading tiddler from",path); $tw.wiki.addTiddlers(tiddlers); // Save the revision of the files so we can detect changes later $tw.plugins.dropbox.fileInfo[mainStat.name] = {versionTag: mainStat.versionTag,title: tiddlers[0].title}; + $tw.plugins.dropbox.titleInfo[tiddlers[0].title] = mainStat.name; $tw.plugins.dropbox.fileInfo[stat.name] = {versionTag: stat.versionTag,title: tiddlers[0].title}; callback(); }); @@ -233,6 +237,9 @@ console.log("loading tiddler from",path); $tw.wiki.addTiddlers(tiddlers); // Save the revision of this file so we can detect changes $tw.plugins.dropbox.fileInfo[stat.name] = {versionTag: stat.versionTag,title: tiddlers[0].title}; + for(t=0; t