From 296c83d067c3a4b8eaee0a1a09e3bb6a20947291 Mon Sep 17 00:00:00 2001 From: ibnishak Date: Sat, 22 Dec 2018 19:55:27 +0530 Subject: [PATCH] Documentation update --- Readme.md | 1 + index.html | 268 +++++++++++++++++++++++++++++++++++++++++++++-- resources/go.svg | 1 + 3 files changed, 261 insertions(+), 9 deletions(-) create mode 100644 resources/go.svg diff --git a/Readme.md b/Readme.md index 5e03fe6..11640c2 100644 --- a/Readme.md +++ b/Readme.md @@ -16,6 +16,7 @@ PRs Welcome +

diff --git a/index.html b/index.html index d30f0a1..6a12a69 100644 --- a/index.html +++ b/index.html @@ -157,6 +157,8 @@
  • $:/isEncrypted
  • +
  • $:/plugins/ahahn/tinka
  • +
  • $:/plugins/tesseract/action-launchscript
  • $:/plugins/tiddlywiki/highlight
  • @@ -167,6 +169,12 @@
  • $:/SiteTitle
  • +
  • $:/state/plugin-info-485727968-$:/plugins/tesseract/action-launchscript---784270917
  • + +
  • $:/state/popup-$:/state/plugin-info-77467299-$:/plugins/tesseract/action-launchscript
  • + +
  • $:/state/tab-1749438307
  • +
  • $:/StoryList
  • $:/temp/info-plugin
  • @@ -9177,21 +9185,243 @@
    The following tiddlers were imported:
     
    -# [[Icon.png]]
    +# [[$:/plugins/ahahn/tinka]]
    no
    -
    +
    +
    {
    +    "tiddlers": {
    +        "$:/plugins/ahahn/tinka/docs/Help Tab": {
    +            "title": "$:/plugins/ahahn/tinka/docs/Help Tab",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "!!Using the Help Tab\n\nWhen working on a plugin, it is often handy to be able to navigate quickly between the plugin tiddlers. That is what the Help Tab is for.\nAfter enabling it in the \"Tinka Plugin Management\" tab for a specific plugin in the Control Panel, it gives you an additional sidebar tab, that contains a list of all the tiddlers that are contained in the plugin in question. Furthermore, it also shows you tiddlers that live in the same \"directory\" which are likely tiddlers that you want to add to the plugin eventually.\n\nIf you have tiddlers whose names aren't prefixed by the plugin path, you can use the Filter search included in the help tab to select those. For example, if the rest of your tiddlers is scattered somewhere in the wiki, but tagged with <span class=\"tc-tag-label\">myPlugin</span>, you could use the filter: `[tag[myPlugin]]` to select them.\n\nAlso included in the Help Tab is a button to quickly add a new tiddler to a plugin without having to type out the whole `$:/plugins.../...` path and an option to disable the Help Tab again. Lastly, the \"Quick Package\" button gives you the option of quickly integrating changes you made to individual tiddlers into the plugin. Note that the \"Quick Package\" Button will only integrate the changes you made to tiddlers already contained in the plugin into the plugin tiddler itself, you can't add new tiddlers to a plugin this way. For those tasks, you will still have to use the control panel menu.\n"
    +        },
    +        "$:/plugins/ahahn/tinka/docs/How to create a new plugin": {
    +            "title": "$:/plugins/ahahn/tinka/docs/How to create a new plugin",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "!! How to create a new plugin\n\nTo create a completely new plugin, first go to the Control Panel extension Tinka provides and click on the \"Create new Plugin\" button. Next enter the ''plugin type'' of the plugin you want to create or choose a type from the dropdown menu. Usually you will want to use either the value \"''plugin''\" or \"''theme''\", as this covers most cases of plugins.\n\nNext is the ''plugin path'': This is the name of the tiddler where the finished plugin is going to be stored in. TiddlyWiki uses a special naming theme for these, so you will mostly find that the actual tiddlers that contain a plugin are named in this scheme:\n\n`$:/plugins/myOrganisation/pluginName`. \n\nThis ensures that plugins can be not only immideately recognized, but are also separate from other tiddlers in the wiki.\n\nAfter also entering a title for your new plugin or theme, you are basically good to go. These three fields: ''plugin type'', ''plugin path'' and the ''plugin title'' are all the fields that are required for a functioning plugin. In theory, you could now go ahead and press the \"''Package Plugin''\" button, which will give you an empty plugin shell to which you can add tiddlers later.\n\nIn most cases however it is desired to also fill out the rest of the metadata fields. In detail, these are:\n\n* ''Author:'' Name of the plugin author.\n* ''Source:'' Website or URL of the plugin, also the place where updates are found.\n* ''Dependents:'' List of plugins this plugin depends on (usually empty, but e.g. `$:/core`)\n* ''List'': List of tiddlers contained in the plugin, that will serve as readme tiddlers, when inspecting a plugin via the control panel. (e.g. `$:/plugins/ahahn/tinka/readme`)\n* ''Version:'' Version of your plugin in the format: X.X.X\n* ''Core-Version:'' Usually the minimal TiddlyWiki version your plugin requires in order for it to work (e.g //>=5.1.8//)\n\nDepending on the plugin type you chose, you might also come across the following metadata fields:\n\n* ''Description:'' For plugins, this contains the plugin title that is shown in the control panel.\n* ''Name:'' For themes, this contains the theme title that is shown in the control panel.\n\nAfter entering the metadata, all that is left is to select the tiddlers you want to include in the plugin. You can search for these via the default search field, but you can also use a filter to find them (e.g. based on a tag). In most cases it is sufficient to enter the name of the plugin into the default search in order to find the tiddlers that belong to the plugin. Lastly, just click the \"''Package Plugin''\" button and you're done, you have now created your first plugin. A save&refresh will be required for it to be loaded into TiddlyWiki.\n"
    +        },
    +        "$:/plugins/ahahn/tinka/icon": {
    +            "title": "$:/plugins/ahahn/tinka/icon",
    +            "type": "image/svg+xml",
    +            "text": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!-- Created with Inkscape (http://www.inkscape.org/) -->\n\n<svg\n   xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n   xmlns:cc=\"http://creativecommons.org/ns#\"\n   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n   xmlns:svg=\"http://www.w3.org/2000/svg\"\n   xmlns=\"http://www.w3.org/2000/svg\"\n   xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n   xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n   width=\"28\"\n   height=\"28\"\n   id=\"svg2\"\n   version=\"1.1\"\n   inkscape:version=\"0.48.4 r9939\"\n   sodipodi:docname=\"tinka_logo.svg\">\n  <defs\n     id=\"defs4\" />\n  <sodipodi:namedview\n     id=\"base\"\n     pagecolor=\"#ffffff\"\n     bordercolor=\"#666666\"\n     borderopacity=\"1.0\"\n     inkscape:pageopacity=\"0.0\"\n     inkscape:pageshadow=\"2\"\n     inkscape:zoom=\"22.627417\"\n     inkscape:cx=\"12.192879\"\n     inkscape:cy=\"16.062665\"\n     inkscape:document-units=\"px\"\n     inkscape:current-layer=\"layer1\"\n     showgrid=\"false\"\n     inkscape:window-width=\"1920\"\n     inkscape:window-height=\"1137\"\n     inkscape:window-x=\"-8\"\n     inkscape:window-y=\"-8\"\n     inkscape:window-maximized=\"1\" />\n  <metadata\n     id=\"metadata7\">\n    <rdf:RDF>\n      <cc:Work\n         rdf:about=\"\">\n        <dc:format>image/svg+xml</dc:format>\n        <dc:type\n           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n        <dc:title></dc:title>\n      </cc:Work>\n    </rdf:RDF>\n  </metadata>\n  <g\n     inkscape:label=\"Ebene 1\"\n     inkscape:groupmode=\"layer\"\n     id=\"layer1\"\n     transform=\"translate(0,-1024.3622)\">\n    <g\n       id=\"g2987\"\n       transform=\"matrix(0.21875,0,0,0.21875,-0.03334395,1024.3224)\"\n       style=\"fill-rule:evenodd\">\n      <path\n         id=\"path2989\"\n         d=\"m 40.397288,76.445699 0,18.894708 14.119729,0 0,0 c -4.64e-4,-0.0019 -9.28e-4,-0.0038 -0.0014,-0.0057 0.09369,0.0038 0.187859,0.0057 0.282472,0.0057 3.817607,0 6.912389,-3.094782 6.912389,-6.912389 0,-1.808236 -0.694317,-3.454305 -1.830894,-4.686151 l 0,0 c 0.0154,-0.0077 0.03082,-0.01536 0.04626,-0.02299 -1.041794,-1.210214 -1.671559,-2.785252 -1.671559,-4.50738 0,-3.817607 3.094781,-6.912389 6.912388,-6.912389 3.817607,0 6.912389,3.094782 6.912389,6.912389 0,1.983922 -0.835789,3.772635 -2.174474,5.033245 l 0,0 c 0.02875,0.01818 0.05739,0.0365 0.08594,0.05496 l 0,0 c -0.859106,1.151989 -1.367662,2.580762 -1.367662,4.128315 0,3.430479 2.498947,6.277297 5.775777,6.81939 -0.0073,0.03105 -0.01478,0.06205 -0.02239,0.093 l 21.320134,0 0,-19.772549 0,0 c -0.04975,0.013 -0.09964,0.02563 -0.149675,0.0379 0.0038,-0.09369 0.0057,-0.187859 0.0057,-0.282472 0,-3.817607 -3.094782,-6.912389 -6.912389,-6.912389 -1.808236,0 -3.454305,0.694317 -4.686152,1.830894 l 0,0 c -0.0077,-0.0154 -0.01536,-0.03082 -0.02299,-0.04626 -1.210214,1.041794 -2.785253,1.671559 -4.507381,1.671559 -3.817607,0 -6.912388,-3.094781 -6.912388,-6.912388 0,-3.817607 3.094781,-6.912389 6.912388,-6.912389 1.983923,0 3.772636,0.835789 5.033245,2.174474 l 0,0 c 0.01818,-0.02875 0.0365,-0.05739 0.05496,-0.08594 l 0,0 c 1.151989,0.859106 2.580762,1.367662 4.128315,1.367662 3.430479,0 6.277297,-2.498947 6.81939,-5.775777 0.07936,0.01871 0.158369,0.03834 0.237007,0.05889 l 0,-15.740322 -21.320134,0 0,0 c 0.0076,-0.03094 0.01507,-0.06194 0.02239,-0.093 l 0,0 c -3.27683,-0.542092 -5.775777,-3.388911 -5.775777,-6.81939 0,-1.547552 0.508556,-2.976326 1.367662,-4.128315 -0.02855,-0.01846 -0.0572,-0.03678 -0.08594,-0.05496 1.338685,-1.260609 2.174474,-3.049323 2.174474,-5.033245 C 72.07907,20.094782 68.984288,17 65.166681,17 c -3.817607,0 -6.912388,3.094782 -6.912388,6.912389 0,1.722128 0.629765,3.297167 1.671559,4.50738 l 0,0 c -0.01544,0.0076 -0.03086,0.01529 -0.04626,0.02299 1.136577,1.231846 1.830894,2.877915 1.830894,4.686151 0,3.817607 -3.094782,6.912389 -6.912389,6.912389 -0.09461,0 -0.188783,-0.0019 -0.282472,-0.0057 l 0,0 c 4.63e-4,0.0019 9.27e-4,0.0038 0.0014,0.0057 l -14.119729,0 0,12.846368 0,0 c 0.0944,0.455349 0.144008,0.927098 0.144008,1.410434 0,3.817607 -3.094782,6.912389 -6.912389,6.912389 -1.547552,0 -2.976326,-0.508556 -4.128315,-1.367663 -0.01846,0.02855 -0.03678,0.0572 -0.05496,0.08594 -1.260609,-1.338685 -3.049323,-2.174474 -5.033245,-2.174474 -3.817607,0 -6.912389,3.094781 -6.912389,6.912388 0,3.817607 3.094782,6.912389 6.912389,6.912389 1.722128,0 3.297167,-0.629765 4.50738,-1.671559 l 0,0 c 0.0076,0.01544 0.01529,0.03086 0.02299,0.04626 1.231846,-1.136577 2.877915,-1.830894 4.686151,-1.830894 3.817607,0 6.912389,3.094782 6.912389,6.912389 0,0.483335 -0.04961,0.955085 -0.144008,1.410434 z M 64,0 l 54.5596,32 0,64 L 64,128 9.4403996,96 l 0,-64 L 64,0 z\"\n         inkscape:connector-curvature=\"0\" />\n    </g>\n    <path\n       sodipodi:type=\"arc\"\n       style=\"fill:#630fb2;fill-opacity:1;fill-rule:nonzero;stroke:none\"\n       id=\"path2999\"\n       sodipodi:cx=\"456.42856\"\n       sodipodi:cy=\"165.93361\"\n       sodipodi:rx=\"162.14285\"\n       sodipodi:ry=\"162.14285\"\n       d=\"m 618.57141,165.93361 a 162.14285,162.14285 0 1 1 -0.002,-0.80734\"\n       sodipodi:start=\"0\"\n       sodipodi:end=\"6.2782061\"\n       sodipodi:open=\"true\"\n       transform=\"matrix(0.06593776,0,0,0.06593776,-16.215024,1027.2261)\" />\n    <path\n       style=\"fill:#3cff80;fill-opacity:1;fill-rule:nonzero;stroke:none\"\n       d=\"m 14.745406,1034.4667 -1.99638,3.2989 0,0.1196 0,7.1336 0,3.4185 1.99638,-3.299 0,-0.1195 0,-7.1336 0,-3.4185 z\"\n       id=\"rect3769\"\n       inkscape:connector-curvature=\"0\" />\n    <path\n       style=\"fill:#ffa600;fill-opacity:1;fill-rule:nonzero;stroke:none\"\n       d=\"m 7.3063061,1034.2471 3.2989499,-3.1032 0.11951,0 7.13365,0 3.41846,0 -3.29895,3.1032 -0.11951,0 -7.13365,0 -3.4184599,0 z\"\n       id=\"rect3769-0\"\n       inkscape:connector-curvature=\"0\" />\n  </g>\n</svg>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-backupPlugin.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-backupPlugin.js",
    +            "text": "/*\\\r\ntitle: $:/plugins/ahahn/tinka/tinka-backupPlugin.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nTinka's backup action widget to backup a plugin.\r\n    \r\nBacks up the specified plugin tiddler and modifies the \r\n'plugin-type' and 'title' field accordingly.\r\n\r\n\\*/\r\n(function(){\r\n\r\n/*jslint node: true, browser: true */\r\n/*global $tw: false */\r\n\"use strict\";\r\n\r\nvar CommonAction = require(\"$:/plugins/ahahn/tinka/tinkaCommonAction.js\").tinkaCommonAction;\r\n\r\nvar BackupPluginWidget = function(parseTreeNode,options) {\r\n\tthis.initialise(parseTreeNode,options);\r\n    this.setup(false,false,{\r\n        \"$plugin\": \"\",\r\n        \"$restore\": \"no\"\r\n    },false);\r\n};\r\n\r\n/*\r\nInherit from the base widget class\r\n*/\r\nBackupPluginWidget.prototype = new CommonAction();\r\n\r\n/*\r\nSmall string table\r\n*/\r\nBackupPluginWidget.prototype.CONFIRM_OVERRIDE = \"You are about to restore a backup, but another version of this plugin is already active. Do you want to backup the current version (if not already existing) and restore this backup anyway ?\"; \r\n\r\n/*\r\nInvoke the action associated with this widget\r\n*/\r\nBackupPluginWidget.prototype.invokeAction = function(triggeringWidget,event) {\r\n    this.actionPlugin = this.param[\"$plugin\"];\r\n    this.actionRestore = this.param[\"$restore\"];\r\n\r\n\tif(this.actionPlugin) {\r\n      \tif(this.actionRestore == \"yes\") {\r\n          \tvar backupTiddler = this.wiki.getTiddler(this.actionPlugin);\r\n          \tvar operationConfirmed = true;\r\n          \tif(backupTiddler instanceof $tw.Tiddler) {      \r\n      \t\t\tif(this.checkIfExists(backupTiddler.fields[\"original-title\"])) {\r\n                  \toperationConfirmed = confirm(this.CONFIRM_OVERRIDE);\r\n                  \tif(operationConfirmed) {\r\n                      // after backing up, delete current $original-title Tiddler\r\n                      this.backupPlugin(backupTiddler.fields[\"original-title\"]);\r\n                      this.wiki.deleteTiddler(backupTiddler.fields[\"original-title\"]);  \t\r\n                    }\r\n                }\r\n              \r\n              \tif(operationConfirmed) {\r\n                  var pluginType = this.determinePluginType(backupTiddler.fields[\"plugin-type\"]);\r\n                  this.wiki.addTiddler(new $tw.Tiddler(backupTiddler,{\r\n                      \"title\": backupTiddler.fields[\"original-title\"],\r\n                      \"original-title\": undefined,\r\n                      \"plugin-type\": pluginType\r\n                  }));\r\n              \t}\r\n            }\r\n        }\r\n       \telse {\r\n    \t\tthis.backupPlugin(this.actionPlugin);\r\n       \t}\r\n    }\r\n  \treturn true; // Action was invoked\r\n};\r\n\r\nBackupPluginWidget.prototype.determinePluginType = function(name) {\r\n\tvar reg = /(.*)-backup/;\r\n  \tvar matches = name.match(reg);\r\n  \t\r\n  \tif(matches != null) {\r\n  \t\treturn matches[1]; \r\n    }\r\n  \r\n  \treturn \"plugin\";\r\n}\r\n\r\n\r\nBackupPluginWidget.prototype.backupPlugin = function(plugin) {\r\n\tvar pluginTiddler = this.wiki.getTiddler(plugin);\r\n    var didBackup = false;\r\n      \tif(pluginTiddler instanceof $tw.Tiddler) {\r\n            var backupTitle = this.getBackupTitle(pluginTiddler.fields.title,pluginTiddler.fields.version);\r\n            didBackup = true;\r\n          \r\n          \t//Don't make a backup if a backup already exists\r\n          \tif(!this.checkIfExists(backupTitle)) {\r\n              var backupTiddler = new $tw.Tiddler(pluginTiddler,{\r\n                  \"title\": backupTitle,\r\n                  \"original-title\": pluginTiddler.fields.title,\r\n                  \"plugin-type\": \"\" + pluginTiddler.fields[\"plugin-type\"] + \"-backup\"\r\n              });\r\n\r\n              this.wiki.addTiddler(backupTiddler);           \r\n          \t}\r\n        }\r\n  \treturn didBackup;\r\n}\r\n\r\nBackupPluginWidget.prototype.getBackupTitle = function(title,version) {\r\n \treturn \"\" + title + \"-\" + version + \"-backup\";\r\n};\r\n  \r\nBackupPluginWidget.prototype.checkIfExists = function(tiddler) {\r\n\treturn this.wiki.getTiddler(tiddler) != undefined;\r\n}\r\n\r\nexports[\"tinka-backupPlugin\"] = BackupPluginWidget;\r\n\r\n})();\r\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-check.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-check.js",
    +            "text": "/*\\\ntitle: $:/plugins/ahahn/tinka/tinka-check.js\ntype: application/javascript\nmodule-type: widget\n\nChecks param \"text\" for match with \"pattern\".\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TinkaCommonActionWidget = require(\"$:/plugins/ahahn/tinka/tinkaCommonAction.js\").tinkaCommonAction;\n\nvar CheckAction = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.setup(false,true,[\"text\", \"pattern\"],true);\n};\n\nCheckAction.prototype = new TinkaCommonActionWidget();\n/*\nInvoke the action associated with this widget\n*/\nCheckAction.prototype.invokeAction = function(triggeringWidget,event) {\n\t//important: recompute Attributes\n\tthis.processAttributes();\n\tvar regexp = new RegExp(this.param[\"pattern\"]);\n\t\n\tif(regexp.test(this.param[\"text\"])) {\n\t\tvar ev = {};\n\t\tev.verb = \"pass\";\n\t\tev.data = event;\n\t\tthis.invokeActions(triggeringWidget,ev); \n\t}\n\telse {\n\t\tvar ev = {};\n\t\tev.verb = \"fail\";\n\t\tev.data = event;\n\t\tthis.invokeActions(triggeringWidget,ev);\n\t}\n\t\n\treturn true; // Action was invoked\n};\n\nexports[\"tinka-check\"] = CheckAction;\n\n})();\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-filter.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-filter.js",
    +            "text": "/*\\\ntitle: $:/plugins/ahahn/tinka/tinka-filter.js\ntype: application/javascript\nmodule-type: widget\n\nWidgets to filters actions according to their verb.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TinkaCommonActionWidget = require(\"$:/plugins/ahahn/tinka/tinkaCommonAction.js\").tinkaCommonAction;\n\nvar FilterAction = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.setup(false, true, [\"verb\"], true);\n};\n\nFilterAction.prototype = new TinkaCommonActionWidget();\n/*\nInvoke the action associated with this widget\n*/\nFilterAction.prototype.invokeAction = function(triggeringWidget,event) {\n\tif (event.verb === this.param[\"verb\"]) {\n\t\tthis.invokeActions(triggeringWidget, event);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"tinka-filter\"] = FilterAction;\n\n})();\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-repackagePlugin.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-repackagePlugin.js",
    +            "text": "/*\\\r\ntitle: $:/plugins/ahahn/tinka/tinka-repackagePlugin.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nrepackagePlugin action widget\r\n\r\n<$repackagePlugin $plugin=<<target>> $repackage=\"yes\" $diff=<<qualified-modify-diff>> />\r\n\r\n\\*/\r\n(function(){\r\n\r\n/*jslint node: true, browser: true */\r\n/*global $tw: false */\r\n\"use strict\";\r\n\r\nvar CommonAction = require(\"$:/plugins/ahahn/tinka/tinkaCommonAction.js\").tinkaCommonAction;\r\n\r\n  \r\nvar repackagePluginWidget = function(parseTreeNode,options) {\r\n\tthis.initialise(parseTreeNode,options);\r\n    this.setup(false,false,[\"$plugin\",\"$create\",\"$diff\"],false);\r\n};\r\n\r\n/*\r\nInherit from the base widget class\r\n*/\r\nrepackagePluginWidget.prototype = new CommonAction();\r\n\r\n/*\r\nInvoke the action associated with this widget\r\n*/\r\nrepackagePluginWidget.prototype.invokeAction = function(triggeringWidget,event) {\r\n  \tvar diff = {};\r\n  \tvar title = \"\";\r\n\tthis.actionPlugin = this.param[\"$plugin\"];\r\n\tthis.actionCreate = this.param[\"$create\"];\r\n  \tthis.actionDiff = this.param[\"$diff\"];\r\n\r\n  \tif(this.actionPlugin) {\r\n      title = this.actionPlugin;\r\n      if(this.actionDiff) {\r\n     \tvar tid = this.wiki.getTiddler(this.actionDiff);\r\n        diff = tid || {};\r\n      }\r\n      \r\n      if(this.actionCreate == \"yes\") {\r\n        //create new plugin Tiddler with the data from the diff tiddler\r\n        var pluginTid = {};\r\n        \r\n        title = diff.fields[\"create-title\"] || this.actionPlugin;\r\n        pluginTid.title = title;\r\n        pluginTid[\"text\"] =\t\"{\\\"tiddlers\\\": {}}\";\r\n        pluginTid[\"type\"] = \"application/json\";\r\n        pluginTid[\"author\"] = diff.fields[\"create-author\"];\r\n        pluginTid[\"description\"] = diff.fields[\"create-description\"];\r\n\t\tpluginTid[\"name\"] = diff.fields[\"create-name\"];\r\n        pluginTid[\"list\"] = diff.fields[\"create-list\"];\r\n        pluginTid[\"plugin-type\"] = diff.fields[\"create-plugin-type\"];\r\n        pluginTid[\"dependents\"] = diff.fields[\"create-dependents\"];\r\n        pluginTid[\"version\"] = diff.fields[\"create-version\"];\r\n        pluginTid[\"core-version\"] = diff.fields[\"create-core-version\"];\r\n        this.wiki.addTiddler(new $tw.Tiddler(pluginTid));\r\n      }\r\n      \r\n      //execute repackaging\r\n      $tw.utils.repackPlugin(title,diff.fields.addTiddlers,diff.fields.removeTiddlers);\r\n  \t}\r\n};\r\n\r\nexports[\"tinka-repackagePlugin\"] = repackagePluginWidget;\r\n\r\n})();\r\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-saveTaglistToField.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-saveTaglistToField.js",
    +            "text": "/*\\\r\ntitle: $:/plugins/ahahn/tinka/tinka-saveTaglistToField.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nSaves a tiddlers list of tags to a csv field.\r\n\r\n\\*/\r\n(function(){\r\n\r\n/*jslint node: true, browser: true */\r\n/*global $tw: false */\r\n\"use strict\";\r\n\r\nvar CommonAction = require(\"$:/plugins/ahahn/tinka/tinkaCommonAction.js\").tinkaCommonAction;\r\n\r\nvar SaveTaglistToFieldWidget = function(parseTreeNode,options) {\r\n\tthis.initialise(parseTreeNode,options);\r\n    this.setup(false,false,[\"$target\",\"$tiddler\",\"$field\"],false);\r\n};\r\n\r\n/*\r\nInherit from the base widget class\r\n*/\r\nSaveTaglistToFieldWidget.prototype = new CommonAction();\r\n\r\n/*\r\nInvoke the action associated with this widget\r\n*/\r\nSaveTaglistToFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\r\n\tvar taglist = [];\r\n  \tvar field = \"text\";\r\n  \r\n    if(this.param[\"$target\"]) {\r\n    \tvar targetTags = this.wiki.getTiddler(this.param[\"$target\"]);\r\n      \t\r\n      \tif(targetTags) {\r\n      \t\ttaglist = targetTags.fields.tags || [];\r\n      \t}\r\n    }\r\n  \r\n  \tif(this.param[\"$field\"]) {\r\n  \t\tfield = this.param[\"$field\"];\r\n  \t}\r\n  \r\n  \tif(this.param[\"$tiddler\"]) {\r\n  \t\t//save taglist in field on tiddler\r\n      \tthis.wiki.setTextReference(this.param[\"$tiddler\"]+ \"!!\" +field,taglist,this.getVariable(\"currentTiddler\")); \r\n \t}\r\n\r\n  return true; // Action was invoked\r\n};\r\n\r\nexports[\"tinka-saveTaglistToField\"] = SaveTaglistToFieldWidget;\r\n\r\n})();\r\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/tinkaCommonAction.js": {
    +            "title": "$:/plugins/ahahn/tinka/tinkaCommonAction.js",
    +            "text": "/*\\\ntitle: $:/plugins/ahahn/tinka/tinkaCommonAction.js\ntype: application/javascript\nmodule-type: widget\n\nTinka common action widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CommonActionWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCommonActionWidget.prototype = new Widget();\n\n/*\nSetup an action widget with these properties\n*/\nCommonActionWidget.prototype.setup = function(allowPropagation,doRenderChildren,preparedParams,refreshOnAttributeChange) {\n\tthis.doRenderChildren = doRenderChildren;\n\tthis.preparedParams = preparedParams;\n\tthis.allowPropagation = allowPropagation;\n\tthis.refreshOnAttributeChange = refreshOnAttributeChange;\n};\n  \n  \n/*\nRender this widget into the DOM\n*/\nCommonActionWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n  \tif(this.doRenderChildren) {\n\t\tthis.renderChildren(parent,nextSibling);\n  \t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCommonActionWidget.prototype.execute = function() {\n    this.processAttributes();\n\t// Construct the child widgets\n\tif(this.doRenderChildren) {\n\t\tthis.makeChildWidgets();\n\t}\n};\n\t\n/*\nCompute the values of our attributes\n*/\nCommonActionWidget.prototype.processAttributes = function() {\n\tvar self = this;\n\tthis.computeAttributes();\n\tthis.param = {};\n\n    if(this.isObject(this.preparedParams) && !this.isArray(this.preparedParams)) {\n        $tw.utils.each(this.preparedParams,function(def, name) {\n            self.param[name] = self.getAttribute(name,def);\n        });\n    }\n    else {\n        $tw.utils.each(this.preparedParams,function(name) {\n            self.param[name] = self.getAttribute(name);\n        });\n    }\n};\n\nCommonActionWidget.prototype.allowActionPropagation = function() {\n\treturn this.allowPropagation;\t\n};\n\nCommonActionWidget.prototype.isEmptyObject = function(obj) {\n\tfor(var prop in obj) {\n        if(obj.hasOwnProperty(prop))\n            return false;\n    }\n\n    return true;\n};\n\nCommonActionWidget.prototype.isObject = function(obj) {\n    return ((obj !== null) && (typeof obj === 'object'));\n};\n\nCommonActionWidget.prototype.isArray = function(obj) {\n    return (Object.prototype.toString.call(obj) === '[object Array]');\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCommonActionWidget.prototype.refresh = function(changedTiddlers) {\n  \tvar changedAttributes = this.computeAttributes();\n\t\t\n\tif(!this.isEmptyObject(changedAttributes) && this.refreshOnAttributeChange) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n    }\n\telse if (!this.isEmptyObject(changedAttributes)) {\n\t\tthis.processAttributes();\n\t}\n\t\n\treturn this.refreshChildren(changedTiddlers);\t\t\n};\n\nexports.tinkaCommonAction = CommonActionWidget;\n\n})();\n",
    +            "type": "application/javascript",
    +            "module-type": "widget"
    +        },
    +        "$:/plugins/ahahn/tinka/license": {
    +            "title": "$:/plugins/ahahn/tinka/license",
    +            "type": "text/vnd.tiddlywiki",
    +            "caption": "license",
    +            "text": "Tinka Plugin for Tiddlywiki5\n\nCopyright (c) 2017 Andreas Hahn <tinka.plugin@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"
    +        },
    +        "$:/plugins/ahahn/tinka/emptyDiff": {
    +            "title": "$:/plugins/ahahn/tinka/emptyDiff",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": ""
    +        },
    +        "$:/plugins/ahahn/tinka/tinka-export": {
    +            "title": "$:/plugins/ahahn/tinka/tinka-export",
    +            "tags": "$:/tags/Macro",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define tinkaExportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define tinkaExportQualifiedState()\n$:/state/popup/tinkaExport-$(currentTiddler)$\n\\end\n\n\\define tinkaExportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\">\n<$button popup=<<tinkaExportQualifiedState>> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<tinkaExportQualifiedState>> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<tinkaExportQualifiedState>>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
    +        },
    +        "$:/plugins/ahahn/tinka/readme": {
    +            "title": "$:/plugins/ahahn/tinka/readme",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "This is a Control Panel extension that aims to simplify the plugin creation and editing process. After installing, you will find a new tab in your control panel that makes creating and modifying plugins a little bit easier.\n\n<a target=\"blank\" href=\"http://tinkaplugin.github.io\">Project Homepage on tinkaplugin.github.io</a>\n\n!! Version History\n\n!!! 2017-05-13 Release of version 0.4.0\n\nThis release fixes the following bugs:\n\n''Changelog''\n\n* Themes will now get the correct prefix `$:/themes/` when packaging\n* Fixed search results not linking properly\n* Added description field when creating a new theme\n\n\n!!! 2017-03-01 Release of version 0.3.0\n\nAfter more than a year, Tinka is now on <a target=\"blank\" href=\"http://tinkaplugin.github.io\">github</a> and also released under the [[MIT license|$:/plugins/ahahn/tinka/license]].\n\n''Changelog''\n\n* Packaging success now produces a modal that actively reminds the user to refresh the wiki.\n* The search tab state is now kept in a temporary system tiddler.\n* Added warning when repackaging themes that are not active.\n* The 'Help Tab' functionality is now also available for plugins that do not follow the `$:/plugins/...` naming convention. In particular this applies to themes and core plugins.\n* Fixed wrong headings for some modal dialogs.\n* Older action widgets remodeled to use the (new) CommonAction widget as a base.\n* Fixed error check that prevented users to enter a minimal core version dependency when creating a new plugin.\n\n!!! 2015-09-20 Release of version 0.2.0-beta\n\n''Changelog''\n\n* Added Help-Tab capabilities to quickly navigate between plugin tiddlers.\n* Moved Create-Plugin wizard to its own tab.\n* Redid Create-Plugin UI to be easier and more accessible.\n* Backups can now also be downloaded/exported.\n* Added more documentation.\n\n!!! 2015-05-18 Release of version 0.1.0\n\n''Changelog''\n\n* The metadata section now include edit fields for the `name` and `source` fields.\n* The //default search// box now only searches for title matches.\n* Backups can now be exported/downloaded.\n* <div>Backups can now be restored and made active again. If another version of the plugin is already active, the option is given to back it up,before restoring the backup.\n\n\n''Warning: For this mechanism to work, there has to be an 'original-title' field present in the backup tiddler. This is automatically added by Tinka, however earlier versions of Tinka did not add this field. If you want to restore a backup from an earlier version of Tinka, you will have to add the 'original-title' field manually and populate it with the former title of the plugin tiddler, in order for the restore function to work.''\n</div>\n\n!!! 2015-04-30 Release of version 0.0.2\n\n''Changelog''\n\n* The list of plugin tiddlers is now hidden by default, since some lists can get very long.\n* Added a different search option (default/filter)\n* Improved Documentation slightly\n* Added a backup option, so a plugin can be backed up before repackaging.\n\n   \n!!! 2015-04-29 Release of version 0.0.1\n"
    +        },
    +        "$:/plugins/ahahn/tinka/style": {
    +            "title": "$:/plugins/ahahn/tinka/style",
    +            "list-after": "$:/themes/tiddlywiki/vanilla/base",
    +            "tags": "$:/tags/Stylesheet",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\n/* ==button styles== */\n\nbutton.tinka-blue, button.tinka-orange {\n  font-weight: normal;\n  font-size: 1em;\n  color: #fff;\n  fill: #fff;\n}\n\n.tinka-blue {\n  background-color: #5E9FCA;\n}\n\n.tinka-orange {\n  background-color: #FF8C19;\n}\n\n.tinka-archive-buttons {\n  padding-left: 30px;\n  display: inline-block;\n}\n\nbutton.tinka-sidebar-button, button.tinka-invisible  {\n  color: #acacac;\n  fill: #acacac;\n}\n\n.tinka-enlarge {\n  font-size: 1.5em;\n  padding: 1.5em;\n}\n\n.tinka-enlarge svg {\n  font-size: 3em;\n}\n\n.tinka-orb {\n  border-radius: 10pt;\n}\n\n.tc-dirty .tinka-button-refresh {\n  display: none;\n}\n\n/* ==container styles== */\n\n.tinka-centered-container {\n  text-align: center;\n  padding: 1em;\n}\n\n.tinka-note {\n  display:block;\n  padding-left: 5px;\n  background-color: #FFF9B0;\n  color: #7F7A32;\n  border: 1px solid #7F7A32;\n  border-radius: 5px;\n  font-style: italic;\n  font-size: 0.8em;\n}\n\n.tinka-note-red {\n  display:block;\n  padding-left: 5px;\n  background-color: #E8DEE0;\n  color: #E82C0C;\n  border: 1px solid #E82C0C;\n  border-radius: 5px;\n  font-style: italic;\n  font-size: 0.8em;\n}\n\n/* ==text formatting== */\n\n.tinka-list-item {\n\tlist-style: none;\n}\n\n.tinka-saving {\n  display: none;\n}\n\n.tc-dirty .tinka-saving {\n  display: inline;\n}\n\n.tinka-success {\n  color: #26CC50;\n}\n\n.tinka-success .tc-image-done-button, .tinka-success .tc-image-save-button {\n  fill: #26CC50;\n}\n\n.tinka-error {\n  color: #F00;\n}\n\n.tinka-error .tc-image-close-button {\n  fill: #F00;\n}\n\ntable.tinka-meta-table tr td {\n  padding: 5px;\n}\n\n/* ==forms style== */\n.tc-control-panel input.tinka-inline-edit {\n  width: 30%;\n  min-width: 30pt;\n}\n\n.tc-control-panel input.tinka-full-edit,  input.tinka-full-edit {\n  width: 100%;\n}\n"
    +        },
    +        "$:/plugins/ahahn/tinka/backupList": {
    +            "title": "$:/plugins/ahahn/tinka/backupList",
    +            "caption": "Archive",
    +            "list-after": "$:/plugins/ahahn/tinka/pluginManagement",
    +            "tags": "$:/tags/tinka/ControlPanel",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define plugin-export()\n[title[$(currentTiddler)$]]\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage)\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude></div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2></div>\n<div class=\"tinka-archive-buttons\">\n<$macrocall $name=\"tinkaExportButton\" exportFilter=<<plugin-export>> />\n<$button class=\"tc-btn-big-green tinka-blue\">\n<$tinka-backupPlugin $plugin=<<currentTiddler>> $restore=\"yes\"/>\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/restoreSuccess\" />Restore</$button>\n</div>\n\\end\n\n\\define plugin-table(type)\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">>>\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\">>\n</$link>\n</$list>\n\\end\n\n!!Backups\n\n<<plugin-table plugin-backup>>\n<<plugin-table theme-backup>>\n<<plugin-table language-backup>>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/controlPanelExtension": {
    +            "title": "$:/plugins/ahahn/tinka/controlPanelExtension",
    +            "caption": "Tinka Plugin Management",
    +            "tags": "$:/tags/ControlPanel",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<<tabs \"[[$:/plugins/ahahn/tinka/pluginManagement]] [[$:/plugins/ahahn/tinka/createDialog]] [[$:/plugins/ahahn/tinka/backupList]]\" \"$:/plugins/ahahn/tinka/pluginManagement\" \"$:/temp/tinka/cpTabs\">>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createDialog": {
    +            "title": "$:/plugins/ahahn/tinka/createDialog",
    +            "caption": "Create a new Plugin",
    +            "tags": "$:/tags/tinka/ControlPanel",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define plugin-tiddler-selection()\n[[$(target)$]plugintiddlers[]]\n\\end\n\n\\define qualified-modify-add()\n$(qualifiedTiddler)$-$(target)$-add\n\\end\n\n\\define qualified-modify-diff()\n$(qualifiedTiddler)$-$(target)$-diff\n\\end\n\n\\define diff-plugin-title()\n$(qualifiedTiddler)$-$(target)$-diff!!create-title\n\\end\n\n\\define added-filter()\n[[$(addedTiddlers)$]tags[]]\n\\end\n\n\\define concatPluginTitle(prefix, sep)\n$prefix$$(createTitleOrg)$$sep$$(createTitleName)$\n\\end\n\n\\define tiddlerReference(ref)\n$(currentTiddler)$$ref$\n\\end\n\n\\define varsReference(ref)\n$(TinkaVars)$$ref$\n\\end\n\n\n!! Create New Plugin\n\n<span class=\"tinka-note\">Usage: Enter the necessary metadata for your plugin and use the Filter selection below to pick the tiddlers that should be added to the plugin. After selecting the tiddlers, press 'Package Plugin'. Refer to the [[Documentation|$:/plugins/ahahn/tinka/usage]] for further help.</span>\n\n<$set name=\"target\" value=\"skeleton\">\n<$set name=\"qualifiedTiddler\" value=<<qualify \"$:/temp/tinka/modify\">> >\n\n!!! Step 1: Enter Metadata\n\n\n<$set name=\"currentTiddler\" value=<<qualified-modify-diff>>>\n\t<$transclude mode=\"block\" tiddler=\"$:/plugins/ahahn/tinka/createMetadata\"/>\n</$set>\n\n!!! Step 2: Add Tiddlers\n\nUse the search box below to select the tiddlers you want to add to the plugin.\n\n{{$:/plugins/ahahn/tinka/searchDisplay}}\n\n\n''Added Tiddlers''\n\n<$set name=\"addedTiddlers\" value=<<qualified-modify-add>> >\n<ul>\n<$list filter=<<added-filter>> emptyMessage=\"<i>No tiddlers added.</i>\">\n\t\t<li class=\"tinka-list-item\">\n        <$checkbox tiddler=<<qualified-modify-add>> tag={{!!title}} />\n        <$link to={{!!title}}>{{!!title}}</$link>\n        </li>\n</$list>\n</ul>\n</$set>\n\n\n<$button class=\"tc-btn-big-green tinka-orange\">\n<$set name=\"TinkaVars\" value=\"$:/temp/tinka/CreateVars\">\n<$set name=\"currentTiddler\" value=<<qualified-modify-diff>>>\n\t<$action-deletetiddler $tiddler=<<TinkaVars>> />\n\t<$action-setfield $tiddler=<<TinkaVars>> result=\"false\" />\n\n\t<!-- Check whether a plugin title was given -->\n\t<$tinka-check text={{!!create-title-org}} pattern=\"^[^\\s]+$\">\n\t\t<$tinka-filter verb=\"fail\">\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorTitle=\"The plugin title is not allowed to be empty or contain whitespaces.\"/>\n\t\t</$tinka-filter>\n\t</$tinka-check>\n\t\t\n\t<$tinka-check text={{!!create-title-name}} pattern=\"^[^\\s]+$\">\n\t\t<$tinka-filter verb=\"fail\">\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorTitle=\"The plugin path is not allowed to be empty or contain whitespaces.\"/>\n\t\t</$tinka-filter>\n\t</$tinka-check>\n\t\t\n\t<!-- Check whether a plugin type is set-->\n\t<$tinka-check text={{!!create-plugin-type}} pattern=\"^.+$\">\n\t\t<$tinka-filter verb=\"fail\">\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorType=\"You have to set a plugin type.\"/>\n\t\t</$tinka-filter>\n\t</$tinka-check>\n\t\t\n\t\t<!-- Check whether a name was given, depending on the plugin type-->\n\t\t<$reveal state=<<tiddlerReference \"!!create-plugin-type\">> type=\"match\" text=\"plugin\">\n\t\t\t<$tinka-check text={{!!create-description}} pattern=\"^.+$\">\n\t\t\t\t<$tinka-filter verb=\"fail\">\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorPlugin=\"You have to enter a plugin title.\"/>\n\t\t\t\t</$tinka-filter>\n\t\t\t</$tinka-check>\n\t\t</$reveal>\n\t\t<$reveal state=<<tiddlerReference \"!!create-plugin-type\">> type=\"match\" text=\"theme\">\n\t\t\t<$tinka-check text={{!!create-name}} pattern=\"^.+$\">\n\t\t\t\t<$tinka-filter verb=\"fail\">\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorTheme=\"You have to enter a theme title.\"/>\n\t\t\t\t</$tinka-filter>\n\t\t\t</$tinka-check>\n\t\t</$reveal>\n\t\t\n\t\t<!--Check Version numbers, if entered-->\n\t\t<$reveal state=<<tiddlerReference \"!!create-version\">> type=\"nomatch\" text=\"\">\n\t\t\t<$tinka-check text={{!!create-version}} pattern=\"^(\\d)+\\.(\\d)+\\.(\\d)+(-\\w+)?$\">\n\t\t\t\t<$tinka-filter verb=\"fail\">\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorVersion=\"Version numbers must have the following format: X.X.X (e.g. 1.0.0).\"/>\n\t\t\t\t</$tinka-filter>\n\t\t\t</$tinka-check>\n\t\t</$reveal>\n\t\t\n\t\t<$reveal state=<<tiddlerReference \"!!create-core-version\">> type=\"nomatch\" text=\"\">\n\t\t\t<$tinka-check text={{!!create-core-version}} pattern=\"^(>|>=|<|<=)?(\\d)+\\.(\\d)+\\.(\\d)+(-\\w+)?$\">\n\t\t\t\t<$tinka-filter verb=\"fail\">\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> result=\"true\"/>\n\t\t\t\t\t<$action-setfield $tiddler=<<TinkaVars>> errorCoreVersion=\"The core version number must have the following format: [>|>=|<|<=|]X.X.X-AAAA (e.g. >=5.1.8).\"/>\n\t\t\t\t</$tinka-filter>\n\t\t\t</$tinka-check>\n\t\t</$reveal>\n\n\t<$set name=\"currentTiddler\" value=<<TinkaVars>> >\n\t<$tinka-check text={{!!result}} pattern=\"^false$\">\n\t<$set name=\"currentTiddler\" value=<<qualified-modify-diff>>>\n\t<$tinka-filter verb=\"pass\">\n\t<!--Compute the plugin title (create-title> from the create-title-org and create-title-name fields -->\n\n\t\t<$set name=\"createTitleOrg\" value={{!!create-title-org}}>\n\t\t\t<$set name=\"createTitleName\" value={{!!create-title-name}}>\n                <!--If the plugin is a theme, use a different plugin-prefix -->\n                <$reveal state=<<tiddlerReference \"!!create-plugin-type\">> type=\"match\" text=\"theme\">\n\t\t\t\t    <$action-setfield create-title=<<concatPluginTitle \"$:/themes/\" \"/\">> />\n                </$reveal>\n\n                <$reveal state=<<tiddlerReference \"!!create-plugin-type\">> type=\"nomatch\" text=\"theme\">\n\t\t\t\t    <$action-setfield create-title=<<concatPluginTitle \"$:/plugins/\" \"/\">> />\n                </$reveal>\n\t\t\t</$set>\n\t\t</$set>\n\t\n\t\t<$tinka-saveTaglistToField $target=<<qualified-modify-add>> $tiddler=<<qualified-modify-diff>> $field=\"addTiddlers\"/>\n\t\t<$tinka-repackagePlugin $plugin=\"$:/plugins/unknown/newPlugin\" $create=\"yes\" $diff=<<qualified-modify-diff>> />\n\t\t<$action-deletetiddler $tiddler=<<qualified-modify-add>>/>\n\t\t<$action-deletetiddler $tiddler=<<qualified-modify-diff>>/>\n\t\t<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/packageSuccess\" />\n\t</$tinka-filter>\n\t<$tinka-filter verb=\"fail\">\n\t\t<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/packageErrors\" errorVars=<<TinkaVars>>/>\n\t</$tinka-filter>\n\t</$set>\n\t</$tinka-check>\n\t</$set>\n</$set>\n</$set>\nPackage plugin</$button>\n\n\n</$set>\n</$set>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata/noSpecialPluginType": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata/noSpecialPluginType",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<tr>\n    \t<td>Description:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" placeholder=\"e.g. Tinka - Plugin Packer\" field=\"create-description\"/></td>\n        \n        <td>Name:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" field=\"create-name\"/></td>\n</tr>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata/pluginPluginType": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata/pluginPluginType",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<tr>\n    \t<td>''Plugin Title:''</td>\n        <td colspan=\"3\"><$edit-text class=\"tinka-full-edit\" tag=\"input\" type=\"text\" placeholder=\"e.g. Tinka - Plugin Packer\" field=\"create-description\"/></td>\n</tr>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata/tableEnd": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata/tableEnd",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<tr>\n        <td>Version:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" field=\"create-version\"/></td>\n        \n\t\t<td>Core-Version:</td>\n        <td><$edit-text type=\"text\" placeholder=\"e.g. >=5.1.8\" tag=\"input\" field=\"create-core-version\"/></td>\n\t</tr>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata/tableHead": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata/tableHead",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\t<tr>\n\t\t<td>''Plugin Path:''</td>\n        <td colspan=\"3\">`$:/plugins/`<$edit-text class=\"tinka-inline-edit\" type=\"text\" placeholder=\"e.g. myName\" tag=\"input\" field=\"create-title-org\"/>`/`<$edit-text type=\"text\" class=\"tinka-inline-edit\" placeholder=\"e.g. myPlugin\" tag=\"input\" field=\"create-title-name\" /></td> \n\t</tr>\n    \n    <tr>\n\t\t<td>Author:</td>\n        <td><$edit-text type=\"text\" placeholder=\"e.g. John Doe\" tag=\"input\" field=\"create-author\"/></td>\n\t\t\n\t\t<td>Source:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" placeholder=\"e.g. http://twguides.org\" field=\"source\"/></td>\n\t</tr>\n\n\t<tr>\n\t\t<td>Dependents:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" field=\"create-dependents\"/></td>\n        \n        <td>List:</td>\n        <td><$edit-text tag=\"input\" type=\"text\" placeholder=\"e.g. readme usage\" field=\"create-list\"/></td>\n  \t</tr>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata/themePluginType": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata/themePluginType",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<tr>\n    <td>''Theme Title:''</td>\n    <td colspan=\"3\"><$edit-text  class=\"tinka-full-edit\" tag=\"input\" type=\"text\" placeholder=\"e.g. My cool theme\" field=\"create-name\"/></td>\n</tr>\n\n<tr>\n        <td>Description:</td>\n        <td colspan=\"3\"><$edit-text class=\"tinka-full-edit\" tag=\"input\" type=\"text\" placeholder=\"e.g. My description\" field=\"create-description\"/></td>\n</tr>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/createMetadata": {
    +            "title": "$:/plugins/ahahn/tinka/createMetadata",
    +            "create-plugin-type": "plugin",
    +            "create-title": "",
    +            "created": "20150429174811520",
    +            "modified": "20170225181341996",
    +            "tags": "",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "''Plugin-Type:'' <$edit-text tag=\"input\" type=\"text\" field=\"create-plugin-type\"/>\n        <$button popup=\"$:/temp/tinka/NewPluginPopup\" class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n\t\n\t\t<$reveal state=\"$:/temp/tinka/NewPluginPopup\" type=\"popup\" position=\"below\">\n\t\t<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n\t\t<$linkcatcher to=\"!!create-plugin-type\">\n\t\t\t<$link to=\"plugin\">Plugin</$link>\n\t\t\t<$link to=\"theme\">Theme</$link>\n\t\t</$linkcatcher>\n\t\t</div>\n\t\t</$reveal>\n\n<$reveal state=\"!!create-plugin-type\" type=\"nomatch\" text=\"plugin\" >\n\t<$reveal state=\"!!create-plugin-type\" type=\"nomatch\" text=\"theme\" >\n\t\t<table class=\"tinka-meta-table\">\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableHead\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/noSpecialPluginType\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableEnd\" />\n\t\t</table>\n\t</$reveal>\n</$reveal>\n\n<$reveal state=\"!!create-plugin-type\" type=\"match\" text=\"plugin\">\n\t\t<table class=\"tinka-meta-table\">\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableHead\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/pluginPluginType\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableEnd\" />\n\t\t</table>\n</$reveal>\n\n<$reveal state=\"!!create-plugin-type\" type=\"match\" text=\"theme\">\n\t\t<table class=\"tinka-meta-table\">\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableHead\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/themePluginType\" />\n\t\t<$transclude tiddler=\"$:/plugins/ahahn/tinka/createMetadata/tableEnd\" />\n\t\t</table>\n</$reveal>\n\n''bold'' = //required field//\n"
    +        },
    +        "$:/plugins/ahahn/tinka/dropdownManage": {
    +            "title": "$:/plugins/ahahn/tinka/dropdownManage",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define plugin-tiddler-selection()\n[[$(target)$]plugintiddlers[]]\n\\end\n\n\\define qualified-remove-popup()\n$:/state/popup/$(qualifiedTiddler)$-$(target)$-remove-popup\n\\end\n\n\\define qualified-modify-remove()\n$(qualifiedTiddler)$-$(target)$-remove\n\\end\n\n\\define qualified-modify-add()\n$(qualifiedTiddler)$-$(target)$-add\n\\end\n\n\\define qualified-modify-diff()\n$(qualifiedTiddler)$-$(target)$-diff\n\\end\n\n\\define target-type()\n$(target)$!!plugin-type\n\\end\n\n\\define added-filter()\n[[$(addedTiddlers)$]tags[]]\n\\end\n\n\\define pluginSuffixFilter()\n[[$(target)$]prefix[$:/plugins/]removeprefix[$:/plugins/]] [[$(target)$]!prefix[$:/plugins/]]\n\\end\n\n\\define sideTabNameBuilder()\n$:/plugins/ahahn/tinka/temp/$(pluginSuffix)$ - Help Tab\n\\end\n\n\\define helpTabCaption()\n$(pluginSuffix)$ - Help Tab\n\\end\n\n\\define helpTabText()\n<$set name=\"pluginPrefix\" value=\"$(target)$\" >\n<$set name=\"currentTiddler\" value=\"$(sideTabName)$\" >\n\n<$transclude tiddler=\"$:/plugins/ahahn/tinka/pluginSidePanel\" />\n\n</$set>\n</$set>\n\\end\n\n<$set name=\"qualifiedTiddler\" value=<<qualify \"$:/temp/tinka/modify\">> >\n\n<$list filter=<<pluginSuffixFilter>> variable=\"pluginSuffix\">\n<<SidebarTabName>>\n<$set name=\"sideTabName\" value=<<sideTabNameBuilder>> >\n\n<$reveal state=<<sideTabName>> type=\"match\" text=\"\">\n<$button>Enable Help-Tab\n<$action-setfield $tiddler=<<sideTabName>> text=<<helpTabText>> caption=<<helpTabCaption>> tags=\"$:/tags/SideBar\" />\n</$button>\n\n</$reveal>\n\n<$reveal state=<<sideTabName>> type=\"nomatch\" text=\"\">\n<$button>Disable Help-Tab\n<$action-deletetiddler $tiddler=<<sideTabName>> />\n</$button>\n</$reveal>\n</$set>\n</$list>\n\nIf you have edited the shadow tiddlers that belong to the plugin, just repackage without making any changes. That way the packaged plugin will incorporate the changes made to the individual tiddlers. Refer to the [[Documentation|$:/plugins/ahahn/tinka/usage]] for help.\n\nIt is recommended to create a backup before repackaging a plugin.\n\n!!! Edit Metadata\n<span class=\"tinka-note\">Note: Changes will be committed immediately.</span>\n\n<$set name=\"currentTiddler\" value=<<target>>>\n\t<$transclude mode=\"block\" tiddler=\"$:/plugins/ahahn/tinka/editMetadata\"/>\n</$set>\n\n!!! Remove Tiddlers\n<span class=\"tinka-note\">Note: Re-packaging required for changes to take effect.</span>\n\n<$reveal type=\"match\" text=\"\" state=<<qualified-remove-popup>> ><$button set=<<qualified-remove-popup>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} Show plugin tiddlers</$button></$reveal>\n<$reveal type=\"nomatch\" text=\"\" state=<<qualified-remove-popup>> >\n<$button set=<<qualified-remove-popup>> setTo=\"\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} Hide plugin tiddlers</$button>\n<ul>\n\t<$list filter=<<plugin-tiddler-selection>> emptyMessage=\"<i>No tiddlers in plugin.</i>\">\n\t\t<li class=\"tinka-list-item\">\n        <$checkbox tiddler=<<qualified-modify-remove>> tag={{!!title}} />\n        <$link to={{!!title}}><$text text={{!!title}} /></$link></li>\n\t</$list>\n</ul>\n</$reveal>\n\n!!! Add Tiddlers\n<span class=\"tinka-note\">Note: Re-packaging required for changes to take effect.</span>\n\nUse the search box below to select the tiddlers you want to add to the plugin.\n\n{{$:/plugins/ahahn/tinka/searchDisplay}}\n\n\n''Added Tiddlers''\n\n<$set name=\"addedTiddlers\" value=<<qualified-modify-add>> >\n<ul>\n<$list filter=<<added-filter>> emptyMessage=\"<i>No tiddlers added.</i>\">\n\t\t<li class=\"tinka-list-item\">\n        <$checkbox tiddler=<<qualified-modify-add>> tag={{!!title}} />\n        <$link to={{!!title}}>{{!!title}}</$link>\n        </li>\n</$list>\n</ul>\n</$set>\n\n<$reveal state=<<target-type>> type=\"match\" text=\"theme\">\n<span class=\"tinka-note-red\">Warning: Themes can only be repackaged if the theme is currently active or loaded as a dependant!</span>\n</$reveal>\n\n\n<$button class=\"tc-btn-big-green tinka-orange\">\n<$tinka-saveTaglistToField $target=<<qualified-modify-remove>> $tiddler=<<qualified-modify-diff>> $field=\"removeTiddlers\"/>\n<$tinka-saveTaglistToField $target=<<qualified-modify-add>> $tiddler=<<qualified-modify-diff>> $field=\"addTiddlers\"/>\n<$tinka-repackagePlugin $plugin=<<target>> $create=\"no\" $diff=<<qualified-modify-diff>> />\n<$action-deletetiddler $tiddler=<<qualified-modify-remove>>/>\n<$action-deletetiddler $tiddler=<<qualified-modify-add>>/>\n<$action-deletetiddler $tiddler=<<qualified-modify-diff>>/>\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/packageSuccess\" />Re-package plugin</$button>\n<$button class=\"tc-btn-big-green tinka-blue\">\n<$tinka-backupPlugin $plugin=<<target>> />\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/backupSuccess\" />Create Backup</$button>\n\n</$set>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/editMetadata": {
    +            "title": "$:/plugins/ahahn/tinka/editMetadata",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "|tinka-meta-table|k\n|Author:|<$edit-text type=\"text\" tag=\"input\" field=\"author\"/>|Description:|<$edit-text tag=\"input\" type=\"text\" field=\"description\"/>|\n|Dependents:|<$edit-text tag=\"input\" type=\"text\" field=\"dependents\"/>|List:|<$edit-text tag=\"input\" type=\"text\" field=\"list\"/>|\n|Plugin-Type:|<$edit-text tag=\"input\" type=\"text\" field=\"plugin-type\"/>|Version:|<$edit-text tag=\"input\" type=\"text\" field=\"version\"/>|\n|Source:|<$edit-text tag=\"input\" type=\"text\" field=\"source\"/>|Name:|<$edit-text tag=\"input\" type=\"text\" field=\"name\"/>|\n|Core-Version:|<$edit-text tag=\"input\" type=\"text\" field=\"core-version\"/>|||\n"
    +        },
    +        "$:/plugins/ahahn/tinka/backupSuccess": {
    +            "title": "$:/plugins/ahahn/tinka/backupSuccess",
    +            "caption": "Backup Success",
    +            "subtitle": "Backup Success",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<div class=\"tinka-success\">\n\n!!{{$:/core/images/done-button}} Backup Success !\n\nA backup of the plugin was successfully created.\n\n</div>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/packageErrors": {
    +            "title": "$:/plugins/ahahn/tinka/packageErrors",
    +            "caption": "Packaging Errors!",
    +            "subtitle": "Packaging Errors!",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define errorFilter()\n[[$(errorVars)$]fields[]prefix[error]]\n\\end\n\n\n<div class=\"tinka-error\">\n\n!!{{$:/core/images/close-button}} There were some errors !\n\nThe follwoing errors occured whilst processing your request:\n\n<ul>\n\t<$list filter=<<errorFilter>> variable=\"errorField\">\n\t\t<li><$view tiddler=<<errorVars>> field=<<errorField>> /></li>\n\t</$list>\n</ul>\n</div>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/packageSuccess": {
    +            "title": "$:/plugins/ahahn/tinka/packageSuccess",
    +            "caption": "Packaging Success",
    +            "subtitle": "Packaging Success",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<div class=\"tinka-success\">\n\n!!{{$:/core/images/done-button}} (Re-)Packaging Success !\n\nThe plugin was successfully (re-)packaged. It is recommended to <u>save and reload</u> the wiki now in order to avoid plugins to misbehave.\n\n    <div class=\"tinka-centered-container\">\n        <span class=\"tinka-saving\">{{$:/core/images/save-button}} Saving...<br/><sub>(If your wiki doesn't save automatically, please save&reload manually.)</sub></span>\n        <$button class=\"tc-btn-big-green tinka-enlarge tinka-orb tinka-button-refresh\">\n            <$action-sendmessage $message=\"tm-browser-refresh\" />\n            {{$:/core/images/refresh-button}}\n            <p>\n                <b>RELOAD NOW!</b>\n            </p>\n        </$button>\n    </div>\n</div>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/restoreSuccess": {
    +            "title": "$:/plugins/ahahn/tinka/restoreSuccess",
    +            "caption": "Restore Successful",
    +            "subtitle": "Restore Successful",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<div class=\"tinka-success\">\n\n!!{{$:/core/images/done-button}} Restore Success !\n\nThe backup was successfully restored!\n\n</div>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/pluginManagement": {
    +            "title": "$:/plugins/ahahn/tinka/pluginManagement",
    +            "caption": "Installed",
    +            "tags": "$:/tags/tinka/ControlPanel",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define popup-state-macro()\n$:/state/popup-$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-table(type)\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">>>\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\">>\n</$link>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$set name=\"target\" value={{!!title}}>\n\n{{$:/plugins/ahahn/tinka/dropdownManage}}\n\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n</$list>\n</$set>\n\\end\n\n!!Installed Plugins\n\n<<plugin-table plugin>>\n\n!!Installed Themes\n\n<<plugin-table theme>>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/pluginSidePanel": {
    +            "title": "$:/plugins/ahahn/tinka/pluginSidePanel",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define pluginFilter()\n[[$(pluginPrefix)$]plugintiddlers[]sort[]]\n\\end\n\n\\define pluginDirFilter()\n[all[tiddlers]prefix[$(pluginPrefix)$]sort[]]\n\\end\n\n\\define newPluginTiddler()\n$(pluginPrefix)$/New Tiddler\n\\end\n\n<$button class=\"tc-btn-invisible tinka-invisible\">\n<$action-sendmessage $message=\"tm-new-tiddler\" $param=<<newPluginTiddler>> />''\n{{$:/core/images/new-button}} Add Tiddler''</$button>\n\n!!!Shadow tiddlers contained in the plugin:\n\n<$list filter=<<pluginFilter>> template=\"$:/core/ui/ListItemTemplate\"/>\n\n!!!Normal tiddlers in the plugin directory:\n<$list filter=<<pluginDirFilter>> template=\"$:/core/ui/ListItemTemplate\"/>\n\n<$reveal state=\"!!extender\" type=\"nomatch\" text=\"open\">\n<$button set=\"!!extender\" setTo=\"open\" class=\"tc-btn-invisible tinka-sidebar-button\"><h3>{{$:/core/images/chevron-right}} Filter search</h3></$button>\n</$reveal>\n<$reveal state=\"!!extender\" type=\"match\" text=\"open\">\n<$button set=\"!!extender\" setTo=\"close\" class=\"tc-btn-invisible tinka-sidebar-button\"><h3>{{$:/core/images/chevron-down}} Filter search</h3></$button>\n<div>\n<$edit-text type=\"search\" tiddler=\"$:/plugins/ahahn/tinka/temp/helpTabSearch\" field=\"filterSearch\" />\n<$list filter={{$:/plugins/ahahn/tinka/temp/helpTabSearch!!filterSearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n\n<$button class=\"tc-btn-big-green tinka-orange\">\n<$tinka-repackagePlugin $plugin=<<pluginPrefix>> $create=\"no\" $diff=\"$:/plugins/ahahn/tinka/emptyDiff\" />\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/ahahn/tinka/packageSuccess\" />Quick-Package</$button>\n<$button class=\"tc-btn-big-green tinka-blue\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\nDisable Help Tab</$button>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/search-default": {
    +            "title": "$:/plugins/ahahn/tinka/search-default",
    +            "caption": "Default search",
    +            "tags": "$:/tags/TinkaSearch",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "\\define searchstring()\n[all[tiddlers]search:title{$(searchTiddler)$}sort[title]]\n\\end\n\nEnter search term: <$edit-text tiddler=\"$:/temp/tinka/search\" type=\"search\" default=\"\" tag=\"input\"/> <$reveal state=\"$:/temp/tinka/search\" type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible\" set=\"$:/temp/tinka/search\" setTo=\"\">{{$:/core/images/close-button}}</$button></$reveal>\n\n<$reveal state=\"$:/temp/tinka/search\" type=\"nomatch\" text=\"\">\n    <$set name=\"searchTiddler\" value=\"$:/temp/tinka/search\">\n    <ul>\n    <$list filter=<<searchstring>> emptyMessage=\"<li class='tinka-list-item'><i>No Tiddlers selected.</i></li>\">\n            <li class=\"tinka-list-item\">\n            <$checkbox tiddler=<<qualified-modify-add>> tag={{!!title}} />\n            <$link to={{!!title}}><$text text={{!!title}} /></$link>\n            </li>\n    </$list>\n    </ul>\n    </$set>\n</$reveal>\n\n<!--Empty search string would list all tiddlers-->\n<$reveal state=\"$:/temp/tinka/search\" type=\"match\" text=\"\">\n    <ul>\n        <li class=\"tinka-list-item\"><i>No Tiddlers selected.</i></li>\n    </ul>\n</$reveal>\n\n\n"
    +        },
    +        "$:/plugins/ahahn/tinka/search-filter": {
    +            "title": "$:/plugins/ahahn/tinka/search-filter",
    +            "caption": "Filter search",
    +            "list-after": "$:/plugins/ahahn/tinka/search-default",
    +            "tags": "$:/tags/TinkaSearch",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "Enter Filterstring to select tiddlers: <$edit-text tiddler=\"$:/temp/tinka/search\" type=\"search\" default=\"\" tag=\"input\"/> <$reveal state=\"$:/temp/tinka/search\" type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible\" set=\"$:/temp/tinka/search\" setTo=\"\">{{$:/core/images/close-button}}</$button></$reveal>\n<ul>\n<$list filter={{$:/temp/tinka/search}} emptyMessage=\"<li class='tinka-list-item'><i>No Tiddlers selected.</i></li>\">\n\t\t<li class=\"tinka-list-item\">\n        <$checkbox tiddler=<<qualified-modify-add>> tag={{!!title}} />\n        <$link to={{!!title}}><$text text={{!!title}} /></$link>\n        </li>\n</$list>\n</ul>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/searchDisplay": {
    +            "title": "$:/plugins/ahahn/tinka/searchDisplay",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "<<tabs \"[[$:/plugins/ahahn/tinka/search-default]] [[$:/plugins/ahahn/tinka/search-filter]]\" \"$:/plugins/ahahn/tinka/search-default\" \"$:/temp/tinka/searchTab\">>\n"
    +        },
    +        "$:/plugins/ahahn/tinka/usage": {
    +            "title": "$:/plugins/ahahn/tinka/usage",
    +            "caption": "Usage/Help",
    +            "created": "20150430092825762",
    +            "modified": "20170225181342015",
    +            "tags": "",
    +            "type": "text/vnd.tiddlywiki",
    +            "text": "{{$:/plugins/ahahn/tinka/docs/How to create a new plugin}}\n\n{{$:/plugins/ahahn/tinka/docs/Help Tab}}\n\n!! Notes\n\nWhen packaging or repackaging a plugin, the version number of the plugin is automatically increased. This might not be wanted in all cases and has to be manually corrected after packaging.\n\nAlso version suffixes such as:\n\n* -prerelease\r\n* -beta\n\nare supported and will be appended to the new version number when present.\n\n!! Adding items to the list field\n\nItems added to the `list` field will become tab entries in the generated plugin. Each item in the list should have a corresponding tiddler with the format:\n\n```\r\n$:/plugins/<author>/<plugin>/<tiddler>\r\n```\n\nwhere `<author>` is the name you provided as author, `<plugin>` is the name of the plugin you are creating, and `<tiddler>` is the same as the name that appears in the list entry.\n\nThe contents of the tab referenced in the `list` field will then be provided by the corresponding `$:/plugins/<author>/<plugin>/<tiddler>` tiddler.\n\n!! Plugin mechanism\r\nFor more information about how the plugin mechanism in TiddlyWiki works, see the official documentation: http://tiddlywiki.com/#PluginMechanism\n\n!! Filter language\r\nFilters are useful to select a subset of tiddlers from a wiki. If you are new to filters, learn more about them here: http://tiddlywiki.com/#Filters\r\n"
    +        }
    +    }
    +}
    +
    +
    {
         "tiddlers": {
             "$:/plugins/tesseract/action-launchscript/stdout-listener.js": {
                 "created": "20181219230736805",
    -            "text": "/*\\\ntitle: $:/plugins/tesseract/action-launchscript/stdout-listener.js\ntype: application/javascript\nmodule-type: startup\n\nListen to stdout from scripts\n\n\\*/\n(function() {\n  /*jslint node: true, browser: true */\n  /*global $tw: false */\n  \"use strict\";\n\n  // Export name and synchronous status\n  exports.name = \"stdout-listener\";\n  exports.after = [\"startup\"];\n  exports.synchronous = true;\n\n  exports.startup = function() {\n    window.addEventListener(\"timimi-launch-script-stdout\", function(event) {\n      console.log(\"Timimi: Listening to event :\" + event.type);\n      if (typeof event.detail.sep == \"undefined\") {\n        $tw.wiki.addTiddler(\n          new $tw.Tiddler(\n            event.detail.creationFields,\n            event.detail.fields,\n            event.detail.modificationFields,\n            {\n              title: event.detail.title,\n              text: event.detail.message\n            }\n          )\n        );\n        $tw.notifier.display(\"$:/plugins/tesseract/action-launchscript/notification\");\n      } else {\n        var spl = event.detail.message.split(event.detail.sep);\n        $tw.wiki.addTiddler(\n          new $tw.Tiddler(\n            event.detail.creationFields,\n            event.detail.fields,\n            event.detail.modificationFields,\n            {\n              title: spl[0],\n              text: spl[1]\n            }\n          )\n        );\n        $tw.notifier.display(\"$:/plugins/tesseract/action-launchscript/notification\");\n      }\n\n      console.log(\"Event detail: \" + event.detail.message);\n    });\n  };\n})();\n",
    +            "text": "/*\\\ntitle: $:/plugins/tesseract/action-launchscript/stdout-listener.js\ntype: application/javascript\nmodule-type: startup\n\nListen to stdout from scripts\n\n\\*/\n(function() {\n  /*jslint node: true, browser: true */\n  /*global $tw: false */\n  \"use strict\";\n\n  // Export name and synchronous status\n  exports.name = \"stdout-listener\";\n  exports.after = [\"startup\"];\n  exports.synchronous = true;\n\n  exports.startup = function() {\n    document.addEventListener(\"timimi-launch-script-stdout\", function(event) {\n      console.log(\"Timimi: Listening to event :\" + event.type);\n      if (typeof event.detail.sep == \"undefined\") {\n        $tw.wiki.addTiddler(\n          new $tw.Tiddler(\n            event.detail.creationFields,\n            event.detail.fields,\n            event.detail.modificationFields,\n            {\n              title: event.detail.title,\n              text: event.detail.message\n            }\n          )\n        );\n        $tw.notifier.display(\"$:/plugins/tesseract/action-launchscript/notification\");\n      } else {\n        var spl = event.detail.message.split(event.detail.sep);\n        $tw.wiki.addTiddler(\n          new $tw.Tiddler(\n            event.detail.creationFields,\n            event.detail.fields,\n            event.detail.modificationFields,\n            {\n              title: spl[0],\n              text: spl[1]\n            }\n          )\n        );\n        $tw.notifier.display(\"$:/plugins/tesseract/action-launchscript/notification\");\n      }\n\n      console.log(\"Event detail: \" + event.detail.message);\n    });\n  };\n})();\n",
                 "type": "application/javascript",
                 "title": "$:/plugins/tesseract/action-launchscript/stdout-listener.js",
                 "module-type": "startup",
    -            "modified": "20181219230831374"
    +            "modified": "20181222133006174"
             },
             "$:/plugins/tesseract/action-launchscript/notification": {
                 "text": "Script execution concluded",
    @@ -9366,7 +9596,16 @@
     
    Timimi Documentation
    -
    +
    +
    contents
    +
    +
    +
    yes
    +
    +
    +
    $:/plugins/ahahn/tinka/controlPanelExtension
    +
    +
    
     
    @@ -9560,8 +9799,18 @@ }
    -
    -
    Icons made by [Freepik](http://www.freepik.com) from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a>
    +
    +
    I would like to take this opportunity to thank people who graciously agreed to test the pre-release version and point out the errors.
    +
    +* Antony Muscio
    +* Josiah Hincks
    +* Sylvain Naudin
    +
    +<br/><br/><br/><br/>
    +
    +Icons made by [Freepik](http://www.freepik.com) from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a>
    +
    +
     
    @@ -9810,12 +10059,13 @@ ``` * Save the tiddler and press the button
    -
    +
    * Complete porting to chrome, chromium and Opera.
     * Once Microsoft transitions Edge to chromium based browser, port to Edge.
     * Update snapshot plugin.
     * Create collection of useful bash scripts
    -* Stdout capture using user defined templates
    +* Stdout capture using user defined templates +* Return stdout as tiddler objects
    <<scr "launchTW5server" "tiddlywiki /path/to/wiki --server && firefox 'http://127.0.0.1:8080/'" "Launch TW5 Server">>
    diff --git a/resources/go.svg b/resources/go.svg new file mode 100644 index 0000000..93029cf --- /dev/null +++ b/resources/go.svg @@ -0,0 +1 @@ + Made WithMade WithGolangGolang \ No newline at end of file