diff --git a/boot/boot.js b/boot/boot.js index 698b05bf0..5cfc5409b 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -1728,6 +1728,7 @@ $tw.boot.startup = function(options) { $tw.utils.registerFileType("text/css","utf8",".css"); $tw.utils.registerFileType("text/html","utf8",".html"); $tw.config.fileExtensionInfo[".htm"] = {type: "text/html"}; + $tw.config.fileExtensionInfo[".hta"] = {type: "text/html"}; $tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"}); $tw.utils.registerFileType("application/javascript","utf8",".js"); $tw.utils.registerFileType("application/json","utf8",".json"); diff --git a/core/config/editor-type-mappings/image-gif.tid b/core/config/editor-type-mappings/image-gif.tid deleted file mode 100644 index 7f66c8434..000000000 --- a/core/config/editor-type-mappings/image-gif.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/image/gif - -bitmap \ No newline at end of file diff --git a/core/config/editor-type-mappings/image-jpeg.tid b/core/config/editor-type-mappings/image-jpeg.tid deleted file mode 100644 index 02a0943ca..000000000 --- a/core/config/editor-type-mappings/image-jpeg.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/image/jpeg - -bitmap \ No newline at end of file diff --git a/core/config/editor-type-mappings/image-jpg.tid b/core/config/editor-type-mappings/image-jpg.tid deleted file mode 100644 index d1eda17c7..000000000 --- a/core/config/editor-type-mappings/image-jpg.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/image/jpg - -bitmap \ No newline at end of file diff --git a/core/config/editor-type-mappings/image-png.tid b/core/config/editor-type-mappings/image-png.tid deleted file mode 100644 index 4c4f613cd..000000000 --- a/core/config/editor-type-mappings/image-png.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/image/png - -bitmap \ No newline at end of file diff --git a/core/config/editor-type-mappings/image-x-icon.tid b/core/config/editor-type-mappings/image-x-icon.tid deleted file mode 100644 index d2b4d0d99..000000000 --- a/core/config/editor-type-mappings/image-x-icon.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/image/x-icon - -bitmap \ No newline at end of file diff --git a/core/config/editor-type-mappings/text-vnd-tiddlywiki.tid b/core/config/editor-type-mappings/text-vnd-tiddlywiki.tid deleted file mode 100644 index fee2a2a62..000000000 --- a/core/config/editor-type-mappings/text-vnd-tiddlywiki.tid +++ /dev/null @@ -1,3 +0,0 @@ -title: $:/config/EditorTypeMappings/text/vnd.tiddlywiki - -text \ No newline at end of file diff --git a/core/icon.tid b/core/icon.tid new file mode 100644 index 000000000..70187c55f --- /dev/null +++ b/core/icon.tid @@ -0,0 +1,8 @@ +title: $:/core/icon +tags: $:/tags/Image + + + + + + \ No newline at end of file diff --git a/core/images/export-button.tid b/core/images/export-button.tid new file mode 100644 index 000000000..24b07e150 --- /dev/null +++ b/core/images/export-button.tid @@ -0,0 +1,8 @@ +title: $:/core/images/export-button +tags: $:/tags/Image + + + + + + \ No newline at end of file diff --git a/core/images/plugin-generic-language.tid b/core/images/plugin-generic-language.tid new file mode 100644 index 000000000..1c5aa3ce5 --- /dev/null +++ b/core/images/plugin-generic-language.tid @@ -0,0 +1,8 @@ +title: $:/core/images/plugin-generic-language +tags: $:/tags/Image + + + + + + \ No newline at end of file diff --git a/core/images/plugin-generic-plugin.tid b/core/images/plugin-generic-plugin.tid new file mode 100644 index 000000000..6f56da7a3 --- /dev/null +++ b/core/images/plugin-generic-plugin.tid @@ -0,0 +1,8 @@ +title: $:/core/images/plugin-generic-plugin +tags: $:/tags/Image + + + + + + \ No newline at end of file diff --git a/core/images/plugin-generic-theme.tid b/core/images/plugin-generic-theme.tid new file mode 100644 index 000000000..bfc667c79 --- /dev/null +++ b/core/images/plugin-generic-theme.tid @@ -0,0 +1,8 @@ +title: $:/core/images/plugin-generic-theme +tags: $:/tags/Image + + + + + + \ No newline at end of file diff --git a/core/images/tag-button.tid b/core/images/tag-button.tid new file mode 100644 index 000000000..7d53a8a70 --- /dev/null +++ b/core/images/tag-button.tid @@ -0,0 +1,9 @@ +title: $:/core/images/tag-button +tags: $:/tags/Image + + + + + + + diff --git a/core/language/en-GB/Buttons.multids b/core/language/en-GB/Buttons.multids index 80ceeb032..8074b51fb 100644 --- a/core/language/en-GB/Buttons.multids +++ b/core/language/en-GB/Buttons.multids @@ -52,5 +52,7 @@ HideSideBar/Caption: hide sidebar HideSideBar/Hint: Hide sidebar ShowSideBar/Caption: show sidebar ShowSideBar/Hint: Show sidebar +TagManager/Caption: tag manager +TagManager/Hint: Open tag manager Theme/Caption: theme Theme/Hint: Choose the display theme diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index 6df4fb76d..c58e34f12 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -64,9 +64,6 @@ Basics/Title/Prompt: Title of this ~TiddlyWiki: Basics/Username/Prompt: Username for signing edits: Basics/Version/Prompt: ~TiddlyWiki version: Plugins/Caption: Plugins -Plugins/Fields/Description: Description -Plugins/Fields/Title: Title -Plugins/Fields/Version: Version Plugins/Language/Prompt: Languages Plugins/Plugin/Prompt: Plugins Plugins/Theme/Prompt: Themes diff --git a/core/language/en-GB/Misc.multids b/core/language/en-GB/Misc.multids index a58bf5bd5..58f07beff 100644 --- a/core/language/en-GB/Misc.multids +++ b/core/language/en-GB/Misc.multids @@ -30,3 +30,4 @@ TagManager/Colour/Heading: Colour TagManager/Count/Heading: Count TagManager/Icon/Heading: Icon TagManager/Tag/Heading: Tag +UnsavedChangesWarning: You have unsaved changes in TiddlyWiki diff --git a/core/language/en-GB/SideBar.multids b/core/language/en-GB/SideBar.multids index e18dd924e..1ae4439dd 100644 --- a/core/language/en-GB/SideBar.multids +++ b/core/language/en-GB/SideBar.multids @@ -11,8 +11,6 @@ Recent/Caption: Recent Shadows/Caption: Shadows System/Caption: System Tags/Caption: Tags -Tags/TagManager/Caption: Tag Manager Tags/Untagged/Caption: untagged Tools/Caption: Tools Types/Caption: Types - diff --git a/core/language/en-GB/Flag.tid b/core/language/en-GB/icon.tid similarity index 94% rename from core/language/en-GB/Flag.tid rename to core/language/en-GB/icon.tid index c826dcc29..1967b895f 100644 --- a/core/language/en-GB/Flag.tid +++ b/core/language/en-GB/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/en-GB/icon type: image/svg+xml diff --git a/core/modules/parsers/wikiparser/rules/html.js b/core/modules/parsers/wikiparser/rules/html.js index 0062d5988..71cdfd5dc 100644 --- a/core/modules/parsers/wikiparser/rules/html.js +++ b/core/modules/parsers/wikiparser/rules/html.js @@ -48,7 +48,7 @@ exports.parse = function() { // Advance the parser position to past the tag this.parser.pos = tag.end; // Check for an immediately following double linebreak - var hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n]*\r?\n(?:[^\S\n]*\r?\n|$))/g); + var hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g); // Set whether we're in block mode tag.isBlock = this.is.block || hasLineBreak; // Parse the body if we need to @@ -125,7 +125,7 @@ exports.parseTag = function(source,pos,options) { pos = token.end; // Check for a required line break if(options.requireLineBreak) { - token = $tw.utils.parseTokenRegExp(source,pos,/([^\S\n]*\r?\n(?:[^\S\n]*\r?\n|$))/g); + token = $tw.utils.parseTokenRegExp(source,pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g); if(!token) { return null; } diff --git a/core/modules/parsers/wikiparser/rules/macrodef.js b/core/modules/parsers/wikiparser/rules/macrodef.js index 7c4094b96..a57e62c37 100644 --- a/core/modules/parsers/wikiparser/rules/macrodef.js +++ b/core/modules/parsers/wikiparser/rules/macrodef.js @@ -27,7 +27,7 @@ Instantiate parse rule exports.init = function(parser) { this.parser = parser; // Regexp to match - this.matchRegExp = /^\\define\s+([^(\s]+)\(\s*([^)]*)\)(\r?\n)?/mg; + this.matchRegExp = /^\\define\s+([^(\s]+)\(\s*([^)]*)\)(\s*\r?\n)?/mg; }; /* @@ -58,7 +58,7 @@ exports.parse = function() { var reEnd; if(this.match[3]) { // If so, the end of the body is marked with \end - reEnd = /(\r?\n\\end\r?\n)/mg; + reEnd = /(\r?\n\\end(?:$|\r?\n))/mg; } else { // Otherwise, the end of the definition is marked by the end of the line reEnd = /(\r?\n)/mg; diff --git a/core/modules/parsers/wikiparser/rules/wikilink.js b/core/modules/parsers/wikiparser/rules/wikilink.js index 152b4e193..f4b543896 100644 --- a/core/modules/parsers/wikiparser/rules/wikilink.js +++ b/core/modules/parsers/wikiparser/rules/wikilink.js @@ -24,10 +24,10 @@ exports.name = "wikilink"; exports.types = {inline: true}; var textPrimitives = { - upperLetter: "[A-Z\u00c0-\u00de\u0150\u0170]", - lowerLetter: "[a-z0-9_\\-\u00df-\u00ff\u0151\u0171]", - anyLetter: "[A-Za-z0-9_\\-\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]", - anyLetterStrict: "[A-Za-z0-9\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]" + upperLetter: "[A-Z\u00c0-\u00d6\u00d8-\u00de\u0150\u0170]", + lowerLetter: "[a-z0-9\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]", + anyLetter: "[A-Za-z0-9\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]", + blockPrefixLetters: "[A-Za-z0-9\-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]" }; textPrimitives.unWikiLink = "~"; @@ -54,9 +54,9 @@ exports.parse = function() { if(linkText.substr(0,1) === textPrimitives.unWikiLink) { return [{type: "text", text: linkText.substr(1)}]; } - // If the link has been preceded with a letter then don't treat it as a link + // If the link has been preceded with a blocked letter then don't treat it as a link if(this.match.index > 0) { - var preRegExp = new RegExp(textPrimitives.anyLetterStrict,"mg"); + var preRegExp = new RegExp(textPrimitives.blockPrefixLetters,"mg"); preRegExp.lastIndex = this.match.index-1; var preMatch = preRegExp.exec(this.parser.source); if(preMatch && preMatch.index === this.match.index-1) { diff --git a/core/modules/saver-handler.js b/core/modules/saver-handler.js new file mode 100644 index 000000000..9d5f9a973 --- /dev/null +++ b/core/modules/saver-handler.js @@ -0,0 +1,170 @@ +/*\ +title: $:/core/modules/saver-handler.js +type: application/javascript +module-type: global + +The saver handler tracks changes to the store and handles saving the entire wiki via saver modules. + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +/* +Instantiate the saver handler with the following options: +wiki: wiki to be synced +*/ +function SaverHandler(options) { + var self = this; + this.wiki = options.wiki; + // Make a logger + this.logger = new $tw.utils.Logger("saver-handler"); + // Initialise our savers + if($tw.browser) { + this.initSavers(); + } + // Compile the dirty tiddler filter + this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)); + // Count of tiddlers that have been changed but not yet saved + this.numTasksInQueue = 0; + // Listen out for changes to tiddlers + this.wiki.addEventListener("change",function(changes) { + var filteredChanges = self.filterFn.call(self.wiki,function(callback) { + $tw.utils.each(changes,function(change,title) { + var tiddler = self.wiki.getTiddler(title); + callback(tiddler,title); + }); + }); + self.numTasksInQueue += filteredChanges.length; + self.updateDirtyStatus(); + }); + // Browser event handlers + if($tw.browser) { + // Set up our beforeunload handler + window.addEventListener("beforeunload",function(event) { + var confirmationMessage = undefined; + if(self.isDirty()) { + confirmationMessage = $tw.language.getString("UnsavedChangesWarning"); + event.returnValue = confirmationMessage; // Gecko + } + return confirmationMessage; + }); + // Install the save action handlers + $tw.rootWidget.addEventListener("tw-save-wiki",function(event) { + self.saveWiki({ + template: event.param, + downloadType: "text/plain" + }); + }); + $tw.rootWidget.addEventListener("tw-auto-save-wiki",function(event) { + self.saveWiki({ + method: "autosave", + template: event.param, + downloadType: "text/plain" + }); + }); + $tw.rootWidget.addEventListener("tw-download-file",function(event) { + self.saveWiki({ + method: "download", + template: event.param, + downloadType: "text/plain" + }); + }); + } +} + +SaverHandler.prototype.titleSyncFilter = "$:/config/SyncFilter"; +SaverHandler.prototype.titleAutoSave = "$:/config/AutoSave"; +SaverHandler.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done"; + +/* +Select the appropriate saver modules and set them up +*/ +SaverHandler.prototype.initSavers = function(moduleType) { + moduleType = moduleType || "saver"; + // Instantiate the available savers + this.savers = []; + var self = this; + $tw.modules.forEachModuleOfType(moduleType,function(title,module) { + if(module.canSave(self)) { + self.savers.push(module.create(self.wiki)); + } + }); + // Sort the savers into priority order + this.savers.sort(function(a,b) { + if(a.info.priority < b.info.priority) { + return -1; + } else { + if(a.info.priority > b.info.priority) { + return +1; + } else { + return 0; + } + } + }); +}; + +/* +Save the wiki contents. Options are: + method: "save" or "download" + template: the tiddler containing the template to save + downloadType: the content type for the saved file +*/ +SaverHandler.prototype.saveWiki = function(options) { + options = options || {}; + var self = this, + method = options.method || "save", + template = options.template || "$:/core/save/all", + downloadType = options.downloadType || "text/plain", + text = this.wiki.renderTiddler(downloadType,template), + callback = function(err) { + if(err) { + alert("Error while saving:\n\n" + err); + } else { + $tw.notifier.display(self.titleSavedNotification); + if(options.callback) { + options.callback(); + } + } + }; + // Ignore autosave if disabled + if(method === "autosave" && this.wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes") { + return false; + } + // Call the highest priority saver that supports this method + for(var t=this.savers.length-1; t>=0; t--) { + var saver = this.savers[t]; + if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback)) { + this.logger.log("Saving wiki with method",method,"through saver",saver.info.name); + // Clear the task queue if we're saving (rather than downloading) + if(method !== "download") { + this.numTasksInQueue = 0; + this.updateDirtyStatus(); + } + return true; + } + } + return false; +}; + +/* +Checks whether the wiki is dirty (ie the window shouldn't be closed) +*/ +SaverHandler.prototype.isDirty = function() { + return this.numTasksInQueue > 0; +}; + +/* +Update the document body with the class "tw-dirty" if the wiki has unsaved/unsynced changes +*/ +SaverHandler.prototype.updateDirtyStatus = function() { + if($tw.browser) { + $tw.utils.toggleClass(document.body,"tw-dirty",this.isDirty()); + } +}; + +exports.SaverHandler = SaverHandler; + +})(); diff --git a/core/modules/startup/password.js b/core/modules/startup/password.js index a6d586401..3ff7e26c7 100644 --- a/core/modules/startup/password.js +++ b/core/modules/startup/password.js @@ -15,7 +15,7 @@ Password handling // Export name and synchronous status exports.name = "password"; exports.platforms = ["browser"]; -exports.after = ["rootwidget"]; +exports.after = ["startup"]; exports.synchronous = true; exports.startup = function() { diff --git a/core/modules/startup/rootwidget.js b/core/modules/startup/rootwidget.js index 2cae33040..f28d5b776 100644 --- a/core/modules/startup/rootwidget.js +++ b/core/modules/startup/rootwidget.js @@ -15,21 +15,11 @@ Setup the root widget and the core root widget handlers // Export name and synchronous status exports.name = "rootwidget"; exports.platforms = ["browser"]; -exports.after = ["load-modules"]; +exports.after = ["startup"]; exports.before = ["story"]; exports.synchronous = true; -var widget = require("$:/core/modules/widgets/widget.js"); - exports.startup = function() { - // Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers - $tw.rootWidget = new widget.widget({ - type: "widget", - children: [] - },{ - wiki: $tw.wiki, - document: document - }); // Install the modal message mechanism $tw.modal = new $tw.utils.Modal($tw.wiki); $tw.rootWidget.addEventListener("tw-modal",function(event) { @@ -45,36 +35,16 @@ exports.startup = function() { $tw.rootWidget.addEventListener("tw-scroll",function(event) { $tw.pageScroller.handleEvent(event); }); - // Install the save action handlers - $tw.rootWidget.addEventListener("tw-save-wiki",function(event) { - $tw.syncer.saveWiki({ - template: event.param, - downloadType: "text/plain" - }); - }); - $tw.rootWidget.addEventListener("tw-auto-save-wiki",function(event) { - $tw.syncer.saveWiki({ - method: "autosave", - template: event.param, - downloadType: "text/plain" - }); - }); - $tw.rootWidget.addEventListener("tw-download-file",function(event) { - $tw.syncer.saveWiki({ - method: "download", - template: event.param, - downloadType: "text/plain" - }); - }); var fullscreen = $tw.utils.getFullScreenApis(); - $tw.rootWidget.addEventListener("tw-full-screen",function(event) { - if(document[fullscreen._fullscreenElement]) { - document[fullscreen._exitFullscreen](); - } else { - document.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT); - } - }); - + if(fullscreen) { + $tw.rootWidget.addEventListener("tw-full-screen",function(event) { + if(document[fullscreen._fullscreenElement]) { + document[fullscreen._exitFullscreen](); + } else { + document.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT); + } + }); + } // If we're being viewed on a data: URI then give instructions for how to save if(document.location.protocol === "data:") { $tw.rootWidget.dispatchEvent({ diff --git a/core/modules/startup/startup.js b/core/modules/startup/startup.js index a7f4c583f..67c3415c1 100755 --- a/core/modules/startup/startup.js +++ b/core/modules/startup/startup.js @@ -20,6 +20,8 @@ exports.synchronous = true; // Set to `true` to enable performance instrumentation var PERFORMANCE_INSTRUMENTATION = false; +var widget = require("$:/core/modules/widgets/widget.js"); + exports.startup = function() { var modules,n,m,f; if($tw.browser) { @@ -50,19 +52,31 @@ exports.startup = function() { }); // Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup $tw.wiki.clearTiddlerEventQueue(); - // Set up the syncer object - $tw.syncer = new $tw.Syncer({wiki: $tw.wiki}); + // Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers + if($tw.browser) { + $tw.rootWidget = new widget.widget({ + type: "widget", + children: [] + },{ + wiki: $tw.wiki, + document: document + }); + } + // Find a working syncadaptor + $tw.syncadaptor = undefined; + $tw.modules.forEachModuleOfType("syncadaptor",function(title,module) { + if(!$tw.syncadaptor && module.adaptorClass) { + $tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki}); + } + }); + // Set up the syncer object if we've got a syncadaptor, otherwise setup the saverhandler + if($tw.syncadaptor) { + $tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor}); + } else { + $tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki}); + } // Host-specific startup if($tw.browser) { - // Set up our beforeunload handler - window.addEventListener("beforeunload",function(event) { - var confirmationMessage = undefined; - if($tw.syncer.isDirty()) { - confirmationMessage = "You have unsaved changes in TiddlyWiki"; - event.returnValue = confirmationMessage; // Gecko - } - return confirmationMessage; - }); // Install the popup manager $tw.popup = new $tw.utils.Popup({ rootElement: document.body diff --git a/core/modules/startup/syncer-browser.js b/core/modules/startup/syncer-browser.js deleted file mode 100644 index a79c5e631..000000000 --- a/core/modules/startup/syncer-browser.js +++ /dev/null @@ -1,34 +0,0 @@ -/*\ -title: $:/core/modules/startup/syncer-browser.js -type: application/javascript -module-type: startup - -Startup handling - -\*/ -(function(){ - -/*jslint node: true, browser: true */ -/*global $tw: false */ -"use strict"; - -// Export name and synchronous status -exports.name = "syncer-browser"; -exports.platforms = ["browser"]; -exports.after = ["rootwidget"]; -exports.synchronous = true; - -exports.startup = function() { - // Listen out for login/logout/refresh events in the browser - $tw.rootWidget.addEventListener("tw-login",function() { - $tw.syncer.handleLoginEvent(); - }); - $tw.rootWidget.addEventListener("tw-logout",function() { - $tw.syncer.handleLogoutEvent(); - }); - $tw.rootWidget.addEventListener("tw-server-refresh",function() { - $tw.syncer.handleRefreshEvent(); - }); -}; - -})(); diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 6600573fb..b92d7a478 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -14,24 +14,15 @@ The syncer tracks changes to the store. If a syncadaptor is used then individual /* Instantiate the syncer with the following options: +syncadaptor: reference to syncadaptor to be used wiki: wiki to be synced */ function Syncer(options) { var self = this; this.wiki = options.wiki; + this.syncadaptor = options.syncadaptor // Make a logger this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "")); - // Find a working syncadaptor - this.syncadaptor = undefined; - $tw.modules.forEachModuleOfType("syncadaptor",function(title,module) { - if(!self.syncadaptor && module.adaptorClass) { - self.syncadaptor = new module.adaptorClass(self); - } - }); - // Initialise our savers - if($tw.browser) { - this.initSavers(); - } // Compile the dirty tiddler filter this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)); // Record information for known tiddlers @@ -45,12 +36,32 @@ function Syncer(options) { this.wiki.addEventListener("change",function(changes) { self.syncToServer(changes); }); - // Listen out for lazyLoad events - if(this.syncadaptor) { - this.wiki.addEventListener("lazyLoad",function(title) { - self.handleLazyLoadEvent(title); + // Browser event handlers + if($tw.browser) { + // Set up our beforeunload handler + window.addEventListener("beforeunload",function(event) { + var confirmationMessage = undefined; + if(self.isDirty()) { + confirmationMessage = $tw.language.getString("UnsavedChangesWarning"); + event.returnValue = confirmationMessage; // Gecko + } + return confirmationMessage; + }); + // Listen out for login/logout/refresh events in the browser + $tw.rootWidget.addEventListener("tw-login",function() { + self.handleLoginEvent(); + }); + $tw.rootWidget.addEventListener("tw-logout",function() { + self.handleLogoutEvent(); + }); + $tw.rootWidget.addEventListener("tw-server-refresh",function() { + self.handleRefreshEvent(); }); } + // Listen out for lazyLoad events + this.wiki.addEventListener("lazyLoad",function(title) { + self.handleLazyLoadEvent(title); + }); // Get the login status this.getStatus(function (err,isLoggedIn) { // Do a sync from the server @@ -64,7 +75,6 @@ Constants Syncer.prototype.titleIsLoggedIn = "$:/status/IsLoggedIn"; Syncer.prototype.titleUserName = "$:/status/UserName"; Syncer.prototype.titleSyncFilter = "$:/config/SyncFilter"; -Syncer.prototype.titleAutoSave = "$:/config/AutoSave"; Syncer.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done"; Syncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer Syncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s... @@ -91,79 +101,6 @@ Syncer.prototype.readTiddlerInfo = function() { }); }; -/* -Select the appropriate saver modules and set them up -*/ -Syncer.prototype.initSavers = function(moduleType) { - moduleType = moduleType || "saver"; - // Instantiate the available savers - this.savers = []; - var self = this; - $tw.modules.forEachModuleOfType(moduleType,function(title,module) { - if(module.canSave(self)) { - self.savers.push(module.create(self.wiki)); - } - }); - // Sort the savers into priority order - this.savers.sort(function(a,b) { - if(a.info.priority < b.info.priority) { - return -1; - } else { - if(a.info.priority > b.info.priority) { - return +1; - } else { - return 0; - } - } - }); -}; - -/* -Save the wiki contents. Options are: - method: "save" or "download" - template: the tiddler containing the template to save - downloadType: the content type for the saved file -*/ -Syncer.prototype.saveWiki = function(options) { - options = options || {}; - var self = this, - method = options.method || "save", - template = options.template || "$:/core/save/all", - downloadType = options.downloadType || "text/plain", - text = this.wiki.renderTiddler(downloadType,template), - callback = function(err) { - if(err) { - alert("Error while saving:\n\n" + err); - } else { - $tw.notifier.display(self.titleSavedNotification); - if(options.callback) { - options.callback(); - } - } - }; - // Ignore autosave if we've got a syncadaptor or autosave is disabled - if(method === "autosave") { - if(this.syncadaptor || this.wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes") { - return false; - } - } - // Call the highest priority saver that supports this method - for(var t=this.savers.length-1; t>=0; t--) { - var saver = this.savers[t]; - if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback)) { - this.logger.log("Saving wiki with method",method,"through saver",saver.info.name); - // Clear the task queue if we're saving (rather than downloading) - if(method !== "download") { - this.readTiddlerInfo(); - this.taskQueue = {}; - this.updateDirtyStatus(); - } - return true; - } - } - return false; -}; - /* Checks whether the wiki is dirty (ie the window shouldn't be closed) */ @@ -415,9 +352,7 @@ Syncer.prototype.enqueueSyncTask = function(task) { this.updateDirtyStatus(); } // Process the queue - if(this.syncadaptor) { - $tw.utils.nextTick(function() {self.processTaskQueue.call(self);}); - } + $tw.utils.nextTick(function() {self.processTaskQueue.call(self);}); }; /* @@ -498,7 +433,7 @@ Syncer.prototype.chooseNextTask = function() { // Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time if(task.type === "save" && (now - task.lastModificationTime) < self.throttleInterval && (now - task.queueTime) < self.fallbackInterval) { - return; + return; } // Exclude the task if it is newer than the current best candidate if(candidateTask && candidateTask.queueTime < task.queueTime) { @@ -560,6 +495,8 @@ Syncer.prototype.dispatchTask = function(task,callback) { } // Invoke the callback callback(null); + },{ + tiddlerInfo: self.tiddlerInfo[task.title] }); } }; diff --git a/core/modules/utils/dom/browser.js b/core/modules/utils/dom/browser.js index 5c397a065..090d5768b 100644 --- a/core/modules/utils/dom/browser.js +++ b/core/modules/utils/dom/browser.js @@ -135,8 +135,8 @@ Return the names of the fullscreen APIs */ exports.getFullScreenApis = function() { var d = document, - db = d.body; - return { + db = d.body, + result = { "_requestFullscreen": db.webkitRequestFullscreen !== undefined ? "webkitRequestFullscreen" : db.mozRequestFullScreen !== undefined ? "mozRequestFullScreen" : db.msRequestFullscreen !== undefined ? "msRequestFullscreen" : @@ -150,6 +150,11 @@ exports.getFullScreenApis = function() { d.msFullscreenElement !== undefined ? "msFullscreenElement" : d.fullscreenElement !== undefined ? "fullscreenElement" : "" }; + if(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement) { + return null; + } else { + return result; + } }; })(); diff --git a/core/modules/widgets/edit.js b/core/modules/widgets/edit.js index 0782d5118..39f4c39c2 100644 --- a/core/modules/widgets/edit.js +++ b/core/modules/widgets/edit.js @@ -83,7 +83,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of */ EditWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); - if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index) { + if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.editTitle]) { this.refreshSelf(); return true; } else { diff --git a/core/modules/widgets/link.js b/core/modules/widgets/link.js index 111896219..b5cd89fd8 100755 --- a/core/modules/widgets/link.js +++ b/core/modules/widgets/link.js @@ -56,7 +56,11 @@ LinkWidget.prototype.renderLink = function(parent,nextSibling) { // Create our element var domNode = this.document.createElement("a"); // Assign classes - var classes = ["tw-tiddlylink"]; + var classes = []; + if(this.linkClasses) { + classes.push(this.linkClasses); + } + classes.push("tw-tiddlylink"); if(this.isShadow) { classes.push("tw-tiddlylink-shadow"); } @@ -182,6 +186,8 @@ LinkWidget.prototype.execute = function() { // Get the link title and aria label this.tooltip = this.getAttribute("tooltip"); this["aria-label"] = this.getAttribute("aria-label"); + // Get the link classes + this.linkClasses = this.getAttribute("class"); // Determine the link characteristics this.isMissing = !this.wiki.tiddlerExists(this.to); this.isShadow = this.wiki.isShadowTiddler(this.to); diff --git a/core/modules/widgets/text.js b/core/modules/widgets/text.js index 4da2119ac..e3ebc4f70 100755 --- a/core/modules/widgets/text.js +++ b/core/modules/widgets/text.js @@ -30,8 +30,9 @@ TextNodeWidget.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); this.execute(); - var text = this.getAttribute("text",this.parseTreeNode.text), - textNode = this.document.createTextNode(text); + var text = this.getAttribute("text",this.parseTreeNode.text); + text = text.replace(/\r/mg,""); + var textNode = this.document.createTextNode(text); parent.insertBefore(textNode,nextSibling); this.domNodes.push(textNode); }; diff --git a/core/modules/widgets/transclude.js b/core/modules/widgets/transclude.js index 174a7a3f8..bc20d44c6 100755 --- a/core/modules/widgets/transclude.js +++ b/core/modules/widgets/transclude.js @@ -85,6 +85,8 @@ TranscludeWidget.prototype.makeRecursionMarker = function() { output.push(this.transcludeField || ""); output.push("|"); output.push(this.transcludeIndex || ""); + output.push("|"); + output.push(this.transcludeSubTiddler || ""); output.push("}"); return output.join(""); }; diff --git a/core/plugin.info b/core/plugin.info index 5ad83fcc0..ce3e1b025 100644 --- a/core/plugin.info +++ b/core/plugin.info @@ -3,5 +3,6 @@ "description": "TiddlyWiki5 core plugin", "author": "JeremyRuston", "core-version": ">=5.0.0", - "plugin-priority": "0" + "plugin-priority": "0", + "list": "readme" } diff --git a/core/readme.tid b/core/readme.tid new file mode 100644 index 000000000..a65d54927 --- /dev/null +++ b/core/readme.tid @@ -0,0 +1,8 @@ +title: $:/core/readme + +This plugin contains TiddlyWiki's core components, comprising: + +* JavaScript code modules +* Icons +* Templates needed to create TiddlyWiki's user interface +* British English (''en-GB'') translations of the localisable strings used by the core diff --git a/core/ui/ControlPanel/Plugins.tid b/core/ui/ControlPanel/Plugins.tid index 47c0e9663..654c34502 100644 --- a/core/ui/ControlPanel/Plugins.tid +++ b/core/ui/ControlPanel/Plugins.tid @@ -3,32 +3,64 @@ tags: $:/tags/ControlPanel caption: {{$:/language/ControlPanel/Plugins/Caption}} \define lingo-base() $:/language/ControlPanel/Plugins/ +\define popup-state-macro() +$(qualified-state)$-$(currentTiddler)$ +\end +\define tabs-state-macro() +$(popup-state)$-$(pluginInfoType)$ +\end +\define plugin-icon-title() +$(currentTiddler)$/icon +\end \define plugin-table(type) - - - - - - +<$set name="qualified-state" value=<>> <$list filter="[!has[draft.of]plugin-type[$type$]sort[description]]"> - - - - + + + +<$reveal type="match" text="yes" state=<>> +<$reveal type="nomatch" text="" state="!!list"> +
+<$macrocall $name="tabs" state=<> tabsList={{!!list}} default="readme" template="$:/core/ui/PluginInfo"/> +
+ +<$reveal type="match" text="" state="!!list"> +
+No information provided +
+ + + -
-
-<> - -<> -
-<$link to={{!!title}}> -''<$view field="description"><$view field="title"/>''
+<$set name="popup-state" value=<>> +<$link to={{!!title}} class="tw-plugin-info"> +
+<$reveal type="nomatch" state=<> text="yes"> +<$button class="btn-invisible btn-dropdown" set=<> setTo="yes"> +{{$:/core/images/right-arrow}} + + +<$reveal type="match" state=<> text="yes"> +<$button class="btn-invisible btn-dropdown" set=<> setTo="no"> +{{$:/core/images/down-arrow}} + + +
+
+<$transclude tiddler=<> subtiddler=<>> +<$transclude tiddler="$:/core/images/plugin-generic-$type$"/> + +
+
+
+''<$view field="description"><$view field="title"/>'' +
+
<$view field="title"/> - -
+ +
<$view field="version"/> -
+ \end ! <> diff --git a/core/ui/EditTemplate/fields.tid b/core/ui/EditTemplate/fields.tid index 7a1e23e27..7c5a51a96 100644 --- a/core/ui/EditTemplate/fields.tid +++ b/core/ui/EditTemplate/fields.tid @@ -5,12 +5,15 @@ tags: $:/tags/EditTemplate \define config-title() $:/config/EditTemplateFields/Visibility/$(currentField)$ \end +\define config-filter() +[[hide]] -[title{$(config-title)$}] +\end <$fieldmangler>
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField"> -<$reveal type="nomatch" state=<> text="hide"> +<$list filter=<> variable="temp"> @@ -21,7 +24,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$ <$button message="tw-remove-field" param=<> class="btn-invisible">{{$:/core/images/delete-button}} - +
<$text text=<>/>:
diff --git a/core/ui/MoreSideBar/Tags.tid b/core/ui/MoreSideBar/Tags.tid index eda362e5f..63eab2673 100644 --- a/core/ui/MoreSideBar/Tags.tid +++ b/core/ui/MoreSideBar/Tags.tid @@ -2,8 +2,19 @@ title: $:/core/ui/MoreSideBar/Tags tags: $:/tags/MoreSideBar caption: {{$:/language/SideBar/Tags/Caption}} -\define lingo-base() $:/language/SideBar/Tags/ -<$button to="$:/TagManager" class="btn"><> +<$set name="tw-config-toolbar-icons" value="yes"> + +<$set name="tw-config-toolbar-text" value="yes"> + +<$set name="tw-config-toolbar-class" value=""> + +{{$:/core/ui/Buttons/tag-manager}} + + + + + + <$list filter="[tags[]!is[system]sort[title]]"> diff --git a/core/ui/PageControls/language.tid b/core/ui/PageControls/language.tid index b6afd1f7e..9c074b02a 100644 --- a/core/ui/PageControls/language.tid +++ b/core/ui/PageControls/language.tid @@ -3,10 +3,15 @@ tags: $:/tags/PageControls caption: {{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}} description: {{$:/language/Buttons/Language/Hint}} +\define flag-title() +$(languagePluginTitle)$/icon +\end <$button popup=<> title={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<> selectedClass="tw-selected"> <$list filter="[prefix[yes]]"> -<$image source="$:/language/Flag"/> +<$set name="languagePluginTitle" value={{$:/language}}> +<$image source=<>/> + <$list filter="[prefix[yes]]"> @@ -27,11 +32,13 @@ description: {{$:/language/Buttons/Language/Hint}} -<$transclude subtiddler="$:/language/Flag"> +<$set name="languagePluginTitle" value=<>> +<$transclude subtiddler=<>> <$list filter="[all[current]field:title[$:/languages/en-GB]]"> -<$transclude tiddler="$:/core" subtiddler="$:/language/Flag"/> +<$transclude tiddler="$:/languages/en-GB/icon"/> + <$view field="description"> <$view field="name"> diff --git a/core/ui/PageControls/tag-button.tid b/core/ui/PageControls/tag-button.tid new file mode 100644 index 000000000..2becac341 --- /dev/null +++ b/core/ui/PageControls/tag-button.tid @@ -0,0 +1,13 @@ +title: $:/core/ui/Buttons/tag-manager +tags: $:/tags/PageControls +caption: {{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}} +description: {{$:/language/Buttons/TagManager/Hint}} + +<$button to="$:/TagManager" title={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=<>> +<$list filter="[prefix[yes]]"> +{{$:/core/images/tag-button}} + +<$list filter="[prefix[yes]]"> +<$text text={{$:/language/Buttons/TagManager/Caption}}/> + + diff --git a/core/ui/PluginInfo.tid b/core/ui/PluginInfo.tid new file mode 100644 index 000000000..08167f1ec --- /dev/null +++ b/core/ui/PluginInfo.tid @@ -0,0 +1,15 @@ +title: $:/core/ui/PluginInfo + +\define localised-info-tiddler-title() +$(currentTiddler)$/$(languageTitle)$/$(currentTab)$ +\end +\define info-tiddler-title() +$(currentTiddler)$/$(currentTab)$ +\end +<$transclude tiddler=<> mode="block"> +<$transclude tiddler=<> subtiddler=<> mode="block"> +<$transclude tiddler=<> subtiddler=<> mode="block"> +No ''"<$text text=<>/>"'' found + + + diff --git a/core/ui/TagManager.tid b/core/ui/TagManager.tid index d6434c4d1..9e56fd011 100644 --- a/core/ui/TagManager.tid +++ b/core/ui/TagManager.tid @@ -1,19 +1,24 @@ title: $:/TagManager \define lingo-base() $:/language/TagManager/ -\define iconEditor(title) -<$edit-text field="icon" tag="input" size="20"/> <$button popup=<> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}} -
-<$reveal state=<> type="nomatch" text="" default=""> -<$linkcatcher to="$title$!!icon"> -
-<$list filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] +[sort[title]]"> +\define iconEditorTab(type) +<$list filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]"> <$link to={{!!title}}> -<$view field="title"/> +<$transclude/> <$view field="title"/> -
+\end +\define iconEditor(title) +
+<$edit-text field="icon" tag="input" size="20"/> <$button popup=<> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}} +<$reveal state=<> type="popup" position="belowleft" text="" default=""> +
+<$linkcatcher to="$title$!!icon"> +<> +
+<> +
\end diff --git a/core/wiki/config/EditTemplateFields.multids b/core/wiki/config/EditTemplateFields.multids index 12a2b8055..8f31786f2 100644 --- a/core/wiki/config/EditTemplateFields.multids +++ b/core/wiki/config/EditTemplateFields.multids @@ -10,3 +10,5 @@ modifier: hide type: hide draft.title: hide draft.of: hide +revision: hide +bag: hide diff --git a/core/wiki/config/EditorTypeMappings.multids b/core/wiki/config/EditorTypeMappings.multids new file mode 100644 index 000000000..f39a6e397 --- /dev/null +++ b/core/wiki/config/EditorTypeMappings.multids @@ -0,0 +1,8 @@ +title: $:/config/EditorTypeMappings/ + +image/gif: bitmap +image/jpeg: bitmap +image/jpg: bitmap +image/png: bitmap +image/x-icon: bitmap +text/vnd.tiddlywiki: text diff --git a/core/wiki/config/PageControlButtons.multids b/core/wiki/config/PageControlButtons.multids index d15149785..df29cd1f0 100644 --- a/core/wiki/config/PageControlButtons.multids +++ b/core/wiki/config/PageControlButtons.multids @@ -6,6 +6,7 @@ core/ui/Buttons/full-screen: hide core/ui/Buttons/home: hide core/ui/Buttons/import: hide core/ui/Buttons/language: hide +core/ui/Buttons/tag-manager: hide core/ui/Buttons/more-page-actions: hide core/ui/Buttons/permaview: hide core/ui/Buttons/storyview: hide diff --git a/core/wiki/config/SyncFilter.tid b/core/wiki/config/SyncFilter.tid index e2447c2ac..548e2987c 100644 --- a/core/wiki/config/SyncFilter.tid +++ b/core/wiki/config/SyncFilter.tid @@ -1,3 +1,3 @@ title: $:/config/SyncFilter -[is[tiddler]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/isEncrypted]] -[prefix[$:/status]] -[prefix[$:/state]] -[prefix[$:/temp]] \ No newline at end of file +[is[tiddler]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status]] -[prefix[$:/state]] -[prefix[$:/temp]] \ No newline at end of file diff --git a/core/wiki/language.tid b/core/wiki/language.tid new file mode 100644 index 000000000..a8a74ee23 --- /dev/null +++ b/core/wiki/language.tid @@ -0,0 +1,3 @@ +title: $:/language + +$:/languages/en-GB \ No newline at end of file diff --git a/core/wiki/tags/PageControls.tid b/core/wiki/tags/PageControls.tid index 49b346080..080bb82d8 100644 --- a/core/wiki/tags/PageControls.tid +++ b/core/wiki/tags/PageControls.tid @@ -1,2 +1,2 @@ title: $:/tags/PageControls -list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/more-page-actions]] +list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/more-page-actions]] diff --git a/editions/test/tiddlers/tests/test-wikitext.js b/editions/test/tiddlers/tests/test-wikitext.js index 223f3306e..271688cee 100644 --- a/editions/test/tiddlers/tests/test-wikitext.js +++ b/editions/test/tiddlers/tests/test-wikitext.js @@ -45,6 +45,16 @@ describe("WikiText tests", function() { it("should support attributes specified as macro invocations", function() { expect(wiki.renderTiddler("text/html","TiddlerFour")).toBe("

This is a link

"); }); + it("should identify wikiwords to automatically link", function() { + expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No wikilinks here").indexOf("> class="tw-vertical"/> ------ +See also: -TiddlyWiki is very flexible, and there are many different ways to use it. Here we're focusing on using it as a standalone file in the browser, which is a good choice for most users as it doesn't require any special knowledge or tools. For more options you can also run [[TiddlyWiki on Node.js]]. - -[[Video Tutorials]] are available, too. - -! The 'works anywhere' method - -{{Saving with the HTML5 fallback saver}} - -! The convenient and fast method - -Saving changes as described above is quite inconvenient because of the degree of manual intervention that browsers require. The following alternative method is recommended for everyone who is able to use Mozilla's [[Firefox]] browser. - -{{Saving with TiddlyFox}} - -! Other ways of saving changes - -[[Saving with Encryption]] explains how to use TiddlyWiki's built-in encryption to protect your content with a password. - -You can also try: - -* [[Using TiddlyWiki on TiddlyDesktop]], a custom desktop application for working with TiddlyWiki -* [[Saving on iPad/iPhone]] with the custom ''TWEdit'' app -* [[Saving on Android]] with the custom ''~AndTidWiki'' app -* [[Saving on InternetExplorer]] with the [[TiddlyIE]] extension, or via the [[Windows HTA Hack]] +* [[Saving with Encryption]] explains how to use TiddlyWiki's built-in encryption to protect your content with a password * [[Saving on TiddlySpot]], a free service that lets you use TiddlyWiki online * Running [[TiddlyWiki on node-webkit]], turning a single TiddlyWiki into a native application on your desktop +* [[Using TiddlyWiki on TiddlyDesktop]], a custom desktop application for working with TiddlyWiki diff --git a/editions/tw5.com/tiddlers/HelloThere.tid b/editions/tw5.com/tiddlers/HelloThere.tid index 4d210ef90..92bce4cf5 100644 --- a/editions/tw5.com/tiddlers/HelloThere.tid +++ b/editions/tw5.com/tiddlers/HelloThere.tid @@ -1,12 +1,14 @@ created: 20130822170200000 -modified: 20140624094134118 +modified: 20140813164027280 tags: introduction title: HelloThere type: text/vnd.tiddlywiki -Welcome to TiddlyWiki, a complete interactive wiki in JavaScript. It can be used as a [[single HTML file in the browser|SingleFileApplication]] or as a powerful [[Node.js application|Node.js]]. It is highly customisable: the entire user interface is itself implemented in hackable WikiText. +Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation. -This is version <> of ~TiddlyWiki, a major reboot designed [[for the next 25 years|Future of TiddlyWiki]]. It is currently in beta (see the detailed ReleaseHistory). There is a RoadMap for moving to the full release. It is a great time to [[get involved|Community]] and support the future development of ~TiddlyWiki. +TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a [[single HTML file in the browser|SingleFileApplication]] or as a powerful [[Node.js application|Node.js]]. It is highly customisable: the entire user interface is itself implemented in hackable WikiText. + +This is version <> of ~TiddlyWiki, a major reboot designed [[for the next 25 years|Future of TiddlyWiki]]. It is currently in beta (see the detailed ReleaseHistory) with a RoadMap for moving to the full release. It is a great time to [[get involved|Community]] and support the future development of ~TiddlyWiki. //~TiddlyWiki is a free, open source project that depends on [[your love and support|HelpingTiddlyWiki]] for its survival//. @@ -14,9 +16,7 @@ This is version <> of ~TiddlyWiki, a major reboot designed [[for the ne {{TiddlyWiki Classic.png}} -!! TiddlyWikiClassic - http://classic.tiddlywiki.com +!! TiddlyWikiClassic -On this site, unless noted otherwise, "~TiddlyWiki" refers to the new version 5, and "~TiddlyWikiClassic" is used to identify the older version. - -The deep internal improvements mean that the new version of ~TiddlyWiki is not fully compatible with ~TiddlyWikiClassic. Existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures. +The original "Classic" version of TiddlyWiki is still available at http://classic.tiddlywiki.com. Note that it is not fully backwards compatible: existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures.
diff --git a/editions/tw5.com/tiddlers/ImageGallery Example.tid b/editions/tw5.com/tiddlers/ImageGallery Example.tid new file mode 100644 index 000000000..61b94b605 --- /dev/null +++ b/editions/tw5.com/tiddlers/ImageGallery Example.tid @@ -0,0 +1,20 @@ +created: 20140809113603449 +modified: 20140809113849873 +tags: demo +title: ImageGallery Example +type: text/vnd.tiddlywiki + +Here is an example of using the ListWidget and the TranscludeWidget to show a grid of all system images (ie, tiddlers tagged [[$:/tags/Image]]). + + + diff --git a/editions/tw5.com/tiddlers/Release 5.0.14beta.tid b/editions/tw5.com/tiddlers/Release 5.0.14beta.tid index c770d8f6b..0a4c13d43 100644 --- a/editions/tw5.com/tiddlers/Release 5.0.14beta.tid +++ b/editions/tw5.com/tiddlers/Release 5.0.14beta.tid @@ -1,15 +1,26 @@ -created: 20140518150234142 -modified: 20140624094134118 +caption: 5.0.14-beta +created: 20140718150234142 +modified: 20140813153116300 tags: releasenote title: Release 5.0.14-beta type: text/vnd.tiddlywiki -caption: 5.0.14-beta +released: 201408131731 //[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.13-beta...v5.0.14-beta]]// !! Major Changes -!!! Introduction of Upgrade Mechanism +!!! Improved Control Panel Plugins Tab + +The ''Plugins'' tab of the [[control panel|$:/ControlPanel]] has been improved with the addition of documentation tabs that plugins can use to show documentation. There is also a larger draggable area for dragging tiddlers across to other wikis. + +!!! Configurable Button Toolbars + +The page toolbar and the tiddler toolbars can now be configured with several new buttons - see the [[control panel|$:/ControlPanel]] under the ''Appearance'' and ''Toolbars'' tabs. + +The sidebar tools tab now shows all the available page controls, allowing them to be invoked or checked to appear in the toolbar. The tiddler info area now includes a tools tab that includes buttons for all the tiddler actions. + +!!! Upgrade Mechanism There are two components: @@ -19,32 +30,45 @@ There are two components: *** The [[plugin upgrader|$:/core/modules/upgraders/plugins.js]] module handles version checking of plugins and upgrading them from a special UpgradeLibrary plugin tiddler *** The [[system upgrader|$:/core/modules/upgraders/system.js]] module is responsible for suppressing the importing of certain system tiddlers (currently [[$:/StoryList]] and [[$:/HistoryList]]) *** The [[themetweak upgrader|$:/core/modules/upgraders/themetweaks.js]] module handles migrating theme tweaks from their pre-5.0.14-beta format (see below) -* An UpgradePlugin and associated edition that provides a custom, single-purpose user interface for upgrading standalone TiddlyWiki files +* An UpgradePlugin and associated edition that provides a custom, single-purpose user interface for upgrading standalone TiddlyWiki files - see http://tiddlywiki.com/upgrade.html -!!! PermaView (and PermaLinks) Off by Default +!!! Improvements to CamelCase Recognition -The browser address bar is automatically updated with previous beta releases of TiddlyWiki so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed. +TiddlyWiki now takes a much more conservative approach to recognising CamelCase terms that should be automatically linked. Previously, the dash and underscore were treated as lower case letters, leading to a number of false positives. See the [[GitHub bug #337|https://github.com/Jermolene/TiddlyWiki5/issues/337]] for details. + +!!! Automatic Permalinking Off by Default + +With previous beta releases of TiddlyWiki the browser address bar is automatically updated so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed after they have refreshed the page in the browser. For 5.0.14-beta, the setting has been changed. Visit [[control panel|$:/ControlPanel]] ''Advanced''/''Settings'' to switch the setting back to "Include the target tiddler and the current story sequence". -!! Accessibility Improvements - -* - !! Usability Improvements +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/f6d7d87a3d49f816ccc050bdf4a5394eed37dd51]] previews to the icon dropdown in the [[tag manager|$:/TagManager]] +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/56945d91d327489478fc44dce5234ece35a01abb]] an indication of unsaved changes by changing the colour of the save changes button +* [[Split|https://github.com/Jermolene/TiddlyWiki5/commit/7aa6c7c06d8b5359f183e6b9f6f57cf89611cda8]] the wikitext emphasis parsers into separate modules so that they can be independently controlled with the `\rules` pragma * [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/f43cd5ba9c6e5eda221ec738174e61e34fad2b8d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/a3de93b4eb8b108239b2e4b496308026e9e9eef8]]) ReleaseHistory to place the releases into vertical tabs * [[Stopped|https://github.com/Jermolene/TiddlyWiki5/commit/3ff7462afd5414b92680c6b6e67274be79233224]] saving [[$:/HistoryList]], thus avoiding it uncontrollably increasing in size * [[Improved|https://github.com/Jermolene/TiddlyWiki5/commit/73cf1bfdb3cd238ac7800162f58d44a8bb60019b]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/d5e4b9b5d1e7db5ad4d769433cc934ef08265f57]]) print stylesheet to remove page background * [[Updated|https://github.com/Jermolene/TiddlyWiki5/commit/07f13b310d300631267936ad8bc55a338369afc0]] display of plugin tiddlers so that their constituent tiddlers are shown, rather than the raw JSON +* [[Moved|https://github.com/Jermolene/TiddlyWiki5/commit/799a5b059a40a51fdeb1dae7a0eb5bf8a79f5106]] the functionality of the fullscreen plugin into the core !! Hackability Improvements +* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/c23f6af4b5c59f4d09dd8d6704e1939bb9d5b2d3]] TiddlerWidget to add a CSS class corresponding to each tag present on displayed tiddlers +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d357e1706c91d17a72fb19fedf43e57071fc7dd6]] support for hiding specified fields in the tiddler editor +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/be040ea8a2cc8962f1a28a313e4c9ebc2d5c0e31]] support for variable operands in filters (see [[Introduction to Filters]]) +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f16ef6fa88b51d2dad7c8e57fcff014950a7442]] support for widget messages [[tw-permalink|WidgetMessage: tw-permalink]] and [[tw-permaview|WidgetMessage: tw-permaview]] +* [[Added|https://github.com/Jermolene/TiddlyWiki5/tree/master/plugins/tiddlywiki/browser-sniff]] browser sniffing plugin so that tiddlywiki.com can present the correct browser-specific documentation +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/ef67cc3fd9b267a522598abccdfbb93fbfca240c]] a configuration option for specifying the default location for saving new tiddlers in the client-server configuration +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/b4d47858e587c96f3a68cc28cffff181ec45f55f]] support for the InfoMechanism * [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/f08f57c5d24eb0146ac2cb77472a5fc5f135f1e9]] CheckboxWidget to allow it to toggle fields as well as tags * [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/21c137a66c37f010b36697bb6bed5321138fbb9f]] [[control panel|$:/ControlPanel]] theme tweaks to be stored in individual tiddlers * [[Extend|https://github.com/Jermolene/TiddlyWiki5/commit/e18d8a88661a1c2caa1b722841747c75ca6af437]] the TabsMacro to allow tabs to be templated * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/91acad0f7ce8637945a953dfcb122cd31292626d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/8612bc4006e717e4fa3c562fa72a85650206b66f]]) SystemTags support for inserting content above and below the story river * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/f793816dfa687ae7791143b33487fd5f95f3265c]] support for transcluding plugin subtiddlers with the TranscludeWidget +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/c73853288c5b4b0716da94fea2f2edec09345643]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/08f775eac8cb053d08c1c561e65a5eeb87c4c6b6]]) support for importing from `*.htm` and `*.hta` files as well as the existing support for `*.html` files +* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/73d7e85e11c7732080ca8bc4321ebb12afbac09c]] the "sticky titles" theme so that it works when tiddlers are in edit mode !! Bug Fixes @@ -52,9 +76,13 @@ For 5.0.14-beta, the setting has been changed. Visit [[control panel|$:/ControlP * [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/d93da81671a704377209fc1871425c3a7c5db35a]] bug with missing hover colours for external links * [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/465f4ac46903070759a572d183c498c5579cb922]] problem with refreshing modal dialogues * [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/3351ae7e29cbf3bed6fc1925ef33664bcc59fef5]] issue with cookies disabled on Firefox +* [[Relax|https://github.com/Jermolene/TiddlyWiki5/commit/5260899d8b090e8886e41e3aa770fdcf5967ad8c]] the requirement for a newline immediately the closing `\end` of a macro definition !! Contributors [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: * [[@BramChen|https://github.com/BramChen]] +* [[@pmario|https://github.com/pmario]] +* [[@ssokolow|https://github.com/ssokolow]] +* [[@xcazin|https://github.com/xcazin]] diff --git a/editions/tw5.com/tiddlers/Release 5.0.15beta.tid b/editions/tw5.com/tiddlers/Release 5.0.15beta.tid new file mode 100644 index 000000000..a0954b6c9 --- /dev/null +++ b/editions/tw5.com/tiddlers/Release 5.0.15beta.tid @@ -0,0 +1,30 @@ +caption: 5.0.15-beta +created: 20140812150234142 +modified: 20140813153116300 +tags: releasenote +title: Release 5.0.15-beta +type: text/vnd.tiddlywiki + +//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.14-beta...v5.0.15-beta]]// + +This is a small release to resolve some minor issues with [[Release 5.0.14-beta]]. + +!! Usability Improvements + +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/4b05608ad5e77043b01495825ea0f0e76c378760]] page control button for invoking the [[tag manager|$:/TagManager]] + +!! Hackability Improvements + +* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/f75af2c983e10e8a82639890b993fb5cf042d610]] `saver-handler.js` out of `syncer.js` + +!! Bug Fixes + +* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/c8830d32f74b8c228553f11f7f55b5be45ae6471]] problem with building TiddlyWiki under Windows +* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/34461cb2fe554331a0269fd7795b1d6a879fcba9]] unclickable download ink in upgrade wizard +* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/9e85ddfec78dd8df71e6173100dce659417551f4]] missing language flag in ''empty.html'' + +!! Contributors + +[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: + +* [[@BramChen|https://github.com/BramChen]] diff --git a/editions/tw5.com/tiddlers/ReleaseHistory.tid b/editions/tw5.com/tiddlers/ReleaseHistory.tid index d11e924d0..d7076c5c1 100644 --- a/editions/tw5.com/tiddlers/ReleaseHistory.tid +++ b/editions/tw5.com/tiddlers/ReleaseHistory.tid @@ -5,4 +5,4 @@ type: text/vnd.tiddlywiki Here are the details of recent releases of TiddlyWiki5. See [[TiddlyWiki5 Versioning]] for details of how releases are named. -<> +<> diff --git a/editions/tw5.com/tiddlers/Saving on Safari.tid b/editions/tw5.com/tiddlers/Saving on Safari.tid new file mode 100644 index 000000000..137802ed3 --- /dev/null +++ b/editions/tw5.com/tiddlers/Saving on Safari.tid @@ -0,0 +1,23 @@ +created: 20140811171304926 +modified: 20140811171800263 +tags: howto +title: Saving on Safari +type: text/vnd.tiddlywiki + +This method of saving changes is clunky because it requires manual intervention for each save. + +# [[Download]] an empty TiddlyWiki by clicking this button: +#> {{$:/editions/tw5.com/snippets/download-empty-button}} +#> If the button doesn't work save this link: http://tiddlywiki.com/empty.html +#> Your browser may ask you to accept the download before it begins +# Locate the file you just downloaded +#* You may rename it, but be sure to keep the `.html` or `.htm` extension +# Open the file in Safari +# Try creating a new tiddler using the ''new tiddler'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''done'' button +# Save your changes by clicking the {{$:/core/images/save-button}} ''save changes'' button in the sidebar +# A popup "Download changes" window is displayed that includes a link labelled //Right-click to save changes// +# Right-click on the link and select "Download Linked File As..." from the popup menu +# Navigate to the folder containing your wiki HTML file and select the existing file +# Click the "Save" button +# Click "Replace" to confirm replacing the existing file +# Verify that your changes have been saved correctly diff --git a/editions/tw5.com/tiddlers/TableOfContents.tid b/editions/tw5.com/tiddlers/TableOfContents.tid index a7aff2657..c30ab83a9 100644 --- a/editions/tw5.com/tiddlers/TableOfContents.tid +++ b/editions/tw5.com/tiddlers/TableOfContents.tid @@ -1,7 +1,10 @@ -title: TableOfContents -list-after: $:/core/ui/SideBar/Open -tags: $:/tags/SideBar caption: {{$:/language/SideBar/Contents/Caption}} +created: 20140809114010378 +list-after: $:/core/ui/SideBar/Open +modified: 20140809114018461 +tags: $:/tags/SideBar +title: TableOfContents +type: text/vnd.tiddlywiki \define toc-heading(caption,body) <$reveal type="nomatch" state=<> text="show"> @@ -106,6 +109,7 @@ $body$ ## [[Creating SubStories]] ## [[Editing Tiddlers with Emacs]] ## [[GoogleChromeTips]] +## [[ImageGallery Example]] ## [[Making curved text with SVG]] ## [[Preserving open tiddlers at startup]] ## [[Setting a favicon]] @@ -179,18 +183,30 @@ $body$ ">> ## <> ## <>
diff --git a/editions/tw5.com/tiddlers/concepts/ExternalImages.tid b/editions/tw5.com/tiddlers/concepts/ExternalImages.tid index 0e394dc91..3c4e8ab5e 100644 --- a/editions/tw5.com/tiddlers/concepts/ExternalImages.tid +++ b/editions/tw5.com/tiddlers/concepts/ExternalImages.tid @@ -16,6 +16,8 @@ An external image is an ordinary image tiddler that has a ''_canonical_uri'' fie To manually create an external image just create the tiddler with the appropriate image content type, and add a ''_canonical_uri'' field with a URI pointing to the actual image location. +''IMPORTANT:'' Double-check your spelling. ``_canonical_uri`` is spelled [[URI|https://en.wikipedia.org/wiki/URI#The_relationship_between_URIs.2C_URLs.2C_and_URNs]], not URL. + ! Creating external images under Node.js The following steps are used to create a static HTML file version of a wiki accompanied by an ''images'' folder containing the referenced external images: diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid index 7ed80639e..320ae3556 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Android.tid @@ -1,5 +1,7 @@ -title: GettingStarted - Android caption: Android +created: 20140811171036268 +modified: 20140811171041595 +title: GettingStarted - Android +type: text/vnd.tiddlywiki -These are instructions for Android. - +{{Saving on Android}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid index 84bf4dda5..32f4ee66f 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Chrome.tid @@ -1,4 +1,9 @@ -title: GettingStarted - Chrome caption: Chrome +created: 20140811165935523 +modified: 20140811170107969 +title: GettingStarted - Chrome +type: text/vnd.tiddlywiki -These are instructions for Chrome +TiddlyWiki on Google Chrome can only save changes using the HTML5-compatible fallback saver module. + +{{Saving with the HTML5 fallback saver}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid index 64b5ab7f9..c6c975472 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Firefox.tid @@ -1,4 +1,9 @@ -title: GettingStarted - Firefox caption: Firefox +created: 20140811170425199 +modified: 20140811170527083 +title: GettingStarted - Firefox +type: text/vnd.tiddlywiki -These are instructions for Firefox +Firefox provides the best user experience for using TiddlyWiki with the TiddlyFox browser extension. + +{{Saving with TiddlyFox}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid index f02fb0779..da9ee9e55 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Internet Explorer.tid @@ -1,5 +1,9 @@ -title: GettingStarted - Internet Explorer caption: Internet Explorer +created: 20140811172058274 +modified: 20140811172247864 +title: GettingStarted - Internet Explorer +type: text/vnd.tiddlywiki -These are instructions for Internet Explorer. +{{Saving with TiddlyIE}} +The [[Windows HTA Hack]] describes an alternative method of using TiddlyWiki with Internet Explorer. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid index d232435ce..a4af8c340 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Node.js.tid @@ -1,4 +1,7 @@ -title: GettingStarted - Node.js caption: Node.js +created: 20140811172010003 +modified: 20140811172012677 +title: GettingStarted - Node.js +type: text/vnd.tiddlywiki -Instructions for Node.js +{{Installing TiddlyWiki on Node.js}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid index 4872c1006..3e56b985f 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - Safari.tid @@ -1,5 +1,10 @@ -title: GettingStarted - Safari caption: Safari +created: 20140811171121022 +modified: 20140811171247643 +title: GettingStarted - Safari +type: text/vnd.tiddlywiki -These are instructions for Safari. +TiddlyWiki on Safari can only save changes using the HTML5-compatible fallback saver module. + +{{Saving on Safari}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid index 595a33190..67f107621 100644 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid +++ b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - iOS.tid @@ -1,5 +1,7 @@ -title: GettingStarted - iOS caption: iPad/iPhone +created: 20140811170918707 +modified: 20140811170921731 +title: GettingStarted - iOS +type: text/vnd.tiddlywiki -These are instructions for iPad/iPhone/iPod. - +{{Saving on iPad/iPhone}} diff --git a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - unknown.tid b/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - unknown.tid deleted file mode 100644 index 6da51fc8c..000000000 --- a/editions/tw5.com/tiddlers/gettingstarted/GettingStarted - unknown.tid +++ /dev/null @@ -1,5 +0,0 @@ -title: GettingStarted - unknown -caption: unknown - -Your current browser is unknown. - diff --git a/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid index 5ea0a4922..c329f2adf 100644 --- a/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/PluginMechanism.tid @@ -1,5 +1,5 @@ created: 20130826122000000 -modified: 20131214094840608 +modified: 20140807094840608 tags: mechanism title: PluginMechanism type: text/vnd.tiddlywiki @@ -32,6 +32,7 @@ Plugins are stored as tiddlers with the following fields: |type |Must be ''application/json'' | |plugin-type |Can be ''plugin'' (default) or ''theme'' | |text |JSON encoding of the list of tiddlers comprising the plugin | +|list |Names of exposed plugin information tiddlers (see below) | |dependents |List of dependent plugins (currently only implemented for themes) | ! Plugin folders @@ -50,7 +51,8 @@ The JSON structure for plugin tiddlers is as follows: "version": "1.2.3-alpha3", "core-version": ">=5.0.0", "source": "http://tiddlywiki.com/MyPlugin", - "plugin-type": "plugin" + "plugin-type": "plugin", + "list": "readme license history" } ``` @@ -84,3 +86,23 @@ Plugins can also be included manually by copying them into the `plugins` subfold The wiki object keeps track of all of the currently loaded plugins. If a request for a tiddler isn't in the store then the wiki looks through the cascade of plugins to find the requested tiddler. It is a similar idea to the way that shadow tiddlers are implemented in classic TiddlyWiki. In the browser, any constituent tiddlers that are JavaScript modules (ie shadow tiddlers of content type `application/javascript` and possessing the field `module-type`) are executed during startup processing. + +! Information Tiddlers for Plugins + +Plugin authors are encouraged to provide special information and documentation tiddlers that TiddlyWiki can include as plugin information tabs in the [[control panel|$:/ControlPanel]]. + +Plugins should provide an icon contained in a tiddler with the title formed of `/icon` (for example, [[$:/core/icon]]). + +Plugins expose the names of the individual information tabs that they wish to display in the `list` field of the plugin tiddler. By convention, some or all of the following should be provided: + +* ''readme'': basic information about the plugin +* ''license'': the license under which the plugin is published + +The process used to generate the title of the information tiddler is as follows: + +# `//` (for example, ''$:/core/en-GB/readme'') +# `/` (for example, ''$:/core/readme'') + +Thus, plugins can provide language-specific versions of each information tiddler. + +Note that information tiddlers should not reference other tiddlers within the plugin. This is because plugins containing themes or languages are dynamically switched in and out as they are selected, and so their information tiddlers may not be available for viewing. The control panel uses the 'subtiddler' attribute of the TranscludeWidget to access these tiddlers, which works independently of the plugin switching mechanism. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-auto-save-wiki.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-auto-save-wiki.tid new file mode 100644 index 000000000..d5b99be0c --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-auto-save-wiki.tid @@ -0,0 +1,11 @@ +created: 20140811112343634 +modified: 20140811114420597 +tags: message +title: WidgetMessage: tw-auto-save-wiki +type: text/vnd.tiddlywiki + +The autosave wiki message causes the current saver module to perform a background save if it is required. + +The autosave wiki message should be generated whenever changes are made to the store. For example, the navigator widget generates the autosave wiki message as part of its handling of the [[WidgetMessage: tw-save-tiddler]], [[WidgetMessage: tw-delete-tiddler]] and [[WidgetMessage: tw-perform-import]]. + +The autosave wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]]. Not all SaverModules can handle autosaving. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-download-file.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-download-file.tid new file mode 100644 index 000000000..2b14dd92e --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-download-file.tid @@ -0,0 +1,14 @@ +created: 20140811112201235 +modified: 20140811115140378 +tags: message +title: WidgetMessage: tw-download-file +type: text/vnd.tiddlywiki + +The download file message causes the current saver module to prompt the user to download the result of parsing a specified template tiddler as a file. It requires the following properties on the `event` object: + +|!Name |!Description | +|param |Title of a tiddler to use as a template for the new tiddler | + +The download file message is usually generated with the ButtonWidget. + +The download file message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]]. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-full-screen.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-full-screen.tid new file mode 100644 index 000000000..305b8c778 --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-full-screen.tid @@ -0,0 +1,9 @@ +created: 20140811112400855 +modified: 20140811113627373 +tags: message +title: WidgetMessage: tw-full-screen +type: text/vnd.tiddlywiki + +The fullscreen message toggles the "fullscreen" mode of the browser, if it supports it. + +The fullscreen message is handled by the TiddlyWiki core. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-login.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-login.tid new file mode 100644 index 000000000..38eda7164 --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-login.tid @@ -0,0 +1,10 @@ +created: 20140811112445887 +modified: 20140811113336694 +tags: message +title: WidgetMessage: tw-login +type: text/vnd.tiddlywiki + +The login message prompts the user for a username and password and attempts to login to the current serverside host. The tiddler [[$:/status/IsLoggedIn]] reflects the current login status with the values "yes" or "no", and [[$:/status/UserName]] reflects the current username. + +The login message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin). + diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-logout.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-logout.tid new file mode 100644 index 000000000..a499fdb25 --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-logout.tid @@ -0,0 +1,9 @@ +created: 20140811112457311 +modified: 20140811113344084 +tags: message +title: WidgetMessage: tw-logout +type: text/vnd.tiddlywiki + +The logout message attempts to log the user out of the current serverside host. The tiddler [[$:/status/IsLoggedIn]] reflects the current login status with the values "yes" or "no", and [[$:/status/UserName]] reflects the current username. + +The logout message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin). diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-modal.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-modal.tid new file mode 100644 index 000000000..84decfc1f --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-modal.tid @@ -0,0 +1,12 @@ +created: 20140811112133701 +modified: 20140811120203685 +tags: message +title: WidgetMessage: tw-modal +type: text/vnd.tiddlywiki + +The modal message displays a specified tiddler in a modal overlay that dims the main page. It requires the following properties on the `event` object: + +|!Name |!Description | +|param |Title of the tiddler to be displayed | + +The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-notify.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-notify.tid new file mode 100644 index 000000000..97c72408d --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-notify.tid @@ -0,0 +1,12 @@ +created: 20140811112304772 +modified: 20140811120248738 +tags: message +title: WidgetMessage: tw-notify +type: text/vnd.tiddlywiki + +The notify message briefly displays a specified tiddler as a small alert in the upper right corner of the page. It requires the following properties on the `event` object: + +|!Name |!Description | +|param |Title of the tiddler to be displayed | + +The notify message is handled by the TiddlyWiki core. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-save-wiki.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-save-wiki.tid new file mode 100644 index 000000000..bff780fe0 --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-save-wiki.tid @@ -0,0 +1,11 @@ +created: 20140811112325641 +modified: 20140811115149288 +tags: message +title: WidgetMessage: tw-save-wiki +type: text/vnd.tiddlywiki + +The save wiki message causes the current saver module to perform a full save operation. The save operation can involve user interaction, unlike the [[WidgetMessage: tw-auto-save-wiki]]/ + +The save wiki message is usually generated by the ButtonWidget. + +The save wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]]. diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-server-refresh.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-server-refresh.tid new file mode 100644 index 000000000..fcf56e28e --- /dev/null +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tw-server-refresh.tid @@ -0,0 +1,9 @@ +created: 20140811112435281 +modified: 20140811113453568 +tags: message +title: WidgetMessage: tw-server-refresh +type: text/vnd.tiddlywiki + +The server refresh message attempts to synchronise the latest changes to the current serverside host. + +The server refresh message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin). diff --git a/editions/tw5.com/tiddlers/moduletypes/SyncAdaptorModules.tid b/editions/tw5.com/tiddlers/moduletypes/SyncAdaptorModules.tid index 3ec089631..5396f2081 100644 --- a/editions/tw5.com/tiddlers/moduletypes/SyncAdaptorModules.tid +++ b/editions/tw5.com/tiddlers/moduletypes/SyncAdaptorModules.tid @@ -1,5 +1,5 @@ created: 20130825162100000 -modified: 20131129094907624 +modified: 20140814094907624 tags: dev moduletypes title: SyncAdaptorModules type: text/vnd.tiddlywiki @@ -27,12 +27,16 @@ Nothing should be exported if the adaptor detects that it isn't capable of opera Adaptor modules must handle the following methods. -!! `Constructor(syncer)` +!! `Constructor(options)` Initialises a new adaptor instance. |!Parameter |!Description | -|syncer |Syncer object that is using this adaptor | +|options |See below | + +Options include: + +* ''options.wiki'': reference to wiki to use with this syncadaptor !! `getTiddlerInfo(tiddler)` @@ -91,10 +95,11 @@ Loads a tiddler from the server. |title |Title of tiddler to be retrieved | |callback |Callback function invoked with parameter `err,tiddlerFields` | -!! `deleteTiddler(title,callback)` +!! `deleteTiddler(title,callback,tiddlerInfo)` Delete a tiddler from the server. |!Parameter |!Description | |title |Title of tiddler to be deleted | |callback |Callback function invoked with parameter `err` | +|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler | diff --git a/editions/tw5.com/tiddlers/roadmap/RoadMap.tid b/editions/tw5.com/tiddlers/roadmap/RoadMap.tid index d2d9a6e32..bd0e09293 100644 --- a/editions/tw5.com/tiddlers/roadmap/RoadMap.tid +++ b/editions/tw5.com/tiddlers/roadmap/RoadMap.tid @@ -1,5 +1,5 @@ created: 20130823203800000 -modified: 20140715081725471 +modified: 20140809112946299 tags: planning title: RoadMap type: text/vnd.tiddlywiki @@ -16,7 +16,7 @@ Some important features were deferred to be added after the beta: * Fixing hangovers from TiddlyWikiClassic * ~TiddlyWiki file format (to avoid illegal attribute names) * Tiddler object format (to provide true polymorphism of field values) -* Aliases +* Aliases (alternative titles for tiddlers) * Search and replace * Tiddler renaming * Rich link tooltips, incorporating a preview diff --git a/editions/tw5.com/tiddlers/saving/Saving on Android.tid b/editions/tw5.com/tiddlers/saving/Saving on Android.tid index ba7b2b2f3..19da4c8e8 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on Android.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on Android.tid @@ -1,9 +1,9 @@ created: 20130825161400000 -modified: 20131203112539560 +modified: 20140811171026344 tags: howto title: Saving on Android type: text/vnd.tiddlywiki -The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. +The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. [[Download it here|https://play.google.com/store/apps/details?id=de.mgsimon.android.andtidwiki]]. //Note that AndTidWiki is published independently of TiddlyWiki// \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid index cea136d5e..cfde40243 100644 --- a/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid +++ b/editions/tw5.com/tiddlers/saving/Saving with the HTML5 fallback saver.tid @@ -1,10 +1,10 @@ created: 20131129092604900 -modified: 20140226201353048 +modified: 20140811170321179 tags: howto title: Saving with the HTML5 fallback saver type: text/vnd.tiddlywiki -This method of saving changes is clunky but has the advantage of working on almost all desktop browsers, and many mobile browsers. +This method of saving changes is clunky because it requires manual intervention for each save. It has the advantage of working on almost all desktop browsers, and many mobile browsers. # [[Download]] an empty TiddlyWiki by clicking this button: #> {{$:/editions/tw5.com/snippets/download-empty-button}} @@ -13,8 +13,8 @@ This method of saving changes is clunky but has the advantage of working on almo # Locate the file you just downloaded #* You may rename it, but be sure to keep the `.html` or `.htm` extension # Open the file in your browser -# Try creating a new tiddler using the ''plus'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''tick'' button -# Save your changes by clicking the {{$:/core/images/save-button}} ''download'' button in the sidebar +# Try creating a new tiddler using the ''new tiddler'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''done'' button +# Save your changes by clicking the {{$:/core/images/save-button}} ''save changes'' button in the sidebar # Your browser will download a new copy of the wiki incorporating your changes # Locate the newly downloaded file and open it in your browser # Verify that your changes have been saved correctly diff --git a/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid b/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid index 22fddf73b..efd6c8c18 100644 --- a/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid +++ b/editions/tw5.com/tiddlers/system/github-fork-ribbon.tid @@ -3,5 +3,4 @@ tags: $:/tags/PageControls caption: ~GitHub ribbon description: ~GitHub ribbon for tw5.com - \ No newline at end of file +
<$link to="ReleaseHistory"><>
\ No newline at end of file diff --git a/editions/tw5.com/tiddlers/system/version-link-macro.tid b/editions/tw5.com/tiddlers/system/version-link-macro.tid new file mode 100644 index 000000000..4acef82ac --- /dev/null +++ b/editions/tw5.com/tiddlers/system/version-link-macro.tid @@ -0,0 +1,6 @@ +title: $:/editions/tw5.com/version-link-macro +tags: $:/tags/Macro + +\define version-link() +[[$(version)$|Release $(version)$]] +\end diff --git a/editions/tw5.com/tiddlers/widgets/TiddlerWidget.tid b/editions/tw5.com/tiddlers/widgets/TiddlerWidget.tid index cd2c81a00..40105cf9d 100644 --- a/editions/tw5.com/tiddlers/widgets/TiddlerWidget.tid +++ b/editions/tw5.com/tiddlers/widgets/TiddlerWidget.tid @@ -12,7 +12,7 @@ The TiddlerWidget sets the CurrentTiddler that applies for processing its conten |!Attribute |!Description | |tiddler |The title of the tiddler to become the new CurrentTiddler | -|class |CSS classes to added to the generated elements | +|class |CSS classes to be added to the generated elements | ! CSS Class Variables diff --git a/languages/de-AT/CoreReadMe.tid b/languages/de-AT/CoreReadMe.tid new file mode 100644 index 000000000..23c96c662 --- /dev/null +++ b/languages/de-AT/CoreReadMe.tid @@ -0,0 +1,3 @@ +title: $:/core/de-AT/readme + +{{$:/core/de-DE/readme}} diff --git a/languages/de-AT/Flag.tid b/languages/de-AT/Flag.tid deleted file mode 100644 index f7949f286..000000000 --- a/languages/de-AT/Flag.tid +++ /dev/null @@ -1,8 +0,0 @@ -title: $:/language/Flag -type: image/svg+xml - - - - - - \ No newline at end of file diff --git a/languages/de-AT/icon.tid b/languages/de-AT/icon.tid new file mode 100644 index 000000000..a0b4315b0 --- /dev/null +++ b/languages/de-AT/icon.tid @@ -0,0 +1,8 @@ +title: $:/languages/de-AT/icon +type: image/svg+xml + + + + + + \ No newline at end of file diff --git a/languages/de-AT/plugin.info b/languages/de-AT/plugin.info index aa9a3816c..d26db0ee0 100644 --- a/languages/de-AT/plugin.info +++ b/languages/de-AT/plugin.info @@ -3,8 +3,7 @@ "name": "de-AT", "plugin-type": "language", "description": "Deutsch (Österreich)", - "author": "JeremyRuston", - "maintainer": "MarioPietsch aka pmario", + "author": "MarioPietsch aka pmario", "core-version": ">=5.0.0", "dependents": ["$:/languages/de-DE"], "plugin-priority": 110 diff --git a/languages/de-CH/plugin.info b/languages/de-CH/plugin.info index 0f51ec615..f7b36ff66 100644 --- a/languages/de-CH/plugin.info +++ b/languages/de-CH/plugin.info @@ -3,7 +3,7 @@ "name": "de-CH", "plugin-type": "language", "description": "Deutsch (Schweiz)", - "author": "JeremyRuston", + "author": "MarioPietsch aka pmario", "core-version": ">=5.0.0", "dependents": ["$:/languages/de-DE"], "plugin-priority": 110 diff --git a/languages/de-DE/Buttons.multids b/languages/de-DE/Buttons.multids index ff1e417cc..2fbde2f6f 100644 --- a/languages/de-DE/Buttons.multids +++ b/languages/de-DE/Buttons.multids @@ -1,7 +1,7 @@ title: $:/language/Buttons/ AdvancedSearch/Caption: erweiterte suche -AdvancedSearch/Hint: Erweiterte Suche +AdvancedSearch/Hint: Erweiterte Suche Cancel/Caption: abbrechen Cancel/Hint: Tiddler bearbeiten abbrechen Clone/Caption: klone @@ -19,14 +19,21 @@ Delete/Hint: Lösche diesen Tiddler Edit/Caption: bearbeiten Edit/Hint: Bearbeite diesen Tiddler Encryption/Caption: verschlüsseln +Encryption/Hint: Aktivieren oder löschen des Passworts für dieses Wiki Encryption/ClearPassword/Caption: lösche Passwort Encryption/ClearPassword/Hint: Lösche das Passwort und speichere ohne Verschlüsselung Encryption/SetPassword/Caption: ativiere Passwort Encryption/SetPassword/Hint: Definiert ein Passwort, um dieses Wiki zu verschlüsseln +FullScreen/Caption: vollbild +FullScreen/Hint: Aktivieren oder deaktivieren des Vollbild modus +Import/Caption: import +Import/Hint: Importiere Dateien Info/Caption: info Info/Hint: Informationen zu diesem Tiddler anzeigen Home/Caption: home -Home/Hint: Öffne die "default" Tiddler +Home/Hint: Seite neu laden und öffne die standard (default) Tiddler +Language/Caption: sprache +Language/Hint: Auswahl Dialog für die System Sprache NewTiddler/Caption: neuer Tiddler NewTiddler/Hint: Erstelle einen neuen Tiddler More/Caption: mehr @@ -39,7 +46,13 @@ Save/Caption: speichern Save/Hint: Speichere diesen Tiddler SaveWiki/Caption: speichere Änderungen SaveWiki/Hint: Speichere Änderungen +StoryView/Caption: story Modus +StoryView/Hint: Auswahl des Anzeige Modus für die "Story" HideSideBar/Caption: Sidebar ausblenden HideSideBar/Hint: Sidebar ausblenden ShowSideBar/Caption: Sidebar einblenden ShowSideBar/Hint: Sidebar eiblenden +TagManager/Caption: tag manager +TagManager/Hint: Öffne das "Tag Manager" +Theme/Caption: Thema +Theme/Hint: Thema auswählen diff --git a/languages/de-DE/ControlPanel.multids b/languages/de-DE/ControlPanel.multids index 5364ed775..77d7e80c8 100644 --- a/languages/de-DE/ControlPanel.multids +++ b/languages/de-DE/ControlPanel.multids @@ -64,9 +64,6 @@ Basics/Title/Prompt: Titel dieses ~TiddlyWikis: Basics/Username/Prompt: Benutzer Signatur zum editieren: Basics/Version/Prompt: ~TiddlyWiki Version: Plugins/Caption: Plugins -Plugins/Fields/Description: Beschreibung -Plugins/Fields/Title: Titel -Plugins/Fields/Version: Version Plugins/Language/Prompt: Sprachen Plugins/Plugin/Prompt: Plugins Plugins/Theme/Prompt: Themen diff --git a/languages/de-DE/CoreReadMe.tid b/languages/de-DE/CoreReadMe.tid new file mode 100644 index 000000000..571421d0e --- /dev/null +++ b/languages/de-DE/CoreReadMe.tid @@ -0,0 +1,5 @@ +title: $:/core/de-DE/readme + + + +{{$:/core/readme}} diff --git a/languages/de-DE/Docs/PaletteColours.multids b/languages/de-DE/Docs/PaletteColours.multids index 5d59eb974..04289be65 100644 --- a/languages/de-DE/Docs/PaletteColours.multids +++ b/languages/de-DE/Docs/PaletteColours.multids @@ -6,6 +6,7 @@ alert-highlight: Warnung Hervorhebung alert-muted-foreground: Warnung gedeckt Vordergrund background: Hintergrund Global blockquote-bar: Zitat Markierung +dirty-indicator: Speichern nötig - Indikator code-background: Code Hintergrund code-border: Code Rahmen code-foreground: Code Vordergrund diff --git a/languages/de-DE/Import.multids b/languages/de-DE/Import.multids index 95c10dd4b..f91f92263 100644 --- a/languages/de-DE/Import.multids +++ b/languages/de-DE/Import.multids @@ -6,6 +6,7 @@ Listing/Import/Caption: Importieren Listing/Select/Caption: Auswahl Listing/Status/Caption: Status Listing/Title/Caption: Titel +Upgrader/Plugins/Suppressed/Incompatible: Unterdrückte, inkompatible oder veraltete "plugins" Upgrader/Plugins/Suppressed/Version: Einige "plugins" weden unterdrückt! Importierte plugins: <> sind älter als existierende: <>. Upgrader/Plugins/Upgraded: Aktualisieren der plugins von: <> nach: <> Upgrader/System/Suppressed: Unterdrückte "System Tiddler" diff --git a/languages/de-DE/SideBar.multids b/languages/de-DE/SideBar.multids index 5f598eab8..fe9fc2fa0 100644 --- a/languages/de-DE/SideBar.multids +++ b/languages/de-DE/SideBar.multids @@ -11,7 +11,6 @@ Recent/Caption: Zuletzt Shadows/Caption: Schatten System/Caption: System Tags/Caption: Tags -Tags/TagManager/Caption: Tag Manager Tags/Untagged/Caption: untagged Tools/Caption: Tools Types/Caption: Typen diff --git a/languages/de-DE/Flag.tid b/languages/de-DE/icon.tid similarity index 94% rename from languages/de-DE/Flag.tid rename to languages/de-DE/icon.tid index b4cede8da..4847c1df0 100644 --- a/languages/de-DE/Flag.tid +++ b/languages/de-DE/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/de-DE/icon type: image/svg+xml diff --git a/languages/de-DE/plugin.info b/languages/de-DE/plugin.info index 3d99907b7..bdf0c7401 100644 --- a/languages/de-DE/plugin.info +++ b/languages/de-DE/plugin.info @@ -3,8 +3,7 @@ "name": "de-DE", "plugin-type": "language", "description": "Deutsch (Deutschland)", - "author": "JeremyRuston", - "maintainer": "MarioPietsch aka pmario", + "author": "MarioPietsch aka pmario", "core-version": ">=5.0.0", "plugin-priority": 100 } diff --git a/languages/fr-FR/Buttons.multids b/languages/fr-FR/Buttons.multids index d2dcde78e..9af347c03 100644 --- a/languages/fr-FR/Buttons.multids +++ b/languages/fr-FR/Buttons.multids @@ -52,6 +52,7 @@ HideSideBar/Caption: cacher la barre latérale HideSideBar/Hint: Cacher la barre latérale ShowSideBar/Caption: afficher la barre latérale ShowSideBar/Hint: Afficher la barre latérale +TagManager/Caption: gestionnaire de tags +TagManager/Hint: Gestionnaire de tags Theme/Caption: thème Theme/Hint: Choix du thème pour l'affichage - diff --git a/languages/fr-FR/ControlPanel.multids b/languages/fr-FR/ControlPanel.multids index dbf9c20e2..270af2c16 100644 --- a/languages/fr-FR/ControlPanel.multids +++ b/languages/fr-FR/ControlPanel.multids @@ -64,9 +64,6 @@ Basics/Title/Prompt: Titre de ce ~TiddlyWiki Basics/Username/Prompt: Signer les modifications avec ce nom d'utilisateur Basics/Version/Prompt: Numéro de version : Plugins/Caption: Plugins -Plugins/Fields/Description: Description -Plugins/Fields/Title: Titre -Plugins/Fields/Version: Version Plugins/Language/Prompt: Langues Plugins/Plugin/Prompt: Plugins Plugins/Theme/Prompt: Thèmes diff --git a/languages/fr-FR/CoreReadMe.tid b/languages/fr-FR/CoreReadMe.tid new file mode 100644 index 000000000..f02ac37a2 --- /dev/null +++ b/languages/fr-FR/CoreReadMe.tid @@ -0,0 +1,5 @@ +title: $:/core/fr-FR/readme + + + +{{$:/core/readme}} diff --git a/languages/fr-FR/SideBar.multids b/languages/fr-FR/SideBar.multids index fc5a7ceb4..8c1febb55 100644 --- a/languages/fr-FR/SideBar.multids +++ b/languages/fr-FR/SideBar.multids @@ -11,7 +11,6 @@ Recent/Caption: Récents Shadows/Caption: Shadows System/Caption: Système Tags/Caption: Tags -Tags/TagManager/Caption: Gestionnaire de tags Tags/Untagged/Caption: sans étiquette Tools/Caption: Outils Types/Caption: Types diff --git a/languages/fr-FR/Flag.tid b/languages/fr-FR/icon.tid similarity index 89% rename from languages/fr-FR/Flag.tid rename to languages/fr-FR/icon.tid index 4d932af67..a7ec4d9d0 100644 --- a/languages/fr-FR/Flag.tid +++ b/languages/fr-FR/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/fr-FR/icon type: image/svg+xml diff --git a/languages/it-IT/ControlPanel.multids b/languages/it-IT/ControlPanel.multids index d31ab1331..b6e4869de 100644 --- a/languages/it-IT/ControlPanel.multids +++ b/languages/it-IT/ControlPanel.multids @@ -37,9 +37,6 @@ Basics/Title/Prompt: Il titolo di questo ~TiddlyWiki: Basics/Username/Prompt: Digita il nome con cui firmare le modifiche: Basics/Version/Prompt: Versione di ~TiddlyWiki: Plugins/Caption: Plugins -Plugins/Fields/Description: Descrizione -Plugins/Fields/Title: Titolo -Plugins/Fields/Version: Versione Plugins/Language/Prompt: Linguaggi Plugins/Plugin/Prompt: Plugins Plugins/Theme/Prompt: Temi diff --git a/languages/it-IT/CoreReadMe.tid b/languages/it-IT/CoreReadMe.tid new file mode 100644 index 000000000..a42f5a2bb --- /dev/null +++ b/languages/it-IT/CoreReadMe.tid @@ -0,0 +1,5 @@ +title: $:/core/it-IT/readme + + + +{{$:/core/readme}} diff --git a/languages/it-IT/SideBar.multids b/languages/it-IT/SideBar.multids index 80535f364..afb8c3b19 100644 --- a/languages/it-IT/SideBar.multids +++ b/languages/it-IT/SideBar.multids @@ -10,8 +10,6 @@ Recent/Caption: Recenti Shadows/Caption: Nascosti System/Caption: Sistema Tags/Caption: Categorie -Tags/TagManager/Caption: Manager categorie Tags/Untagged/Caption: Non categorizzati Tools/Caption: Strumenti Types/Caption: Tipi - diff --git a/languages/it-IT/Flag.tid b/languages/it-IT/icon.tid similarity index 95% rename from languages/it-IT/Flag.tid rename to languages/it-IT/icon.tid index 41339390d..157744a52 100644 --- a/languages/it-IT/Flag.tid +++ b/languages/it-IT/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/it-IT/icon type: image/svg+xml diff --git a/languages/ja-JP/ControlPanel.multids b/languages/ja-JP/ControlPanel.multids index 960bc31af..4bc9f1e8f 100644 --- a/languages/ja-JP/ControlPanel.multids +++ b/languages/ja-JP/ControlPanel.multids @@ -37,9 +37,6 @@ Basics/Title/Prompt: この ~TiddlyWiki のタイトル: Basics/Username/Prompt: 編集者として表示するユーザ名: Basics/Version/Prompt: ~TiddlyWiki バージョン: Plugins/Caption: プラグイン -Plugins/Fields/Description: 説明 -Plugins/Fields/Title: タイトル -Plugins/Fields/Version: バージョン Plugins/Language/Prompt: 言語 Plugins/Plugin/Prompt: プラグイン Plugins/Theme/Prompt: テーマ diff --git a/languages/ja-JP/CoreReadMe.tid b/languages/ja-JP/CoreReadMe.tid new file mode 100644 index 000000000..779fdbd3f --- /dev/null +++ b/languages/ja-JP/CoreReadMe.tid @@ -0,0 +1,5 @@ +title: $:/core/ja-JP/readme + + + +{{$:/core/readme}} diff --git a/languages/ja-JP/SideBar.multids b/languages/ja-JP/SideBar.multids index f31016c64..5595c3808 100644 --- a/languages/ja-JP/SideBar.multids +++ b/languages/ja-JP/SideBar.multids @@ -10,8 +10,6 @@ Recent/Caption: 最近 Shadows/Caption: 隠し System/Caption: システム Tags/Caption: タグ別 -Tags/TagManager/Caption: タグマネージャ Tags/Untagged/Caption: 未タグ Tools/Caption: ツール Types/Caption: 種類別 - diff --git a/languages/ja-JP/Flag.tid b/languages/ja-JP/icon.tid similarity index 88% rename from languages/ja-JP/Flag.tid rename to languages/ja-JP/icon.tid index 0d97d6dd3..345771fb3 100644 --- a/languages/ja-JP/Flag.tid +++ b/languages/ja-JP/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/ja-JP/icon type: image/svg+xml diff --git a/languages/zh-Hans/Buttons.multids b/languages/zh-Hans/Buttons.multids index d608a4ba9..47126e38c 100644 --- a/languages/zh-Hans/Buttons.multids +++ b/languages/zh-Hans/Buttons.multids @@ -52,3 +52,7 @@ HideSideBar/Caption: 隐藏侧边栏 HideSideBar/Hint: 隐藏侧边栏 ShowSideBar/Caption: 显示侧边栏 ShowSideBar/Hint: 显示侧边栏 +TagManager/Caption: 标签管理 +TagManager/Hint: 标签管理 +Theme/Caption: 布景主题 +Theme/Hint: 选择布景主题 diff --git a/languages/zh-Hans/ControlPanel.multids b/languages/zh-Hans/ControlPanel.multids index 5877c14bc..022f17aad 100644 --- a/languages/zh-Hans/ControlPanel.multids +++ b/languages/zh-Hans/ControlPanel.multids @@ -64,9 +64,6 @@ Basics/Title/Prompt: 标题: Basics/Username/Prompt: 编辑者署名: Basics/Version/Prompt: ~TiddlyWiki 版本: Plugins/Caption: 插件 -Plugins/Fields/Description: 说明 -Plugins/Fields/Title: 标题 -Plugins/Fields/Version: 版本 Plugins/Language/Prompt: 语言 Plugins/Plugin/Prompt: 插件 Plugins/Theme/Prompt: 布景主题 diff --git a/languages/zh-Hans/CoreReadMe.tid b/languages/zh-Hans/CoreReadMe.tid new file mode 100644 index 000000000..7a7435ab8 --- /dev/null +++ b/languages/zh-Hans/CoreReadMe.tid @@ -0,0 +1,8 @@ +title: $:/core/zh-Hans/readme + +此插件包含 TiddlyWiki 的核心组件,包括: + +* JavaScript 代码模块 +* 图标 +* 创建 TiddlyWiki 的用户介面所需的模板 +* 核心所使用的可当地语系化字串的英国英语 (''en-GB'') 翻译 diff --git a/languages/zh-Hans/Misc.multids b/languages/zh-Hans/Misc.multids index 29a47c4df..548b50dce 100644 --- a/languages/zh-Hans/Misc.multids +++ b/languages/zh-Hans/Misc.multids @@ -30,3 +30,4 @@ TagManager/Colour/Heading: 颜色 TagManager/Count/Heading: 数量 TagManager/Icon/Heading: 图标 TagManager/Tag/Heading: 标签 +UnsavedChangesWarning: 在此 TiddlyWiki 您有尚未保存的变更 diff --git a/languages/zh-Hans/SideBar.multids b/languages/zh-Hans/SideBar.multids index 802931301..c4a206302 100644 --- a/languages/zh-Hans/SideBar.multids +++ b/languages/zh-Hans/SideBar.multids @@ -11,8 +11,6 @@ Recent/Caption: 最近 Shadows/Caption: 默认 System/Caption: 系统 Tags/Caption: 标签 -Tags/TagManager/Caption: 标签管理 Tags/Untagged/Caption: 未设标签 Tools/Caption: 工具 Types/Caption: 类型 - diff --git a/languages/zh-Hans/Flag.tid b/languages/zh-Hans/icon.tid similarity index 96% rename from languages/zh-Hans/Flag.tid rename to languages/zh-Hans/icon.tid index a2c02c02f..ba8400636 100644 --- a/languages/zh-Hans/Flag.tid +++ b/languages/zh-Hans/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/zh-Hans/icon type: image/svg+xml diff --git a/languages/zh-Hant/Buttons.multids b/languages/zh-Hant/Buttons.multids index 621667495..cd6984c9e 100644 --- a/languages/zh-Hant/Buttons.multids +++ b/languages/zh-Hant/Buttons.multids @@ -52,3 +52,7 @@ HideSideBar/Caption: 隱藏側邊欄 HideSideBar/Hint: 隱藏側邊欄 ShowSideBar/Caption: 顯示側邊欄 ShowSideBar/Hint: 顯示側邊欄 +TagManager/Caption: 標籤管理 +TagManager/Hint: 標籤管理 +Theme/Caption: 佈景主題 +Theme/Hint: 選擇佈景主題 diff --git a/languages/zh-Hant/ControlPanel.multids b/languages/zh-Hant/ControlPanel.multids index 6b2e42799..9febb47c8 100644 --- a/languages/zh-Hant/ControlPanel.multids +++ b/languages/zh-Hant/ControlPanel.multids @@ -64,9 +64,6 @@ Basics/Title/Prompt: 標題: Basics/Username/Prompt: 編輯者署名: Basics/Version/Prompt: ~TiddlyWiki 版本: Plugins/Caption: 插件 -Plugins/Fields/Description: 說明 -Plugins/Fields/Title: 標題 -Plugins/Fields/Version: 版本 Plugins/Language/Prompt: 語言 Plugins/Plugin/Prompt: 插件 Plugins/Theme/Prompt: 佈景主題 diff --git a/languages/zh-Hant/CoreReadMe.tid b/languages/zh-Hant/CoreReadMe.tid new file mode 100644 index 000000000..36c7e629e --- /dev/null +++ b/languages/zh-Hant/CoreReadMe.tid @@ -0,0 +1,8 @@ +title: $:/core/zh-Hant/readme + +此插件包含 TiddlyWiki 的核心元件,包括: + +* JavaScript 程式碼模組 +* 圖示 +* 建立 TiddlyWiki 的使用者介面所需的範本 +* 核心所使用的可當地語系化字串的英國英語 (''en-GB'') 翻譯 diff --git a/languages/zh-Hant/Misc.multids b/languages/zh-Hant/Misc.multids index 0c9fdf941..bdd26cfd6 100644 --- a/languages/zh-Hant/Misc.multids +++ b/languages/zh-Hant/Misc.multids @@ -30,3 +30,4 @@ TagManager/Colour/Heading: 顏色 TagManager/Count/Heading: 數量 TagManager/Icon/Heading: 圖示 TagManager/Tag/Heading: 標籤 +UnsavedChangesWarning: 在此 TiddlyWiki 您有尚未儲存的變更 diff --git a/languages/zh-Hant/SideBar.multids b/languages/zh-Hant/SideBar.multids index f91949153..53af4eb09 100644 --- a/languages/zh-Hant/SideBar.multids +++ b/languages/zh-Hant/SideBar.multids @@ -11,8 +11,6 @@ Recent/Caption: 最近 Shadows/Caption: 預設 System/Caption: 系統 Tags/Caption: 標籤 -Tags/TagManager/Caption: 標籤管理 Tags/Untagged/Caption: 未設標籤 Tools/Caption: 工具 Types/Caption: 類型 - diff --git a/languages/zh-Hant/Flag.tid b/languages/zh-Hant/icon.tid similarity index 95% rename from languages/zh-Hant/Flag.tid rename to languages/zh-Hant/icon.tid index 41ffb7007..97c8f6ab4 100644 --- a/languages/zh-Hant/Flag.tid +++ b/languages/zh-Hant/icon.tid @@ -1,4 +1,4 @@ -title: $:/language/Flag +title: $:/languages/zh-Hant/icon type: image/svg+xml diff --git a/package.json b/package.json index 7caec6065..144290fba 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tiddlywiki", "preferGlobal": "true", - "version": "5.0.14-prerelease", + "version": "5.0.15-prerelease", "author": "Jeremy Ruston ", "description": "a non-linear personal web notebook", "contributors": [ diff --git a/plugins/tiddlywiki/browser-sniff/plugin.info b/plugins/tiddlywiki/browser-sniff/plugin.info index 1fbadbc64..7d6ef0df3 100644 --- a/plugins/tiddlywiki/browser-sniff/plugin.info +++ b/plugins/tiddlywiki/browser-sniff/plugin.info @@ -2,5 +2,6 @@ "title": "$:/plugins/tiddlywiki/browser-sniff", "description": "Browser sniffing for TiddlyWiki", "author": "JeremyRuston", - "core-version": ">=5.0.0" + "core-version": ">=5.0.0", + "list": "readme" } diff --git a/plugins/tiddlywiki/browser-sniff/readme.tid b/plugins/tiddlywiki/browser-sniff/readme.tid index cdcd03de3..474b935ff 100644 --- a/plugins/tiddlywiki/browser-sniff/readme.tid +++ b/plugins/tiddlywiki/browser-sniff/readme.tid @@ -7,7 +7,7 @@ This plugin adds a number of `$:/info/` tiddlers containing information about th |!Title |!Description | |[[$:/info/browser/is/android]] |Running on Android? ("yes" or "no") | |[[$:/info/browser/is/bada]] |Running on Bada? ("yes" or "no") | -|[[$:/info/browser/is/blackberry]] |Running on Blackberry? ("yes" or "no") | +|[[$:/info/browser/is/blackberry]] |Running on ~BlackBerry? ("yes" or "no") | |[[$:/info/browser/is/chrome]] |Running on Chrome? ("yes" or "no") | |[[$:/info/browser/is/firefox]] |Running on Firefox? ("yes" or "no") | |[[$:/info/browser/is/firefoxos]] |Running on Firefox OS? ("yes" or "no") | @@ -17,14 +17,14 @@ This plugin adds a number of `$:/info/` tiddlers containing information about th |[[$:/info/browser/is/iphone]] |Running on iPhone? ("yes" or "no") | |[[$:/info/browser/is/ipod]] |Running on iPod? ("yes" or "no") | |[[$:/info/browser/is/opera]] |Running on Opera? ("yes" or "no") | -|[[$:/info/browser/is/phantomjs]] |Running on PhantomJS? ("yes" or "no") | +|[[$:/info/browser/is/phantomjs]] |Running on ~PhantomJS? ("yes" or "no") | |[[$:/info/browser/is/safari]] |Running on Safari? ("yes" or "no") | |[[$:/info/browser/is/sailfish]] |Running on Sailfish? ("yes" or "no") | |[[$:/info/browser/is/seamonkey]] |Running on Sea Monkey? ("yes" or "no") | |[[$:/info/browser/is/silk]] |Running on Amazon's Silk? ("yes" or "no") | |[[$:/info/browser/is/tizen]] |Running on Tizen? ("yes" or "no") | -|[[$:/info/browser/is/webkit]] |Running on WebKit? ("yes" or "no") | -|[[$:/info/browser/is/webos]] |Running on WebOS? ("yes" or "no") | +|[[$:/info/browser/is/webkit]] |Running on ~WebKit? ("yes" or "no") | +|[[$:/info/browser/is/webos]] |Running on ~WebOS? ("yes" or "no") | |[[$:/info/browser/is/windowsphone]] |Running on Windows Phone? ("yes" or "no") | |[[$:/info/browser/name]] |Platform name (see below) | |[[$:/info/browser/version]] |Browser version | @@ -34,19 +34,19 @@ The browser information is obtained with [[Bowser, a browser detector library fr * ''"Amazon Silk"'' * ''"Android"'' * ''"Bada"'' -* ''"BlackBerry"'' +* ''"~BlackBerry"'' * ''"Chrome"'' * ''"Firefox"'' * ''"Internet Explorer"'' * ''"iOS"'' * ''"Opera"'' -* ''"PhantomJS"'' +* ''"~PhantomJS"'' * ''"Safari"'' * ''"Sailfish"'' -* ''"SeaMonkey"'' -* ''"TiddlyDesktop"'' +* ''"~SeaMonkey"'' +* ''"~TiddlyDesktop"'' * ''"Tizen"'' -* ''"WebOS"'' +* ''"~WebOS"'' * ''"Windows Phone"'' Note that Bowser returns "iPhone", "iPad" and "iPod" as distinct values for the name of the current browser. TiddlyWiki converts all three distinct values into "iOS" before copying to [[$:/info/browser/name]]. diff --git a/plugins/tiddlywiki/cecily/plugin.info b/plugins/tiddlywiki/cecily/plugin.info index 1463a4a58..d60579389 100644 --- a/plugins/tiddlywiki/cecily/plugin.info +++ b/plugins/tiddlywiki/cecily/plugin.info @@ -2,5 +2,6 @@ "title": "$:/plugins/tiddlywiki/cecily", "description": "Zoomable User Interface for TiddlyWiki", "author": "JeremyRuston", - "core-version": ">=5.0.0" + "core-version": ">=5.0.0", + "list": "readme" } diff --git a/plugins/tiddlywiki/cecily/readme.tid b/plugins/tiddlywiki/cecily/readme.tid new file mode 100644 index 000000000..c12e6b314 --- /dev/null +++ b/plugins/tiddlywiki/cecily/readme.tid @@ -0,0 +1,7 @@ +title: $:/plugins/tiddlywiki/cecily/readme + +This plugin provides a new story visualisation that displays individual tiddlers as resizable tiles on an infinite canvas. + +Cecily is based on an earlier plugin for TiddlyWiki Classic: http://jermolene.com/cecily + +Cecily is currently in the early stages of development with little functionality yet implemented. diff --git a/core/images/storyview-cecily.tid b/plugins/tiddlywiki/cecily/storyview-cecily.tid similarity index 100% rename from core/images/storyview-cecily.tid rename to plugins/tiddlywiki/cecily/storyview-cecily.tid diff --git a/plugins/tiddlywiki/codemirror/plugin.info b/plugins/tiddlywiki/codemirror/plugin.info index d30d03c3b..ab4f375b3 100644 --- a/plugins/tiddlywiki/codemirror/plugin.info +++ b/plugins/tiddlywiki/codemirror/plugin.info @@ -1,5 +1,6 @@ { "title": "$:/plugins/tiddlywiki/codemirror", "description": "Codemirror plugin", - "author": "JeremyRuston" + "author": "JeremyRuston", + "list": "readme" } diff --git a/plugins/tiddlywiki/codemirror/instructions.tid b/plugins/tiddlywiki/codemirror/readme.tid similarity index 96% rename from plugins/tiddlywiki/codemirror/instructions.tid rename to plugins/tiddlywiki/codemirror/readme.tid index 30997f314..520b2bd37 100644 --- a/plugins/tiddlywiki/codemirror/instructions.tid +++ b/plugins/tiddlywiki/codemirror/readme.tid @@ -1,4 +1,4 @@ -title: $:/plugins/tiddlywiki/codemirror/instructions +title: $:/plugins/tiddlywiki/codemirror/readme ! Setting ~CodeMirror Content Types diff --git a/plugins/tiddlywiki/filesystem/filesystemadaptor.js b/plugins/tiddlywiki/filesystem/filesystemadaptor.js index 3410490ef..eff03be1b 100644 --- a/plugins/tiddlywiki/filesystem/filesystemadaptor.js +++ b/plugins/tiddlywiki/filesystem/filesystemadaptor.js @@ -3,7 +3,7 @@ title: $:/plugins/tiddlywiki/filesystem/filesystemadaptor.js type: application/javascript module-type: syncadaptor -A sync adaptor module for synchronising with the local filesystem via node.js APIs +A sync adaptor module for synchronising with the local filesystem via node.js APIs \*/ (function(){ @@ -16,9 +16,9 @@ A sync adaptor module for synchronising with the local filesystem via node.js AP var fs = !$tw.browser ? require("fs") : null, path = !$tw.browser ? require("path") : null; -function FileSystemAdaptor(syncer) { +function FileSystemAdaptor(options) { var self = this; - this.syncer = syncer; + this.wiki = options.wiki; this.watchers = {}; this.pending = {}; this.logger = new $tw.utils.Logger("FileSystem"); @@ -31,7 +31,7 @@ function FileSystemAdaptor(syncer) { var tiddlers = $tw.loadTiddlersFromFile(filename).tiddlers; for(var t in tiddlers) { if(tiddlers[t].title) { - $tw.wiki.addTiddler(tiddlers[t]); + self.wiki.addTiddler(tiddlers[t]); } } } @@ -152,7 +152,7 @@ FileSystemAdaptor.prototype.saveTiddler = function(tiddler,callback) { if(err) { return callback(err); } - content = $tw.wiki.renderTiddler("text/plain","$:/core/templates/tiddler-metadata",{variables: {currentTiddler: tiddler.fields.title}}); + content = self.wiki.renderTiddler("text/plain","$:/core/templates/tiddler-metadata",{variables: {currentTiddler: tiddler.fields.title}}); fs.writeFile(fileInfo.filepath + ".meta",content,{encoding: "utf8"},function (err) { if(err) { return callback(err); @@ -164,7 +164,7 @@ FileSystemAdaptor.prototype.saveTiddler = function(tiddler,callback) { } else { // Save the tiddler as a self contained templated file template = $tw.config.typeTemplates[fileInfo.type]; - content = $tw.wiki.renderTiddler("text/plain",template,{variables: {currentTiddler: tiddler.fields.title}}); + content = self.wiki.renderTiddler("text/plain",template,{variables: {currentTiddler: tiddler.fields.title}}); fs.writeFile(fileInfo.filepath,content,{encoding: "utf8"},function (err) { if(err) { return callback(err); @@ -188,7 +188,7 @@ FileSystemAdaptor.prototype.loadTiddler = function(title,callback) { /* Delete a tiddler and invoke the callback with (err) */ -FileSystemAdaptor.prototype.deleteTiddler = function(title,callback) { +FileSystemAdaptor.prototype.deleteTiddler = function(title,callback,options) { var self = this, fileInfo = $tw.boot.files[title]; // Only delete the tiddler if we have writable information for the file diff --git a/plugins/tiddlywiki/github-fork-ribbon/plugin.info b/plugins/tiddlywiki/github-fork-ribbon/plugin.info index e1eb90d0b..fd24224c4 100644 --- a/plugins/tiddlywiki/github-fork-ribbon/plugin.info +++ b/plugins/tiddlywiki/github-fork-ribbon/plugin.info @@ -1,5 +1,6 @@ { "title": "$:/plugins/tiddlywiki/github-fork-ribbon", "description": "GitHub-style ribbon in pure CSS", - "author": "Simon Whitaker, adapted for TiddlyWiki by JeremyRuston" + "author": "Simon Whitaker, adapted for TiddlyWiki by JeremyRuston", + "list": "readme" } diff --git a/plugins/tiddlywiki/googleanalytics/plugin.info b/plugins/tiddlywiki/googleanalytics/plugin.info index 01bf77fd1..3f001afdf 100644 --- a/plugins/tiddlywiki/googleanalytics/plugin.info +++ b/plugins/tiddlywiki/googleanalytics/plugin.info @@ -2,5 +2,6 @@ "title": "$:/plugins/tiddlywiki/googleanalytics", "description": "Google Analytics plugin for TiddlyWiki5", "author": "JeremyRuston", - "core-version": ">=5.0.0" + "core-version": ">=5.0.0", + "list": "readme" } diff --git a/plugins/tiddlywiki/highlight/plugin.info b/plugins/tiddlywiki/highlight/plugin.info index cb6b18889..2fa057447 100644 --- a/plugins/tiddlywiki/highlight/plugin.info +++ b/plugins/tiddlywiki/highlight/plugin.info @@ -1,5 +1,6 @@ { "title": "$:/plugins/tiddlywiki/highlight", "description": "Highlight.js plugin for TiddlyWiki5", - "author": "JoaoBolila" + "author": "JoaoBolila", + "list": "license" } diff --git a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js index 73c733502..e87db5b0b 100644 --- a/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js +++ b/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js @@ -3,7 +3,7 @@ title: $:/plugins/tiddlywiki/tiddlyweb/tiddlywebadaptor.js type: application/javascript module-type: syncadaptor -A sync adaptor module for synchronising with TiddlyWeb compatible servers +A sync adaptor module for synchronising with TiddlyWeb compatible servers \*/ (function(){ @@ -15,15 +15,15 @@ A sync adaptor module for synchronising with TiddlyWeb compatible servers var CONFIG_HOST_TIDDLER = "$:/config/tiddlyweb/host", DEFAULT_HOST_TIDDLER = "$protocol$//$host$/"; -function TiddlyWebAdaptor(syncer) { - this.syncer = syncer; +function TiddlyWebAdaptor(options) { + this.wiki = options.wiki; this.host = this.getHost(); this.recipe = undefined; this.logger = new $tw.utils.Logger("TiddlyWebAdaptor"); } TiddlyWebAdaptor.prototype.getHost = function() { - var text = this.syncer.wiki.getTiddlerText(CONFIG_HOST_TIDDLER,DEFAULT_HOST_TIDDLER), + var text = this.wiki.getTiddlerText(CONFIG_HOST_TIDDLER,DEFAULT_HOST_TIDDLER), substitutions = [ {name: "protocol", value: document.location.protocol}, {name: "host", value: document.location.host} @@ -46,8 +46,7 @@ Get the current status of the TiddlyWeb connection */ TiddlyWebAdaptor.prototype.getStatus = function(callback) { // Get status - var self = this, - wiki = self.syncer.wiki; + var self = this; this.logger.log("Getting status"); $tw.utils.httpRequest({ url: this.host + "status", @@ -174,7 +173,7 @@ TiddlyWebAdaptor.prototype.saveTiddler = function(tiddler,callback) { // Invoke the callback callback(null,{ bag: etagInfo.bag - }, etagInfo.revision); + }, etagInfo.revision); } }); }; @@ -198,10 +197,12 @@ TiddlyWebAdaptor.prototype.loadTiddler = function(title,callback) { /* Delete a tiddler and invoke the callback with (err) +options include: +tiddlerInfo: the syncer's tiddlerInfo for this tiddler */ -TiddlyWebAdaptor.prototype.deleteTiddler = function(title,callback) { +TiddlyWebAdaptor.prototype.deleteTiddler = function(title,callback,options) { var self = this, - bag = this.syncer.tiddlerInfo[title].adaptorInfo.bag; + bag = options.tiddlerInfo.adaptorInfo.bag; // If we don't have a bag it means that the tiddler hasn't been seen by the server, so we don't need to delete it if(!bag) { return callback(null); diff --git a/plugins/tiddlywiki/upgrade/UpgradeWizard.tid b/plugins/tiddlywiki/upgrade/UpgradeWizard.tid index 130ee2ce6..30f955b3f 100644 --- a/plugins/tiddlywiki/upgrade/UpgradeWizard.tid +++ b/plugins/tiddlywiki/upgrade/UpgradeWizard.tid @@ -15,10 +15,6 @@ Drag a ~TiddlyWiki file here to upgrade it or click to pick a file <$browse/> ---- - -//Your data will not leave your browser. [[Download|http://tiddlywiki.com/upgrade.html]] this upgrader to use it offline// - <$reveal state="$:/Import!!status" type="match" text="pending"> @@ -49,8 +45,10 @@ For help and support, visit [[the TiddlyWiki discussion forum|http://groups.goog -//(version <>)// - +version <> + +//Your data will not leave your browser. Download this upgrader to use it offline// + diff --git a/readme.md b/readme.md index 36724a392..56a2544a6 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -

Welcome to TiddlyWiki

Welcome to TiddlyWiki, a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.

This is version 5.0.14-prerelease of TiddlyWiki, a major reboot designed for the next 25 years. It is currently in beta (see the detailed ReleaseHistory). There is a RoadMap for moving to the full release. It is a great time to get involved and support the future development of TiddlyWiki.

TiddlyWiki is a free, open source project that depends on your love and support for its survival.

TiddlyWikiClassic - http://classic.tiddlywiki.com

On this site, unless noted otherwise, "TiddlyWiki" refers to the new version 5, and "TiddlyWikiClassic" is used to identify the older version.

The deep internal improvements mean that the new version of TiddlyWiki is not fully compatible with TiddlyWikiClassic. Existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures. +

Welcome to TiddlyWiki

Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.

TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.

This is version of TiddlyWiki, a major reboot designed for the next 25 years. It is currently in beta (see the detailed ReleaseHistory) with a RoadMap for moving to the full release. It is a great time to get involved and support the future development of TiddlyWiki.

TiddlyWiki is a free, open source project that depends on your love and support for its survival.

TiddlyWikiClassic

The original "Classic" version of TiddlyWiki is still available at http://classic.tiddlywiki.com. Note that it is not fully backwards compatible: existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures.

Getting started with TiddlyWiki under Node.js

Running TiddlyWiki on Node.js brings several important benefits over and above the single file version:

  • You can edit your content on any suitably compatible HTML5 browser, including smartphones and tablets
  • Individual tiddlers are stored in separate files, which you can organise as you wish
  • The ability to build multiple wikis that blend different combinations of shared and unique content

Installation

  1. Install Node.js from http://nodejs.org
  2. Open a command line terminal and type:

    npm install -g tiddlywiki

    If it fails with an error you may need to re-run the command as an administrator:

    npm install -g tiddlywiki (Windows)

    sudo npm install -g tiddlywiki (Mac/Linux)

  3. Check TiddlyWiki is installed by typing:

    tiddlywiki --version

  4. In response, you should see TiddlyWiki report its current version (eg 5.0.8-beta; you may also see other debugging information reported)
  5. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --server to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers

The -g flag causes TiddlyWiki to be installed globally. Without it, TiddlyWiki will only be available in the directory where you installed it.

A slightly different method for installation is recommended if you plan on forking the source code in order to study it or contribute to it. See Working with the TiddlyWiki5 repository.

Usage

TiddlyWiki5 can be used on the command line to perform an extensive set of operations based on TiddlyWikiFolders, TiddlerFiles and TiddlyWikiFiles.

For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:

tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html

Running tiddlywiki from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.

The first argument is the optional path to the TiddlyWikiFolder to be loaded. If not present, then the current directory is used.

The commands and their individual arguments follow, each command being identified by the prefix --.

tiddlywiki [<wikipath>] [--<command> [<arg>[,<arg>]]]

The available commands are:

See also:

Upgrading

If you've installed TiddlyWiki on Node.js on the usual way, when a new version is released you can upgrade it with this command:

npm update -g tiddlywiki

On Mac or Linux you'll need to add sudo like this:

sudo npm update -g tiddlywiki

Working with the TiddlyWiki5 repository

Setting Up

If you plan on working with the TiddlyWiki5 source code then follow these steps:

  1. Fork the TiddlyWiki5 GitHub repository from https://github.com/Jermolene/TiddlyWiki5
  2. Clone a local copy of your fork
  3. Open a command line terminal and change the current working directory to the root of the repo
  4. Type npm link (Windows) or sudo npm link (Mac/Linux) to tell npm to use this copy of the repo as the globally installed one

After this procedure you can work with TiddlyWiki5 via npm as though it were installed in the usual way with npm install -g tiddlywiki.

See also Scripts for TiddlyWiki on Node.js.

This readme file was automatically generated by TiddlyWiki

\ No newline at end of file diff --git a/themes/tiddlywiki/snowwhite/base.tid b/themes/tiddlywiki/snowwhite/base.tid index 30f5d66d3..5a93f2b3e 100644 --- a/themes/tiddlywiki/snowwhite/base.tid +++ b/themes/tiddlywiki/snowwhite/base.tid @@ -100,3 +100,7 @@ canvas.tw-edit-bitmapeditor { .tw-message-box img { <> } + +.tw-plugin-info { + <> +} diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 2bf84c75d..6203bd19e 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -855,6 +855,10 @@ canvas.tw-edit-bitmapeditor { fill: <>; } +.tw-drop-down-wrapper { + position: relative; +} + .tw-drop-down { min-width: 280px; border: 1px solid <>; @@ -948,6 +952,7 @@ canvas.tw-edit-bitmapeditor { padding: 4px 14px 4px 14px; } +.tw-drop-down .tw-dropdown-item, .tw-block-dropdown .tw-dropdown-item { padding: 4px 14px 4px 7px; color: <>; @@ -1130,8 +1135,8 @@ canvas.tw-edit-bitmapeditor { padding-top: 0; padding-left: 14px; border-left: 1px solid <>; - -webkit-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-flex: 1 0 70%; + flex: 1 0 70%; } .tw-sidebar-lists .tw-tab-buttons button.tw-tab-selected { @@ -1238,6 +1243,40 @@ canvas.tw-edit-bitmapeditor { width: 100%; } +.tw-plugin-info { + display: block; + border: 1px solid <>; + background-colour: <>; + margin: 1em 0 1em 0; + padding: 8px; +} + +a.tw-tiddlylink.tw-plugin-info:hover { + text-decoration: none; + background-color: <>; + color: <>; +} + +.tw-plugin-info-chunk { + display: inline-block; + vertical-align: middle; +} + +.tw-plugin-info img { + width: 3em; +} + +.tw-plugin-info svg { + width: 3em; + height: 3em; +} + +.tw-plugin-info-dropdown { + border: 1px solid <>; + padding: 1em; + margin-top: -1em; +} + /* ** Message boxes */