<!--~~ Static content for Google and browsers without JavaScript ~~-->
<noscript>
<divid="splashArea">
<p>This <aclass="tc-tiddlylink-external"href="https://tiddlywiki.com"rel="noopener noreferrer"target="_blank">TiddlyWiki</a> contains the following tiddlers:</p><p><ul>
{"title":"$:/build","commit":"f6904587926a74f2dc604fa068ba86409ef25868","text":"Built from branch 'tiddlywiki-com' at commit f6904587926a74f2dc604fa068ba86409ef25868 of https://github.com/Jermolene/TiddlyWiki5 at 2022-08-02 11:35:19 UTC\n"},
{"created":"20220418164800184","title":"$:/config/sq/streams/editor-engine","description":"Editor to use for Streams","caption":"Editor to use for Streams","settings-template":"$:/plugins/sq/streams/ui/templates/settings/select","option-names":"[[Default]] [[CodeMirror]]","option-values":"text codemirror","condition":"[[widget]modules[]prefix[$:/plugins/tiddlywiki/codemirror/edit-codemirror.js]]","text":"codemirror","modified":"20220418164800184"},
{"created":"20220418170119377","creator":"M0","text":"no","title":"$:/config/sq/streams/enable-edit-toolbar","description":"Enable toolbar in editor","caption":"Show toolbar in editor","settings-template":"$:/plugins/sq/streams/ui/templates/settings/input-switch","modified":"20220418170126761","modifier":"M0"},
{"created":"20220418220423430","creator":"M0","title":"$:/config/sq/streams/node-max-width","description":"Maximum displayed width of a Stream node","caption":"Maximum node width","settings-template":"$:/plugins/sq/streams/ui/templates/settings/input","text":"100%","modified":"20220418220437058","modifier":"M0"},
{"created":"20220820034847396","creator":"M0","title":"$:/config/sq/streams/stream-enable-filter","description":"Filter that determines which tiddlers get the add node button at the bottom","caption":"Filter to enable Streams","settings-template":"$:/plugins/sq/streams/ui/templates/settings/input","text":"[!is[shadow]]","modified":"20220820034849056","modifier":"M0"},
{"created":"20160112001347610","creator":"Mat von TWaddle","text":"yes","title":"$:/config/Tiddlers/TitleLinks","modified":"20220904210223989","modifier":"Mat von TWaddle"},
{"title":"$:/core","name":"Core","description":"TiddlyWiki5 core","author":"JeremyRuston","core-version":">=5.0.0","plugin-priority":"0","list":"readme","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/Acknowledgements\":{\"title\":\"$:/Acknowledgements\",\"text\":\"TiddlyWiki incorporates code from these fine OpenSource projects:\\n\\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\\n\\nAnd media from these projects:\\n\\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\\n\"},\"$:/core/copyright.txt\":{\"title\":\"$:/core/copyright.txt\",\"type\":\"text/plain\",\"text\":\"TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\\n\\nCopyright (c) 2004-2007, Jeremy Ruston\\nCopyright (c) 2007-2022, UnaMesa Association\\nAll rights reserved.\\n\\nRedistribution and use in source and binary forms, with or without\\nmodification, are permitted provided that the following conditions are met:\\n\\n* Redistributions of source code must retain the above copyright notice, this\\n list of conditions and the following disclaimer.\\n\\n* Redistributions in binary form must reproduce the above copyright notice,\\n this list of conditions and the following disclaimer in the documentation\\n and/or other materials provided with the distribution.\\n\\n* Neither the name of the copyright holder nor the names of its\\n contributors may be used to endorse or promote products derived from\\n this software without specific prior written permission.\\n\\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\"},\"$:/core/icon\":{\"title\":\"$:/core/icon\",\"tags\":\"$:/tags/Image\",\"text\":\"\u003Csvg width=\\\"22pt\\\" height=\\\"22pt\\\" viewBox=\\\"0 0 128 128\\\">\u003Cpath d=\\\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.3
{"title":"$:/core/templates/server/static.sidebar.wikitext","text":"\\whitespace trim\n\u003Cdiv class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\" role=\"region\" aria-label={{$:/language/SideBar/Caption}}>\n\u003Cdiv class=\"tc-sidebar-header\">\n\u003Ch1 class=\"tc-site-title\">\n\u003C$transclude tiddler=\"$:/SiteTitle\"/>\n\u003C/h1>\n\u003Cdiv class=\"tc-site-subtitle\">\n\u003C$transclude tiddler=\"$:/SiteSubtitle\"/>\n\u003C/div>\n\u003Ch2>\n\u003C/h2>\n\u003Cdiv class=\"tc-sidebar-lists\">\n\u003C$list filter={{$:/DefaultTiddlers}}>\n\u003Cdiv class=\"tc-menu-list-subitem\">\n\u003C$link>\u003C$text text=\u003C\u003CcurrentTiddler>>/>\u003C/$link>\n\u003C/div>\n\u003C/$list>\n\u003C/div>\n\u003C!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n\u003Ch2>\n{{$:/language/SideBar/Recent/Caption}}\n\u003C/h2>\n\u003Cdiv class=\"tc-sidebar-lists\">\n\u003C$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n\u003C/div>\n\u003C/div>\n\u003C/div>\n-->\n"},
{"title":"$:/core/ui/PageTemplate/sidebar","created":"20200430072116835","modified":"20201217174129501","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\nOverwritten by $:/themes/nico/notebook so that the default sidebar does not get rendered.\n"},
{"title":"$:/language/Docs/PaletteColours/sidebar-button-foreground","text":"Primario del botón de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-controls-foreground","text":"Primario de controles de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover","text":"Primario de controles de la barra lateral al pasar por encima"},
{"title":"$:/language/Docs/PaletteColours/sidebar-foreground","text":"Primario de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-foreground-shadow","text":"Sombra de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-muted-foreground","text":"Primario de controles silenciados de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover","text":"Primario de controles silenciados de la barra lateral al pasar por encima"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-background","text":"Fondo de la pestaña de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-background-selected","text":"Fondo de la pestaña de la barra lateral para las pestañas seleccionadas"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-border","text":"Borde de la pestaña de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-border-selected","text":"Borde de la pestaña de la barra lateral para las pestañas seleccionadas"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-divider","text":"Divisor de pestañas de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-foreground","text":"Primario de la pestaña de la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected","text":"Divisor de pestañas de la barra lateral para las pestañas seleccionadas"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground","text":"Primario enlace tiddler en la barra lateral"},
{"title":"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover","text":"Primario enlace tiddler en la barra lateral al pasar por encima"},
{"title":"$:/languages/es-ES","name":"es-ES","plugin-type":"language","description":"Castellano. (Spain)","author":"Pau DeLuca,Joe Bordes","core-version":">=5.1.23","version":"5.2.3","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/language/Buttons/AdvancedSearch/Caption\":{\"title\":\"$:/language/Buttons/AdvancedSearch/Caption\",\"text\":\"Búsqueda avanzada\"},\"$:/language/Buttons/AdvancedSearch/Hint\":{\"title\":\"$:/language/Buttons/AdvancedSearch/Hint\",\"text\":\"Búsqueda avanzada\"},\"$:/language/Buttons/Bold/Caption\":{\"title\":\"$:/language/Buttons/Bold/Caption\",\"text\":\"Negrita\"},\"$:/language/Buttons/Bold/Hint\":{\"title\":\"$:/language/Buttons/Bold/Hint\",\"text\":\"Aplicar formato de negrita a la selección\"},\"$:/language/Buttons/Cancel/Caption\":{\"title\":\"$:/language/Buttons/Cancel/Caption\",\"text\":\"Cancelar\"},\"$:/language/Buttons/Cancel/Hint\":{\"title\":\"$:/language/Buttons/Cancel/Hint\",\"text\":\"Descarta los cambios\"},\"$:/language/Buttons/Clear/Caption\":{\"title\":\"$:/language/Buttons/Clear/Caption\",\"text\":\"Limpiar\"},\"$:/language/Buttons/Clear/Hint\":{\"title\":\"$:/language/Buttons/Clear/Hint\",\"text\":\"Limpiar imagen a color solido\"},\"$:/language/Buttons/Clone/Caption\":{\"title\":\"$:/language/Buttons/Clone/Caption\",\"text\":\"Clonar\"},\"$:/language/Buttons/Clone/Hint\":{\"title\":\"$:/language/Buttons/Clone/Hint\",\"text\":\"Hace una copia exacta de este tiddler\"},\"$:/language/Buttons/Close/Caption\":{\"title\":\"$:/language/Buttons/Close/Caption\",\"text\":\"Cerrar\"},\"$:/language/Buttons/Close/Hint\":{\"title\":\"$:/language/Buttons/Close/Hint\",\"text\":\"Cierra este tiddler\"},\"$:/language/Buttons/CloseAll/Caption\":{\"title\":\"$:/language/Buttons/CloseAll/Caption\",\"text\":\"Cerrar todo\"},\"$:/language/Buttons/CloseAll/Hint\":{\"title\":\"$:/language/Buttons/CloseAll/Hint\",\"text\":\"Cierra todos los tiddlers\"},\"$:/language/Buttons/CloseOthers/Caption\":{\"title\":\"$:/language/Buttons/CloseOthers/Caption\",\"text\":\"Cerrar los demás\"},\"$:/language/Buttons/CloseOthers/Hint\":{\"title\":\"$:/language/Buttons/CloseOthers/Hint\",\"text\":\"Cierra todos tiddlers abiertos excepto este\"},\"$:/language/Buttons/ControlPanel/Caption\":{\"title\":\"$:/language/Buttons/ControlPanel/Caption\",\"text\":\"Panel de Control\"},\"$:/language/Buttons/ControlPanel/Hint\":{\"title\":\"$:/language/Buttons/ControlPanel/Hint\",\"text\":\"Abre el Panel de Control\"},\"$:/language/Buttons/CopyToClipboard/Caption\":{\"title\":\"$:/language/Buttons/CopyToClipboard/Caption\",\"text\":\"copiar a portapapeles\"},\"$:/language/Buttons/CopyToClipboard/Hint\":{\"title\":\"$:/language/Buttons/CopyToClipboard/Hint\",\"text\":\"Copia este texto al portapapeles\"},\"$:/language/Buttons/Delete/Caption\":{\"title\":\"$:/language/Buttons/Delete/Caption\",\"text\":\"Borrar\"},\"$:/language/Buttons/Delete/Hint\":{\"title\":\"$:/language/Buttons/Delete/Hint\",\"text\":\"Borra este tiddler\"},\"$:/language/Buttons/Edit/Caption\":{\"title\":\"$:/language/Buttons/Edit/Caption\",\"text\":\"Editar\"},\"$:/language/Buttons/Edit/Hint\":{\"title\":\"$:/language/Buttons/Edit/Hint\",\"text\":\"Permite editar este tiddler\"},\"$:/language/Buttons/EditorHeight/Caption\":{\"title\":\"$:/language/Buttons/EditorHeight/Caption\",\"text\":\"Altura del editor\"},\"$:/language/Buttons/EditorHeight/Caption/Auto\":{\"title\":\"$:/language/Buttons/EditorHeight/Caption/Auto\",\"text\":\"Ajustar al contenido\"},\"$:/language/Buttons/EditorHeight/Caption/Fixed\":{\"title\":\"$:/language/Buttons/EditorHeight/Caption/Fixed\",\"text\":\"Altura fija\"},\"$:/language/Buttons/EditorHeight/Hint\":{\"title\":\"$:/language/Buttons/EditorHeight/Hint\",\"text\":\"Determina la altura del cuadro de edición\"},\"$:/language/Buttons/Encryption/Caption\":{\"title\":\"$:/language/Buttons/Encryption/Caption\",\"text\":\"Cifrado\"},\"$:/language/Buttons/Encryption/ClearPassword/Caption\":{\"title\":\"$:/language/Buttons/Encryption/ClearPassword/Caption\",\"text\":\"Borrar contraseña\"},\"$:/language/Buttons
{"text":"The plugin library for the latest and greatest plugins from [ext[tobibeer/plugins|http://tobibeer.github.io/tw5-plugins]]; officially released versions of plugins by [ext[tobibeer|https://github.com/tobibeer]].","bag":"default","revision":"0","url":"http://tobibeer.github.io/tw5-plugins/library/index.html","title":"$:/pluginlibrary/tobibeer/official","tags":"$:/tags/PluginLibrary","modifier":"Tobias Beer","modified":"20160120132137178","caption":"Official Plugin Library by Tobias Beer"},
{"created":"20220513060030443","tags":"","title":"$:/plugins/cdaven/markdown-export","modified":"20220607072114828","name":"Markdown Export","plugin-type":"plugin","description":"Markdown export of tiddlers","version":"0.3.0","list":"readme license","author":"cdaven","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/cdaven/markdown-export/exportNote\":{\"title\":\"$:/plugins/cdaven/markdown-export/exportNote\",\"created\":\"20220602113244086\",\"description\":\"A note that will be added as a comment to exported Markdown files\",\"modified\":\"20220602113609303\",\"tags\":\"\",\"text\":\"Exported from TiddlyWiki at \u003C\u003Cnow>>\"},\"$:/plugins/cdaven/markdown-export/license\":{\"title\":\"$:/plugins/cdaven/markdown-export/license\",\"created\":\"20220513163358248\",\"modified\":\"20220513163418690\",\"tags\":\"\",\"text\":\"Copyright 2022 Christian Davén\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\"},\"$:/plugins/cdaven/markdown-export/markdown-export.js\":{\"title\":\"$:/plugins/cdaven/markdown-export/markdown-export.js\",\"text\":\"\\\"use strict\\\";\\r\\nObject.defineProperty(exports, \\\"__esModule\\\", { value: true });\\r\\nexports.exportedForTesting = exports.run = exports.params = exports.name = void 0;\\r\\nconst render_js_1 = require(\\\"./render.js\\\");\\r\\nexports.name = \\\"markdown-export\\\";\\r\\nexports.params = [\\r\\n {\\r\\n name: \\\"filter\\\",\\r\\n default: \\\"\\\"\\r\\n },\\r\\n {\\r\\n name: \\\"note\\\",\\r\\n default: \\\"\\\"\\r\\n },\\r\\n {\\r\\n name: \\\"version\\\",\\r\\n default: \\\"\\\"\\r\\n },\\r\\n];\\r\\nfunction insertNote(markdownTiddler, note) {\\r\\n return markdownTiddler.replace(/(---\\\\n+)(#)/, `$1\u003C!-- ${note.replace(/\\\\$/g, \\\"$$$$\\\")} -->\\\\n\\\\n$2`);\\r\\n}\\r\\nfunction run(filter = \\\"\\\", note = \\\"\\\", version = \\\"\\\") {\\r\\n console.log(`Running Markdown Export ${version} with filter ${filter}`);\\r\\n if (!filter) {\\r\\n console.warn(\\\"No filter specified, exiting\\\");\\r\\n return \\\"\\\";\\r\\n }\\r\\n const twRenderer = new render_js_1.TiddlyWikiRenderer($tw);\\r\\n const renderer = new render_js_1.MarkdownRenderer(twRenderer);\\r\\n note = twRenderer.wikifyText(note);\\r\\n let markdownTiddlers = [];\\r\\n for (const title of $tw.wiki.filterTiddlers(filter)) {\\r\\n console.log(`Rendering [[${title}]] to Markdown`);\\r\\n let markdownTiddler = null;\\r\\n try {\\r\\n markdownTiddler = renderer.renderTiddler(title);\\r\\n }\\r\\n catch (err) {\\r\\n console.error(err);\\r\\n }\\r\\n if (markdownTiddler) {\\r\\n if (note) {\\r\\n markdownTiddler = insertNote(markdownTiddler, note);\\r\\n }\\r\\n markdownTiddlers.push(markdownTiddler.trim());\\r\\n }\\r\\n }\\r\\n const pageBreak = \\\"\\\\n\\\\n\\\\\\\\newpage\\\\n\\\\n\\\";\\r\\n return markdownTiddlers.join(pageBreak);\\r\\n}\\r\\ne
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/danielo515/2click2edit/ClickListener.js\": {\n \"text\": \"/*\\\\\\ntitle: $:/plugins/danielo515/2click2edit/ClickListener.js\\ntype: application/javascript\\nmodule-type: widget\\n\\nThis widgets adds an double click event listener to its parent\\n\\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 ClickListener = function(parseTreeNode,options) {\\n\\tthis.initialise(parseTreeNode,options);\\n};\\n\\n/*\\nInherit from the base widget class\\n*/\\nClickListener.prototype = new Widget();\\n\\n/*\\nRender this widget into the DOM\\n*/\\nClickListener.prototype.render = function(parent,nextSibling) {\\n\\tthis.parentDomNode = parent;\\n\\tthis.execute();\\n\\tvar self = this;\\n /*Since the event listener have been added to the parent, the \\\"this\\\" property is pointing to the\\n wrong object, we should call our edit function with our widget object set as the this property.*/\\n parent.addEventListener(\\\"dblclick\\\",function(event){self.editTiddler.call(self,event)});\\n};\\n\\nClickListener.prototype.editTiddler = function(event) {\\n this.dispatchEvent({type: \\\"tm-edit-tiddler\\\", param: this.getVariable(\\\"currentTiddler\\\")}); \\n};\\n\\n/*\\nCompute the internal state of the widget\\n*/\\nClickListener.prototype.execute = function() {\\n};\\n\\n/*\\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\\n*/\\nClickListener.prototype.refresh = function(changedTiddlers) {\\n\\treturn false;\\n};\\n\\nexports.click = ClickListener;\\n\\n})();\",\n \"title\": \"$:/plugins/danielo515/2click2edit/ClickListener.js\",\n \"type\": \"application/javascript\",\n \"module-type\": \"widget\"\n },\n \"$:/plugins/danielo515/2click2edit/readme\": {\n \"title\": \"$:/plugins/danielo515/2click2edit/readme\",\n \"text\": \"This plugin adds the ability to edit tiddlers by double clicking on its body.\\nJust try to edit any tiddler shown here by double clicking on it.\\n\\nThis can be considered a fast solution. It is only to fill the gap until TiddlyWiki adds support \\nfor it officially.\\n\"\n },\n \"$:/plugins/danielo515/2click2edit/ui/ViewTemplate\": {\n \"tags\": \"$:/tags/ViewTemplate\",\n \"title\": \"$:/plugins/danielo515/2click2edit/ui/ViewTemplate\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$click>\"\n }\n }\n}","version":"0.1","type":"application/json","title":"$:/plugins/danielo515/2click2edit","source":"https://github.com/danielo515/TW5-2click2edit","revision":"0","plugin-type":"plugin","list":"readme","description":"double click to edit tiddlers","dependents":"","core-version":">=5.1.0","bag":"default","author":"Danielo Rodriguez"},
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/felixhayashi/respawn/respawn.js\": {\n \"title\": \"$:/plugins/felixhayashi/respawn/respawn.js\",\n \"text\": \"/*\\\\\\n\\ntitle: $:/plugins/felixhayashi/respawn/respawn.js\\ntype: application/javascript\\nmodule-type: startup\\n\\n@preserve\\n\\n\\\\*/\\n\\n(function(){\\n \\n /*jslint node: true, browser: true */\\n /*global $tw: false */\\n \\\"use strict\\\";\\n \\n var configTRef = \\\"$:/plugins/felixhayashi/respawn/config\\\";\\n \\n var changeListener = function(changedTiddlers) {\\n \\n if(!changedTiddlers[\\\"$:/StoryList\\\"]) return;\\n \\n var tObj = $tw.wiki.getTiddler(\\\"$:/StoryList\\\");\\n if(tObj && !tObj.fields[\\\"list\\\"].length) {\\n \\n var confTObj = $tw.wiki.getTiddler(configTRef);\\n var config = confTObj ? confTObj.fields : {};\\n \\n window.setTimeout(function() {\\n $tw.rootWidget.dispatchEvent({\\n type: \\\"tm-home\\\"\\n });\\n }, parseInt(config.delay) || 500);\\n }\\n \\n };\\n \\n exports.name = \\\"respawn\\\";\\n exports.platforms = [\\\"browser\\\"];\\n exports.after = [\\\"story\\\"];\\n exports.synchronous = true;\\n \\n exports.startup = function() {\\n \\n $tw.wiki.addEventListener(\\\"change\\\", changeListener);\\n \\n };\\n\\n})();\\n\",\n \"type\": \"application/javascript\",\n \"module-type\": \"startup\"\n },\n \"$:/plugins/felixhayashi/respawn/Configuration\": {\n \"title\": \"$:/plugins/felixhayashi/respawn/Configuration\",\n \"text\": \"\u003C!-- The config output is not written to this tiddler! -->\\n\\nPlease see the [[GitHub page|https://github.com/felixhayashi/TW5-Respawn]] for more information on the options.\\n\\nYou may have to save and reload the wiki to activate changes.\\n\\n\u003Ctable>\\n \u003Ctr>\\n \u003Cth align=\\\"left\\\">Delay (seconds):\u003C/th>\\n \u003Ctd>\\n \u003C$edit-text\\n tiddler=\\\"$:/plugins/felixhayashi/respawn/config\\\"\\n field=\\\"delay\\\"\\n tag=\\\"input\\\"\\n default=\\\"500\\\" />\\n \u003C/td>\\n \u003C/tr>\\n\u003C/table>\"\n },\n \"$:/plugins/felixhayashi/respawn/License\": {\n \"title\": \"$:/plugins/felixhayashi/respawn/License\",\n \"text\": \"This code is released under the BSD license. For the exact terms visit:\\n\\nhttps://github.com/felixhayashi/TW5-Respawn/blob/master/LICENSE\"\n },\n \"$:/plugins/felixhayashi/respawn/Readme\": {\n \"title\": \"$:/plugins/felixhayashi/respawn/Readme\",\n \"text\": \"Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-Respawn]] for more information.\"\n }\n }\n}","version":"0.0.3","type":"application/json","title":"$:/plugins/felixhayashi/respawn","source":"https://github.com/felixhayashi/TW5-respawn","released":"","plugin-type":"plugin","list":"Configuration License Readme","description":"Respawn – Open default tiddlers when river is empty","dependents":"","core-version":">=5.1.5","author":"Felix Küppers"},
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/felixhayashi/topstoryview/config.js\": {\n \"text\": \"/*\\\\\\n\\ntitle: $:/plugins/felixhayashi/topstoryview/config.js\\ntype: application/javascript\\nmodule-type: library\\n\\n@preserve\\n\\n\\\\*/\\n(function(){\\\"use strict\\\";exports.config={classNames:{storyRiver:\\\"tc-story-river\\\",backDrop:\\\"story-backdrop\\\",tiddlerFrame:\\\"tc-tiddler-frame\\\",tiddlerTitle:\\\"tc-title\\\"},references:{userConfig:\\\"$:/config/topStoryView\\\",focussedTiddlerStore:\\\"$:/temp/focussedTiddler\\\",refreshTrigger:\\\"$:/temp/focussedTiddler/refresh\\\"},checkbackTime:$tw.utils.getAnimationDuration()}})();\",\n \"title\": \"$:/plugins/felixhayashi/topstoryview/config.js\",\n \"type\": \"application/javascript\",\n \"module-type\": \"library\"\n },\n \"$:/plugins/felixhayashi/topstoryview/layout\": {\n \"title\": \"$:/plugins/felixhayashi/topstoryview/layout\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"tags\": [\n \"$:/tags/Stylesheet\"\n ],\n \"text\": \"html .tc-story-river:after {\\n content: \\\"\\\";\\n display: block; }\\n\"\n },\n \"$:/plugins/felixhayashi/topstoryview/Configuration\": {\n \"title\": \"$:/plugins/felixhayashi/topstoryview/Configuration\",\n \"text\": \"Please see the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information on the options.\\n\\nSave and reload the wiki to activate changes.\\n\\n\u003Ctable>\\n \u003Ctr>\\n \u003Cth align=\\\"left\\\">Scroll offset:\u003C/th>\\n \u003Ctd>\u003C$edit-text tiddler=\\\"$:/config/topStoryView\\\" field=\\\"scroll-offset\\\" tag=\\\"input\\\" default=\\\"150px\\\" />\u003C/td>\\n \u003C/tr>\\n\u003C/table>\"\n },\n \"$:/plugins/felixhayashi/topstoryview/License\": {\n \"title\": \"$:/plugins/felixhayashi/topstoryview/License\",\n \"text\": \"This code is released under the BSD license. For the exact terms visit:\\n\\nhttps://github.com/felixhayashi/TW5-TopStoryView/blob/master/LICENSE\"\n },\n \"$:/plugins/felixhayashi/topstoryview/Readme\": {\n \"title\": \"$:/plugins/felixhayashi/topstoryview/Readme\",\n \"text\": \"Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information.\"\n },\n \"$:/plugins/felixhayashi/topstoryview/top.js\": {\n \"text\": \"/*\\\\\\ntitle: $:/plugins/felixhayashi/topstoryview/top.js\\ntype: application/javascript\\nmodule-type: storyview\\n\\nViews the story as a linear sequence\\n\\n@preserve\\n\\n\\\\*/\\n(function(){\\\"use strict\\\";var t=require(\\\"$:/plugins/felixhayashi/topstoryview/config.js\\\").config;var e=\\\"cubic-bezier(0.645, 0.045, 0.355, 1)\\\";var i=function(e){this.listWidget=e;this.pageScroller=new $tw.utils.PageScroller;this.pageScroller.scrollIntoView=this.scrollIntoView;this.pageScroller.storyRiverDomNode=document.getElementsByClassName(t.classNames.storyRiver)[0];var i=$tw.wiki.getTiddler(t.references.userConfig);var o=i?i.fields:{};$tw.hooks.addHook(\\\"th-opening-default-tiddlers-list\\\",this.hookOpenDefaultTiddlers);var r=parseInt(o[\\\"scroll-offset\\\"]);this.pageScroller.scrollOffset=isNaN(r)?71:r;this.recalculateBottomSpace()};i.prototype.refreshStart=function(t,e){};i.prototype.refreshEnd=function(t,e){};i.prototype.hookOpenDefaultTiddlers=function(t){return t};i.prototype.navigateTo=function(t){var e=this.listWidget.findListItem(0,t.title);if(e===undefined)return;var i=this.listWidget.children[e];var o=i.findFirstDomNode();if(!(o instanceof Element))return;this.pageScroller.scrollIntoView(o)};i.prototype.insert=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element))return;this.startInsertAnimation(e,function(){this.recalculateBottomSpace()}.bind(this))};i.prototype.remove=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element)){t.removeChildDomNodes();return
{"name":"Relink","title":"$:/plugins/flibbles/relink","description":"Flexibility when relinking renamed tiddlers","author":"Flibbles","version":"2.1.2","core-version":">=5.1.22","source":"https://github.com/flibbles/tw5-relink","demo":"http://flibbles.github.io/tw5-relink/","list":"readme configuration license","dependents":"","plugin-type":"plugin","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/flibbles/relink/js/bulkops.js\":{\"text\":\"/*\\\\\\nmodule-type: startup\\n\\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\\n\\nThis is a startup instead of a wikimethods module-type because it's the only\\nway to ensure this runs after the old relinkTiddler method is applied.\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: false, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\\nvar utils = require(\\\"$:/plugins/flibbles/relink/js/utils.js\\\");\\n\\nexports.name = \\\"redefine-relinkTiddler\\\";\\nexports.synchronous = true;\\n// load-modules is when wikimethods are applied in\\n// ``$:/core/modules/startup/load-modules.js``\\nexports.after = ['load-modules'];\\n\\nexports.startup = function() {\\n\\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\\n};\\n\\n/** Walks through all relinkable tiddlers and relinks them.\\n * This replaces the existing function in core Tiddlywiki.\\n */\\nfunction relinkTiddler(fromTitle, toTitle, options) {\\n\\toptions = options || {};\\n\\tvar failures = [];\\n\\tvar indexer = utils.getIndexer(this);\\n\\tvar records = indexer.relinkLookup(fromTitle, toTitle, options);\\n\\tfor (var title in records) {\\n\\t\\tvar entries = records[title],\\n\\t\\t\\tchanges = Object.create(null),\\n\\t\\t\\tupdate = false,\\n\\t\\t\\tfails = false;\\n\\t\\tfor (var field in entries) {\\n\\t\\t\\tvar entry = entries[field];\\n\\t\\t\\tfails = fails || entry.impossible;\\n\\t\\t\\tif (entry.output !== undefined) {\\n\\t\\t\\t\\tchanges[field] = entry.output;\\n\\t\\t\\t\\tupdate = true;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\tif (fails) {\\n\\t\\t\\tfailures.push(title);\\n\\t\\t}\\n\\t\\t// If any fields changed, update tiddler\\n\\t\\tif (update) {\\n\\t\\t\\tconsole.log(\\\"Renaming '\\\"+fromTitle+\\\"' to '\\\"+toTitle+\\\"' in '\\\" + title + \\\"'\\\");\\n\\n\\t\\t\\tvar tiddler = this.getTiddler(title);\\n\\t\\t\\tvar newTiddler = new $tw.Tiddler(tiddler,changes,this.getModificationFields())\\n\\t\\t\\tnewTiddler = $tw.hooks.invokeHook(\\\"th-relinking-tiddler\\\",newTiddler,tiddler);\\n\\t\\t\\tthis.addTiddler(newTiddler);\\n\\t\\t\\t// If the title changed, we need to perform a nested rename\\n\\t\\t\\tif (newTiddler.fields.title !== title) {\\n\\t\\t\\t\\tthis.deleteTiddler(title);\\n\\t\\t\\t\\tthis.relinkTiddler(title, newTiddler.fields.title,options);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t};\\n\\tif (failures.length > 0) {\\n\\t\\tvar options = $tw.utils.extend(\\n\\t\\t\\t{ variables: {to: toTitle, from: fromTitle},\\n\\t\\t\\t wiki: this},\\n\\t\\t\\toptions );\\n\\t\\tlanguage.reportFailures(failures, options);\\n\\t}\\n};\\n\\n})();\\n\",\"module-type\":\"startup\",\"title\":\"$:/plugins/flibbles/relink/js/bulkops.js\",\"type\":\"application/javascript\"},\"$:/plugins/flibbles/relink/js/indexer.js\":{\"text\":\"/*\\\\\\nmodule-type: indexer\\n\\nIndexes results from tiddler reference reports so we don't have to call them\\nso much.\\n\\n\\\\*/\\n\\n\\\"use strict\\\";\\n\\nvar utils = require(\\\"./utils.js\\\");\\nvar TiddlerContext = utils.getContext('tiddler');\\n\\nfunction Indexer(wiki) {\\n\\tthis.wiki = wiki;\\n};\\n\\nIndexer.prototype.init = function() {\\n\\tthis.rebuild();\\n};\\n\\nIndexer.prototype.rebuild = function() {\\n\\tthis.index = null;\\n\\tthis.backIndex = null;\\n\\tthis.contexts = Object.create(null);\\n\\tthis.changedTiddlers = undefined;\\n\\tthis.lastRelinkFrom = undefined;\\n};\\n\\nIndexer.prototype.update = function(updateDescriptor) {\\n\\tif (!this.index) {\\n\\t\\treturn;\\n\\t}\\n\\tvar title;\\n\\tif (!this.changedTiddlers) {\\n\\t\\tthis.changed
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/flibbles/relink-titles/configuration\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/configuration\",\n \"caption\": \"{{$:/plugins/flibbles/relink-titles/language/Caption}}\",\n \"tags\": \"$:/tags/flibbles/relink/Configuration\",\n \"text\": \"\\\\define lingo-base() $:/plugins/flibbles/relink-titles/language/\\n\\\\define prefix() $:/config/flibbles/relink-titles/relink/\\n\\n\u003C\u003Clingo Help>>\\n\\n\u003Ctable>\\n\u003Ctbody>\\n\u003C$list filter=\\\"[[relinktitlesrule]modules[]]\\\">\\n\u003Ctr>\\n\u003Ctd>\\n\u003C$checkbox\\n\\ttiddler={{{ [all[current]addprefix\u003Cprefix>] }}}\\n\\tfield=\\\"text\\\"\\n\\tchecked=\\\"enabled\\\"\\n\\tunchecked=\\\"disabled\\\"\\n\\tdefault=\\\"enabled\\\"\\n> ''{{!!caption}}''\u003C/$checkbox>\u003C/td>\u003Ctd>\\n\\n\u003C$transclude field='description' />\\n\\n\u003C/td>\u003C/tr>\u003C/$list>\\n\u003C/tbody>\u003C/table>\\n\"\n },\n \"$:/plugins/flibbles/relink-titles/language/Caption\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/language/Caption\",\n \"text\": \"Titles\"\n },\n \"$:/plugins/flibbles/relink-titles/language/Directory/Caption\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/language/Directory/Caption\",\n \"text\": \"Rename subdirectories\"\n },\n \"$:/plugins/flibbles/relink-titles/language/Directory/Description\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/language/Directory/Description\",\n \"text\": \"For wikis set up hierarchically using `/`, like a filesystem. This option will update all tiddlers nested inside the target tiddler. i.e. `fromTiddler/path/file` becomes `toTiddler/path/file`.\"\n },\n \"$:/plugins/flibbles/relink-titles/language/Help\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/language/Help\",\n \"text\": \"See the \u003Ca href={{{ [{$:/plugins/flibbles/relink-titles!!demo}addsuffix[#Plugins/Titles]] }}}>//Relink-titles// documentation page\u003C/a> for details.\"\n },\n \"$:/plugins/flibbles/relink-titles/readme\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/readme\",\n \"text\": \"Highly customizable relinking of tiddler titles //related// to the renamed tiddler.\\n\\n* Rename a hierarchy of subtiddlers when renaming a root tiddler.\\n* Make custom filter rules to rename other tiddlers the way you want when Relinking.\\n* Integrates with other plugins for plugin-specific rules.\\n\\nSee \u003Ca href={{$:/plugins/flibbles/relink-titles!!source}}>the tw5-relink website\u003C/a> for more details and examples.\\n\\n{{$:/core/images/warning}} ''Warning:'' You must use //Relink// v1.10.2 or greater with this, or this plugin may delete some tiddler bodies while trying to relink titles.\\n\"\n },\n \"$:/plugins/flibbles/relink-titles/relinkoperations/title.js\": {\n \"title\": \"$:/plugins/flibbles/relink-titles/relinkoperations/title.js\",\n \"text\": \"/*\\\\\\nmodule-type: relinkoperator\\ntitle: $:/plugins/flibbles/relink-titles/relinkoperations/title.js\\ntype: application/javascript\\n\\nRenames tiddlers which have titles derived from fromTitle. Then it makes\\nsure that those tiddlers are properly relinked too.\\n\\n\\\\*/\\n\\n/*jslint node: false, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar configPrefix = \\\"$:/config/flibbles/relink-titles/relink/\\\";\\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\\nutils.getContext('whitelist').hotDirectories.push(configPrefix);\\n\\nvar titleRules = Object.create(null);\\n$tw.modules.forEachModuleOfType('relinktitlesrule', function(title, module) {\\n\\ttitleRules[title] = module;\\n});\\n\\nexports.name = 'title';\\n\\nexports.report = function(tiddler, callback, options) {\\n\\tvar cache = getCache(options),\\n\\t\\trules = cache.rules;\\n\\tfor (var i = 0; i \u003C rules.length; i++) {\\n\\t\\
{"version":"0.2.2","type":"application/json","title":"$:/plugins/Gk0Wk/echarts","plugin-type":"plugin","name":"ECharts","list":"readme LICENSE","description":"ECharts for TiddlyWiki5","author":"Gk0Wk","source":"https://github.com/tiddly-gittly/tw-echarts/tree/master/plugins/Gk0Wk/echarts","dependents":"$:/plugins/Gk0Wk/focused-tiddler","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/echarts/LICENSE\":{\"title\":\"$:/plugins/Gk0Wk/echarts/LICENSE\",\"type\":\"text/plain\",\"text\":\"\\nMIT License\\n\\nCopyright (c) 2023 Gk0Wk(nmg_wk@yeah.net)\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\"},\"$:/plugins/Gk0Wk/echarts/addons/GitHubHeatMap.ts\":{\"title\":\"$:/plugins/Gk0Wk/echarts/addons/GitHubHeatMap.ts\",\"type\":\"application/javascript\",\"Modern.TiddlyDev#IncludeSource\":\"true\",\"text\":\"import type { SourceIterator } from 'tiddlywiki';\\nimport { IScriptAddon } from '../../scriptAddon';\\nimport * as ECharts from '$:/plugins/Gk0Wk/echarts/echarts.min.js';\\n\\nconst getFilterByDate = (date: string) =>\\n `[sameday:created[${date}]] [sameday:modified[${date}]]`;\\nconst yearDates: Map\u003Cnumber, [string, string][]> = new Map();\\nconst dayTime = 3600 * 24 * 1000;\\nconst getData = (year: number, tiddlerSourceIterator: SourceIterator) => {\\n if (!yearDates.has(year)) {\\n const startDate = (ECharts as any).number\\n .parseDate(`${year}-01-01`)\\n .getTime();\\n const endDate = (ECharts as any).number\\n .parseDate(`${year + 1}-01-01`)\\n .getTime();\\n const dates: [string, string][] = [];\\n for (let time = startDate; time \u003C endDate; time += dayTime) {\\n const timeFmt: string = (ECharts as any).format.formatTime(\\n 'yyyy-MM-dd',\\n time,\\n );\\n const timeTW = timeFmt.replace(/-/g, '');\\n dates.push([timeFmt, timeTW]);\\n }\\n yearDates.set(year, dates);\\n }\\n let total = 0;\\n return [\\n yearDates.get(year)!.map(([timeFmt, timeTW]) => {\\n const count = $tw.wiki.filterTiddlers(\\n getFilterByDate(timeTW),\\n undefined,\\n tiddlerSourceIterator,\\n ).length;\\n total += count;\\n return [timeFmt, count];\\n }),\\n total,\\n ] as [[string, number][], number];\\n};\\n\\nconst getPlatteColor = (name: string) =>\\n $tw.wiki.renderText(\\n 'text/plain',\\n 'text/vnd.tiddlywiki',\\n `\u003C$transclude tiddler={{$:/palette}} index=\\\"${name}\\\">\u003C$transclude tiddler=\\\"$:/palettes/Vanilla\\\" index=\\\"${name}\\\">\u003C$transclude tiddler=\\\"$:/config/DefaultColourMappings/${name}\\\"/>\u003C/$transclude>\u003C/$transclude>`,\\n {},\\n );\\n\\nconst checkIfChinese = () =>\\n $tw.wiki.getTiddlerText('$:/language')?.includes('zh') === true;\\n\\nconst checkIfDarkMode = () =>\\n $tw.wiki.getTiddler($tw.wiki.getTiddlerText('$:/palette')!)?.fields?.[\\n 'color-scheme'\\n ] === 'dark';\\n\\nconst GitHubHeatMapAddon: IScriptAddon\u003Cany> = {\\n shouldUpdate: (_, changedTiddlers) => $tw.utils.count(changedTiddlers) > 0,\\n onUpdate: (myChart, _state, a
{"version":"11.3.1","type":"application/json","title":"$:/plugins/Gk0Wk/highlight-generator","plugin-type":"plugin","name":"Highlight.js Generator","description":"Generate custom highlight.js tiddler","author":"Gk0Wk","list":"panel LICENSE","source":"https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/highlightjs-generator","tags":"ExcludeFromEmpty","dependents":"","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/highlight-generator/panel\":{\"tags\":\"ExcludeFromEmpty\",\"title\":\"$:/plugins/Gk0Wk/highlight-generator/panel\",\"type\":\"text/vnd.tiddlywiki\",\"text\":\"\u003C$list filter=\\\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\\\" variable=\\\"lang\\\">\\n\u003C$list filter=\\\"[\u003Clang>search[zh]]\\\">\\n\\n在这里你可以下载定制版的`$:/plugins/tiddlywiki/highlight/highlight.js`条目。\\n\\n选择下面你希望包含的语言高亮,然后点击【生成 highlight.js】按钮,会自动生成并下载 `.tid` 文件,再将该文件导入你的 wiki 并保存、刷新 wiki 即可。\\n\\n\u003Ccenter>\\n\u003C$button style=\\\"display:flex;color:white;font-weight:700;font-size:15px;background:#0A84FF;border-radius:3px;width:200px;justify-content:space-around;align-items:center;height:50px;padding:0 10px; cursor: pointer;\\\" tag=\\\"div\\\">\\n\u003C$action-sendmessage $message=\\\"tm-download-file\\\" $param=\\\"$:/plugins/Gk0Wk/highlight-generator/template\\\" filename=\\\"$__plugins_tiddlywiki_highlight_highlight.js.tid\\\"/>\\n生成 highlight.js {{$:/core/images/save-button}}\\n\u003C/$button>\\n\u003C/center>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Clang>!search[zh]]\\\">\\n\\nHere you can download a customized version of the `$:/plugins/tiddlywiki/highlight/highlight.js` tiddler.\\n\\nSelect the language highlight you wish to include below, then click the [Generate highlight.js] button, it will automatically generate and download the `.tid` file, then import the file into your wiki then save and refresh the wiki.\\n\\n\u003Ccenter>\\n\u003C$button style=\\\"display:flex;color:white;font-weight:700;font-size:15px;background:#0A84FF;border-radius:3px;width:250px;justify-content:space-around;align-items:center;height:50px;padding:0 10px; cursor: pointer;\\\" tag=\\\"div\\\">\\n\u003C$action-sendmessage $message=\\\"tm-download-file\\\" $param=\\\"$:/plugins/Gk0Wk/highlight-generator/template\\\" filename=\\\"$__plugins_tiddlywiki_highlight_highlight.js.tid\\\"/>\\nGenerate highlight.js {{$:/core/images/save-button}}\\n\u003C/$button>\\n\u003C/center>\\n\\n\u003C/$list>\\n\u003C/$list>\\n\\n\u003Cdiv style=\\\"display: grid; grid-template-columns: repeat(auto-fill, 150px); grid-row-gap: 10px; row-gap: 10px;\\\">\\n\u003C$list filter=\\\"[all[shadows]prefix[$:/plugins/Gk0Wk/highlight-generator/languages/]]\\\" variable=\\\"languageTiddler\\\">\\n\u003C$list filter=\\\"[\u003ClanguageTiddler>removeprefix[$:/plugins/Gk0Wk/highlight-generator/languages/]removesuffix[.min.js]]\\\" variable=\\\"language\\\">\\n\u003C$checkbox tiddler=\u003C\u003ClanguageTiddler>> field=\\\"selected\\\" default=\\\"no\\\" checked=\\\"yes\\\" unchecked=\\\"no\\\">\u003C$link to=\u003C\u003ClanguageTiddler>>> \u003C$text text=\u003C\u003Clanguage>>/>\u003C/$link>\u003C/$checkbox>\\n\u003C/$list>\\n\u003C/$list>\\n\u003C/div>\\n\"},\"$:/plugins/Gk0Wk/highlight-generator/template\":{\"tags\":\"ExcludeFromEmpty\",\"title\":\"$:/plugins/Gk0Wk/highlight-generator/template\",\"type\":\"text/vnd.tiddlywiki\",\"text\":\"\u003C$fields tiddler=\\\"$:/plugins/tiddlywiki/highlight/highlight.js\\\" exclude=\\\"text bag revision created creator modified modifier tmap.id\\\" template=\\\"$name$: $value$\\n\\\">\u003C/$fields>`\\n`\u003C$text text={{{ [[$:/plugins/Gk0Wk/highlight-generator/main.js]get[text]] }}}/>\u003C$list filter=\\\"[all[shadows]prefix[$:/plugins/Gk0Wk/highlight-generator/languages/]]\\\" variable=\\\"languageTiddler\\\">\u003C$list filter=\\\"[\u003ClanguageTiddler>get[selected]match[yes]]\\\">`\\n`\u003C$text text={{{ [\u003ClanguageTiddler>get[text]] }}}/>\u003C/$list>\
{"version":"3.6.0","type":"application/json","title":"$:/plugins/Gk0Wk/jQuery","plugin-type":"plugin","name":"jQuery","list":"readme","description":"jQuery for TiddlyWiki5","author":"Gk0Wk","source":"https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/jQuery","dependents":"","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/jQuery/hook-jquery.js\":{\"title\":\"$:/plugins/Gk0Wk/jQuery/hook-jquery.js\",\"text\":\"/*\\\\\\ntitle: $:/core/modules/startup/hook-jquery.js\\ntype: application/javascript\\nmodule-type: startup\\n\\nHook jQuery object to wiki.\\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 = \\\"hook-jquery\\\";\\n exports.platforms = [\\\"browser\\\"];\\n exports.after = [\\\"load-modules\\\"];\\n exports.synchronous = true;\\n exports.startup = function () {\\n try {\\n window.jQuery =\\n window.$ = require(\\\"$:/plugins/Gk0Wk/jQuery/jquery.min.js\\\");\\n } catch (e) {\\n console.error(e);\\n }\\n };\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"startup\"},\"$:/plugins/Gk0Wk/jQuery/jquery.min.js\":{\"title\":\"$:/plugins/Gk0Wk/jQuery/jquery.min.js\",\"text\":\"/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\\n!function(e,t){\\\"use strict\\\";\\\"object\\\"==typeof module&&\\\"object\\\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\\\"jQuery requires a window with a document\\\");return t(e)}:t(e)}(\\\"undefined\\\"!=typeof window?window:this,function(C,e){\\\"use strict\\\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\\\"function\\\"==typeof e&&\\\"number\\\"!=typeof e.nodeType&&\\\"function\\\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\\\"script\\\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\\\"\\\":\\\"object\\\"==typeof e||\\\"function\\\"==typeof e?n[o.call(e)]||\\\"object\\\":typeof e}var f=\\\"3.6.0\\\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\\\"length\\\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\\\"array\\\"===n||0===t||\\\"number\\\"==typeof t&&0\u003Ct&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e\u003C0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e\u003C0?t:0);return this.pushStack(0\u003C=n&&n\u003Ct?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\\\"boolean\\\"==typeof a&&(l=a,a=arguments[s]||{},s++),\\\"object\\\"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s\u003Cu;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\\\"__proto__\\\"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:\\\"jQuery\\\"+(f+Math.random()).re
{"version":"0.0.7","type":"application/json","title":"$:/plugins/Gk0Wk/notionpage-covericon","plugin-type":"plugin","name":"Notion Page(Cover + Icon)","list":"readme LICENSE","description":"Add notion-like page cover and icon display and control panel","author":"Gk0Wk","source":"https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/notionpage-covericon","dependents":"","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/notionpage-covericon/default-icon\":{\"text\":\"📒\"},\"$:/plugins/Gk0Wk/notionpage-covericon/default-pagecover-url\":{\"text\":\"https://source.unsplash.com/random\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/narrow\":{\"text\":\"300px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/wide\":{\"text\":\"300px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/narrow\":{\"text\":\"-14px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/wide\":{\"text\":\"-28px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/narrow\":{\"text\":\"-14px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide\":{\"text\":\"-42px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow\":{\"text\":\"-14px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide\":{\"text\":\"-42px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/style/icon-size\":{\"text\":\"65px\"},\"$:/plugins/Gk0Wk/notionpage-covericon/LICENSE\":{\"title\":\"$:/plugins/Gk0Wk/notionpage-covericon/LICENSE\",\"text\":\"MIT License\\n\\nCopyright (c) 2021 Ke Wang (Gk0Wk in GitHub)\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\",\"type\":\"text/plain\"},\"$:/plugins/Gk0Wk/notionpage-covericon/body\":{\"title\":\"$:/plugins/Gk0Wk/notionpage-covericon/body\",\"tags\":\"$:/tags/ViewTemplate\",\"list-before\":\"$:/core/ui/ViewTemplate/title\",\"text\":\"\u003C$set name=\\\"tiddler\\\" value=\u003C\u003CcurrentTiddler>>>\\n\u003C$list filter=\\\"[\u003CcurrentTiddler>addprefix[$:/temp/Gk0Wk/notionpage-covericon/Selector/]]\\\" variable=\\\"stateTiddler1\\\">\\n\u003C$list filter=\\\"[\u003CcurrentTiddler>addprefix[$:/temp/Gk0Wk/notionpage-covericon/ChangeCover/]]\\\" variable=\\\"stateTiddler2\\\">\\n\u003C$set name=\\\"icon\\\" value={{!!icon}}>\\n\u003C$set name=\\\"cover\\\" value={{!!page-cover}}>\\n\u003C$list filter=\\\"[\u003Cicon>match[]]\\\">\\n\u003C$list filter=\\\"[\u003Ccover>match[]]\\\">\\n \u003C!-- !icon && !cover -->\\n \u003Cdiv class=\\\"gk0wk-notionpagebg gk0wk-notionpagebg-n\\\">\\n \u003Cdiv class=\\\"gk0wk-notionbg-addbuttons\\\">\\n \u003C$button setTitle=\u003C\u003Ctiddler>> setField=\\\"icon\\\" setTo={{$:/plugins/Gk0Wk/notionpage-covericon/default-icon}} tooltip=\\\"Add Icon\\\">😁 Add Icon\u003C/$button>\\n \u003C$button setTitle=\u003C\u003Ctiddler>> setField=\\\"page-cover\\\" setTo={{$:/plugins/Gk0Wk/notionpage-covericon/default-pagecover-url}} tooltip=\\\"Add Cover\\\">{{$:/core/images/picture}} Add Cover\u003C/$button>\\n \u003C/div>\\n \u003C/div>\\n\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ccover>!match[]]\\\">\\n \
{"version":"0.0.3","type":"application/json","title":"$:/plugins/Gk0Wk/page-toc","plugin-type":"plugin","name":"Page TOC","list":"readme LICENSE","description":"Use tiddler's H1~H6 headers to generate navigable TOC for tiddler","author":"Gk0Wk","source":"https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/page-toc","dependents":"","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC\":{\"title\":\"$:/plugins/Gk0Wk/page-toc/CurrentTiddlerTOC\",\"text\":\"\u003C$list filter=\\\"[[$:/temp/focussedTiddler]is[tiddler]get[text]]\\\" variable=\\\"tiddler\\\">\\n\\nTOC of \u003C$text text=\u003C\u003Ctiddler>>/>:\\n\u003C$page-toc tiddler=\u003C\u003Ctiddler>> emptyMessage=\\\"Empty TOC\\\"/>\\n\\n\u003C/$list>\\n\"},\"$:/plugins/Gk0Wk/page-toc/LICENSE\":{\"title\":\"$:/plugins/Gk0Wk/page-toc/LICENSE\",\"text\":\"MIT License\\n\\nCopyright (c) 2021 Ke Wang (Gk0Wk in GitHub)\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\",\"type\":\"text/plain\"},\"$:/plugins/Gk0Wk/page-toc/PageTOCButton\":{\"title\":\"$:/plugins/Gk0Wk/page-toc/PageTOCButton\",\"list-after\":\"$:/core/ui/Buttons/info\",\"tags\":\"$:/tags/ViewToolbar\",\"caption\":\"{{$:/core/images/list-bullet}} {{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}}\",\"description\":\"Show TOC of this tiddler\",\"hint\":\"Page TOC\",\"text\":\"\\\\whitespace trim\\n\u003C$set value={{{ [\u003CcurrentTiddler>addprefix[$:/temp/Gk0Wk/page-toc/PageTOCButton/]] }}} name=\\\"stateTiddler\\\">\\n\u003C$button popup=\u003C\u003CstateTiddler>> tooltip={{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!description}} aria-label={{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}} class=\u003C\u003Ctv-config-toolbar-class>>>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">{{$:/core/images/list-bullet}}\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\u003Cspan class=\\\"tc-btn-text\\\">{{$:/plugins/Gk0Wk/page-toc/PageTOCButton!!hint}}\u003C/span>\u003C/$list>\\n\u003C/$button>\\n\u003C$reveal type=\\\"popup\\\" state=\u003C\u003CstateTiddler>> position=\\\"belowleft\\\" tag=\\\"div\\\" class=\\\"tc-popup-keep\\\">\\n\u003C$page-toc tiddler=\u003C\u003CcurrentTiddler>> emptyMessage=\\\"Empty TOC\\\" class=\\\"gk0wk-tiddlertoc-viewbuttonpopup\\\" headerClassPrefix=\\\"gk0wk-tiddlertoc-viewbuttonpopup-\\\" />\\n\u003C/$reveal>\\n\u003C/$set>\\n\"},\"$:/plugins/Gk0Wk/page-toc/PageTOCWidget.js\":{\"title\":\"$:/plugins/Gk0Wk/page-toc/PageTOCWidget.js\",\"text\":\"(function () {\\n \\\"use strict\\\";\\n\\n function getTOCInfo(tiddler, includeHeaderMap) {\\n // Check empty\\n if (tiddler === \\\"\\\") return undefined;\\n var currentTiddler = $tw.wiki.getTiddler(tiddler);\\n if (!currentTiddler) return undefined;\\n var type = currentTiddler.fields.type;\\n if (\\n type &&\\n type !== \\\"\\\" &&\\n type !== \\\"text/vnd.tiddlywiki\\\" &&\\n type !== \\\"text/x-markdown\\\"\\n )\\n return undefined;\\n var headers = [];\\n var headersCount = {\\n h1: 0,\\n
{"created":"20220329160652137","text":"{\"tiddlers\":{\"$:/plugins/Gk0Wk/sidebar-resizer/LICENSE\":{\"title\":\"$:/plugins/Gk0Wk/sidebar-resizer/LICENSE\",\"text\":\"MIT License\\n\\nCopyright (c) 2021 Ke Wang (Gk0Wk in GitHub)\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is\\nfurnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all\\ncopies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\\nSOFTWARE.\\n\",\"type\":\"text/plain\"},\"$:/plugins/Gk0Wk/sidebar-resizer/hook.js\":{\"title\":\"$:/plugins/Gk0Wk/sidebar-resizer/hook.js\",\"text\":\"(function () {\\n \\\"use strict\\\";\\n if (typeof window !== \\\"undefined\\\" && window.document) {\\n var sidebarResizerNode = null;\\n var canResize = false;\\n var body = document.querySelector(\\\"body\\\");\\n if (!body) return;\\n\\n function dragBegin(event) {\\n canResize = true;\\n if (window.PointerEvent) body.setPointerCapture(event.pointerId);\\n // When drag begins, prevent text selecting (for event.preventDefault cannot work in Mozilla)\\n body.style.useSelect = \\\"none\\\";\\n body.style.MozUserSelect = \\\"none\\\";\\n }\\n\\n function dragEnd(event) {\\n if (canResize) {\\n canResize = false;\\n if (window.PointerEvent) body.releasePointerCapture(event.pointerId);\\n body.style.useSelect = \\\"auto\\\";\\n body.style.MozUserSelect = \\\"auto\\\";\\n }\\n }\\n\\n $tw.hooks.addHook(\\\"th-page-refreshed\\\", function () {\\n if (\\n sidebarResizerNode &&\\n sidebarResizerNode.ownerDocument.contains(sidebarResizerNode)\\n )\\n return;\\n sidebarResizerNode = document.querySelector(\\\"#gk0wk-sidebar-resize-area\\\");\\n if (!sidebarResizerNode) return;\\n canResize = false;\\n\\n // Hide Sidebar\\n function hideSideBar(event) {\\n $tw.wiki.setText(\\\"$:/state/sidebar\\\", null, null, \\\"no\\\");\\n dragEnd(event);\\n }\\n\\n // Drag to resize\\n function drag(event) {\\n if (!canResize) return;\\n if (!event) event = window.event;\\n // Prevent event pass\\n event.preventDefault(event);\\n event.stopPropagation(event);\\n event.stopImmediatePropagation(event);\\n event.returnValue = false;\\n var widthPercent = 100 - (event.clientX / window.innerWidth) * 100;\\n if (widthPercent > 80) return false;\\n if (window.innerWidth - event.clientX \u003C 100) {\\n $tw.wiki.setText(\\n \\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\\\",\\n null,\\n null,\\n 30000 / window.innerWidth + \\\"vw\\\"\\n );\\n hideSideBar(event);\\n } else {\\n $tw.wiki.setText(\\n \\\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\\\",\\n null,\\n null,\\n widthPercent + \\\"vw\\\"\\n );\\n }\\n return false;\\n }\\n\\n // Double click to hide sidebar\\n sidebarResizerNode.addEventListener(\\\"dblclick\\\", hideSideBar);\\n // Detect whter PointerEvent is supported\\n if (window.PointerEven
{"title":"$:/plugins/Gk0Wk/sidebar-resizer/hook.js","text":"(function () {\n \"use strict\";\n if (typeof window !== \"undefined\" && window.document) {\n var sidebarResizerNode = null;\n var canResize = false;\n var body = document.querySelector(\"body\");\n if (!body) return;\n\n function dragBegin(event) {\n canResize = true;\n if (window.PointerEvent) body.setPointerCapture(event.pointerId);\n // When drag begins, prevent text selecting (for event.preventDefault cannot work in Mozilla)\n body.style.useSelect = \"none\";\n body.style.MozUserSelect = \"none\";\n }\n\n function dragEnd(event) {\n if (canResize) {\n canResize = false;\n if (window.PointerEvent) body.releasePointerCapture(event.pointerId);\n body.style.useSelect = \"auto\";\n body.style.MozUserSelect = \"auto\";\n }\n }\n\n $tw.hooks.addHook(\"th-page-refreshed\", function () {\n if (\n sidebarResizerNode &&\n sidebarResizerNode.ownerDocument.contains(sidebarResizerNode)\n )\n return;\n sidebarResizerNode = document.querySelector(\"#gk0wk-sidebar-resize-area\");\n if (!sidebarResizerNode) return;\n canResize = false;\n\n // Hide Sidebar\n function hideSideBar(event) {\n $tw.wiki.setText(\"$:/state/sidebar\", null, null, \"no\");\n dragEnd(event);\n }\n\n // Drag to resize\n function drag(event) {\n if (!canResize) return;\n if (!event) event = window.event;\n // Prevent event pass\n event.preventDefault(event);\n event.stopPropagation(event);\n event.stopImmediatePropagation(event);\n event.returnValue = false;\n var widthPercent = 100 - (event.clientX / window.innerWidth) * 100;\n if (widthPercent > 80) return false;\n if (window.innerWidth - event.clientX \u003C 100) {\n $tw.wiki.setText(\n \"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\",\n null,\n null,\n 30000 / window.innerWidth + \"vw\"\n );\n hideSideBar(event);\n } else {\n $tw.wiki.setText(\n \"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\",\n null,\n null,\n widthPercent + \"vw\"\n );\n }\n return false;\n }\n\n // Double click to hide sidebar\n sidebarResizerNode.addEventListener(\"dblclick\", hideSideBar);\n // Detect whter PointerEvent is supported\n if (window.PointerEvent) {\n // PointerEvent = Mouse + Touch\n sidebarResizerNode.addEventListener(\"pointerdown\", dragBegin);\n body.addEventListener(\"pointerup\", dragEnd);\n body.addEventListener(\"blur\", dragEnd);\n body.addEventListener(\"pointermove\", drag, true);\n } else {\n // If not\n sidebarResizerNode.addEventListener(\"mousedown\", dragBegin);\n body.addEventListener(\"mouseup\", dragEnd);\n body.addEventListener(\"blur\", dragEnd);\n body.addEventListener(\"mousemove\", drag, true);\n sidebarResizerNode.addEventListener(\"touchstart\", dragBegin);\n body.addEventListener(\"touchcancel\", dragEnd);\n body.addEventListener(\"touchend\", dragEnd);\n body.addEventListener(\"touchmove\", drag, true);\n }\n });\n }\n})();\n","type":"application/javascript","module-type":"startup"},
{"title":"$:/plugins/Gk0Wk/sidebar-resizer/LICENSE","text":"MIT License\n\nCopyright (c) 2021 Ke Wang (Gk0Wk in GitHub)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","type":"text/plain"},
{"title":"$:/plugins/Gk0Wk/sidebar-resizer/readme","text":"\\define lingo-base() $:/language/ThemeTweaks/\n\n\u003C$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n\u003C$list filter=\"[\u003Clang>search[zh]]\">\n\n会在侧边栏的左侧边缘添加一个可拖动的边框,当鼠标移动到左侧边缘时会看到这个边框。拖动这个边框可以改变侧边栏的宽度,拖动到靠近窗口右侧边缘时就会自动收起侧边栏。\n\n原理是更改[[$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth]]的值。\n\n注意:首先请将 \u003C$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\">\u003C\u003Clingo Options/SidebarLayout>>\u003C/$link> 调整为`fluid-fixed`,本插件才可生效。\n\n\u003C$button set=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" setTo=\"fluid-fixed\">点击设置\u003C\u003Clingo Options/SidebarLayout>>\u003C/$button>\n\n\u003C/$list>\n\n\u003C$list filter=\"[\u003Clang>!search[zh]]\">\n\nA draggable border is added to the left edge of the sidebar, which will be visible when the mouse is moved to the left edge. Dragging this border will change the width of the sidebar, and it will automatically close the sidebar when dragged near the right edge of the window.\n\nThe principle is to change the value of [[$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth]].\n\nNote: First, please adjust \u003C$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\">\u003C\u003Clingo Options/SidebarLayout>>\u003C/$link> to `fluid-fixed` for this plugin to take effect.\n\n\u003C$button set=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" setTo=\"fluid-fixed\">Click to adjust\u003C\u003Clingo Options/SidebarLayout>>\u003C/$button>\n\n\u003C/$list>\n\u003C/$list>\n"},
{"title":"$:/plugins/kookma/favorites/macros/sidebar","caption":"Favorites","created":"20191226064633412","list-before":"$:/core/ui/SideBar/Recent","modified":"20210423152034578","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\import $:/plugins/kookma/favorites/macros/slider\n\\import $:/plugins/kookma/favorites/macros/definition\n\n\\define drop-actions()\n\u003C!-- case 1: tiddler is already in favlist and moved between folders by drag and drop -->\n\u003C$reveal type=match default=\u003C\u003CfavlistTid>> text={{{[\u003CactionTiddler>listed[]match\u003CfavlistTid>]}}} >\n\u003C$vars oldFolder={{{ [\u003CactionTiddler>listed[]]+[subfilter\u003Cfolders>]-[\u003Cfolder>]+[limit[1]] }}}>\n\u003C$action-listops $tiddler=\u003C\u003ColdFolder>> $field=\"list\" $subfilter=\"-[\u003CactionTiddler>]\" />\n\u003C/$vars>\n\u003C/$reveal>\n\u003C!-- case 2: tiddler is NOT already in favlist and dropped from outside favorites -->\n\u003C$reveal type=nomatch default=\u003C\u003CfavlistTid>> text={{{[\u003CactionTiddler>listed[]match\u003CfavlistTid>]}}} >\n\u003C$action-listops $tiddler=\u003C\u003CfavlistTid>> $field='list' $subfilter=\"[\u003CactionTiddler>]\"/>\n\u003C/$reveal>\n\u003C!-- move it to the target folder -->\n\u003C$action-listops $tiddler=\u003C\u003Cfolder>> $subfilter=\"+[insertbefore:currentTiddler\u003CactionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n\u003Cdiv class=\"tc-droppable-placeholder\"> \u003C/div>\n\\end\n\n\\define droppable-item()\n\\whitespace trim\n\u003C$droppable actions=\u003C\u003Cdrop-actions>>>\n\u003C\u003Cplaceholder>>\n\u003Cdiv>\n\u003C$transclude tiddler=\"$:/plugins/kookma/favorites/templates/delete-item\" field=text/> \n\u003C$transclude tiddler=\"$:/plugins/kookma/favorites/templates/show-link\" field=text/>\n\u003C/div>\n\u003C/$droppable>\n\\end\n\n\\define droppable-item-after-last-item()\n\\whitespace trim\n\u003C!--add extra space for drag and drop after last item-->\n\u003C$droppable actions=\u003C\u003Cdrop-actions>>>\n\u003C\u003Cplaceholder>>\u003Cdiv style=\"margin-top:-6px;margin-bottom:-6px;\"> \u003C/div>\n\u003C/$droppable>\n\\end\n\n\n\\define display-folder-is-empty()\n\u003Cdiv style=\"padding-left:20px;\">\n\u003C$droppable actions=\u003C\u003Cdrop-actions>>>\n\u003C\u003Cplaceholder>>\n//Folder is empty//\n\u003C/$droppable>\n\u003C/div>\n\\end\n\n\\define display-fav-folder(folder)\n\u003C$vars folder=\u003C\u003C__folder__>> >\n\u003C!--check if folder is empty-->\n\u003C$list filter=\"[list\u003Cfolder>limit[1]]\" emptyMessage=\u003C\u003Cdisplay-folder-is-empty>> variable=ignore>\n\u003Cdiv style=\"padding-left:20px;\">\n\u003C$list filter=\"[list\u003Cfolder>]\">\u003C!--display all tiddlers in folder list field one by one -->\n\u003C$list filter=\"[\u003CfavlistTid>contains\u003CcurrentTiddler>]\" variable=ignore>\u003C!--check if the tiddler is a favorite list-->\n\u003C$macrocall $name=droppable-item />\n\u003C/$list>\n\u003C/$list>\n\u003C\u003Cdroppable-item-after-last-item>>\n\u003C/div>\n\u003C/$list>\n\u003C/$vars>\n\\end\n\n\\define display-fav-recentlyAdded()\n\u003C$vars folder=\u003C\u003CrecentlyAdded>> >\n\u003Cb>\u003C$transclude tiddler=\u003C\u003Cfolder>> field=\"caption\" />\u003C/b>\n\u003C!--check if favlistTid is empty -->\n\u003C$list filter=\"[list\u003Cfolder>limit[1]]\" emptyMessage=\u003C\u003Cdisplay-folder-is-empty>> variable=ignore>\n\u003Cdiv style=\"padding-left:20px;\">\n\u003C$list filter=\"[list\u003Cfolder>]\">\u003C!--get all items in favlistTid-->\n\u003C$list filter=\"[\u003CfavlistTid>contains\u003CcurrentTiddler>]\" variable=ignore>\u003C!--check if the tiddler is a favorite list-->\n\u003C$macrocall $name=droppable-item />\n\u003C/$list>\n\u003C/$list>\n\u003C\u003Cdroppable-item-after-last-item>>\n\u003C/div>\n\u003C/$list>\n\u003C/$vars>\n\\end\n\n\n\\define favorites-tree()\n\u003C!--show recently added favorites -->\n\u003C\u003Cdisplay-fav-recentlyAdded>>\n\n\u003C!-- show all favorite folders -->\n\u003C$list filter=\"[subfilter\u003Cfolders>]-[\u003CrecentlyAdded>]\" variable=favfolder
{"created":"20200103090757281","creator":"a revised version of Andrew Harrison favorite plugin","title":"$:/plugins/kookma/favorites/recent","caption":"Recently added","list":"m00 [[Image and Icons]] [[Favorites More Examples]]","modified":"20230304222712700","modifier":"M0","tags":"$:/tags/Favorites/Folder","type":"text/vnd.tiddlywiki"},
{"created":"20180906042308596","creator":"M0","text":"\u003Cpre>/* TW-version added to site title */\n.tc-site-title:before {\n content:\"TW \u003C\u003Cversion>>\";\n position:absolute;\n margin-top:-1.9em;\n color:silver;\n font-size:13px;\n}\n\u003C/pre>","title":"$:/plugins/kookma/utility/styles/tw-version","modified":"20220418174419263","tags":"","type":"text/vnd.tiddlywiki","modifier":"M0"},
{"created":"20181212041419278","creator":"M0","text":"\u003C$set name=\"revealFilters\" tiddler=\"$:/plugins/kookma/utility/config/reveal-tags\" field=text>\n\u003C$list filter=\"[all[current]tag[show-content]]\n [all[current]tag[$:/tags/EditTemplate]]\n [all[current]tag[$:/tags/ViewTemplate]] \n [all[current]tag[$:/tags/Macro]]\n [all[current]subfilter\u003CrevealFilters>] +[limit[1]]\">\n\u003C$codeblock code={{!!text}} language=\"xml\" />\n\u003C/$list>\n\u003C/$set>\n\n","title":"$:/plugins/kookma/utility/viewtemplate/display-tiddler-raw-content","description":"this view template displays the content of global macro tiddlers","modified":"20220418174441533","tags":"","type":"text/vnd.tiddlywiki","modifier":"M0"},
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/nico/notebook-mobile/js/notebookSidebarNav.js\": {\n \"title\": \"$:/plugins/nico/notebook-mobile/js/notebookSidebarNav.js\",\n \"text\": \"/*\\\\\\ntitle: $:/themes/nico/notebook-mobile/js/notebookSidebarNav.js\\ntype: application/javascript\\nmodule-type: global\\n\\nCloses the notebook sidebar on mobile when navigating\\n\\n\\\\*/\\n(function(){\\n\\n /*jslint node: true, browser: true */\\n /*global $tw: false */\\n \\\"use strict\\\";\\n\\n const isOnMobile = () => {\\n\\t\\tlet bottombar = document.querySelector('.nc-bottombar');\\n\\t\\treturn bottombar && bottombar.getClientRects().length > 0;\\n };\\n\\n const closeSidebar = () => {\\n\\t\\t$tw.wiki.setText(\\\"$:/state/notebook-sidebar\\\", \\\"text\\\", undefined, \\\"no\\\");\\n };\\n\\n const closeSidebarOnMobile = () => {\\n\\t\\tif (isOnMobile()) {\\n console.log(\\\"closing sidebar\\\");\\n\\t\\t\\tcloseSidebar();\\n\\t\\t};\\n };\\n\\n const setup = () => {\\n\\t\\t$tw.hooks.addHook(\\\"th-navigating\\\",function(event) {\\n\\t\\t\\tcloseSidebarOnMobile();\\n\\t\\t\\treturn event;\\n\\t\\t});\\n };\\n\\n setup();\\n\\n exports.closeNotebookSidebar = closeSidebar;\\n})();\\n\",\n \"type\": \"application/javascript\",\n \"module-type\": \"global\",\n \"created\": \"20200430151329085\",\n \"modified\": \"20201210200127495\",\n \"tags\": \"\"\n }\n }\n}","version":"1.0.0","type":"application/json","title":"$:/plugins/nico/notebook-mobile","source":"https://github.com/NicolasPetton/Notebook","revision":"0","plugin-type":"plugin","name":"Mobile support for the Notebook theme","modified":"20201219111632312","list":"","description":"JavaScript hooks for mobile devices support of the Notebook theme","dependents":"","created":"20201219111632312","core-version":">=5.1.22","bag":"default","author":"NicolasPetton"},
{"title":"$:/plugins/snowgoon88/edit-comptext","type":"application/json","text":"{\n \"tiddlers\": {\n \"$:/plugins/snowgoon88/edit-comptext/config\": {\n \"title\": \"$:/plugins/snowgoon88/edit-comptext/config\",\n \"type\": \"application/json\",\n \"text\": \"{\\n \\\"configuration\\\": {\\n \\\"caseSensitive\\\" : false,\\n \\\"maxMatch\\\" : 8,\\n \\\"minPatLength\\\" : 2,\\n \\\"triggerKeyCombination\\\" : \\\"^ \\\"\\n },\\n \\\"template\\\": [{\\n \\\"pattern\\\": \\\"[[\\\",\\n \\\"filter\\\": \\\"[all[tiddlers]!is[system]]\\\",\\n \\\"start\\\": \\\"[[\\\",\\n \\\"end\\\": \\\"]]\\\"\\n }\\n ]\\n}\\n\"\n },\n \"$:/plugins/snowgoon88/edit-comptext/edit-comptext.js\": {\n \"title\": \"$:/plugins/snowgoon88/edit-comptext/edit-comptext.js\",\n \"text\": \"/*\\\\\\ntitle: $:/plugins/snowgoon88/edit-comptext/edit-comptext.js\\ntype: application/javascript\\nmodule-type: widget\\n\\nTaken from original Edit-text widget\\nVersion 5.1.13 of TW5\\nAdd link-to-tiddler completion in framed.js and simple.js\\n\\nTODO : CHECK usefull, and particularly save_changes after every input ??\\nTODO : where should popupNode be created in the DOM ?\\nTODO : check that options are valid (numeric ?)\\nvar isNumeric = function(n) {\\n return !isNaN(parseFloat(n)) && isFinite(n);\\n};\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar editTextWidgetFactory = require(\\\"$:/core/modules/editor/factory.js\\\").editTextWidgetFactory,\\n\\tFramedCompEngine = require(\\\"$:/plugins/snowgoon88/edit-comptext/framed.js\\\").FramedCompEngine,\\n\\tSimpleCompEngine = require(\\\"$:/plugins/snowgoon88/edit-comptext/simple.js\\\").SimpleCompEngine;\\n\\nexports[\\\"edit-comptext\\\"] = editTextWidgetFactory(FramedCompEngine,SimpleCompEngine);\\n\\n})();\\n\",\n \"type\": \"application/javascript\",\n \"module-type\": \"widget\"\n },\n \"$:/plugins/snowgoon88/edit-comptext/examples\": {\n \"title\": \"$:/plugins/snowgoon88/edit-comptext/examples\",\n \"text\": \"The configuration file [[$:/plugins/snowgoon88/edit-comptext/config]] allow you to use the completion plugin for various usages. Here are some examples...\\n\\n!! Link Completion\\nThe basic and default usage. Completion is triggered by `[[`, the search is among all non-system tiddlers. When selected, the `title` of the tiddler is inserted in the text, surrounded by `[[` and `]]`. This gives the following Completion Template.\\n\\n\\n```\\n{\\n \\\"pattern\\\": \\\"[[\\\",\\n \\\"title\\\": \\\"[all[tiddlers]!is[system]]\\\",\\n \\\"start\\\": \\\"[[\\\",\\n \\\"end\\\": \\\"]]\\\"\\n}\\t \\n```\\n\\n\\n!! Special macro completion\\nI have a 'pnjin' macro that is invoked by `\u003C\u003Cpnjin \\\"TiddlerPNJName\\\">>` where 'TiddlerPNJName is a tiddler that hold data about a PNJ. I use tiddlywiki to organise my Role Playing Games campaigns. So, I want `\u003Cp` to trigger the completion. The search is among all non-system tiddlers tagged `PNJ` and, once selected, the title of the tiddler must be inserted surrouned by `\u003C\u003Cpnjin \\\\\\\"` and `\\\\\\\">>`. So...\\n\\n```\\n{\\n\\t\\\"pattern\\\": \\\"\u003Cp\\\",\\n \\t\\\"title\\\": \\\"[tag[PNJ]!is[system]]\\\",\\n \\t\\\"start\\\": \\\"\u003C\u003Cpnjin \\\\\\\"\\\",\\n \\t\\\"end\\\": \\\"\\\\\\\">>\\\"\\n}\\n```\\n\\n!! Insert some templates or stamp or snippets into text.\\nI frequently use some text pattern and I want to insert them easily. So, I could create several tiddlers, tagged '$:stamp' and in their body are the piece of texte I want to insert. The titles of these tiddlers always start with `$:/config/stamp/` (i.e. $:/config/stamp/macro, $:/config/stamp/list1, $:/config/stamp/list2). I want to trigger the completion by using `\u003C\u003C`, then I only want to chose among the last part of the titles of tiddlers tagged `$:stam
{"title":"$:/plugins/tiddlywiki/browser-sniff","name":"Browser Sniff","description":"Browser feature detection","list":"readme usage","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/browser-sniff/sniff.js\":{\"title\":\"$:/plugins/tiddlywiki/browser-sniff/sniff.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/browser-sniff/sniff.js\\ntype: application/javascript\\nmodule-type: info\\n\\nInitialise $:/info/browser tiddlers\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nexports.getInfoTiddlerFields = function() {\\n\\tvar mapBoolean = function(value) {return value ? \\\"yes\\\" : \\\"no\\\";},\\n\\t\\tinfoTiddlerFields = [];\\n\\t// Basics\\n\\tif($tw.browser) {\\n\\t\\t// Mappings from tiddler titles (prefixed with \\\"$:/info/browser/\\\") to bowser.browser property name\\n\\t\\tvar bowser = require(\\\"$:/plugins/tiddlywiki/browser-sniff/bowser/bowser.js\\\"),\\n\\t\\t\\tmappings = [\\n\\t\\t\\t\\t[\\\"name\\\",\\\"name\\\",\\\"unknown\\\"],\\n\\t\\t\\t\\t[\\\"version\\\",\\\"version\\\"],\\n\\t\\t\\t\\t[\\\"is/webkit\\\",\\\"webkit\\\"],\\n\\t\\t\\t\\t[\\\"is/gecko\\\",\\\"gecko\\\"],\\n\\t\\t\\t\\t[\\\"is/chrome\\\",\\\"chrome\\\"],\\n\\t\\t\\t\\t[\\\"is/firefox\\\",\\\"firefox\\\"],\\n\\t\\t\\t\\t[\\\"is/ios\\\",\\\"ios\\\"],\\n\\t\\t\\t\\t[\\\"is/iphone\\\",\\\"iphone\\\"],\\n\\t\\t\\t\\t[\\\"is/ipad\\\",\\\"ipad\\\"],\\n\\t\\t\\t\\t[\\\"is/ipod\\\",\\\"ios\\\"],\\n\\t\\t\\t\\t[\\\"is/opera\\\",\\\"opera\\\"],\\n\\t\\t\\t\\t[\\\"is/phantomjs\\\",\\\"phantomjs\\\"],\\n\\t\\t\\t\\t[\\\"is/safari\\\",\\\"safari\\\"],\\n\\t\\t\\t\\t[\\\"is/seamonkey\\\",\\\"seamonkey\\\"],\\n\\t\\t\\t\\t[\\\"is/blackberry\\\",\\\"blackberry\\\"],\\n\\t\\t\\t\\t[\\\"is/webos\\\",\\\"webos\\\"],\\n\\t\\t\\t\\t[\\\"is/silk\\\",\\\"silk\\\"],\\n\\t\\t\\t\\t[\\\"is/bada\\\",\\\"bada\\\"],\\n\\t\\t\\t\\t[\\\"is/tizen\\\",\\\"tizen\\\"],\\n\\t\\t\\t\\t[\\\"is/sailfish\\\",\\\"sailfish\\\"],\\n\\t\\t\\t\\t[\\\"is/android\\\",\\\"android\\\"],\\n\\t\\t\\t\\t[\\\"is/windowsphone\\\",\\\"windowsphone\\\"],\\n\\t\\t\\t\\t[\\\"is/firefoxos\\\",\\\"firefoxos\\\"],\\n\\t\\t\\t\\t[\\\"is/mobile\\\",\\\"mobile\\\"]\\n\\t\\t\\t];\\n\\t\\t$tw.browser = $tw.utils.extend($tw.browser, {\\n\\t\\t\\tis: bowser.browser,\\n\\t\\t});\\n\\t\\t$tw.utils.each(mappings,function(mapping) {\\n\\t\\t\\tvar value = bowser.browser[mapping[1]];\\n\\t\\t\\tif(value === undefined) {\\n\\t\\t\\t\\tvalue = mapping[2];\\n\\t\\t\\t}\\n\\t\\t\\tif(value === undefined) {\\n\\t\\t\\t\\tvalue = false;\\n\\t\\t\\t}\\n\\t\\t\\tif(typeof value === \\\"boolean\\\") {\\n\\t\\t\\t\\tvalue = mapBoolean(value);\\n\\t\\t\\t}\\n\\t\\t\\tinfoTiddlerFields.push({title: \\\"$:/info/browser/\\\" + mapping[0], text: value});\\n\\t\\t});\\n\\t\\t// Set $:/info/browser/name to the platform with some changes from Bowser\\n\\t\\tvar platform = bowser.browser.name;\\n\\t\\tif(\\\"iPad iPhone iPod\\\".split(\\\" \\\").indexOf(platform) !== -1) {\\n\\t\\t\\tplatform = \\\"iOS\\\";\\n\\t\\t}\\n\\t\\tinfoTiddlerFields.push({title: \\\"$:/info/browser/name\\\", text: platform});\\n\\t\\t// Non-bowser settings for TiddlyFox and TiddlyDesktop\\n\\t\\tvar hasTiddlyFox = !!document.getElementById(\\\"tiddlyfox-message-box\\\"), // Fails because message box is added after page load\\n\\t\\t\\tisTiddlyDesktop = false; // Can't detect it until we update TiddlyDesktop to have a distinct useragent string\\n\\t\\t//infoTiddlerFields.push({title: \\\"$:/info/browser/has/tiddlyfox\\\", text: mapBoolean(hasTiddlyFox)});\\n\\t\\t//infoTiddlerFields.push({title: \\\"$:/info/browser/is/tiddlydesktop\\\", text: mapBoolean(isTiddlyDesktop)});\\n\\t\\tif(isTiddlyDesktop) {\\n\\t\\t\\tinfoTiddlerFields.push({title: \\\"$:/info/browser/name\\\", text: \\\"TiddlyDesktop\\\"});\\n\\t\\t}\\n\\t}\\n\\treturn infoTiddlerFields;\\n};\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"info\"},\"$:/plugins/tiddlywiki/browser-sniff/bowser/bowser.js\":{\"text
{"title":"$:/plugins/tiddlywiki/codemirror","name":"CodeMirror","description":"CodeMirror editor","list":"readme usage keyboard license","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/config/EditorTypeMappings/application/javascript\":{\"title\":\"$:/config/EditorTypeMappings/application/javascript\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/application/json\":{\"title\":\"$:/config/EditorTypeMappings/application/json\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/application/x-tiddler-dictionary\":{\"title\":\"$:/config/EditorTypeMappings/application/x-tiddler-dictionary\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/css\":{\"title\":\"$:/config/EditorTypeMappings/text/css\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/html\":{\"title\":\"$:/config/EditorTypeMappings/text/html\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/plain\":{\"title\":\"$:/config/EditorTypeMappings/text/plain\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/vnd.tiddlywiki\":{\"title\":\"$:/config/EditorTypeMappings/text/vnd.tiddlywiki\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/x-markdown\":{\"title\":\"$:/config/EditorTypeMappings/text/x-markdown\",\"text\":\"codemirror\"},\"$:/config/EditorTypeMappings/text/x-tiddlywiki\":{\"title\":\"$:/config/EditorTypeMappings/text/x-tiddlywiki\",\"text\":\"codemirror\"},\"$:/config/codemirror/cursorBlinkRate\":{\"title\":\"$:/config/codemirror/cursorBlinkRate\",\"type\":\"integer\",\"text\":\"530\"},\"$:/config/codemirror/extraKeysTW\":{\"title\":\"$:/config/codemirror/extraKeysTW\",\"extend\":\"extraKeys\",\"type\":\"json\",\"text\":\"{\\n\\t\\\"Ctrl-Esc\\\": \\\"singleSelection\\\",\\n\\t\\\"Esc\\\": \\\"\\\",\\n\\t\\\"Ctrl-S\\\": \\\"\\\",\\n\\t\\\"Ctrl-U\\\": \\\"\\\",\\n\\t\\\"Ctrl-T\\\": \\\"\\\",\\n\\t\\\"Alt-T\\\": \\\"transposeChars\\\",\\n\\t\\\"Alt-U\\\": \\\"undoSelection\\\",\\n\\t\\\"Shift-Alt-U\\\": \\\"redoSelection\\\",\\n\\t\\\"Cmd-U\\\": \\\"\\\",\\n\\t\\\"Tab\\\": \\\"indentAuto()\\\",\\n\\t\\\"Enter\\\": \\\"newLineAndIndent()\\\"\\n}\\n\"},\"$:/config/codemirror/indentUnit\":{\"title\":\"$:/config/codemirror/indentUnit\",\"type\":\"integer\",\"text\":\"2\"},\"$:/config/codemirror/indentWithTabs\":{\"title\":\"$:/config/codemirror/indentWithTabs\",\"type\":\"bool\",\"text\":\"true\"},\"$:/config/codemirror/inputStyle\":{\"title\":\"$:/config/codemirror/inputStyle\",\"type\":\"string\",\"text\":\"textarea\"},\"$:/config/codemirror/keyMap\":{\"title\":\"$:/config/codemirror/keyMap\",\"type\":\"string\",\"text\":\"default\"},\"$:/config/codemirror/lineNumbers\":{\"title\":\"$:/config/codemirror/lineNumbers\",\"type\":\"bool\",\"text\":\"false\"},\"$:/config/codemirror/lineWrapping\":{\"title\":\"$:/config/codemirror/lineWrapping\",\"type\":\"bool\",\"text\":\"true\"},\"$:/config/codemirror/showCursorWhenSelecting\":{\"title\":\"$:/config/codemirror/showCursorWhenSelecting\",\"type\":\"bool\",\"text\":\"true\"},\"$:/config/codemirror/smartIndent\":{\"title\":\"$:/config/codemirror/smartIndent\",\"type\":\"bool\",\"text\":\"true\"},\"$:/config/codemirror/styleActiveLine\":{\"title\":\"$:/config/codemirror/styleActiveLine\",\"type\":\"bool\",\"text\":\"false\"},\"$:/config/codemirror/tabSize\":{\"title\":\"$:/config/codemirror/tabSize\",\"type\":\"integer\",\"text\":\"2\"},\"$:/config/codemirror/theme\":{\"title\":\"$:/config/codemirror/theme\",\"type\":\"string\",\"text\":\"tiddlywiki\"},\"$:/language/codemirror/homeUrl\":{\"title\":\"$:/language/codemirror/homeUrl\",\"text\":\"http://codemirror.net\"},\"$:/language/codemirror/addOnUrl\":{\"title\":\"$:/language/codemirror/addOnUrl\",\"text\":\"http://codemirror.net/doc/manual.html#addons\"},\"$:/language/codemirror/configUrl\":{\"title\":\"$:/language/codemirror/configUrl\",\"text\":\"http://codemirror.net/doc/manual.html#config\"},\"$:/language/codemirror/controlPanel/hint\":{\"title\":\"$:/language/codemirror/controlPanel/hint\",\"text\":\"These settings let you customis
{"title":"$:/plugins/tiddlywiki/codemirror-autocomplete","name":"CodeMirror Autocomplete","description":"Autocompletion for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","dependents":"$:/plugins/tiddlywiki/codemirror-mode-css","list":"readme","version":"5.2.3","plugin-type":"plugin","type":"application/json","text":"{\"tiddlers\":{\"$:/config/codemirror/autocomplete\":{\"title\":\"$:/config/codemirror/autocomplete\",\"extend\":\"extraKeys\",\"type\":\"json\",\"text\":\"{\\n\\t\\\"Ctrl-Space\\\": \\\"autocomplete\\\"\\n}\"},\"$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../../lib/codemirror\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\"],e):e(CodeMirror)}(function(y){\\\"use strict\\\";var b=/[\\\\w$]+/;y.registerHelper(\\\"hint\\\",\\\"anyword\\\",function(e,r){for(var t=r&&r.word||b,o=r&&r.range||500,i=e.getCursor(),n=e.getLine(i.line),f=i.ch,s=f;s&&t.test(n.charAt(s-1));)--s;for(var a=s!=f&&n.slice(s,f),c=r&&r.list||[],l={},d=new RegExp(t.source,\\\"g\\\"),u=-1;u\u003C=1;u+=2)for(var p=i.line,g=Math.min(Math.max(p+u*o,e.firstLine()),e.lastLine())+u;p!=g;p+=u)for(var h,m=e.getLine(p);h=d.exec(m);)p==i.line&&h[0]===a||a&&0!=h[0].lastIndexOf(a,0)||Object.prototype.hasOwnProperty.call(l,h[0])||(l[h[0]]=!0,c.push(h[0]));return{list:c,from:y.Pos(i.line,s),to:y.Pos(i.line,f)}})});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js\",\"module-type\":\"codemirror\"},\"$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../../lib/codemirror\\\"),require(\\\"../../mode/css/css\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\",\\\"../../mode/css/css\\\"],e):e(CodeMirror)}(function(f){\\\"use strict\\\";var p={active:1,after:1,before:1,checked:1,default:1,disabled:1,empty:1,enabled:1,\\\"first-child\\\":1,\\\"first-letter\\\":1,\\\"first-line\\\":1,\\\"first-of-type\\\":1,focus:1,hover:1,\\\"in-range\\\":1,indeterminate:1,invalid:1,lang:1,\\\"last-child\\\":1,\\\"last-of-type\\\":1,link:1,not:1,\\\"nth-child\\\":1,\\\"nth-last-child\\\":1,\\\"nth-last-of-type\\\":1,\\\"nth-of-type\\\":1,\\\"only-of-type\\\":1,\\\"only-child\\\":1,optional:1,\\\"out-of-range\\\":1,placeholder:1,\\\"read-only\\\":1,\\\"read-write\\\":1,required:1,root:1,selection:1,target:1,valid:1,visited:1};f.registerHelper(\\\"hint\\\",\\\"css\\\",function(e){var t=e.getCursor(),r=e.getTokenAt(t),o=f.innerMode(e.getMode(),r.state);if(\\\"css\\\"==o.mode.name){if(\\\"keyword\\\"==r.type&&0==\\\"!important\\\".indexOf(r.string))return{list:[\\\"!important\\\"],from:f.Pos(t.line,r.start),to:f.Pos(t.line,r.end)};var i=r.start,s=t.ch,n=r.string.slice(0,s-i);/[^\\\\w$_-]/.test(n)&&(n=\\\"\\\",i=s=t.ch);var a=f.resolveMode(\\\"text/css\\\"),d=[],l=o.state.state;return\\\"pseudo\\\"==l||\\\"variable-3\\\"==r.type?c(p):\\\"block\\\"==l||\\\"maybeprop\\\"==l?c(a.propertyKeywords):\\\"prop\\\"==l||\\\"parens\\\"==l||\\\"at\\\"==l||\\\"params\\\"==l?(c(a.valueKeywords),c(a.colorKeywords)):\\\"media\\\"!=l&&\\\"media_parens\\\"!=l||(c(a.mediaTypes),c(a.mediaFeatures)),d.length?{list:d,from:f.Pos(t.line,i),to:f.Pos(t.line,s)}:void 0}function c(e){for(var t in e)n&&0!=t.lastIndexOf(n,0)||d.push(t)}})});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js\",\"module-type\":\"codemirror\"},\"$:/plugins/tiddlywiki/codemirror/addon/hint/html-hint.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n
{"title":"$:/plugins/tiddlywiki/codemirror-closetag","name":"CodeMirror Close Tag","description":"Close tags automatically for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","list":"readme","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/config/codemirror/autoCloseTags\":{\"title\":\"$:/config/codemirror/autoCloseTags\",\"type\":\"bool\",\"text\":\"true\\n\"},\"$:/language/codemirror/autoCloseTags/hint\":{\"title\":\"$:/language/codemirror/autoCloseTags/hint\",\"text\":\"Auto-close tags\"},\"$:/language/codemirror/autoCloseTags/info\":{\"title\":\"$:/language/codemirror/autoCloseTags/info\",\"text\":\"Whether or not to automatically close tags\"},\"$:/plugins/tiddlywiki/codemirror/addon/fold/xml-fold.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../../lib/codemirror\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\"],e):e(CodeMirror)}(function(e){\\\"use strict\\\";var l=e.Pos;function c(e,n){return e.line-n.line||e.ch-n.ch}var n=\\\"A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\",i=new RegExp(\\\"\u003C(/?)([\\\"+n+\\\"][A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD-:.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*)\\\",\\\"g\\\");function a(e,n,t,i){this.line=n,this.ch=t,this.cm=e,this.text=e.getLine(n),this.min=i?Math.max(i.from,e.firstLine()):e.firstLine(),this.max=i?Math.min(i.to-1,e.lastLine()):e.lastLine()}function s(e,n){var t=e.cm.getTokenTypeAt(l(e.line,n));return t&&/\\\\btag\\\\b/.test(t)}function r(e){return!(e.line>=e.max)&&(e.ch=0,e.text=e.cm.getLine(++e.line),1)}function h(e){return!(e.line\u003C=e.min)&&(e.text=e.cm.getLine(--e.line),e.ch=e.text.length,1)}function F(e){for(;;){var n=e.text.indexOf(\\\">\\\",e.ch);if(-1==n){if(r(e))continue;return}if(s(e,n+1)){var t=e.text.lastIndexOf(\\\"/\\\",n),i=-1\u003Ct&&!/\\\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\\\"selfClose\\\":\\\"regular\\\"}e.ch=n+1}}function x(e){for(;;){var n=e.ch?e.text.lastIndexOf(\\\"\u003C\\\",e.ch-1):-1;if(-1==n){if(h(e))continue;return}if(s(e,n+1)){i.lastIndex=n,e.ch=n;var t=i.exec(e.text);if(t&&t.index==n)return t}else e.ch=n}}function g(e){for(;;){i.lastIndex=e.ch;var n=i.exec(e.text);if(!n){if(r(e))continue;return}if(s(e,n.index+1))return e.ch=n.index+n[0].length,n;e.ch=n.index+1}}function v(e,n){for(var t=[];;){var i,r=g(e),u=e.line,f=e.ch-(r?r[0].length:0);if(!r||!(i=F(e)))return;if(\\\"selfClose\\\"!=i)if(r[1]){for(var o=t.length-1;0\u003C=o;--o)if(t[o]==r[2]){t.length=o;break}if(o\u003C0&&(!n||n==r[2]))return{tag:r[2],from:l(u,f),to:l(e.line,e.ch)}}else t.push(r[2])}}function d(e,n){for(var t=[];;){var i=function(e){for(;;){var n=e.ch?e.text.lastIndexOf(\\\">\\\",e.ch-1):-1;if(-1==n){if(h(e))continue;return}if(s(e,n+1)){var t=e.text.lastIndexOf(\\\"/\\\",n),i=-1\u003Ct&&!/\\\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\\\"selfClose\\\":\\\"regular\\\"}e.ch=n}}(e);if(!i)return;if(\\\"selfClose\\\"!=i){var r=e.line,u=e.ch,f=x(e);if(!f)return;if(f[1])t.push(f[2]);else{for(var o=t.length-1;0\u003C=o;--o)if(t[o]==f[2]){t.length=o;break}if(o\u003C0&&(!n||n==f[2]))return{tag:f[2],from:l(e.line,e.ch),to:l(r,u)}}}else x(e)}}e.registerHelper(\\\"fold\\\",\\\"xml\\\",function(e,n){for(var t=new a(e,n.line,0);;){var i=g(t);if(!i||t.line!=n.line)return;var r=F(t);if(!r)return;if(!i[1]&&\\\"s
{"title":"$:/plugins/tiddlywiki/codemirror-fullscreen","name":"CodeMirror Fullscreen","description":"Fullscreen editing for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","list":"readme","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/config/codemirror/fullscreen\":{\"title\":\"$:/config/codemirror/fullscreen\",\"extend\":\"extraKeys\",\"type\":\"json\",\"text\":\"{\\n\\t\\\"F11\\\": \\\"togglefullscreen\\\"\\n}\"},\"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../../lib/codemirror\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../../lib/codemirror\\\"],e):e(CodeMirror)}(function(i){\\\"use strict\\\";i.defineOption(\\\"fullScreen\\\",!1,function(e,t,o){var r,l;o==i.Init&&(o=!1),!o!=!t&&(t?(l=(r=e).getWrapperElement(),r.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:l.style.width,height:l.style.height},l.style.width=\\\"\\\",l.style.height=\\\"auto\\\",l.className+=\\\" CodeMirror-fullscreen\\\",document.documentElement.style.overflow=\\\"hidden\\\",r.refresh()):function(e){var t=e.getWrapperElement();t.className=t.className.replace(/\\\\s*CodeMirror-fullscreen\\\\b/,\\\"\\\"),document.documentElement.style.overflow=\\\"\\\";var o=e.state.fullScreenRestore;t.style.width=o.width,t.style.height=o.height,window.scrollTo(o.scrollLeft,o.scrollTop),e.refresh()}(e))})});\\n\",\"type\":\"application/javascript\",\"title\":\"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js\",\"module-type\":\"codemirror\"},\"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css\":{\"text\":\".CodeMirror-fullscreen {\\n position: fixed;\\n top: 0; left: 0; right: 0; bottom: 0;\\n height: auto;\\n z-index: 9;\\n}\\n\",\"type\":\"text/css\",\"title\":\"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css\",\"tags\":\"[[$:/tags/Stylesheet]]\"},\"$:/plugins/tiddlywiki/codemirror-fullscreen/readme\":{\"title\":\"$:/plugins/tiddlywiki/codemirror-fullscreen/readme\",\"text\":\"This plugin adds a ''Fullscreen editing Mode'' to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\\n\\nPressing ''F11'' with the focus within the editor-textarea will make the editor go fullscreen, pressing ''F11'' again leaves fullscreen-mode\\n\\n\"}}}"},
{"title":"$:/plugins/tiddlywiki/codemirror-keymap-sublime-text","name":"CodeMirror Keymap Sublime Text","description":"Keymap compatible with Sublime Text for CodeMirror","parent-plugin":"$:/plugins/tiddlywiki/codemirror","dependents":"$:/plugins/tiddlywiki/codemirror-search-replace $:/plugins/tiddlywiki/codemirror-closebrackets","list":"readme","version":"5.2.3","plugin-type":"plugin","type":"application/json","text":"{\"tiddlers\":{\"$:/config/codemirror/extraKeysTW\":{\"title\":\"$:/config/codemirror/extraKeysTW\",\"extend\":\"extraKeys\",\"type\":\"json\",\"text\":\"{\\n\\t\\\"Ctrl-M\\\": \\\"\\\",\\n\\t\\\"Alt-M\\\": \\\"goToBracket\\\",\\n\\t\\\"Ctrl-Enter\\\": \\\"\\\",\\n\\t\\\"Shift-Enter\\\": \\\"insertLineAfter\\\",\\n\\t\\\"Esc\\\": \\\"\\\",\\n\\t\\\"Ctrl-Esc\\\": \\\"singleSelectionTop\\\",\\n\\t\\\"Ctrl-L\\\": \\\"\\\",\\n\\t\\\"Shift-Ctrl-L\\\": \\\"\\\",\\n\\t\\\"Alt-L\\\": \\\"selectLine\\\",\\n\\t\\\"Shift-Alt-L\\\": \\\"splitSelectionByLine\\\",\\n\\t\\\"Ctrl-T\\\": \\\"\\\",\\n\\t\\\"Alt-T\\\": \\\"transposeChars\\\",\\n\\t\\\"Ctrl-K Ctrl-U\\\": \\\"\\\",\\n\\t\\\"Ctrl-K Ctrl-L\\\": \\\"\\\",\\n\\t\\\"Ctrl-K Ctrl-W\\\": \\\"\\\",\\n\\t\\\"Ctrl-K Alt-U\\\": \\\"upcaseAtCursor\\\",\\n\\t\\\"Ctrl-K Alt-L\\\": \\\"downcaseAtCursor\\\",\\n\\t\\\"Ctrl-K Alt-D\\\": \\\"deleteToSublimeMark\\\"\\n}\\n\"},\"$:/plugins/tiddlywiki/codemirror/keymaps/sublime\":{\"title\":\"$:/plugins/tiddlywiki/codemirror/keymaps/sublime\",\"module-type\":\"codemirror-keymap\",\"text\":\"sublime\\n\"},\"$:/plugins/tiddlywiki/codemirror/keymap/sublime.js\":{\"text\":\"// CodeMirror, copyright (c) by Marijn Haverbeke and others\\n// Distributed under an MIT license: https://codemirror.net/LICENSE\\n!function(e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?e(require(\\\"../lib/codemirror\\\"),require(\\\"../addon/search/searchcursor\\\"),require(\\\"../addon/edit/matchbrackets\\\")):\\\"function\\\"==typeof define&&define.amd?define([\\\"../lib/codemirror\\\",\\\"../addon/search/searchcursor\\\",\\\"../addon/edit/matchbrackets\\\"],e):e(CodeMirror)}(function(u){\\\"use strict\\\";var r=u.commands,d=u.Pos;function t(t,n){t.extendSelectionsBy(function(e){return t.display.shift||t.doc.extend||e.empty()?function(e,t,n){if(n\u003C0&&0==t.ch)return e.clipPos(d(t.line-1));var r=e.getLine(t.line);if(0\u003Cn&&t.ch>=r.length)return e.clipPos(d(t.line+1,0));for(var o,i=\\\"start\\\",l=t.ch,a=l,s=n\u003C0?0:r.length;a!=s;a+=n,0){var c=r.charAt(n\u003C0?a-1:a),f=\\\"_\\\"!=c&&u.isWordChar(c)?\\\"w\\\":\\\"o\\\";if(\\\"w\\\"==f&&c.toUpperCase()==c&&(f=\\\"W\\\"),\\\"start\\\"==i)\\\"o\\\"!=f?(i=\\\"in\\\",o=f):l=a+n;else if(\\\"in\\\"==i&&o!=f){if(\\\"w\\\"==o&&\\\"W\\\"==f&&n\u003C0&&a--,\\\"W\\\"==o&&\\\"w\\\"==f&&0\u003Cn){if(a==l+1){o=\\\"w\\\";continue}a--}break}}return d(t.line,a)}(t.doc,e.head,n):n\u003C0?e.from():e.to()})}function n(l,a){if(l.isReadOnly())return u.Pass;l.operation(function(){for(var e=l.listSelections().length,t=[],n=-1,r=0;r\u003Ce;r++){var o,i=l.listSelections()[r].head;i.line\u003C=n||(o=d(i.line+(a?0:1),0),l.replaceRange(\\\"\\\\n\\\",o,null,\\\"+insertLine\\\"),l.indentLine(o.line,null,!0),t.push({head:o,anchor:o}),n=i.line+1)}l.setSelections(t)}),l.execCommand(\\\"indentAuto\\\")}function c(e,t){for(var n=t.ch,r=n,o=e.getLine(t.line);n&&u.isWordChar(o.charAt(n-1));)--n;for(;r\u003Co.length&&u.isWordChar(o.charAt(r));)++r;return{from:d(t.line,n),to:d(t.line,r),word:o.slice(n,r)}}function o(e,t){for(var n=e.listSelections(),r=[],o=0;o\u003Cn.length;o++){var i=n[o],l=e.findPosV(i.anchor,t,\\\"line\\\",i.anchor.goalColumn),a=e.findPosV(i.head,t,\\\"line\\\",i.head.goalColumn);l.goalColumn=null!=i.anchor.goalColumn?i.anchor.goalColumn:e.cursorCoords(i.anchor,\\\"div\\\").left,a.goalColumn=null!=i.head.goalColumn?i.head.goalColumn:e.cursorCoords(i.head,\\\"div\\\").left;var s={anchor:l,head:a};r.push(i),r.push(s)}e.setSelections(r)}r.goSubwordLeft=function(e){t(e,-1)},r.goSubwordRight=function(e){t(e,1)},r.scrollLineUp=function(e){var t,n=e.getScrollInfo();e.somethingSelected()||(t=e.lineAtHeight(n.top+
{"title":"$:/plugins/tiddlywiki/codemirror/usage","text":"! Configuration\n\nConfiguration for the ~CodeMirror text-editor can be done from within the CodeMirror Settings Tab in the [[ControlPanel|$:/ControlPanel]] (Settings - ~CodeMirror)\n\n\n!!Setting a different Theme\n\n~CodeMirror themes are available in the [ext[official GitHub repository|https://github.com/codemirror/CodeMirror/tree/master/theme]]\n\nMore themes can be found at https://github.com/FarhadG/code-mirror-themes/tree/master/themes and previewed [ext[here|http://farhadg.github.io/code-mirror-themes/]]\n\n\nTo add a theme to your wiki, follow these four steps:\n\n* choose one of the CSS files and copy its content to a new tiddler\n* remove all comments from the top and tag the tiddler with \u003C\u003Ctag-pill \"$:/tags/Stylesheet\">>\n* add a field \"module-type\" with the value \"codemirror-theme\". add a field \"name\" with the exact ''name'' of the theme as value\n* save the tiddler and go to the Settings tab in $:/ControlPanel - look for the \"theme\" dropdown to select your newly added theme\n\n\n!!Line Numbers\n\nTo show or hide the Line Numbers at the left, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Numbers\" checkbox\n\n\n!!Line Wrapping\n\nControls if long lines get visually wrapped to a new line if they're too long to fit the editor width or if the editor should scroll horizontally\n\nTo change the line-wrapping behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Wrapping\" checkbox\n\n\n!!Show Cursor when selecting\n\nDefines whether the Mouse cursor should be visually shown or hidden when making a text-selection\n\nTo change the show-cursor-when-selecting behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Show cursor when selecting\" checkbox\n\n\n!!~CodeMirror Font Family\n\nThe Font-Family used within the ~CodeMirror text-editor defaults to \"monospace\" which will choose your configured monospace system-font\n\nThat setting can be overridden entering one or more Font-Families in the \"Font Family\" input field at ~ControlPanel - Settings - ~CodeMirror\n\n* The entries must be separated by semicolons ','\n* Font-Family Names that contain spaces must be quoted like \"My Font\"\n* If a list of Font-Families is specified, the last Font-Family found on the user-system gets used, non-existing fonts get ignored\n* If none of the specified Font-Families is available, ~CodeMirror uses the default \"monospace\"\n\n\n!!\"Hidden\" Settings:\n\n!!!Cursor Blink Rate\n\nThe cursor blink-rate defines how fast (in milliseconds) the cursor blinks inside the textarea\n\nYou can change it by editing $:/config/codemirror/cursorBlinkRate\n\"0\" disables blinking\n\n!!!Tabsize\n\nThe Tabsize defines the width of a tab character. Default is 4.\n\nYou can change it by editing $:/config/codemirror/tabSize\n\n!!!Indent Unit\n\nNot enabled for vnd.tiddlywiki and x-tiddlywiki\n\nDefines how many spaces a text-block should be indented. Defaults to 2.\n\nYou can change it by editing $:/config/codemirror/indentUnit\n\n"},
{"title":"$:/plugins/tiddlywiki/dynannotate","name":"Dynannotate","description":"Dynamic content annotation","author":"JeremyRuston","core-version":">=5.0.0","list":"readme examples","dependents":"$:/plugins/tiddlywiki/dynaview","version":"5.2.3","plugin-type":"plugin","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/dynannotate/readme\":{\"title\":\"$:/plugins/tiddlywiki/dynannotate/readme\",\"text\":\"The ''Dynannotate'' plugin allows annotations on textual content to be created and displayed. It has several components:\\n\\n* The dynannotate widget draws clickable textual annotations, search highlights and search snippets as overlays over the top of the content that it contains\\n* The selection tracker keeps track of changes to the selected text in the main browser window. It triggers an action string when the selection changes, passing it the details of the selection. It can be used to display a popup menu\\n** The original legacy selection tracker is also provided for backwards compatibility. It is much more limited, and not recommended for new projects\\n\\n!! Dynannotate Widget\\n\\nThe attributes of the `\u003C$dynannotate>` widget describe annotations to be overlaid over the text contained within its child widgets. A single annotation can be directly applied using the attributes or multiple annotations can be applied by providing a filter identifying the \\\"annotation tiddlers\\\" that specify each annotation.\\n\\nThe content of the `\u003C$dynannotate>` widget should not contain HTML `\u003Cinput>` or `\u003Ctextarea>` text editing elements (and therefore should not contain TiddlyWiki's `\u003C$edit-text>` widget)\\n\\nThe `\u003C$dynannotate>` widget uses the selection tracker to support a popup that dynamically tracks selected text within it.\\n\\n!!! Attributes\\n\\n|!Attribute |!Description |\\n|target |Optional text to be annotated |\\n|targetPrefix |Optional prefix text to disambiguate the target |\\n|targetSuffix |Optional suffix text to disambiguate the target |\\n|filter |Filter identifying the annotation tiddlers applying to this content (see below) |\\n|actions |Action string to be executed when an annotation is clicked. The variable `annotationTiddler` contains the title of the tiddler corresponding to the annotation that was clicked, and the variable `modifierKey` contains \\\"ctrl\\\", \\\"shift\\\", \\\"ctrl-shift\\\", \\\"normal\\\" according to which modifier keys were pressed |\\n|popup |Popup state tiddler to be used to trigger a popup when an annotation is clicked |\\n|search |Search text to be highlighted within the widget |\\n|searchDisplay |\\\"overlay\\\" or \\\"snippet\\\" (see below) |\\n|searchMode |\\\"normal\\\" (default), \\\"regexp\\\" or \\\"whitespace\\\" (see below) |\\n|searchMinLength |Optional minimum length of search string |\\n|searchCaseSensitive |\\\"no\\\" (default) for a case insensitive search, or \\\"yes\\\" for a case sensitive search |\\n|searchClass |Optional CSS class to be added to search overlays |\\n|snippetContextLength |Optional length of search result contextual prefix/suffix |\\n\\nThe following attributes are only used with the legacy selection tracker:\\n\\n|!Attribute |!Description |\\n|selection |Tiddler to which the currently selected text should be dynamically saved |\\n|selectionPrefix |Tiddler to which up to 50 characters preceding the currently selected text should be dynamically saved |\\n|selectionSuffix |Tiddler to which up to 50 characters succeeding the currently selected text should be dynamically saved |\\n|selectionPopup |Popup state tiddler to be used to trigger a popup when text is selected |\\n\\nThe values supported by the `searchDisplay` attribute are:\\n\\n* `overlay` - display search results as overlays over the contained text\\n* `snippet` - display search results as a sequence of highlighted snippets, and the original text is hidden. Selecting this option therefore disables the annotation functionality\\n\\nThe search modes supported by the `searchMode` attribute are:\\n\\n* `normal` - a literal string
{"title":"$:/plugins/tiddlywiki/dynaview","name":"Dynaview","description":"Dynamic scrolling and zooming effects","list":"readme docs examples config","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/dynaview/above-story\":{\"title\":\"$:/plugins/tiddlywiki/dynaview/above-story\",\"tags\":\"$:/tags/AboveStory-disabled\",\"text\":\"\u003C!-- Remove the \\\"-disabled\\\" part of the tag to cause the currently selected example to appear at the top of the story river. Intended to make it easier to make clean screencaps -->\\n\u003Cdiv style=\\\"height:100em;\\\">\\n\u003C$transclude tiddler={{$:/state/tab--1915807570}} mode=\\\"block\\\"/>\\n\u003C/div>\\n\"},\"$:/config/DynaView/ViewportDimensions\":{\"title\":\"$:/config/DynaView/ViewportDimensions\",\"text\":\"no\"},\"$:/config/DynaView/UpdateAddressBar\":{\"title\":\"$:/config/DynaView/UpdateAddressBar\",\"text\":\"no\"},\"$:/plugins/tiddlywiki/dynaview/config\":{\"title\":\"$:/plugins/tiddlywiki/dynaview/config\",\"text\":\"\u003C$checkbox tiddler=\\\"$:/config/DynaView/ViewportDimensions\\\" field=\\\"text\\\" checked=\\\"yes\\\" unchecked=\\\"no\\\" default=\\\"no\\\"> Enable dynamic saving of the viewport [[width|$:/state/DynaView/ViewportDimensions/Width]] and [[height|$:/state/DynaView/ViewportDimensions/Height]]\u003C/$checkbox>\\n\\n\u003C$checkbox tiddler=\\\"$:/config/DynaView/UpdateAddressBar\\\" field=\\\"text\\\" checked=\\\"yes\\\" unchecked=\\\"no\\\" default=\\\"no\\\"> Update address bar while scrolling\u003C/$checkbox>\\n\\n\"},\"$:/plugins/tiddlywiki/dynaview/docs\":{\"title\":\"$:/plugins/tiddlywiki/dynaview/docs\",\"text\":\"! Documentation\\n\\nThe components of this plugin include:\\n\\n* A background task that:\\n** performs specified actions when elements are scrolled into view\\n** updates certain base classes on the `document.body` according to the current zoom level\\n** if enabled in the DynaView config panel - dynamically stores the viewport dimensions in $:/state/viewport/width and $:/state/viewport/height\\n* Pre-configured CSS classes to simplify using those base classes\\n* Usage examples\\n\\n! Scroll Features\\n\\n!! Scroll position preservation during refresh\\n\\nSome recent browsers have a feature called \\\"scroll anchoring\\\" whereby they suppress the apparent scrolling that occurs when elements are inserted or removed above the current viewport. (See https://github.com/WICG/ScrollAnchoring for more details).\\n\\n~DynaView can optionally polyfill this behaviour for older browsers by setting the configuration tiddler $:/config/DynaView/PreserveScrollPosition to `yes`.\\n\\n!! Startup scroll position restoration\\n\\nOptionally, ~DynaView can store the current scroll position in local storage and restore it upon startup. Set the configuration tiddler $:/config/DynaView/RestoreScrollPositionAtStartup to `yes`.\\n\\nNote that it is not recommended to use this setting at the same time as the \\\"UpdateAddressBar\\\" option.\\n\\n!! Visibility tracking\\n\\nThe background task detects when elements with the class `tc-dynaview-track-tiddler-when-visible` scroll in and out of view. It tracks four different states:\\n\\n* ''Blank/missing'' -- The element has not yet been scrolled into view\\n* ''0'' -- The element has been scrolled into view, but subsequently scrolled out of view\\n* ''1'' -- The element is near the viewport\\n* ''2'' -- The element is partially or wholly within the viewport\\n\\nThe processing applied to each element is as follows:\\n\\n* If the element is partially or wholly within the viewport then set the state to \\\"2\\\"\\n* If the element is near the viewport then set the state to \\\"1\\\"\\n* If the element is fully outside the viewport then only set the state to \\\"0\\\" if it is currently unset (ie blank/missing)\\n\\nAttributes on the tracked element specify the following parameters:\\n\\n* ''data-dynaview-track-tiddler'' -- specifies the tiddler in which the element tracking state will be stored\\n\\n!! Update address bar whe
{"title":"$:/plugins/tiddlywiki/highlight","name":"Highlight","description":"Highlight.js syntax highlighting","author":"Joao Bolila","list":"readme usage license","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/config/HighlightPlugin/TypeMappings/application/javascript\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/application/javascript\",\"text\":\"javascript\"},\"$:/config/HighlightPlugin/TypeMappings/application/json\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/application/json\",\"text\":\"json\"},\"$:/config/HighlightPlugin/TypeMappings/text/css\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/css\",\"text\":\"css\"},\"$:/config/HighlightPlugin/TypeMappings/text/html\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/html\",\"text\":\"html\"},\"$:/config/HighlightPlugin/TypeMappings/image/svg+xml\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/image/svg+xml\",\"text\":\"xml\"},\"$:/config/HighlightPlugin/TypeMappings/text/x-markdown\":{\"title\":\"$:/config/HighlightPlugin/TypeMappings/text/x-markdown\",\"text\":\"markdown\"},\"$:/plugins/tiddlywiki/highlight/highlight.js\":{\"text\":\"var hljs = require(\\\"$:/plugins/tiddlywiki/highlight/highlight.js\\\");\\n/*!\\n Highlight.js v11.4.0 (git: 2d0e7c1094)\\n (c) 2006-2022 Ivan Sagalaev and other contributors\\n License: BSD-3-Clause\\n */\\nvar hljs=function(){\\\"use strict\\\";var e={exports:{}};function t(e){\\nreturn e instanceof Map?e.clear=e.delete=e.set=()=>{\\nthrow Error(\\\"map is read-only\\\")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{\\nthrow Error(\\\"set is read-only\\\")\\n}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n]\\n;\\\"object\\\"!=typeof i||Object.isFrozen(i)||t(i)})),e}\\ne.exports=t,e.exports.default=t;var n=e.exports;class i{constructor(e){\\nvoid 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}\\nignoreMatch(){this.isMatchIgnored=!0}}function r(e){\\nreturn e.replace(/&/g,\\\"&\\\").replace(/\u003C/g,\\\"<\\\").replace(/>/g,\\\">\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\")\\n}function s(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]\\n;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const o=e=>!!e.kind\\n;class a{constructor(e,t){\\nthis.buffer=\\\"\\\",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){\\nthis.buffer+=r(e)}openNode(e){if(!o(e))return;let t=e.kind\\n;t=e.sublanguage?\\\"language-\\\"+t:((e,{prefix:t})=>{if(e.includes(\\\".\\\")){\\nconst n=e.split(\\\".\\\")\\n;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${\\\"_\\\".repeat(t+1)}`))].join(\\\" \\\")\\n}return`${t}${e}`})(t,{prefix:this.classPrefix}),this.span(t)}closeNode(e){\\no(e)&&(this.buffer+=\\\"\u003C/span>\\\")}value(){return this.buffer}span(e){\\nthis.buffer+=`\u003Cspan class=\\\"${e}\\\">`}}class c{constructor(){this.rootNode={\\nchildren:[]},this.stack=[this.rootNode]}get top(){\\nreturn this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){\\nthis.top.children.push(e)}openNode(e){const t={kind:e,children:[]}\\n;this.add(t),this.stack.push(t)}closeNode(){\\nif(this.stack.length>1)return this.stack.pop()}closeAllNodes(){\\nfor(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}\\nwalk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){\\nreturn\\\"string\\\"==typeof t?e.addText(t):t.children&&(e.openNode(t),\\nt.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){\\n\\\"string\\\"!=typeof e&&e.children&&(e.children.every((e=>\\\"string\\\"==typeof e))?e.children=[e.children.join(\\\"\\\")]:e.children.forEach((e=>{\\nc._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}\\naddKeyword(e,t){\\\"\\\"!==e&&(this.openNode(t),this.addText(e),this.closeNode())}\\naddText(e){\\\"\\\"!==e&&this.add(e)}addSublanguage(e,t){const n=e.root\\n;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){\\nreturn new a(this,this.options).value()}finalize(){return!0}}functi
{"title":"$:/plugins/tiddlywiki/internals","name":"Internals","description":"Tools for exploring the internals of TiddlyWiki","list":"readme","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree\":{\"title\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree\",\"tags\":\"$:/tags/EditPreview\",\"list-after\":\"$:/core/ui/EditTemplate/body/preview/output\",\"caption\":\"parse tree\",\"text\":\"\\\\define preview(mode)\\n\u003C$wikify name=\\\"preview-text\\\" text={{!!text}} type={{!!type}} mode=\\\"$mode$\\\" output=\\\"parsetree\\\">\\n\u003Cpre>\\n\u003Ccode>\\n\u003C$text text=\u003C\u003Cpreview-text>>/>\\n\u003C/code>\\n\u003C/pre>\\n\u003C/$wikify>\\n\\\\end\\n\\n{{||$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared}}\\n\"},\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw\":{\"title\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw\",\"tags\":\"$:/tags/EditPreview\",\"caption\":\"raw HTML\",\"list-after\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree\",\"code-body\":\"yes\",\"text\":\"\u003Cpre>\u003Ccode>\u003C$view field=\\\"text\\\" format=\\\"htmlwikified\\\" />\u003C/code>\u003C/pre>\\n\"},\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared\":{\"title\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared\",\"text\":\"\\\\define body()\\n\\nMode: \u003C$select tiddler=\\\"$(tv-mode-configuration)$\\\" default=\\\"block\\\">\\n\u003Coption value=\\\"inline\\\">Inline\u003C/option>\\n\u003Coption value=\\\"block\\\">Block\u003C/option>\\n\u003C/$select>\\n\\n\u003C$macrocall $name=\\\"preview\\\" mode={{$(tv-mode-configuration)$}}/>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-internal-tree-preview-wrapper\\\">\\n\\n\u003Cdiv class=\\\"tc-internal-tree-preview\\\">\\n\\n\u003C$vars tv-mode-configuration=\u003C\u003Cqualify \\\"$:/state/internals/preview/mode\\\">>>\\n\\n\u003C\u003Cbody>>\\n\\n\u003C/$vars>\\n\\n\u003C/div>\\n\\n\u003C/div>\\n\"},\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree\":{\"title\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree\",\"tags\":\"$:/tags/EditPreview\",\"caption\":\"widget tree\",\"list-after\":\"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree\",\"text\":\"\\\\define preview(mode)\\n\u003C$wikify name=\\\"preview-text\\\" text={{!!text}} type={{!!type}} mode=\\\"$mode$\\\" output=\\\"widgettree\\\">\\n\u003Cpre>\\n\u003Ccode>\\n\u003C$text text=\u003C\u003Cpreview-text>>/>\\n\u003C/code>\\n\u003C/pre>\\n\u003C/$wikify>\\n\\\\end\\n\\n{{||$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared}}\\n\"},\"$:/plugins/tiddlywiki/internals/readme\":{\"title\":\"$:/plugins/tiddlywiki/internals/readme\",\"text\":\"This plugin adds features to help explore the internals of TiddlyWiki:\\n\\n* New preview panes showing:\\n** the parse tree\\n** the widget tree\\n** the raw HTML output\\n\\nThe first two include a dropdown for choosing block vs. inline parsing mode.\\n\"},\"$:/plugins/tiddlywiki/internals/styles\":{\"title\":\"$:/plugins/tiddlywiki/internals/styles\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\"}}}"},
{"title":"$:/plugins/tiddlywiki/markdown","name":"Markdown","description":"Markdown parser based on remarkable by Jon Schlinkert and remarkable-katex by Brad Howes","list":"readme usage remarkable-license remarkable-katex-license","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold\",\"list-after\":\"$:/core/ui/EditorToolbar/bold\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/bold\",\"caption\":\"{{$:/language/Buttons/Bold/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Bold/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((bold))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"wrap-selection\\\"\\n\\tprefix=\\\"**\\\"\\n\\tsuffix=\\\"**\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-1\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-1\",\"caption\":\"{{$:/language/Buttons/Heading1/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading1/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((heading-1))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"1\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-2\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-2\",\"caption\":\"{{$:/language/Buttons/Heading2/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading2/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((heading-2))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"2\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-3\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-3\",\"caption\":\"{{$:/language/Buttons/Heading3/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading3/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((heading-3))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"3\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-4\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-4\",\"caption\":\"{{$:/language/Buttons/Heading4/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading4/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((heading-4))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-operation\\\"\\n\\t$param=\\\"prefix-lines\\\"\\n\\tcharacter=\\\"#\\\"\\n\\tcount=\\\"4\\\"\\n/>\\n\"},\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5\":{\"title\":\"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5\",\"list-after\":\"$:/core/ui/EditorToolbar/heading-5\",\"tags\":\"$:/tags/EditorToolbar\",\"icon\":\"$:/core/images/heading-5\",\"caption\":\"{{$:/language/Buttons/Heading5/Caption}} (Markdown)\",\"description\":\"{{$:/language/Buttons/Heading5/Hint}}\",\"condition\":\"[\u003CtargetTiddler>type[text/x-markdown]]\",\"shortcuts\":\"((heading-5))\",\"text\":\"\u003C$action-sendmessage\\n\\t$message=\\\"tm-edit-text-opera
{"title":"$:/plugins/tiddlywiki/mobiledragdrop","name":"Mobile Drag Drop","description":"Mobile drag and drop shim","author":"Tim Ruffles","list":"readme license","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/mobiledragdrop/ios-drag-drop.js\":{\"text\":\"(function(doc) {\\n\\nfunction _exposeIosHtml5DragDropShim(config) {\\n log = noop; // noOp, remove this line to enable debugging\\n\\n var coordinateSystemForElementFromPoint;\\n\\n var DRAG_OVER_EMIT_FREQ = 50;\\n\\n function main() {\\n config = config || {};\\n if (!config.hasOwnProperty(\\\"simulateAnchorClick\\\")) config.simulateAnchorClick = true;\\n\\n coordinateSystemForElementFromPoint = navigator.userAgent.match(/OS [1-4](?:_\\\\d+)+ like Mac/) ? \\\"page\\\" : \\\"client\\\";\\n\\n var div = doc.createElement('div');\\n var dragDiv = 'draggable' in div;\\n var evts = 'ondragstart' in div && 'ondrop' in div;\\n\\n var needsPatch = !(dragDiv || evts) || /iPad|iPhone|iPod|Android/.test(navigator.userAgent);\\n log((needsPatch ? \\\"\\\" : \\\"not \\\") + \\\"patching html5 drag drop\\\");\\n\\n if(!needsPatch) {\\n return;\\n }\\n\\n if(!config.enableEnterLeave) {\\n DragDrop.prototype.synthesizeEnterLeave = noop;\\n }\\n\\n if(config.holdToDrag){\\n doc.addEventListener(\\\"touchstart\\\", touchstartDelay(config.holdToDrag), {passive:false});\\n }\\n else {\\n doc.addEventListener(\\\"touchstart\\\", touchstart, {passive:false});\\n }\\n }\\n\\n function DragDrop(event, el) {\\n\\n this.dragData = {};\\n this.dragDataTypes = [];\\n this.dragImage = null;\\n this.dragImageTransform = null;\\n this.dragImageWebKitTransform = null;\\n this.customDragImage = null;\\n this.customDragImageX = null;\\n this.customDragImageY = null;\\n this.el = el || event.target;\\n this.dragOverTimer = null;\\n this.lastMoveEvent = null;\\n\\n log(\\\"dragstart\\\");\\n\\n if (this.dispatchDragStart()) {\\n this.createDragImage();\\n this.listen();\\n }\\n }\\n\\n DragDrop.prototype = {\\n listen: function() {\\n var move = onEvt(doc, \\\"touchmove\\\", this.move, this);\\n var end = onEvt(doc, \\\"touchend\\\", ontouchend, this);\\n var cancel = onEvt(doc, \\\"touchcancel\\\", cleanup, this);\\n\\n function ontouchend(event) {\\n this.dragend(event, event.target);\\n cleanup.call(this);\\n }\\n function cleanup() {\\n log(\\\"cleanup\\\");\\n this.dragDataTypes = [];\\n if (this.dragImage !== null) {\\n this.dragImage.parentNode.removeChild(this.dragImage);\\n this.dragImage = null;\\n this.dragImageTransform = null;\\n this.dragImageWebKitTransform = null;\\n }\\n this.customDragImage = null;\\n this.customDragImageX = null;\\n this.customDragImageY = null;\\n this.el = this.dragData = null;\\n return [move, end, cancel].forEach(function(handler) {\\n return handler.off();\\n });\\n }\\n },\\n move: function(event) {\\n event.preventDefault();\\n var pageXs = [], pageYs = [];\\n [].forEach.call(event.changedTouches, function(touch) {\\n pageXs.push(touch.pageX);\\n pageYs.push(touch.pageY);\\n });\\n\\n var x = average(pageXs) - (this.customDragImageX || parseInt(this.dragImage.offsetWidth, 10) / 2);\\n var y = average(pageYs) - (this.customDragImageY || parseInt(this.dragImage.offsetHeight, 10) / 2);\\n this.translateDragImage(x, y);\\n\\n this.synthesizeEnterLeave(event);\\n this.synthesizeOver(event);\\n },\\n // We use translate instead of top/left because of sub-pixel rendering and for the hope of better performance\\n // http://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/\\n translateDragImage: function(x, y) {\\n var translate = \\\"translate(\\\" + x + \\\"px,\\\" + y + \\\"p
{"title":"$:/plugins/tiddlywiki/railroad","name":"Railroad","description":"Railroad diagram generator","author":"Astrid Elocson","list":"readme usage syntax example","version":"5.2.3","plugin-type":"plugin","dependents":"","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/railroad/components.js\":{\"title\":\"$:/plugins/tiddlywiki/railroad/components.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/railroad/components.js\\ntype: application/javascript\\nmodule-type: library\\n\\nComponents of a railroad diagram.\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar railroad = require(\\\"$:/plugins/tiddlywiki/railroad/railroad-diagrams.js\\\");\\n\\n/////////////////////////// Base component\\n\\nvar Component = function() {\\n\\tthis.type = \\\"Component\\\";\\n};\\n\\n// Set up a leaf component\\nComponent.prototype.initialiseLeaf = function(type,text) {\\n\\tthis.type = type;\\n\\tthis.text = text;\\n};\\n\\n// Set up a component with a single child\\nComponent.prototype.initialiseWithChild = function(type,content) {\\n\\tthis.type = type;\\n\\tthis.child = toSingleChild(content);\\n};\\n\\n// Set up a component with an array of children\\nComponent.prototype.initialiseWithChildren = function(type,content) {\\n\\tthis.type = type;\\n\\t// Force the content to be an array\\n\\tthis.children = $tw.utils.isArray(content) ? content : [content];\\n}\\n\\n// Return an array of the SVG strings of an array of children\\nComponent.prototype.getSvgOfChildren = function() {\\n\\treturn this.children.map(function(child) {\\n\\t\\treturn child.toSvg();\\n\\t});\\n}\\n\\nComponent.prototype.toSvg = function() {\\n\\treturn \\\"\\\";\\n}\\n\\nComponent.prototype.debug = function(output,indent) {\\n\\toutput.push(indent);\\n\\toutput.push(this.type);\\n\\t// Add the text of a leaf component\\n\\tif(this.text && this.text !== \\\"\\\") {\\n\\t\\toutput.push(\\\": \\\");\\n\\t\\toutput.push(this.text);\\n\\t}\\n\\t// Flag the normal route\\n\\tif(this.normal !== undefined) {\\n\\t\\tif(this.normal === true) {\\n\\t\\t\\toutput.push(\\\" (normal)\\\");\\n\\t\\t} else if(this.normal !== false) {\\n\\t\\t\\toutput.push(\\\" (normal: \\\");\\n\\t\\t\\toutput.push(this.normal);\\n\\t\\t\\toutput.push(\\\")\\\");\\n\\t\\t}\\n\\t}\\n\\toutput.push(\\\"\\\\n\\\");\\n\\tvar contentIndent = indent + \\\" \\\";\\n\\t// Add the one child\\n\\tif(this.child) {\\n\\t\\tthis.child.debug(output,contentIndent);\\n\\t}\\n\\t// Add the array of children\\n\\tif(this.children) {\\n\\t\\tthis.debugArray(this.children,output,contentIndent);\\n\\t}\\n \\t// Add the separator if there is one\\n\\tif(this.separator) {\\n\\t\\toutput.push(indent);\\n\\t\\toutput.push(\\\"(separator)\\\\n\\\");\\n\\t\\tthis.separator.debug(output,contentIndent);\\n\\t}\\n};\\n\\nComponent.prototype.debugArray = function(array,output,indent) {\\n\\tfor(var i=0; i\u003Carray.length; i++) {\\n\\t\\tvar item = array[i];\\n\\t\\t// Choice content is a special case: we number the branches\\n\\t\\tif(item.isChoiceBranch) {\\n\\t\\t\\toutput.push(indent);\\n\\t\\t\\toutput.push(\\\"(\\\");\\n\\t\\t\\toutput.push(i);\\n\\t\\t\\toutput.push(\\\")\\\\n\\\");\\n\\t\\t\\titem.debug(output,\\\" \\\"+indent);\\n\\t\\t} else {\\n\\t\\t\\titem.debug(output,indent);\\n\\t\\t}\\n\\t}\\n}\\n\\nvar toSingleChild = function(content) {\\n\\tif($tw.utils.isArray(content)) {\\n\\t\\t// Reduce an array of one child to just the child\\n\\t\\tif(content.length === 1) {\\n\\t\\t\\treturn content[0];\\n\\t\\t} else {\\n\\t\\t\\t// Never allow an empty sequence\\n\\t\\t \\tif(content.length === 0) {\\n \\t\\t\\t\\tcontent.push(new Dummy());\\n\\t\\t \\t}\\n\\t\\t\\t// Wrap multiple children into a single sequence component\\n\\t\\t\\treturn new Sequence(content);\\n\\t\\t}\\n\\t} else {\\n\\t\\t// Already single\\n\\t\\treturn content;\\n\\t}\\n}\\n\\n/////////////////////////// Leaf components\\n\\nvar Comment = function(text) {\\n\\tthis.initialiseLeaf(\\\"Comment\\\",text);\\n};\\n\\nComment.prototype
{"created":"20211015005125548","title":"$:/plugins/tobibeer/external","type":"application/json","text":"{\n \"tiddlers\": {\n \"$:/plugins/tobibeer/external/config\": {\n \"title\": \"$:/plugins/tobibeer/external/config\",\n \"text\": \"Configure external wikis under `$:/config/ExternalWiki/\u003Cwiki name>` specifying:\\n\\n; text\\r\\n: the url of the wiki (w/o final `#`)\\r\\n; top\\r\\n: a top margin ignored when rendering, e.g. wiki header\\r\\n; link\\r\\n: whether to display a link to the title\\r\\n; height\\r\\n: default iframe height for wiki\\n\\nThese defaults provide global fallbacks:\\n\\n\u003C\u003Clist-links \\\"height top link wiki +[addprefix[$:/plugins/tobibeer/external/defaults/]]\\\">>\"\n },\n \"$:/plugins/tobibeer/external/defaults/top\": {\n \"title\": \"$:/plugins/tobibeer/external/defaults/top\",\n \"text\": \"0px\"\n },\n \"$:/plugins/tobibeer/external/defaults/height\": {\n \"title\": \"$:/plugins/tobibeer/external/defaults/height\",\n \"text\": \"480px\"\n },\n \"$:/plugins/tobibeer/external/defaults/link\": {\n \"title\": \"$:/plugins/tobibeer/external/defaults/link\",\n \"text\": \"yes\"\n },\n \"$:/plugins/tobibeer/external/lingo/open\": {\n \"title\": \"$:/plugins/tobibeer/external/lingo/open\",\n \"text\": \"view at ''\u003C\u003CWIKI>>''\"\n },\n \"$:/plugins/tobibeer/external/depends\": {\n \"title\": \"$:/plugins/tobibeer/external/depends\",\n \"text\": \"This plugin depends on:\\n\\n* [[tobibeer/setvars|http://tobibeer.github.io/tw5-plugins/#setvars]]\\r\\n* [[tobibeer/split|http://tobibeer.github.io/tw5-plugins/#split]]\\n\\n\u003Cbr>\\n\\n; documentation / examples / demos...\\r\\n: http://tobibeer.github.io/tw5-plugins#external\"\n },\n \"$:/plugins/tobibeer/external/macro\": {\n \"title\": \"$:/plugins/tobibeer/external/macro\",\n \"tags\": \"$:/tags/Macro\",\n \"text\": \"\\\\define external-tiddler(wiki,title,height,top,link)\\n\u003C$setvars\\n _wiki = \\\"[all[current]split:first[: ]]\\\"\\n _wiki_default={{$:/plugins/tobibeer/external/defaults/wiki}}\\nWIKI=\\\"\\n (\\\\$wiki$\\\\ ? \\\\$wiki$\\\\) ||\\n ([wiki] ? [wiki]) ||\\n wiki_default\\\">\\n\u003C$setvars CONFIG=\\\"[config]\\\"\\n _config=\\\"[\u003CWIKI>addprefix[$:/config/ExternalWiki/]]\\\">\\n\u003C$list filter=\\\"[\u003CCONFIG>]\\\" variable=\\\"none\\\">\\n\u003C$setvars\\n _title=\\\"\\\"\\\"[all[current]split[: ]]\\\"\\\"\\\"\\n _height={{!!height}}\\n _height_wiki=\\\"[\u003CCONFIG>get[height]]\\\"\\n _height_default={{$:/plugins/tobibeer/external/defaults/height}}\\n _top=\\\"[\u003CCONFIG>get[top]]\\\"\\n _top_default={{$:/plugins/tobibeer/external/defaults/top}}\\n _server=\\\"[\u003CCONFIG>get[text]]\\\"\\n _link=\\\"[\u003CCONFIG>get[link]]\\\"\\n _link_default={{$:/plugins/tobibeer/external/defaults/link}}\\nLINK=\\\"\\n (\\\\$link$\\\\ ? \\\\$link$\\\\) ||\\n ([link] ? [link]) ||\\n link_default\\\"\\nTITLE=\\\"\\\"\\\"\\n (\\\\$title$\\\\ ? \\\\$title$\\\\) ||\\n [title[2,n][][: ]]\\\"\\\"\\\"\\nURL=\\\"\\\"\\\"[server]\\\\#\\\\TITLE\\\"\\\"\\\"\\nTOP=\\\"\\n (\\\\$top$\\\\ ? \\\\$top$\\\\ ) ||\\n ([top] ? [top] ) ||\\n top_default\\\"\\nHEIGHT=\\\"\\n (\\\\$height$\\\\ ? \\\\$height$\\\\) ||\\n (height ? height) ||\\n ([height_wiki] ? [height_wiki]) ||\\n height_default\\\"\\nHEIGHT_INNER=\\\"\\n \\\\calc(\\\\ HEIGHT \\\\ + \\\\ TOP \\\\)\\\\\\\"\\nSTYLE=\\\"\\n \\\\height:\\\\HEIGHT\\\\;\\\\\\\"\\nSTYLEFRAME=\\\"\\n \\\\height:\\\\HEIGHT_INNER\\\\;top:-\\\\TOP\\\\;\\\\\\\">\\n\u003C$list filter=\\\"[\u003CLINK>prefix[yes]]\\\">\\n\u003Ca href=\u003C\u003CURL>> target=\\\"_blank\\\">{{$:/plugins/tobibeer/external/lingo/open}}\u003C/a>\\n\u003C/$list>\\n\u003Cdiv class=\\\"tc-external-tiddler\\\" style=\u003C\u003CSTYLE>>>\\n\u003Ciframe src=\u003C\u003CURL>> style=\u003C\u003CSTYLEFRAME>> scrolling=\\\"no\\\"/>\\
{"text":"{\n \"tiddlers\": {\n \"$:/plugins/tobibeer/split/filter.js\": {\n \"text\": \"/*\\\\\\r\\ntitle: $:/plugins/tobibeer/split/filter.js\\r\\ntype: application/javascript\\r\\nmodule-type: filteroperator\\r\\n\\r\\nFilter operator that splits each item at a specified separator.\\r\\n\\r\\n@preserve\\r\\n\\\\*/\\n(function(){\\\"use strict\\\";exports.split=function(s,t,e){var i,a,f=e.wiki,r=t.suffix||\\\"\\\",n=[],l=[],u=[],o=[],p={negate:t.prefix===\\\"!\\\",split:t.operand,prefix:\\\"\\\",suffix:\\\"\\\",num:1,$num:1},c=[[/^\\\\s+/,function(){}],[/^(num|pos|\\\\$num|\\\\$pos)=(n|-n|\\\\d+|-\\\\d+)(?:\\\\s|$)/i,function(s){p[s[1]]=s[2];if(s[1].charAt(0)===\\\"$\\\"){p.mode=\\\"$pos\\\"}if(s[1]===\\\"$num\\\"&&!p.$pos){p.$pos=1}if(s[1]===\\\"num\\\"&&!p.pos){p.pos=1}}],[/^(\\\\+|at|!at|first|!first|last|!last|list|keep|strict|\\\\$strict|trim|unique)(?:\\\\s|$)/i,function(s){var t=s[1];p[t]=1;switch(t){case\\\"+\\\":p.suffix=p.split;break;case\\\"!at\\\":p.nat=1;case\\\"at\\\":i=p.split.match(/(\\\\d+),(\\\\d+)/);if(i){p.at=parseInt(i[1]);p.to=parseInt(i[2])}else{p.at=parseInt(p.split)}if(isNaN(p.at)){throw\\\"suffix 'at' must be numeric: \\\"+p.at}else{p.at=p.at-1}break;case\\\"list\\\":p.list=\\\"list\\\";break;case\\\"first\\\":p.pos=1;break;case\\\"!first\\\":p.pos=2;p.num=\\\"n\\\";break;case\\\"last\\\":p.pos=\\\"n\\\";break;case\\\"!last\\\":p.pos=\\\"-2\\\";p.num=\\\"-n\\\";break}}],[/^(before|after|beforelast|afterlast)(?:\\\\s|$)/i,function(s){var t=s[1];p.before=(t.toLowerCase().indexOf(\\\"before\\\")===0?1:2)+(t.toLowerCase().indexOf(\\\"last\\\")===t.length-4?2:0)}],[/^list\\\\=\\\\s*([^\\\\s]+)(?:\\\\s|$)/i,function(s){p.list=s[1]}],[/^(\\\\!)?(\\\\$|\\\\$all|\\\\$first|\\\\$last)(?:\\\\s|$)/i,function(s){var t=s[2];p.mode=t;p.neg=s[1]?1:0;if(t===\\\"$first\\\"){if(p.neg){p.$pos=2;p.$num=\\\"n\\\"}else{p.$pos=1}}else if(t===\\\"$last\\\"){if(p.neg){p.$pos=\\\"-2\\\";p.$num=\\\"-n\\\"}else{p.$pos=\\\"n\\\"}}}],[/^(?:\\\\+\\\\\\\\([^\\\\\\\\]+)\\\\\\\\|\\\\\\\\([^\\\\\\\\]+)\\\\\\\\\\\\+)/,function(s){if(s[1]){p.prefix=s[1]}else{p.suffix=s[2]}}]];try{while(r){a=r;$tw.utils.each(c,function(s){var t=s[0].exec(r);if(t){s[1].call(this,t);r=r.substr(t[0].length);return false}});if(r===a){throw\\\"invalid suffix(es) '\\\"+r+\\\"'\\\"}}if(p.list&&p.split){o=$tw.utils.parseStringArray(p.split)}else{s(function(s,t){var e,a,r=[];l.push(t);if(p.before){i=1+(p.before\u003C3?t.indexOf(p.split):t.lastIndexOf(p.split));if(i>0){r=[p.before%2===1?t.substr(0,i-1):t.substr(i+p.split.length-1)]}if(p.keep&&i===0){r[0]=t}}else if(p.at){if(p.to){r=p.nat?[t.substr(0,p.at)+t.substr(p.at+p.to)]:[t.substr(p.at,p.to)];if(p.keep&&r[0]===\\\"\\\"){r[0]=t}}else{r=[t.substr(0,p.at)];a=t.substr(p.at);if(a){r.push(a)}}}else if(p.list){r=f.getTiddlerList(t,p.list)}else{r=t.split(p.split)}e=r.length>1||p.list||r.length>0&&(p.before||p.to);if(p.pos){r=$tw.utils.getArrayItems(r,p.pos,p.num,p.strict)}if(r.length&&(e||p.keep)){n.push(t);$tw.utils.each(r,function(s){if(p.trim){s=s.trim()}if(s){if(!p.unique||p.unique&&o.indexOf(s)\u003C0){o.push(p.prefix+s+p.suffix)}}})}else{u.push(t)}})}if(t.suffix){switch(p.mode){case\\\"$\\\":o=n;break;case\\\"$all\\\":if(o.length){if(p.negate){u=[]}else{o=l}}else if(p.negate){u=l}break;case\\\"$first\\\":case\\\"$last\\\":case\\\"$pos\\\":o=$tw.utils.getArrayItems(o,p.$pos,p.$num,p.$strict);break}}}catch($){return[\\\"split syntax error:\\\"+$]}return p.negate?u:o}})();\",\n \"title\": \"$:/plugins/tobibeer/split/filter.js\",\n \"type\": \"application/javascript\",\n \"module-type\": \"filteroperator\"\n },\n \"$:/plugins/tobibeer/split/readme\": {\n \"title\": \"$:/plugins/tobibeer/split/readme\",\n \"text\": \"Provides the filter `split[by]`, splitting input titles `by` a string defined in the operand, allowing you to slice and dice output elements as needed.\\n\\n; suffixes\\r\\n: `$` — return input titles that yield split items\\r\\n: `$all` — return all input titles if any yield split items\\r\\n: `+` — ap
{"created":"20160514163926446","creator":"Mat von TWaddle","text":"","top":"0","title":"$:/plugins/TWaddle/SideEditor/Metrics","tags":"","modifier":"M0","modified":"20220904212518096","left":"64"},
{"title":"$:/plugins/wikilabs/link-to-tabs","type":"application/json","text":"{\n \"tiddlers\": {\n \"$:/core/macros/tabs\": {\n \"title\": \"$:/core/macros/tabs\",\n \"tags\": \"$:/tags/Macro\",\n \"text\": \"\\\\define tabs(tabsList,default,state:\\\"$:/state/tab\\\",class,template,buttonTemplate,retain,actions,explicitState)\\n\u003C$set name=\\\"qualifiedState\\\" value=\u003C\u003Cqualify \\\"$state$\\\">>>\\n\u003C$set name=\\\"tabsState\\\" filter=\\\"[\u003C__explicitState__>minlength[1]] ~[\u003CqualifiedState>]\\\">\\n\u003Cdiv class=\\\"tc-tab-set $class$\\\">\\n\u003Cdiv class=\\\"tc-tab-buttons $class$\\\">\\n\u003C$list filter=\\\"$tabsList$\\\" variable=\\\"currentTab\\\" storyview=\\\"pop\\\">\u003C$set name=\\\"save-currentTiddler\\\" value=\u003C\u003CcurrentTiddler>>>\u003C$tiddler tiddler=\u003C\u003CcurrentTab>>>\u003C$button set=\u003C\u003CtabsState>> setTo=\u003C\u003CcurrentTab>> default=\\\"$default$\\\" selectedClass=\\\"tc-tab-selected\\\" tooltip={{!!tooltip}}>\\n\u003C$tiddler tiddler=\u003C\u003Csave-currentTiddler>>>\\n\u003C$set name=\\\"tv-wikilinks\\\" value=\\\"no\\\">\\n\u003C$transclude tiddler=\\\"$buttonTemplate$\\\" mode=\\\"inline\\\">\\n\u003C$transclude tiddler=\u003C\u003CcurrentTab>> field=\\\"caption\\\">\\n\u003C$macrocall $name=\\\"currentTab\\\" $type=\\\"text/plain\\\" $output=\\\"text/plain\\\"/>\\n\u003C/$transclude>\\n\u003C/$transclude>\\n\u003C/$set>\u003C/$tiddler>$actions$\u003C/$button>\u003Cspan class=\\\"wltc-link-to-tab\\\">\u003C$link overrideClass=\\\"\\\" to=\u003C\u003CcurrentTiddler>> >{{$:/core/images/link}}\u003C/$link>\u003C/span>\u003C/$tiddler>\u003C/$set>\u003C/$list>\\n\u003C/div>\\n\u003Cdiv class=\\\"tc-tab-divider $class$\\\"/>\\n\u003Cdiv class=\\\"tc-tab-content $class$\\\">\\n\u003C$list filter=\\\"$tabsList$\\\" variable=\\\"currentTab\\\">\\n\\n\u003C$reveal type=\\\"match\\\" state=\u003C\u003CtabsState>> text=\u003C\u003CcurrentTab>> default=\\\"$default$\\\" retain=\\\"\\\"\\\"$retain$\\\"\\\"\\\">\\n\\n\u003C$transclude tiddler=\\\"$template$\\\" mode=\\\"block\\\">\\n\\n\u003C$transclude tiddler=\u003C\u003CcurrentTab>> mode=\\\"block\\\"/>\\n\\n\u003C/$transclude>\\n\\n\u003C/$reveal>\\n\\n\u003C/$list>\\n\u003C/div>\\n\u003C/div>\\n\u003C/$set>\\n\u003C/$set>\\n\\\\end\\n\"\n },\n \"$:/core/ui/ControlPanel/Settings/link-to-tabs\": {\n \"title\": \"$:/core/ui/ControlPanel/Settings/link-to-tabs\",\n \"caption\": \"Link-to-Tabs plugin\",\n \"created\": \"20190712133607244\",\n \"modified\": \"20190714104631250\",\n \"tags\": \"$:/tags/ControlPanel/Settings\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\u003C$checkbox tiddler=\\\"$:/plugins/wikilabs/link-to-tabs/config\\\" field=\\\"show-all-links\\\" checked=\\\"inline-block\\\" unchecked=\\\"none\\\" default=\\\"none\\\"> Show internal tab link for ''all tabs''\u003C/$checkbox>\\n\\n\u003C$checkbox tiddler=\\\"$:/plugins/wikilabs/link-to-tabs/config\\\" field=\\\"show-single-link\\\" checked=\\\"inline-block\\\" unchecked=\\\"none\\\" default=\\\"inline-block\\\"> Show internal tab link for ''selected tabs''\u003C/$checkbox>\\n\\n\u003C$checkbox tiddler=\\\"$:/plugins/wikilabs/link-to-tabs/config\\\" field=\\\"initial-opacity\\\" checked=\\\"0\\\" unchecked=\\\"0.7\\\" default=\\\"0.7\\\"> Tab links are initially hidden and need mouse hover to become visible.\u003C/$checkbox> The transition time in seconds is: \u003C$edit-text tiddler=\\\"$:/plugins/wikilabs/link-to-tabs/config\\\" field=\\\"transition\\\" default=\\\"0.3\\\"/>\\n\\n\u003C$button message=\\\"tm-delete-tiddler\\\" param=\\\"$:/plugins/wikilabs/link-to-tabs/config\\\">\\nReset to Default!\\n\u003C/$button>\"\n },\n \"$:/plugins/wikilabs/link-to-tabs/config\": {\n \"title\": \"$:/plugins/wikilabs/link-to-tabs/config\",\n \"created\": \"20190712133008077\",\n \"initial-opacity\": \"0.7\",\n \"modified\": \"20190714104541701\"
{"created":"20220820014121930","creator":"M0","title":"$:/state/AddNote","text":"Organizando una Feria/","modified":"20220820014121930","modifier":"M0"},
{"created":"20220904053520857","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 2 of 'proyectos' by M0/Copincha","text":"open","modified":"20220904053940536","modifier":"M0"},
{"created":"20220904053348378","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 2 of 'proyectos/copincha' by M0/Caracteristicas","text":"closed","modified":"20220904054044193","modifier":"M0"},
{"created":"20220904054813825","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 4 of 'proyectos/copincha' by M0/Caracteristicas","text":"open","modified":"20220904054813825","modifier":"M0"},
{"created":"20220904054453625","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 4 of 'proyectos/copincha' by M0/Resumen","text":"open","modified":"20220904054545089","modifier":"M0"},
{"created":"20220904055906762","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 4 of 'proyectos/copincha' by M0/Wiki","text":"open","modified":"20220904055906762","modifier":"M0"},
{"created":"20220904060453850","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft 5 of 'proyectos/copincha' by M0/Conucos","text":"open","modified":"20220904060504424","modifier":"M0"},
{"created":"20220904052048024","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft of 'Nuevo Tiddler 6' by M0/Copincha","text":"open","modified":"20220904052115031","modifier":"M0"},
{"created":"20220904051703008","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft of 'Nuevo Tiddler 6' by M0/Simple text","text":"open","modified":"20220904052034591","modifier":"M0"},
{"created":"20220904162207119","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft of 'proyectos' by M0/Copincha","text":"open","modified":"20220904162207119","modifier":"M0"},
{"created":"20220904052955392","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft of 'proyectos/copincha' by M0/Caracteristicas","text":"closed","modified":"20220904053113568","modifier":"M0"},
{"created":"20220904052458720","creator":"M0","title":"$:/state/shiraz/slider-macro/Draft of 'proyectos/copincha' by M0/Copincha","text":"open","modified":"20220904052515032","modifier":"M0"},
{"created":"20220904052735521","creator":"M0","title":"$:/state/shiraz/slider-macro/slider ejemplo texto1/Texto Nivel 1","text":"open","modified":"20220904052735521","modifier":"M0"},
{"created":"20220904053515137","creator":"M0","title":"$:/state/shiraz/slider-macro/slider ejemplo texto4/Texto Nivel 4","text":"closed","modified":"20220904053515863","modifier":"M0"},
{"created":"20220904031710660","creator":"M0","title":"$:/state/sq/streams/current-edit-tiddler--2110055736","text":"16 de septiembre de 2022/20220820165428838","modified":"20220904031710660","modifier":"M0"},
{"created":"20220517033658008","creator":"M0","title":"$:/Tekan/CurrentBoard","text":"Organizando una Feria","modified":"20220605175549340","modifier":"M0"},
{"created":"20170922171503833","text":"\u003C$button tooltip=\"View as a Tekan Board\" aria-label=\"Board\" class=\u003C\u003Ctv-config-toolbar-class>>>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/storyview-classic}}\n\u003C/$list>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-text>prefix[yes]]\">\n\u003Cspan class=\"tc-btn-text\">\u003C$text text={{$:/language/Buttons/Close/Caption}}/>\u003C/span>\n\u003C/$list>\n\u003C$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\">\n\u003C$action-setfield tags=\"TwelloMode\"/>\n\u003C/$list>\n\u003C$action-setfield $tiddler=\"$:/Tekan/Main\" tags=\"$:/tags/PageTemplate\"/>\n\u003C$action-listops $tiddler=\"$:/Tekan/Substyles\" $tags=\"$:/tags/Stylesheet\"/>\n\u003C$action-setfield $tiddler=\"$:/Tekan/CurrentBoard\" text=\u003C\u003CcurrentTiddler>>/>\n\n\u003C/$button>","title":"$:/Tekan/TiddlerToBoard","tags":"$:/tags/ViewToolbar","modified":"20170922172348220"},
{"text":"{\n \"tiddlers\": {\n \"$:/themes/nico/notebook/LICENSE\": {\n \"title\": \"$:/themes/nico/notebook/LICENSE\",\n \"created\": \"20200419141443144\",\n \"modified\": \"20210118213330307\",\n \"tags\": \"\",\n \"type\": \"text/vnd.tiddlywiki\",\n \"text\": \"\\nMIT License Copyright (c) 2020 [[Nicolas Petton|https://nicolas.petton.fr]] nicolas@petton.fr\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy\\nof this software and associated documentation files (the \\\"Software\\\"), to deal\\nin the Software without restriction, including without limitation the rights\\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\\ncopies of the Software, and to permit persons to whom the Software is furnished\\nto do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice (including the next\\nparagraph) shall be included in all copies or substantial portions of the\\nSoftware.\\n\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\\n\"\n },\n \"$:/themes/nico/notebook/themetweaks\": {\n \"title\": \"$:/themes/nico/notebook/themetweaks\",\n \"created\": \"20201217172915960\",\n \"modified\": \"20210123211851680\",\n \"tags\": \"$:/tags/ControlPanel/Appearance\",\n \"caption\": \"{{$:/language/ThemeTweaks/ThemeTweaks}}\",\n \"text\": \"\\\\define lingo-base() $:/language/ThemeTweaks/\\n\\nYou can tweak certain aspects of the ''Notebook'' theme.\\n\\n! \u003C\u003Clingo Options>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003C\u003Clingo Options/StickyTitles>>\u003C/$link>\u003Cbr>//\u003C\u003Clingo Options/StickyTitles/Hint>>// |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/stickytitles\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003C\u003Clingo Options/CodeWrapping>>\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/tiddlywiki/vanilla/options/codewrapping\\\">\u003Coption value=\\\"pre\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"pre-wrap\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">Reveal tiddler controls on mouseover\u003C/$link> |\u003C$select tiddler=\\\"$:/themes/nico/notebook/options/reveal-tiddler-controls-on-hover\\\">\u003Coption value=\\\"no\\\">{{$:/language/No}}\u003C/option>\u003Coption value=\\\"yes\\\">{{$:/language/Yes}}\u003C/option>\u003C/$select> |\\n\\n! \u003C\u003Clingo Settings>>\\n\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/fontfamily\\\">\u003C\u003Clingo Settings/FontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/fontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\">\u003C\u003Clingo Settings/CodeFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/codefontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n|\u003C$link to=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\">\u003C\u003Clingo Settings/EditorFontFamily>>\u003C/$link> |\u003C$edit-text tiddler=\\\"$:/themes/nico/notebook/settings/editorfontfamily\\\" default=\\\"\\\" tag=\\\"input\\\"/> | |\\n\\n! \u003C\u003Clingo Metrics>>\\n\\n|\u003C$link to=\\\"$:/themes/tiddl
{"created":"20220828145325035","creator":"M0","text":"hora: 4 a 8pm","parent":"08/28/2022","stream-type":"default","stream-list":"","modified":"20220904032446987","modifier":"M0","title":"08/28/2022/20220828145325031","tmap.id":"d3912632-f2a7-4459-995f-3f7a435d3536"},
{"text":"Hola, Bienvenido al Cafe Sorpesa.Mi nombre es Maurice, soy cubano, disenador industrial y soy fundador de Copincha, un hackerspace en La habana.\n\nCafe sorpresa es un espacio donde contamos experiencias en practicas tecnologicas o materiales diversas. Para estimular otras. lo haciamos de forma fisica antes de la pandemia. y ahora exploramos hacerlo de forma virtual\n\nEn este Cafe Sorpresa que se titula Tiddlywiki, expeculaciones colombo - cubanas.\n\nvamos a hablar fundamentalmente sobre cuadernos de notas, infraestructuras de bolsillo, jardines digitales y muchas otras cosas seguramente.\n\n!! Temas\n\n*Copincha y la necesidad de documentar\n*!! El contexto en Cuba con el acceso a internet y la distribucion de contenidos\n*!! Por que tiddlywiki\n\n!! Copincha y la necesidad de documentar\n*que es copincha\n*conuco\n*con nuestros propios esfuerzos\n* propiciar la participacion ciudadana\n\n*la necesidad de documentar\n*que es copinchapedia\n* subgrupos\n\n!! El contexto cubano\n\n*el acceso a internet es limitado por los precios\n* han surgido arternativas de redes y distribucion de contenidos\n*SNET\n*Paquete semanal\n*Casas de copias\n\n* pensar la copinchapedia accesible de muchas maneras\n\n!! Por que tiddlywiki\n* encuentro con Grafoscopio\n* Infraestructuras de bolsillo:\n* simples \n* autocontenidas\n* funcionan en y fuera de linea\n* Se pueden abrir en casi todos los dispositivos\n\n* es un archivo html\n\ntiddlywiki\n*sistema de fichas (tiddlers)\n*porciones de informacion que vas agregando y pueden servir para ampliar:\n\n*contenido del wiki\n*la funcionalidad del wiki\n\n*tiddlers tienen un nombre unico\n\n*tiddlers se interconectan por:\n*enlaces de hipertexto\n*por transclusiones\n\nel contenido crece y se hace mas recombinable\n\n*mas granular\n*modelar mas \n\nCompartir tiddlers\nes un archivo html \ncuando compartes le estas dando al otro el contenido y la infraestructura.\n\n* manera comun de compartir\n* reunir informacion para crear espacios colectivos\n*construir memoria colectiva\n\n!!Jardines digitles\n*wikis en progreso\n*de asociación libre \n*colecionan ideas notas e ideas en evolución\n*no están en orden conológico estricto\n\n*Las notas están vinculadas a través de asociaciones contextuales–. \n\n*No están refinados o completos y crecen y evolucionan con el tiempo. \n\n\n\n!! Autorreferencialidad\n\nQue conducta espacial provocamos \n\npermisibilidad del cuerpo para entrar en accion\n\nHay que permitir a las personas hablar desde sus contextos. Esto tambien busca el cafe sorpresa.\nLas personas se tienen que sentir comodas. Ver la contribucion como es algo propio. Encontrar un sentido de pertenencia para luego entrar en accion\n\nLo autorreferencial\n\ncrea una empatia entre el artefacto y la persona... \n\nva con sentirse autoeficaz\n\nver el artefacto como una extension simbolica de tu cuerpo.\n\n\n\n\n\n\n\n\n\n\n!! Proyectos\n* Cuadernos personales\n* Archivo informal\n* Mapas colaborativos\n* Pa la Minga\n\nInformacion en tiddlywiki, significa informacion en fichas y conexiones faciles de compartir.\n\n\n!! En el Taller\nlo basico para \n*crear nuestro cuaderno personal\n* crear contenido\n* compartir entre pares\n* publicarlo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","title":"Cafe Sorpresa - 21 de mayo de 2021 1","tags":"","modified":"20210530065614030","created":"20210521175652160","tmap.id":"374d6044-29c1-4a69-84f0-cb67cb50013b"},
{"text":"!! mapa \ncartografia social de bolsillo\n\nirreductibilidad - intercambiabilidad\n\nla sociedad reidifica el pensamiento\n\nes reidificado por la cibernetica\n\nproblema de la cibernetica es la cerradura\n\nno hay \n\nel diseno es un saber en red\n\nescape que asume el mundo.... asume la posibilidad de volver\n\nno puede existir un nomadismo.\n\nno acumulativa\n\nproducir una relacion linre con el mundo\n\nnuevas formas de habitar\n\nhabito\n\n\nsociotecnicas colectivas\n\nhumanos que usan tecnologias\n\nprogramacion orientada a mensajes\n\n\n\nescape donde no hay forma de vida ","title":"Cibernetica","tags":"","modified":"20210923091207068","created":"20210923091106430","tmap.id":"1f5a0b8d-97c4-45c7-83f4-74287c102e9a"},
{"text":"! Comentar \n\n```\n\u003C!-- esto es un comentario -->\n```\n| \u003C!-- esto es un comentario --> |\n\n!Codigo\n`hola`\n\n!Frase\n\u003C\u003C\u003C.tc-big-quote\nA dramatic quote\n\u003C\u003C\u003C Somebody Important","title":"codigo HTML","tags":"","modifier":"M0","modified":"20210310003132205","creator":"M0","created":"20210309210559570","tmap.id":"4b2d3afb-f328-4c12-96d7-6d642ddbccfe"},
{"text":"Una vez instalado abre el archivo desde [[TiddlyDesktop|https://github.com/Jermolene/TiddlyDesktop]] \no Firefox con el [[plugin file-backups|https://pmario.github.io/file-backups/]] instalado\ny entra a [[Panel de Control|$:/ControlPanel]] y cambia los parámetros habituales: \ntítulo del sitio, subtítulo, usuario/autora del wiki, etc y guarda los cambios.","title":"Configuración","tags":"","modified":"20210115160923702","created":"20210115160900945","tmap.id":"b77a8643-f547-4b86-b800-73134e0b00d2"},
{"text":" \n\n\n \u003Cdiv class=\"row ui-content\" style=\"\">\n \n \u003Cdiv class=\"ui-view-area\">\n \u003C/div>\u003C/div>\u003Ch1 class=\"part\" data-startline=\"6\" data-endline=\"6\" id=\"copinchapedia\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#copinchapedia\" title=\"copinchapedia\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Copinchapedia\u003C/h1>\u003Cp class=\"part\" data-startline=\"9\" data-endline=\"9\">\u003Ca href=\"https://copinchapedia.copincha.org/es/home\" target=\"_blank\" rel=\"noopener\">Copinchapedia\u003C/a>\n es un sitio para documentar colaborativamente el conocimiento y las \nexperiencias colectivas de creación e innovación tecnológicas que \nsuceden en la comunidad Copincha. Todo el trabajo se publica bajo una \nlicencia de atribución de Creative Commons.\u003C/p>\u003Cp class=\"part\" data-startline=\"11\" data-endline=\"11\">Por\n favor, entienda este repositorio como un documento vivo, que está \ncambiando todo el tiempo. A menudo se agregan ligeros ajustes, una \nsección completamente nueva o se elimina algo que ya no es relevante. \nAsí que espere enlaces rotos y errores de escritura ocasionales en \nmaterial nuevo. Hacemos lo mejor posible para tratar de mantenerlo \nordenado.\u003C/p>\u003Cp class=\"part\" data-startline=\"13\" data-endline=\"13\">Al \nrecopilar estos materiales, hemos tomado prestado ocasionalmente muchos \nrecursos en línea (como: textos, imágenes o ideas inspiradoras). La \nsección de reconocimiento de cada página intenta reunir el crédito para \ntodas las fuentes. Por favor, si encuentra alguna omisión o igualmente \npara brindarnos sus preguntas y comentarios, use el chat.\u003C/p>\u003Ch2 class=\"part\" data-startline=\"15\" data-endline=\"15\" id=\"exploración-de-versión-fuera-de-línea\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#exploración-de-versión-fuera-de-línea\" title=\"exploración-de-versión-fuera-de-línea\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Exploración de versión fuera de línea\u003C/h2>\u003Cp class=\"part\" data-startline=\"17\" data-endline=\"17\">Luego de la charla con motivo del DOTS, se pensó en una variante de la Copinchapedia\u003C/p>\u003Cp class=\"part\" data-startline=\"19\" data-endline=\"19\">Las tecnologías que vamos a empezar a explorar serán:\u003C/p>\u003Cul class=\"part\" data-startline=\"21\" data-endline=\"25\">\n\u003Cli class=\"\" data-startline=\"21\" data-endline=\"21\">\u003Ca href=\"https://docutopia.tupale.co/copinchapedia:tiddlywiki#\" target=\"_blank\" rel=\"noopener\">TiddlyWiki\u003C/a>.\u003C/li>\n\u003Cli class=\"\" data-startline=\"22\" data-endline=\"22\">\u003Ca href=\"https://docutopia.tupale.co/fossil\" target=\"_blank\" rel=\"noopener\">Fossil\u003C/a>.\u003C/li>\n\u003Cli class=\"\" data-startline=\"23\" data-endline=\"23\">\u003Ca href=\"https://docutopia.tupale.co/markdown\" target=\"_blank\" rel=\"noopener\">Markdown\u003C/a>\u003C/li>\n\u003Cli class=\"\" data-startline=\"24\" data-endline=\"25\">Y migraremos desde Wiki.js\u003C/li>\n\u003C/ul>\u003Ch2 class=\"part\" data-startline=\"26\" data-endline=\"26\" id=\"instalación-de-software\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#instalación-de-software\" title=\"instalación-de-software\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Instalación de Software\u003C/h2>\u003Cp class=\"part\" data-startline=\"29\" data-endline=\"29\">Instalaremos el gestor de paquetes \u003Ca href=\"https://scoop.sh/\" target=\"_blank\" rel=\"noopener\">Scoop\u003C/a>.\u003C/p>\u003Col class=\"part\" data-startline=\"31\" data-endline=\"43\">\n\u003Cli class=\"\" data-startline=\"31\" data-endline=\"31\">\n\u003Cp>Abrimos PowerShell.\u003C/p>\n\u003C/li>\n\u003Cli class=\"\" data-startline=\"32\" data-endline=\"43\">\n\u003Cp>Escrimos lo siguiente\u003C/p>\n\u003Cpre>\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u
{"text":" \n\n\n \u003Cdiv class=\"row ui-content\" style=\"\">\n \n \u003Cdiv class=\"ui-view-area\">\n \u003C/div>\u003C/div>\u003Ch1 class=\"part\" data-startline=\"6\" data-endline=\"6\" id=\"copinchapedia\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#copinchapedia\" title=\"copinchapedia\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Copinchapedia\u003C/h1>\u003Cp class=\"part\" data-startline=\"9\" data-endline=\"9\">\u003Ca href=\"https://copinchapedia.copincha.org/es/home\" target=\"_blank\" rel=\"noopener\">Copinchapedia\u003C/a>\n es un sitio para documentar colaborativamente el conocimiento y las \nexperiencias colectivas de creación e innovación tecnológicas que \nsuceden en la comunidad Copincha. Todo el trabajo se publica bajo una \nlicencia de atribución de Creative Commons.\u003C/p>\u003Cp class=\"part\" data-startline=\"11\" data-endline=\"11\">Por\n favor, entienda este repositorio como un documento vivo, que está \ncambiando todo el tiempo. A menudo se agregan ligeros ajustes, una \nsección completamente nueva o se elimina algo que ya no es relevante. \nAsí que espere enlaces rotos y errores de escritura ocasionales en \nmaterial nuevo. Hacemos lo mejor posible para tratar de mantenerlo \nordenado.\u003C/p>\u003Cp class=\"part\" data-startline=\"13\" data-endline=\"13\">Al \nrecopilar estos materiales, hemos tomado prestado ocasionalmente muchos \nrecursos en línea (como: textos, imágenes o ideas inspiradoras). La \nsección de reconocimiento de cada página intenta reunir el crédito para \ntodas las fuentes. Por favor, si encuentra alguna omisión o igualmente \npara brindarnos sus preguntas y comentarios, use el chat.\u003C/p>\u003Ch2 class=\"part\" data-startline=\"15\" data-endline=\"15\" id=\"exploración-de-versión-fuera-de-línea\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#exploración-de-versión-fuera-de-línea\" title=\"exploración-de-versión-fuera-de-línea\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Exploración de versión fuera de línea\u003C/h2>\u003Cp class=\"part\" data-startline=\"17\" data-endline=\"17\">Luego de la charla con motivo del DOTS, se pensó en una variante de la Copinchapedia\u003C/p>\u003Cp class=\"part\" data-startline=\"19\" data-endline=\"19\">Las tecnologías que vamos a empezar a explorar serán:\u003C/p>\u003Cul class=\"part\" data-startline=\"21\" data-endline=\"25\">\n\u003Cli class=\"\" data-startline=\"21\" data-endline=\"21\">\u003Ca href=\"https://docutopia.tupale.co/copinchapedia:tiddlywiki#\" target=\"_blank\" rel=\"noopener\">TiddlyWiki\u003C/a>.\u003C/li>\n\u003Cli class=\"\" data-startline=\"22\" data-endline=\"22\">\u003Ca href=\"https://docutopia.tupale.co/fossil\" target=\"_blank\" rel=\"noopener\">Fossil\u003C/a>.\u003C/li>\n\u003Cli class=\"\" data-startline=\"23\" data-endline=\"23\">\u003Ca href=\"https://docutopia.tupale.co/markdown\" target=\"_blank\" rel=\"noopener\">Markdown\u003C/a>\u003C/li>\n\u003Cli class=\"\" data-startline=\"24\" data-endline=\"25\">Y migraremos desde Wiki.js\u003C/li>\n\u003C/ul>\u003Ch2 class=\"part\" data-startline=\"26\" data-endline=\"26\" id=\"instalación-de-software\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#instalación-de-software\" title=\"instalación-de-software\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>Instalación de Software\u003C/h2>\u003Cp class=\"part\" data-startline=\"29\" data-endline=\"29\">Instalaremos el gestor de paquetes \u003Ca href=\"https://scoop.sh/\" target=\"_blank\" rel=\"noopener\">Scoop\u003C/a>.\u003C/p>\u003Col class=\"part\" data-startline=\"31\" data-endline=\"43\">\n\u003Cli class=\"\" data-startline=\"31\" data-endline=\"31\">\n\u003Cp>Abrimos PowerShell.\u003C/p>\n\u003C/li>\n\u003Cli class=\"\" data-startline=\"32\" data-endline=\"43\">\n\u003Cp>Escrimos lo siguiente\u003C/p>\n\u003Cpre>\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u
{"text":" \n\n\n \u003Cdiv class=\"row ui-content\" style=\"\">\n \n \u003Cdiv class=\"ui-view-area\">\n \u003C/div>\u003C/div>\u003Ch1 class=\"part\" data-startline=\"6\" data-endline=\"6\" id=\"tiddlywiki\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#tiddlywiki\" title=\"tiddlywiki\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>TiddlyWiki\u003C/h1>\u003Cp class=\"part\" data-startline=\"8\" data-endline=\"8\">Estas instrucciones muestran cómo implementar la Copinchapedia usando TiddlyWiki.\u003C/p>\u003Cp class=\"part\" data-startline=\"10\" data-endline=\"12\">Supondremos que el \u003Ca href=\"https://mutabit.com/repos.fossil/copincha/\" target=\"_blank\" rel=\"noopener\">repositorio\u003C/a> está\nguardado en la carpeta de Descargas, pues usaremos un plugin de Firefox para TiddlyWiki\nque tiene esa precondición.\u003C/p>\u003Cp class=\"part\" data-startline=\"14\" data-endline=\"16\">Creamos una carpeta \u003Ccode>copinchapedia/\u003C/code> y dentro de ella el archivo \u003Ccode>index.html\u003C/code> será\nel TiddlyWiki, de modo que si movemos dicha carpeta a un servidor web, este lea\npor omisión el archivo \u003Ccode>index.html\u003C/code>.\u003C/p>\u003Cpre class=\"part\" data-startline=\"18\" data-endline=\"21\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u003Cpre class=\"part\" data-startline=\"18\" data-endline=\"21\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003Cdiv class=\"code\">mkdir ~/Descargas/Copincha/copinchapedia\n\u003Cspan class=\"hljs-built_in\">cd\u003C/span> ~/Descargas/Copincha/copinchapedia/\n\u003C/div>\u003C/div>\u003C/code>\u003C/pre>\u003Cp class=\"part\" data-startline=\"23\" data-endline=\"23\">Descargamos, desde la carpeta \u003Ccode>copinchapedia/\u003C/code> una variante de TiddlyWiki que viene mejorada para dispositivos móviles:\u003C/p>\u003Cpre class=\"part\" data-startline=\"25\" data-endline=\"28\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u003Cpre class=\"part\" data-startline=\"25\" data-endline=\"28\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003Cdiv class=\"code\">wget https://mutabit.com/repos.fossil/tiddlywiki/uv/seeds/notebook/notebook-mod.html\nmv notebook-mod.html index.html\n\u003C/div>\u003C/div>\u003C/code>\u003C/pre>\u003Cdiv class=\"alert alert-info part\" data-startline=\"30\" data-endline=\"31\">\n\u003Cp>\u003Cstrong>Importante\u003C/strong>: Instalamos el plugin de Firefox \u003Ca href=\"https://pmario.github.io/file-backups/\" target=\"_blank\" rel=\"noopener\">File Backups for TiddlyWiki\u003C/a> para los pasos de acá en adelante.\u003C/p>\n\u003C/div>\u003Cp class=\"part\" data-startline=\"34\" data-endline=\"35\">Abrimos el archivo \u003Ccode>copinchapedia/index.html\u003C/code> anterior desde Firefox.\nVeremos algo como esto:\u003C/p>\u003Cp class=\"part\" data-startline=\"37\" data-endline=\"37\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_473b5907c8fb07b718eb3a5c5573c0e2.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"39\" data-endline=\"40\">Y cliqueamos la ruedita dentada del menú superior para acceder a la configuración y\ncolocamos el título, el subtítulo y los Tiddlers por omisión:\u003C/p>\u003Cp class=\"part\" data-startline=\"42\" data-endline=\"42\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_9a09abeb76faa489cbe124760c3862fc.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"44\" data-endline=\"45\">Creamos un Tiddler de bienvenida, que será mostrado por omisión. En nuestro caso, el de Copinchapedia.\nSe vería algo así:\u003C/p>\u003Cp class=\"part\" data-startline=\"47\" data-endline=\"47\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_ba0c587627b18a0a84a5640a8ff0e3d6.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"49\" data-endline=\"51\">Subimos este archivo como archivo archivo no versionado al reposit
{"text":" \n\n\n \u003Cdiv class=\"row ui-content\" style=\"\">\n \n \u003Cdiv class=\"ui-view-area\">\n \u003C/div>\u003C/div>\u003Ch1 class=\"part\" data-startline=\"6\" data-endline=\"6\" id=\"tiddlywiki\">\u003Ca class=\"anchor hidden-xs\" href=\"https://docutopia.tupale.co/#tiddlywiki\" title=\"tiddlywiki\" smoothhashscroll=\"\">\u003Ci class=\"fa fa-link\">\u003C/i>\u003C/a>TiddlyWiki\u003C/h1>\u003Cp class=\"part\" data-startline=\"8\" data-endline=\"8\">Estas instrucciones muestran cómo implementar la Copinchapedia usando TiddlyWiki.\u003C/p>\u003Cp class=\"part\" data-startline=\"10\" data-endline=\"12\">Supondremos que el \u003Ca href=\"https://mutabit.com/repos.fossil/copincha/\" target=\"_blank\" rel=\"noopener\">repositorio\u003C/a> está\nguardado en la carpeta de Descargas, pues usaremos un plugin de Firefox para TiddlyWiki\nque tiene esa precondición.\u003C/p>\u003Cp class=\"part\" data-startline=\"14\" data-endline=\"16\">Creamos una carpeta \u003Ccode>copinchapedia/\u003C/code> y dentro de ella el archivo \u003Ccode>index.html\u003C/code> será\nel TiddlyWiki, de modo que si movemos dicha carpeta a un servidor web, este lea\npor omisión el archivo \u003Ccode>index.html\u003C/code>.\u003C/p>\u003Cpre class=\"part\" data-startline=\"18\" data-endline=\"21\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u003Cpre class=\"part\" data-startline=\"18\" data-endline=\"21\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003Cdiv class=\"code\">mkdir ~/Descargas/Copincha/copinchapedia\n\u003Cspan class=\"hljs-built_in\">cd\u003C/span> ~/Descargas/Copincha/copinchapedia/\n\u003C/div>\u003C/div>\u003C/code>\u003C/pre>\u003Cp class=\"part\" data-startline=\"23\" data-endline=\"23\">Descargamos, desde la carpeta \u003Ccode>copinchapedia/\u003C/code> una variante de TiddlyWiki que viene mejorada para dispositivos móviles:\u003C/p>\u003Cpre class=\"part\" data-startline=\"25\" data-endline=\"28\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003C/div>\u003C/code>\u003C/pre>\u003Cpre class=\"part\" data-startline=\"25\" data-endline=\"28\">\u003Ccode class=\"bash hljs\">\u003Cdiv class=\"wrapper\">\u003Cdiv class=\"code\">wget https://mutabit.com/repos.fossil/tiddlywiki/uv/seeds/notebook/notebook-mod.html\nmv notebook-mod.html index.html\n\u003C/div>\u003C/div>\u003C/code>\u003C/pre>\u003Cdiv class=\"alert alert-info part\" data-startline=\"30\" data-endline=\"31\">\n\u003Cp>\u003Cstrong>Importante\u003C/strong>: Instalamos el plugin de Firefox \u003Ca href=\"https://pmario.github.io/file-backups/\" target=\"_blank\" rel=\"noopener\">File Backups for TiddlyWiki\u003C/a> para los pasos de acá en adelante.\u003C/p>\n\u003C/div>\u003Cp class=\"part\" data-startline=\"34\" data-endline=\"35\">Abrimos el archivo \u003Ccode>copinchapedia/index.html\u003C/code> anterior desde Firefox.\nVeremos algo como esto:\u003C/p>\u003Cp class=\"part\" data-startline=\"37\" data-endline=\"37\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_473b5907c8fb07b718eb3a5c5573c0e2.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"39\" data-endline=\"40\">Y cliqueamos la ruedita dentada del menú superior para acceder a la configuración y\ncolocamos el título, el subtítulo y los Tiddlers por omisión:\u003C/p>\u003Cp class=\"part\" data-startline=\"42\" data-endline=\"42\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_9a09abeb76faa489cbe124760c3862fc.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"44\" data-endline=\"45\">Creamos un Tiddler de bienvenida, que será mostrado por omisión. En nuestro caso, el de Copinchapedia.\nSe vería algo así:\u003C/p>\u003Cp class=\"part\" data-startline=\"47\" data-endline=\"47\">\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_ba0c587627b18a0a84a5640a8ff0e3d6.png\" alt=\"\" class=\"\">\u003C/p>\u003Cp class=\"part\" data-startline=\"49\" data-endline=\"51\">Subimos este archivo como archivo archivo no versionado al reposit
{"text":"lsdiuhclsiud\nkyutfkufkutdfkut\nytfiyt","title":"cosa para importar","tags":"","modified":"20210310194904280","created":"20210310194757129","tmap.id":"b4d4cb66-90c0-46da-af9a-fd972e467835"},
{"created":"20220829140136569","creator":"M0","text":"[[offline|file:./../nombre.pdf]]\n\n[ext[Local|./../nombre.pdf]]\n","tags":"registro/amor/tw/tutoriales","title":"crear enlaces a un archivo local","modified":"20220904003904400","modifier":"M0","tmap.id":"5e67d53a-74c6-4bb5-ae20-d2f47a21ee71"},
{"text":"* Crear un wiki personal en TiddlyWiki\n* Anotar en este mismo lugar las claridades y preguntas extra que puedar surgir de la misma.\n* ¿Qué es TiddlyWiki?\n* TiddlyWiki es un wiki personal o “libreta web personal no lineal”, como se define el proyecto a sí mismo en su página web.\n* ¿Cómo se generan enlaces específicos para los tiddlers?\n* Usamos la opción permalink del menú contextual de cada Tiddler:\n\n{{upload_ea83e1cf14de83214c8c5423a8108997.png}}\n\n\u003Cp>Esta opción se puede dejar visible permanentemente en el menú desde\n\u003Ccode>Panel de Control > Aspecto > Barra de Herramientas\u003C/code> y cliqueamos\npermalink\u003C/p>\n\u003Cp>\u003Cimg src=\"https://docutopia.tupale.co/uploads/upload_93f2f9dfa728a5109c22748b1e2981f5.png\" alt=\"\" class=\"\">\u003C/p>\n\u003C/li>\n\u003Cli class=\"\" data-startline=\"27\" data-endline=\"28\">\n\u003Cp>Cómo copiar y pegar contenidos de Tiddlers/Wikis ajenos o externos:\u003C/p>\n\u003C/li>\n\u003C/ul>\u003C/div>\n \n \u003Cdiv class=\"row ui-content\" style=\"\">\u003Cdiv class=\"ui-view-area\">\n \u003C/div>\n\u003C/div>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","title":"Crear un wiki personal en TiddlyWiki","modifier":"M0","modified":"20210309002507367","creator":"M0","created":"20210307111943008","tmap.id":"a33f5400-8523-45cf-baee-509ced30a9e8"},
{"text":"24 marzo - cumple dianelis","title":"cumpleanos","tags":"","modified":"20211027072623973","created":"20211027072600103","tmap.id":"363282c4-80e1-43cd-b7f8-265d4a88882c"},
{"text":"!! How can I add sections to the left sidebar?\n\nAny tiddler with the system tag \u003C\u003Ctag $:/themes/nico/notebook/tags/SidebarSection>> will be displayed as a section in the left sidebar.","type":"text/vnd.tiddlywiki","title":"Customizing","revision":"0","modified":"20201211111414096","created":"20201211111245754","bag":"default","tmap.id":"b01fb90f-38d1-4fb6-a227-0cf42b40cff2"},
{"text":"","title":"datos personales","telefono":"+53 54115734","tags":"","segundo-apellido":"Sanabria","residencia-pais":"Cuba","residencia-ciudad":"La Habana","primer-apellido":"Haedo","nombre-completo":"{{datos personales!!nombre}} {{datos personales!!primer-apellido}} {{datos personales!!segundo-apellido}}","nombre":"Maurice","nacimiento-mes-en":"June","nacimiento-mes":"junio","nacimiento-fecha-en":"{{datos personales!!nacimiento-mes-en}} {{datos personales!!nacimiento-dia}}, {{datos personales!!nacimiento-ano}}","nacimiento-fecha":"{{datos personales!!nacimiento-dia}} de {{datos personales!!nacimiento-mes}} de {{datos personales!!nacimiento-ano}}","nacimiento-dia":"1","nacimiento-ano":"1985","modified":"20210713201510448","email":"maurice@copincha.org","direccion":"Ánimas 964, apto. 101, entre Soledad y Oquendo, Centro Habana, {{datos personales!!residencia-ciudad}}, {{datos personales!!residencia-pais}}","created":"20210629084026409","tmap.id":"cde83f4c-bcf8-4921-8997-1e4afc035669"},
{"text":"!! Ejemplo","title":"Donacion por EnZona","tags":"[[Tipos de Donaciones]]","modifier":"M0","modified":"20210309225728774","creator":"M0","created":"20210309004009209","tmap.id":"ad65fa51-1f4a-4199-9015-555fca466f5a"},
{"text":"!! Ejemplo 1. Copiado de tiddlywiki\n\nHay varias formas rápidas y fáciles de realizar una donación económica inmediata. Ya sea que pueda donar solo una pequeña cantidad de vez en cuando, o hacer una contribución mensual regular o incluso una generosa contribución global, la cantidad de su donación debe reflejar su propio sentido del valor real de los beneficios que que realmente ha recibido y espera recibir en el futuro.\n\n{{smallform fine floatright borderleft center {}}} Si ha recibido ayuda directa con un problema específico, ya sea publicado en línea, por correo electrónico privado, durante una sesión de chat de video en vivo de TiddlyWiki Classic Clinic, o si mis respuestas a otros te ha ayudado a arreglar o mejorar tu documento; o, si solo desea mostrar su agradecimiento por mis esfuerzos, considere hacer donaciones ocasionales a mi \"tarro de propinas\" de PayPal.\n\n{{smallform fine floatright borderleft center {}}} También puede hacer un compromiso mensual recurrente para ayudar a respaldar la asistencia continua a la comunidad en su conjunto, así como ayudar a financiar esfuerzos futuros, al mismo tiempo que brinda un compromiso a largo plazo más consistente y confiable flujo de ingresos a lo largo del tiempo. Nota: solo se necesita una cuenta de PayPal para suscribirse al procesamiento mensual automático de promesas. Si no tiene una cuenta de PayPal, aún puede usar una tarjeta de crédito / débito para hacer donaciones individuales manualmente en mi \"tarro de propinas\" de PayPal.\n\nSi desea evitar el servicio de PayPal por completo, puede enviar un cheque personal, un cheque de caja o un giro postal, o hacer una transferencia bancaria directa de banco a banco. Comuníquese conmigo por correo electrónico para solicitar mi dirección postal y / o los detalles de la ruta de pago (código BICS / SWIFT). \n\n\u003Ccenter>\n\n\u003Ctable class=\"borderless\">\u003Ctr valign=\"center\">\u003Ctd>\n\u003Cform action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_blank\" style=\"padding:0;margin:0;\">\n\u003Cinput type=\"hidden\" name=\"cmd\" value=\"_xclick\">\n\u003Cinput type=\"hidden\" name=\"business\" value=\"elsdesign@gmail.com\">\n\u003Cinput type=\"hidden\" name=\"item_name\" value=\"TiddlyTools Donation\">\n\u003Cinput type=\"hidden\" name=\"no_shipping\" value=\"0\">\n\u003Cinput type=\"hidden\" name=\"cn\" value=\"Your feedback is appreciated!\">\n\u003Cinput type=\"hidden\" name=\"tax\" value=\"0\">\n\u003Cinput type=\"hidden\" name=\"lc\" value=\"US\">\n\u003Cinput type=\"hidden\" name=\"bn\" value=\"PP-DonationsBF\">\n\u003Cinput type=\"hidden\" name=\"currency_code\" value=\"USD\">\n\u003Ctable class=\"borderless\">\u003Ctr valign=\"bottom\">\u003Ctd>\n\t\u003Ci>Make a donation to the \"tip jar\":\u003C/i>\u003Cbr>\n\t\u003Cinput type=\"text\" value=\"$25.00\" name=\"amount\" maxlength=\"16\" size=\"24\" id=\"amount\"/>\u003C!--\n\t-->\u003Cinput type=\"submit\" name=\"submit\" value=\" donate \">\u003Cbr>\n\t\u003Ci>(use a credit/debit card or PayPal account)\u003C/i>\n\u003C/td>\u003C/tr>\u003C/table>\n\u003C/form>\n\u003C/td>\u003C/tr>\u003C/table>\n\n\u003Ctable class=\"borderless\">\u003Ctr valign=\"center\">\u003Ctd>\n\u003Cform action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_blank\" style=\"padding:0;margin:0;\">\n\u003Cinput type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">\n\u003Cinput type=\"hidden\" name=\"hosted_button_id\" value=\"E26HYJJQTW87E\">\n\u003Cinput type=\"hidden\" name=\"currency_code\" value=\"USD\">\n\u003Ctable class=\"borderless\">\u003Ctr valign=\"bottom\">\u003Ctd>\n\t\u003Ci>Make a recurring pledge:\u003C/i>\u003Cbr>\n\t\u003Cinput type=\"hidden\" name=\"on0\" value=\"Contribution Level\">\n\t\u003Cselect name=\"os0\">\n\t\t\u003Coption selected=\"selected\" value=\"gold\">select a pledge level...\u003C/option>\n\t\t\u003Coption value=\"bronze\">$10.00/month (bronze)\u003C/option>\n\t\t\u003Coption value=\"silver\">$20.00/month (silver)\u003C/option>\n\t\t\u003Coption value=\"gold\">$30.00
{"text":"!! Ejemplo","title":"Donacion por TransferMovil","tags":"[[Tipos de Donaciones]]","modifier":"M0","modified":"20210309225350998","creator":"M0","created":"20210309001832601","tmap.id":"9148fe98-6924-474e-ba13-db9ee3f7fa36"},
{"text":"Esta es una pagina para construir una forma de donacion para proyectos en Cuba.\nUsando PayPal y TrasferMovil. Para garantizar donaciones lo mismo dentro que fuera de la isla\n\n* donacion simple por PayPal\n* donacion regular por PayPal\n\n* donacion simple por TansferMovil\n* donacion regular por TransferMovil\n\n* donacion simple por EnZona\n* donacion regular por EnZona\n\n---\nTemas de interes\n\n* como dividir un tiddler en 2 campos\n\n* las donaciones deben ir a un registro en un archivo JSON.\n\n* dejar un mensaje\n* dejar nombre \n* registrar en un json\n\n---\n\n! Donacion por PayPal\n{{Donacion por PayPal}}\n\n! Donacion por TransferMovil\n{{Donacion por TransferMovil}}\n\n! Donacion por EnZona\n{{Donacion por EnZona}}\n\n\n\n","title":"Donaciones","tags":"[[Formato de texto]]","modifier":"M0","modified":"20210309224555558","creator":"M0","created":"20210308233354129","tmap.id":"8e44830f-d5ff-4e29-9679-ce8d2d4e8827"},
{"modified":"20220820183113226","modifier":"M0","title":"Draft of 'Julia' by M0","tmap.id":"916042eb-7607-40b6-9d7d-34ca69d28981","text":""},
{"modified":"20230304174200484","modifier":"M0","title":"Draft of 'm00--proyectos' by M0","tmap.id":"0f4c3adc-87b3-49c9-bb3a-7dceda4f1c7a","text":""},
{"modified":"20220820223543095","modifier":"M0","title":"Draft of 'personalizacion' by M0","tmap.id":"7b446c71-07ea-4c6f-9071-5f76d6d08c81","text":""},
{"text":"","title":"Formato de texto","tags":"Contenidos","orden":"2","modifier":"M0","modified":"20210309232533985","creator":"M0","created":"20210309224419340","tmap.id":"00cb963f-b96a-401f-a4db-ecbcda4a1d08"},
{"text":"! Instalamos fossil\n\n! Clonamos el repositorio dentro de la carpeta downloads\n\n```\n$ fossil clone https://mutabit.com/repos.fossil/copincha/copincha.fossil\n\n```\n!! Abrimos el repositorio\n\n```\n$ fossil open --force copincha.fossil\n```\n\n! Actualizamos la pagina\n\n\n```\nrepo/microwikis/palaminga.html\n```\n\n\nSustituimos la pagina en \n\n```\n$ fossil uv add repo/microwikis/palaminga.html\n```\n!!! !! Sincronizamos con el servidor remoto\n\n```\n$ fossil uv sync -v https://user@mutabit.com/repos.fossil/copincha/\n\n```","title":"fossil - Instalacion","tags":"","modified":"20210506231406638","created":"20210506223019414","tmap.id":"e1ab322f-2330-4307-8a25-9a485210be8e"},
{"text":"{{M0-bio}}\n\n{{M0-datos personales - ingles}}","title":"GIG - personal information","tags":"","modified":"20210713194925170","created":"20210629083400776","tmap.id":"cb1f9c9f-702c-40b2-8a3c-79ac884ef83d"},
{"text":"Ubicarse en la carpeta del repositorio\n\n```\ncd E:\\proyectos\\jardines-digitales\n```\n\nIdentificarse\n\n* declarar usuario\n\n```\ngit config --global user.name \"M0\"\n```\n* declarar correo\n\n```\ngit config --global user.email \"maurice@copincha.org\"\n```\n\n```\n* git add ...\n```\n\n```\n* git commit -m \"...\"\n```\n\nsubir archivos en la rama master\n\n* chequear que estamos en la rama master\n\n```\ngit checkout master\n```\n\n```\ngit push origin master\n```\n\n\n","title":"Git","tags":"","modified":"20211018053502535","created":"20211016024800908","tmap.id":"e332c6d2-0627-496f-a6b5-2905026265c9"},
{"created":"20211225175018014","creator":"Sttot","text":"","title":"Gk0Wk/echarts","modified":"20211231031143917","modifier":"Sttot","tags":"$:/tags/PluginWiki","type":"text/vnd.tiddlywiki","page-cover":"https://tc9011.com/assets/images/Echarts%E6%94%B9%E9%80%A0%E4%B9%8B%E5%8A%A8%E6%80%81%E6%98%BE%E7%A4%BA/banner.png","icon":"📊","cpl.title":"$:/plugins/Gk0Wk/echarts","cpl.author":"Gk0Wk","cpl.name":"ECharts","cpl.description":"ECharts for TiddlyWiki5","cpl.uri":"https://tiddly-gittly.github.io/tw-echarts/library/recipes/library/tiddlers/%2524%253A%252Fplugins%252FGk0Wk%252Fecharts.json","cpl.readme":"\u003C$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n\u003C$list filter=\"[\u003Clang>search[zh]]\">\n\n将强大的可视化工具 [[ECharts|https://echarts.apache.org/zh/index.html]] 以优雅的方式与 TiddlyWiki 相结合。\n\n插件说明与使用教程较长,请参考 https://tiddly-gittly.github.io/tw-echarts/\n\n\u003C/$list>\n\n\u003C$list filter=\"[\u003Clang>!search[zh]]\">\n\nCombines the powerful visualization tool [[ECharts|https://echarts.apache.org/en/index.html]] with TiddlyWiki in an elegant way.\n\nThe plugin description and tutorial is long, please refer to https://tiddly-gittly.github.io/tw-echarts/\n\n\u003C/$list>\n\u003C/$list>\n\n[img[https://tc9011.com/assets/images/Echarts%E6%94%B9%E9%80%A0%E4%B9%8B%E5%8A%A8%E6%80%81%E6%98%BE%E7%A4%BA/banner.png]]","cpl.source":"https://github.com/tiddly-gittly/tw-echarts","cpl.documentation":"https://tiddly-gittly.github.io/tw-echarts/","cpl.core-version":">=5.2.0","cpl.plugin-type":"plugin","revision":"0","bag":"default"},
{"created":"20220903233126046","creator":"M0","text":"Conuco es el espacio de cultivo de laboratorios de participacon comunitaria, en los que se van colectivizando los recursos de manera sistematica para el desarrollo de proyectos, y eventos, en torno a alguna tematica de interes colectivo.\n","tags":"","title":"glosario/conuco","modified":"20220904155634255","modifier":"M0","tmap.id":"10bca6da-7a47-43ee-a70d-fa6c1fd51872"},
{"created":"20220904010621001","creator":"M0","text":"{{glosario/copincha/resumen}} \u003Cbr> \u003Cbr> En la jerga local cubana, \"pincha\" significa trabajo. Copincha así se traduce como trabajo colaborativo.","modified":"20220904165029641","modifier":"M0","title":"glosario/copincha","tags":"","tmap.id":"b8d7af5d-77ba-42a6-9878-b0303e1bfbc3"},
{"created":"20220904165021446","creator":"M0","text":"Copincha es un [[hackerspace]] ubicado en Centrohabana. Fomenta la participacion comunitaria a traves de la experimentacion colaborativa de [[codigo abierto|https://es.wikipedia.org/wiki/C%C3%B3digo_abierto]].","modified":"20220904182542874","modifier":"M0","title":"glosario/copincha/resumen","tags":"","tmap.id":"f8b3814f-fe16-47a1-b580-5083affb6b19"},
{"text":"Las tres cosas que debes hacer mañana lunes son:","title":"Guyana/20220321003516413","stream-type":"default","stream-list":"Guyana/20220321003522536 Guyana/20220321003529588 Guyana/20220321003534930","parent":"Guyana","modified":"20220321003534932","created":"20220321003516418","tmap.id":"27c13e74-b1d3-42bf-a48b-4b94ce006081"},
{"text":"1) la vacuna (lo más importante!)","title":"Guyana/20220321003522536","stream-type":"default","stream-list":"","parent":"Guyana/20220321003516413","modified":"20220321003529595","created":"20220321003522540","tmap.id":"b0aab29b-8e6a-4f16-aa77-5bb3418fd0fd"},
{"text":"2) llamar la embajada de Bahamas para ver si necesitas visa por vuelo de conexión. Si te dicen si pregunta cuánto demora el proceso","title":"Guyana/20220321003529588","stream-type":"default","stream-list":"","parent":"Guyana/20220321003516413","modified":"20220321003534933","created":"20220321003529591","tmap.id":"208cf0c6-1ec9-4110-80c3-0818568fcf18"},
{"text":"3) sacar los antecedentes penales","title":"Guyana/20220321003534930","stream-type":"default","stream-list":"","parent":"Guyana/20220321003516413","modified":"20220321003534932","created":"20220321003534932","tmap.id":"81befddb-77fe-401a-b9e1-6a636e0bfe50"},
{"created":"20220903193224931","creator":"M0","text":"Los hackerspaces son lugares físicos gestionados por la comunidad, en los que la gente comparte su interés por trastear con la tecnología, se reúne y trabaja en sus proyectos, y aprende de los demás.\n\nhttps://hackerspaces.org/","title":"hackerspace","modified":"20220903230811573","modifier":"M0","tmap.id":"7bb75b9f-7458-40bf-b8ec-4fb513e9d2c8"},
{"created":"20220830042530520","creator":"M0","text":"hacer que el background sea el del tiddler,. que quede alpha","parent":"insertar-objeto-3d","stream-type":"default","stream-list":"insertar-objeto-3d/20220830042559004","modified":"20220830042914736","modifier":"M0","title":"insertar-objeto-3d/20220830042530518","tmap.id":"5b237ea5-530c-4ddc-8ee8-89bed284a3dd"},
{"created":"20220830042627758","creator":"M0","parent":"insertar-objeto-3d","stream-type":"default","modified":"20220830042914737","modifier":"M0","title":"insertar-objeto-3d/20220830042627756","text":"crear un macro para simplificar la insercion de pieza,.","tmap.id":"6b6f58f7-ef6c-433c-9b47-1306c2ae58f2"},
{"text":"{{info style}}\n\n!! Desde el navegador web\n\n* Cliquea el botón el botón \u003C\u003Cicon {{$:/core/images/save-button}} \"\">> de la barra principal, que puede estar localizada en distintas ubicaciones (a la derecha o abajo o incluso oculta) dependiendo del dispositivo desde donde estés navegando este tema y el tamaño de la ventana.\n\n* Dependiendo de tu configuración del navegador, éste te indicará la ruta donde quieres descargarlo o lo enviará directamente a la carpeta de descargas.\n\n@@.info\nSi quieres usar la extensión de Firefox [[File Backups|https://mutabit.com/repos.fossil/indieweb/uv/docs/es/miniwiki/indieweb-brea.html#File%20Backups%20plugin]] para guardar futuros cambios en tu wiki, debes almacenar el wiki en la carpeta de \"Descargas\" (esta podría llamarse \"Downloads\" o de otra manera, dependiendo del idioma y otros aspectos de la configuración de nuestro sistema operativo). \n@@\n\n!! Desde la consola de comandos\n\nEntra a la carpeta donde quieras hacer la descarga (por ejemplo `Descargas`) y desde allí\nejecuta (debes tener instalado [[wget|https://es.wikipedia.org/wiki/GNU_Wget]] o \n[[curl|https://en.wikipedia.org/wiki/CURL]] para esto):\n\n```shell\nwget https://mutabit.com/repos.fossil/tiddlywiki/uv/seeds/notebook/notebook-mod.html\n```\nó:\n\n```shell\ncurl -o miwiki.html https://mutabit.com/repos.fossil/tiddlywiki/uv/seeds/notebook/notebook-mod.html\n```\n\nen la opción con curl `miwiki.html` puede ser cambiada por el nombre que deseemos.\n\n!! Desde [[Pharo|https://pharo.org]]\n\nAbre un [[Playground|https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/Playground.md]] y ejecuta:\n\n```objectivec\n'https://mutabit.com/repos.fossil/tiddlywiki/uv/seeds/notebook/notebook-mod.html' asUrl saveContentsToFile: (FileLocator home/'Descargas/miwiki.html')\n```\n\nObserva que la última parte es a dónde quieres descargar el wiki y que, consistente con los ejemplos anteriores, la hemos venido colocando en una ruta dentro de la carpeta \"Descargas\".","title":"Instalación","tags":"","modified":"20210212175829759","created":"20210115160755295","tmap.id":"a84e2339-d5e9-4fe7-9164-8cf2edc2e6b1"},
{"text":"!! Theme and plugin installation\n\nDrag the following tiddlers into your wiki to import them:\n\n{{$:/plugins/nico/notebook-mobile||$:/core/ui/Components/plugin-info}}\n{{$:/themes/nico/notebook||$:/core/ui/Components/plugin-info}}\n\n!! Setup\n\n* Set the theme to `Notebook`\n* Set the colour palette to either `Notebook grey`, `Notebook beige`, or `Notebook dark`. Alternatively, click the {{$:/themes/nico/notebook/ui/Buttons/SwitchPalette}} button.\n","type":"text/vnd.tiddlywiki","title":"Install","revision":"0","modified":"20201231135458282","created":"20201211110738465","bag":"default","tmap.id":"981dfaf9-089c-429b-808c-803b11f38e06"},
{"created":"20220903161527768","creator":"M0","text":"!! Precious Plastic La Habana\n\nDescripcion:\n\nSoluciones a la contaminacion plastica. Red alternativa de reiclaje a pequena escala.","title":"Lab1","modified":"20220903163130502","modifier":"M0","tmap.id":"4be1e2f2-e9a0-4600-a543-777a7d02bdf2"},
{"created":"20220903163342129","creator":"M0","text":"Copincha es una comunidad para el diseno de codigo abierto.\n\nfunciona en la casa de maurice . \n\nY es una comunidad aboerta y colaborativa.\n\nTienen montado su prpio server ,.\n\nesto es muy interesante,.\n\n las herramientas que tiene el server sirven para editar textos en linea de forma publica y abierta. \n \n la han usado para el laboratorio. ","tags":"","title":"Lab2","modified":"20220903163532317","modifier":"M0","tmap.id":"4274a34d-8b25-4a74-9f7b-e176bc3decc7"},
{"created":"20220903163548681","creator":"M0","text":"Copincha es una comunidad para el diseno de codigo abierto.\n\nfunciona en la casa de maurice .\n\nY es una comunidad aboerta y colaborativa.","tags":"","title":"Lab3","modified":"20220903163616397","modifier":"M0","type":"","tmap.id":"6064e193-fb55-4683-a08d-7fe1add7295e"},
{"created":"20220903163710765","creator":"M0","text":"Copincha es una comunidad para el diseno de codigo abierto. funciona en la casa de maurice . Y es una comunidad aboerta y colaborativa. Tienen montado su prpio server ,. esto es muy interesante,. las herramientas que tiene el server sirven para","tags":"","title":"Lab4","modified":"20220903163717453","modifier":"M0","tmap.id":"25ff0901-2634-48b3-a0e7-16acceb97e20"},
{"text":"Mi nombre es {{datos personales!!nombre-completo}}, soy diseñador industrial,y vivo en {{datos personales!!residencia-ciudad}}, {{datos personales!!residencia-pais}}.\n\nPor los últimos 8 años trabajé en una empresa cubana dedicada a la reparación de montacargas, aportándoles valores de reparabilidad y versatilidad en su fabricación, y también a sus piezas de repuestos.\n\nEn mi trabajo, yo que hay desafio el afan capitalista de hacer de la reparacion algo obsoleto. Sostengo que es posible configurar un futuro sostenible reconfigurando lo que ya tenemos.\n\nPor este motivo, desde hace tres años convertí mi casa en Centro Habana, en un laboratorio popular, llamado \u003Ca href={{copincha - datos!!facebook}}>Copincha\u003C/a>, para extender estas prácticas desde la colaboración abierta, las prácticas trans-disciplinares y la participación ciudadana.\n\n{{M0-bio-proyectos}}\n\n","type":" ","title":"M0-bio","tags":"","modified":"20210713203903332","created":"20210629083322002","tmap.id":"e374a62a-8113-41b7-924b-726acde8bca8"},
{"text":"!! Copincha. \nEs un hackerspace, un esapcio autogestionado, para encontrarse y compartir conocimientos, y sobre practicas y proyectos tecnologicos. \n\nRealizamos encuatro llamados cafes\n\n!!! Cafe Sorpresa. \n\nResumen\n\nFotos\n\n!!! Cafe Reparador. R\n\nResumen\n\nFotos\n\n!!! Cafe Viaje en casa. \n\nResumen\n\nFotos\n\n!!! Copinchapedia. \n\nResumen\n\nFotos\n\n!!! Precious Plastic La Habana. \n\nResumen\n\nFotos\n\n!! Plastic Leal. \n\nLaboratorio para fomentar la participacion ciudadana en el reciclado d eplastico. \n\n\n\n\n\n\n\n\n\n\n\n\n\n","title":"M0-bio-proyectos","tags":"","modified":"20210713201505563","created":"20210713192449530","tmap.id":"4d4191be-59a1-4ef0-bc74-2ca7786eade1"},
{"text":"!! Nombre Completo\n{{datos personales!!nombre-completo}}\n\n!! Fecha de nacimiento\n{{datos personales!!nacimiento-fecha}}\n\n!!Ciudad de residencia\n\n{{datos personales!!residencia-ciudad}}\n\n!! Email\n{{datos personales!!email}}\n\n!! Teléfono\n{{datos personales!!telefono}}\n\n!! Dirección\n{{datos personales!!direccion}}","title":"M0-datos personales - español","tags":"","modified":"20210713192344041","created":"20210629091359656","tmap.id":"6fafa178-6f60-4d80-9fa4-4f6ebb4246f7"},
{"created":"20230304173317514","creator":"M0","text":"Lorem ipsum dolor sit amet, cu sit recusabo omittantur, nulla putant luptatum per in, has soluta graeco corpora cu. Ad vim ubique mucius conceptam, vel eu doming audiam. Et vix probatus atomorum petentium. Iisque antiopam reprimique ad eum. Agam sonet menandri no mea.","modified":"20230304223923573","modifier":"M0","title":"m00--bio--about","tags":"m00--bio","tmap.id":"23566759-c0aa-493c-9fad-a53ea80fe89e"},
{"created":"20220820175219342","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930136","modifier":"M0","title":"m00--bio/20220820175219338","text":"presentacion en suiza","tmap.id":"9fcd1f1e-7902-4a40-ad30-373e9248915b"},
{"created":"20220820175224641","creator":"M0","parent":"m00--bio/20220820175623327","stream-type":"default","modified":"20230304223931939","modifier":"M0","title":"m00--bio/20220820175224639","text":"presentacion UK ","tmap.id":"59455544-7c03-4686-8b7c-23e4375dcff8"},
{"created":"20220820175241277","creator":"M0","parent":"m00--bio/20220820175623327","stream-type":"default","modified":"20230304223931939","modifier":"M0","title":"m00--bio/20220820175241275","text":"Presentacion en Habitat","tmap.id":"362ef0d9-03b6-4322-9e2c-85dc88233416"},
{"created":"20220820175247329","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930136","modifier":"M0","title":"m00--bio/20220820175247326","text":"Presentacion en escuela electronica informatica","tmap.id":"ea1c39e4-5d82-430b-b6ec-453772f8f4e4"},
{"created":"20220820175307880","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930137","modifier":"M0","title":"m00--bio/20220820175307878","text":"Presentacion en facultad de fisica","tmap.id":"f0588782-2f8f-4253-bc87-f41305a53eed"},
{"created":"20220820175341178","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930137","modifier":"M0","title":"m00--bio/20220820175341175","text":"Presentacion en ciudad inteligente","tmap.id":"e31bd2e4-d831-4709-b5ab-4254f77ba773"},
{"created":"20220820175416140","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930137","modifier":"M0","title":"m00--bio/20220820175416136","text":"laboratorio de artes escenicas les","stream-list":"m00--bio/20220820175444164","tmap.id":"6ce205e3-7c8b-462b-9a77-961d3dde66ac"},
{"created":"20220820175427853","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930138","modifier":"M0","title":"m00--bio/20220820175427850","text":"fiesta del aguacate","tmap.id":"01ffcd0f-a930-45bf-a2fc-60309caaab66"},
{"created":"20220820175444167","creator":"M0","parent":"m00--bio/20220820175416136","stream-type":"default","modified":"20230304223927813","modifier":"M0","title":"m00--bio/20220820175444164","text":"atelier de la libreta 1","tmap.id":"cec51f44-d823-4944-998c-dbcb6214269c"},
{"created":"20220820175509795","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223930138","modifier":"M0","title":"m00--bio/20220820175509793","text":"entrevista el toque","tmap.id":"d0c31367-012e-4608-a921-f2b3bc72f3c5"},
{"created":"20220820175538029","creator":"M0","parent":"m00--bio/20220820175520594","stream-type":"default","modified":"20230304223930140","modifier":"M0","title":"m00--bio/20220820175538026","text":"turquia TRT World","tmap.id":"915770f3-a379-4e27-a1d1-576d068e8dae"},
{"created":"20220820175558271","creator":"M0","parent":"m00--bio/20220820175825002","stream-type":"default","modified":"20230304223932846","modifier":"M0","title":"m00--bio/20220820175558267","text":"FANJ - que hacemos con el plastico en cuba","tmap.id":"adeaed5b-9879-490f-b474-5d3050fb0860"},
{"created":"20220820175623330","creator":"M0","parent":"m00--bio","stream-type":"default","modified":"20230304223932846","modifier":"M0","title":"m00--bio/20220820175623327","text":"Precious Plastic La Habana","stream-list":"m00--bio/20220820175224639 m00--bio/20220820175241275 m00--bio/20220820175520594 m00--bio/20220820175825002","tmap.id":"555bd0c7-a63e-4215-8189-beeb4e7ce2cc"},
{"created":"20220820180354711","creator":"M0","parent":"m00--bio/20220820175531751","stream-type":"default","modified":"20230304223936439","modifier":"M0","title":"m00--bio/20220820180354708","text":"atelier de la libreta 2","tmap.id":"fc1e34c2-fbf3-444a-8c23-a4086e1d3745"},
{"created":"20220828151553647","creator":"M0","text":"Revista alma mater","parent":"m00--bio/20220820175520594","stream-type":"default","stream-list":"","modified":"20230304223941426","modifier":"M0","title":"m00--bio/20220828151553645","tmap.id":"93ccbdb3-cf9e-42a9-827b-e83bd2548141"},
{"created":"20220828151641659","creator":"M0","text":"FANJ - semana del plastico","parent":"m00--bio/20220820175825002","stream-type":"default","stream-list":"","modified":"20230304223941858","modifier":"M0","title":"m00--bio/20220828151641656","tmap.id":"4b5885e9-ebec-4e7d-a226-7a2b75720011"},
{"created":"20220903191656361","creator":"M0","parent":"proyectos/20220903191546252","stream-type":"default","modified":"20230305021228469","modifier":"m00","title":"m00--projects/20220903191656359","text":"Hacer las cosas por uno mismo. Maker, Hacker, Reparar, fabricacion digital.","tmap.id":"daf4694f-ac36-46fd-b863-bfffdaddf95f"},
{"created":"20220904021808491","creator":"M0","text":"!!! Conucos\n{{glosario/conuco}}\n\n!!!!3D a lo Cubano\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\nImpresora 3D\n\nExtrusor de filamento\n\nFilamento\n\nImpresion 3D\n\n!!!! Punto de acceso\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://puntodeaceso.copincha.org]]\n\n!!!! Cubacreativa\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\nTrapiche.CU\n\n!!!!Precious Plastic La Habana\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://pph.copincha.org]]\n\n!!!!Fablab Copincha\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\n!!!!Red Verde\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\n!!!!Nativa\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\n!!!!Uso racional de la energia\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\n!!!!Arts\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://arts.copincha.org]]","parent":"proyectos/20220904021815056","stream-type":"default","stream-list":"proyectos/20220820174338102 proyectos/20220820190000798 m00--projects/20220903182940269 proyectos/20220820174228756 proyectos/20220820174317522 proyectos/20220820203751069 proyectos/20220820174720887 proyectos/20220820185718652","modified":"20230305021228939","modifier":"m00","title":"m00--projects/20220904021808488","tmap.id":"bb738879-2c0a-430d-9a5c-00334388cfb7"},
{"created":"20220904015131893","creator":"M0","text":"Hacer por ti mismo, hacker, maker, reparar","tags":"","title":"m00--projects/copincha/caracteristica/diy","modified":"20230305021229933","modifier":"m00","tmap.id":"ad4bc2f5-bd3c-46f3-8ea7-a82384daf9af"},
{"created":"20220904020053824","creator":"M0","text":"|table-borderless|k\n| {{m00--projects/copincha/logo-opensource}} | {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>Codigo Abierto\u003C/h3> |^ \u003Ch3>Redundante\u003C/h3> |\n|^ Accesible\u003Cbr>Transparente\u003Cbr>Extensibile\u003Cbr>Replicable\u003Cbr>Intersticial |^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>Circular\u003C/h3> |^ \u003Ch3>Modular\u003C/h3> |\n|^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |^ Recombinable\u003Cbr>Reusable\u003Cbr>Ahorrador |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>DIY\u003C/h3> |^ \u003Ch3>Sostenible\u003C/h3> |\n|^ {{m00--projects/copincha/caracteristica/diy}} |^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n\n\n","modified":"20230305021238524","modifier":"m00","title":"m00--projects/copincha/caracteristicas","tags":"m00--projects/copincha","caption":"Caracteristicas","tmap.id":"8efed0fb-2565-4444-b3fd-94d294b514a0"},
{"created":"20220903184352357","creator":"M0","text":"{{glosario/conuco}}\n\n\u003Cbr>\n\n|table-borderless|k\n| {{m00--projects/copincha/logo}} | {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>[[Fablab Copincha|m00--projects/copincha/conuco/fablab-copincha]]\u003C/h3> |^ \u003Ch3>[[Precious Plastic La Habana|proyectos/copincha/conuco/precious-plastic-la-habana]]\u003C/h3> |\n|^ Simply run the binary for your platform, ship it with Docker, or get it packaged.|^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>[[3D A Lo Cubano|m00--projects/copincha/conuco/3d-a-lo-cubano]]\u003C/h3> |^ \u003Ch3>[[Cubacreativa|m00--projects/copincha/conuco/cubacreativa]]\u003C/h3> |\n|^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>[[Arts|m00--projects/copincha/conuco/arts]]\u003C/h3> |^ \u003Ch3>[[Punto de Acceso|m00--projects/copincha/conuco/punto-de-acceso]] \u003C/h3> |\n|^ ^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} |\n|^ \u003Ch3>[[SeaCamp|m00--projects/copincha/conucos/seacamp]]\u003C/h3> |^ \u003Ch3>[[Uso Racional de Energia|m00--projects/copincha/conuco/uso-racional-de-energia]] \u003C/h3> |\n|^ ^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |^ Simply run the binary for your platform, ship it with Docker, or get it packaged. |\n| \u003Cbr>\u003Cbr>\u003Cbr> {{m00--projects/copincha/logo}} | \u003Cbr>\u003Cbr>\u003Cbr> |\n|^ \u003Ch3>[[Cartografia De Bolsillo|m00--projects/copincha/conuco/cartografia-de-bolsillo]]\u003C/h3> |^ \u003Ch3> \u003C/h3> |\n|^ Simply run the binary for your platform, ship it with Docker, or get it packaged. | |","title":"m00--projects/copincha/conuco","modified":"20230305021237540","modifier":"m00","tags":"m00--projects/copincha","caption":"Conucos","tmap.id":"4f20ba53-01ca-47f6-912e-a6ccc483ee79"},
{"created":"20220904151644798","creator":"M0","modified":"20230305021231433","modifier":"m00","title":"m00--projects/copincha/conuco/3d-a-lo-cubano","text":"!!!!3D a lo Cubano\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]\n\nImpresora 3D\n\nExtrusor de filamento\n\nFilamento\n\nImpresion 3D","tags":"","tmap.id":"49d98e58-a801-46a8-a5ac-8cce42cd95bf"},
{"created":"20220904154257190","creator":"M0","modified":"20230305021232409","modifier":"m00","title":"m00--projects/copincha/conuco/cartografia-de-bolsillo","text":"!!!Cartografia de bolsillo\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]","tags":"","tmap.id":"26f84e46-5aa8-4506-b934-dd279dc3bcd8"},
{"created":"20220904151739909","creator":"M0","modified":"20230305021235030","modifier":"m00","title":"m00--projects/copincha/conuco/punto-de-acceso","text":"!!!! Punto de acceso\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://puntodeaceso.copincha.org]]","tags":"","tmap.id":"b786b8a8-83a7-4c35-8647-47830ef4aea2"},
{"created":"20220904152317020","creator":"M0","text":"!!!!Uso racional de la energia\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://copincha.org]]","modified":"20230305021236004","modifier":"m00","title":"m00--projects/copincha/conuco/uso-racional-de-energia","tags":"","tmap.id":"82445dbf-0d72-4993-ac78-a10155fdf778"},
{"text":"actualizar wiki a 5.2","title":"m00/20210923120049350","stream-type":"default","parent":"m00/20210923120044899","modified":"20230304222713251","created":"20210923120049354","modifier":"M0","tmap.id":"e721f48e-5529-4f66-b733-d0d5ae7536e6"},
{"created":"20230304173125795","creator":"M0","text":"MAURICE HAEDO SANABRIA\n----------------------\n\nDesigner / Mender / Inventor / Maker / Hacker / Community Builder\n\n\nÁnimas 964-101, entre Soledad y Oquendo\nCentrohabana, La Habana, 10100\n\n+53 54115734\n\nmaurice@copincha.org\n\n\n\nPROFESSIONAL EXPERIENCES\n------------------------\n\n2020 – present: Head of Precious Plastic La Habana, Havana, Cuba\n\n2018 - present: Head of Copincha Hackerspace, Havana, Cuba\n\n2022: Lecturer at International Colloquium Ciudadanías Digitales, Pontífica Universidad Javeriana, Bogotá, Colombia\n\n2022: Participant in a joint workshop on open-source production of injection molds for plastic recycling, Synergy CrossCulture Programm, Institut für Auslandsbeziehungen, Dresden, Germany\n\n2022: Artist-in-residence at Laboratorio Precious Plastic Habana, New Media Arts Residency Program, Centro Cultural Habana Espacios Creativos, Oficina del Historiador de la ciudad de La Habana, Havana, Cuba\n\n2022: Product designer of an open-source solar-powered device for transmitting poetry via Wi-Fi for the exhibit \"Connectify/Free_Wi-Fi [poetry]\" at O, Miami Poetry Festival, Miami, USA\n\n2022: Product designer of an open-source model of a sugarcane juicing mill for the exhibit \"Cubacreativa [TRAPICHE]\" at Site de rencontre avec l’art Cuba - Québec, Musée d'art de Rouyn-Noranda (MA), Québec, Canada\n\n2021: Artist at the \"Disconnected Experiences” Cuba Garden at Ars Electronica Festival, Linz, Austria\n\n2021: Lecturer at the seminar \"#pinchandolaburbuja\" seminar in Punto de Acceso forum organized by Nestor Siré with funding from the German Embassy in Havana, Havana, Cuba\n\n2021: Lecturer at \"Packaging Across Networks\" international workshop, Lucerne School of Art and Design, Lucerne, Switzerland\n\n2021: Lecturer at \"Our City Our Space\" international forum, PlacemakingX - Chevening Alumni Program Fund, Havana, Cuba\n\n2015 – 2018: Research & Development Department, Top Mechanical Design Specialist, Industrial Designer, forklift design for local reparability, MONCAR, Havana, Cuba\n\n2014: Lecturer at the International Design Congress of Havana, FORMA 2014, Havana, Cuba\n\n\n\nEDUCATION\n---------\n\n2022: Diploma in \"Hypertextual memory, community learning and moldable digital tools\" from Mutabit, Bogotá, Colombia\n\n2000 - 2005: BA in Industrial Design from Instituto Superior de Diseno, Universidad de La Habana, Havana, Cuba\n\n\n\nPRIZES\n------\n\n2018: Design Prize for a MCD-25 2,5 t diesel forklift, Cubaindustria Industrial Fair, Havana, Cuba\n\n2018: Quality Prize for a MCD-25 2,5 t diesel forklift, Cubaindustria Industrial Fair, Havana, Cuba","modified":"20230304223923578","modifier":"M0","title":"moo--bio--cv","tags":"m00--bio","type":"text/plain","tmap.id":"490f8978-01b0-4871-a261-1c7ba2cb404d"},
{"text":"encontrar la manera de organizar los tiddlers usando las direcciones o ruts de archivo","title":"Nestor/20220320162935684","stream-type":"default","parent":"Nestor/20220320162923878","modified":"20220320163152673","created":"20220320162935691","tmap.id":"3144fcbb-242c-4709-8112-12d7768ed610"},
{"text":"crear repo en gitea de copincha y en github","title":"Nestor/20220320163054007","stream-type":"default","stream-list":"","parent":"Nestor/20220320162923878","modified":"20220320163155762","created":"20220320163054018","tmap.id":"9edf3d6f-0202-4ee9-90f8-579a7c6d9d19"},
{"text":"ir automatizando el proceso","title":"Nestor/20220320163107484","stream-type":"default","parent":"Nestor/20220320162923878","modified":"20220320163158892","created":"20220320163107487","tmap.id":"799b744c-422b-46f1-9fcb-acfd1f38a85b"},
{"text":"Solucionar el problema de los metadatos","title":"Nestor/20220320163148202","stream-type":"default","stream-list":"","parent":"Nestor/20220320162923878","modified":"20220320163150231","created":"20220320163148210","tmap.id":"12dcd33c-8054-4d47-9889-954d61ffd88f"},
{"text":"20 de abril ","title":"Nestor/20220320163644785","stream-type":"default","stream-list":"Nestor/20220320163708240","parent":"Nestor","modified":"20220320163952402","created":"20220320163644796","tmap.id":"643ecac0-04b7-4f42-8cbe-9bf789a86fd5"},
{"text":"trabajr en tw","title":"Nestor/20220320163708240","stream-type":"default","parent":"Nestor/20220320163644785","modified":"20220320163736946","created":"20220320163708246","tmap.id":"10bcbb53-ab3b-4527-a762-1cde359f9e75"},
{"text":"Automatizar el modelo para cortar plasma","title":"Nestor/20220320163953626","stream-type":"default","parent":"Nestor/20220320163945008","modified":"20220320164502228","created":"20220320163953633","tmap.id":"b7f97869-3ad5-4a72-abb5-9683c680fa99"},
{"text":"Terminar el manual","title":"Nestor/20220320164256776","stream-type":"default","parent":"Nestor/20220320163945008","modified":"20220320164513692","created":"20220320164256785","tmap.id":"c120976e-ebba-4c08-9e16-f34c5a9c47c6"},
{"text":"punto de acceso","title":"Nestor/20220320165237221","stream-type":"default","parent":"Nestor/20220320165154859","modified":"20220320165252498","created":"20220320165237224","tmap.id":"8609739f-527f-4f9e-8470-254f9d50650f"},
{"text":"reunion con radames","title":"Nestor/20220320165320074","stream-type":"default","stream-list":"","parent":"Nestor/20220320164246847","modified":"20220320165342413","created":"20220320165320077","tmap.id":"988fe673-ab3a-4ad5-af2b-bd7c87b2a032"},
{"text":"encontrar las piezas para armar 1 maquina (lo que se busca en cuba) (lo que se busca afuera)","title":"Nestor/20220320165326863","stream-type":"default","parent":"Nestor/20220320164246847","modified":"20220320165428654","created":"20220320165326873","tmap.id":"57d8c053-978b-41ce-bd39-85082f81c3a3"},
{"text":"organizar el proyecto en terminos de presupuesto","title":"Nestor/20220320165433722","stream-type":"default","parent":"Nestor/20220320164246847","modified":"20220320170458816","created":"20220320165433725","tmap.id":"db080fc0-6319-413b-84c5-90aac90920f3"},
{"text":"enfocar el proyecto minimo 3 maquinas","title":"Nestor/20220320170459225","stream-type":"default","parent":"Nestor/20220320164246847","modified":"20220320170632872","created":"20220320170459228","tmap.id":"c20ffc32-630d-40ed-837a-85b1ee968b8a"},
{"text":"logo\nproblema espacio esperimental\nsensorica ovn \nred social cripto\nconvertir hedgedog en tiddler\n\nescoba\narreglar tomas y linea de la cocina\n220\nsacar dinero\nbombillos 10\n\njuego de cuchillos\njuego de tijeras\ncerradura\nsensor anicubic\nmascara gas \npalo trapear\nadaptador usb\ncales usb movil todos tipos\ndriver pupuo\n\n\ntiddlywiki\nagregar contenido\n\nagregar funcionalidad\n\ndonde sientas que tengas mas sentido tener tu wiki personal\n\n4 resistencias\n4 control pid industrial\nver transformador,... ver motor rpm entrada\n","title":"notas recuperadas","tags":"","modified":"20210923101800556","created":"20210923085401851","tmap.id":"a25be1e7-23e8-4fd2-87d1-9b91fee5683d"},
{"text":"\u003C$link to=\"$:/themes/nico/notebook/LICENSE\">\u003C\u003Cshield label:License status:MIT>>\u003C/$link>\n\u003C$link to=\"$:/themes/nico/notebook\">\u003C\u003Cshield label:Release status:{{$:/themes/nico/notebook!!version}}a colour:purple>>\u003C/$link>\n\u003Ca href=\"https://tiddlywiki.com\">\u003C\u003Cshield label:~TiddlyWiki status:5.1.22+ colour:blue>>\u003C/a>\n\nNotebook Mod es una modificación al [[tema Notebook|Notebook theme]] para [[TiddlyWiki|https://tiddlywiki.com]],\nque preserva varias de sus características:\n\n* Es un tema limpio y despejado.\n* Es un tema //responsive// (adaptativo) que viene con soporte para móviles a través del plugin de ~JavaScript [[$:/plugins/nico/notebook-mobile]].\n* Barra lateral izquierda personalizada.\n* Viene con 3 paletas de color, una gris, otra beige y una oscura. Para cambiar entre ellas, cliquea el botón {{$:/themes/nico/notebook/ui/Buttons/SwitchPalette}} desde la barra superior.\n\ne introduce las habituales modificaciones alojadas en el repositorio:\n\n* Soporte de interfaz para Español e Inglés.\n* \u003Cdiv>Soporte para enlaces reversos (//backlinks//), vía [[TWCrossLinks|https://github.com/akhater/TWCrossLinks]], \nde modo que se pueda saber cuáles [[tiddlers|Tiddlers]] vinculan al actual.\n\u003C/div>\n* \u003Cdiv>Soporte para renombrado, vía [[Relink|https://github.com/flibbles/tw5-relink]], de modo que no hayan enlaces \ninternos rotos en caso de que los tiddlers cambien de nombre.\n\u003C/div>\n* Soporte para iconos de interfaz web escalados cuando están en el texto de un tiddler.\n* Soporte para Markdown (falta mejorar algunos detalles del editor, como números de línea y resaltado sintáctico).\n\n''Importante'': Por convención, esta modificación tiene la misma versión que el tema en el cual está basado y las revisiones son números de letra sucesivos hechos tomando esa versión como base.\n\nPara todos los cambios en:\n\n* la última versión {{$:/themes/nico/notebook!!version}} mira [[$:/themes/nico/notebook/changelog]].\n* la última revisión mira [[Revisiones]].\n\n!! Contribuciones\n\n* Notebook está hospedado en ~GitHub en https://github.com/NicolasPetton/notebook.\n* Notebook Mod está hospedado en Fossil en https://mutabit.com/repos.fossil/tiddlywiki/\n\n!! Licencia\n\nNotebook y Notebook Mod están publicados bajo licencia MIT. \nMira [[LICENSE|$:/themes/nico/notebook/LICENSE]].\n","type":"text/vnd.tiddlywiki","title":"Notebook Mod","tags":"","revision":"0","modified":"20210204192057065","created":"20210109162347458","bag":"default","tmap.id":"2e4e55eb-a120-423a-b672-4f348355afcb"},
{"text":"\u003C$link to=\"$:/themes/nico/notebook/LICENSE\">\u003C\u003Cshield label:License status:MIT>>\u003C/$link>\n\u003C$link to=\"$:/themes/nico/notebook\">\u003C\u003Cshield label:Release status:{{$:/themes/nico/notebook!!version}} colour:purple>>\u003C/$link>\n\u003Ca href=\"https://tiddlywiki.com\">\u003C\u003Cshield label:~TiddlyWiki status:5.1.22+ colour:blue>>\u003C/a>\n\nNotebook is a clean, uncluttered theme for [[TiddlyWiki|https://tiddlywiki.com]].\n\n* The theme is responsive and comes with mobile support through the ~JavaScript [[$:/plugins/nico/notebook-mobile]].\n* Custom left sidebar\n* Notebook comes with 3 colour palettes, a grey, a beige and a dark one. To switch between colour palettes, click the {{$:/themes/nico/notebook/ui/Buttons/SwitchPalette}} button from the top bar.\n\nFor all changes in the latest {{$:/themes/nico/notebook!!version}} release, see [[$:/themes/nico/notebook/changelog]].\n\n!! Contributing\n\nThe project is hosted on ~GitHub at https://github.com/NicolasPetton/notebook.\n\n!! License\n\nNotebook is released under MIT, see [[LICENSE|$:/themes/nico/notebook/LICENSE]].\n","type":"text/vnd.tiddlywiki","title":"Notebook theme","revision":"0","modified":"20210204190039228","created":"20201210210453740","bag":"default","tmap.id":"5d1cd0f4-53cd-4150-83d0-12d7057324d8"},
{"text":"\"\"\"\nThis is a line\nand this is a new line\nwhile this is yet another line\nand this is the final one\napart from this one\n\"\"\"","title":"Nuevo Tiddler","tags":"","modifier":"M0","modified":"20210310003858609","creator":"M0","created":"20210310003612681","tmap.id":"506def4f-4ed2-437f-bef2-02a1c7a6d51b"},
{"text":"\u003Cspan class=\"bluebox\">\n\n''Activities:''\n\n#Hide the sidebar using the \u003C\u003Cicon {{$:/core/images/chevron-right}} \"\">> icon at the top of the sidebar.\n\n#Hold down the Shift button and click on these two links, [[Dave Gifford]]. It should appear in a separate column to the right.\n#Do the same (shift-click) for the tiddler [[Muffin 1]].\n\n\u003C/span>","title":"Nuevo Tiddler 2","tags":"","modifier":"M0","modified":"20210310012632522","creator":"M0","created":"20210310012626648","tmap.id":"76ba2424-9424-4cb7-b103-2e60b95a061d"},
{"created":"20220605172938467","creator":"M0","text":"* ''Convocatoria de participantes''\n\n** Anuncio en las redes sociales\n***Formato cuadrado 1080 px x 1080 px 300 dpi \n**** [[informacion de referencia|https://www.adobe.com/es/express/discover/sizes/instagram]]\n***Informacion: Nombre del evento, descripcion, fecha,hora y lugar, imagen, organizadores\n* ''Convocatoria a publico''\n** Lanzar 2 semanas antes del evento\n**Anuncio en las redes sociales\n*''Recordatorio''\n**Lanzar 1 semana antes del evento\n* ''Evento''","tags":"","title":"Organizando una Feria","modified":"20220605175621512","modifier":"M0","list":"[[Organizando una Feria/]]","tmap.id":"de91723b-4768-49cb-ae49-b4c4499325a7"},
{"created":"20220605175621509","creator":"M0","tags":"[[Organizando una Feria]]","caption":"","modified":"20220605175621509","modifier":"M0","title":"Organizando una Feria/","tmap.id":"d6ac1602-977b-44d8-9dea-6aace0b7ef7b","text":""},
{"text":"!! ¿Cómo puedo adicionar secciones a la barra lateral izquierda?\n\nCualquier tiddler con la etiqueta de sistema \u003C\u003Ctag $:/themes/nico/notebook/tags/SidebarSection>> será mostrado como \nuna sección en la barra lateral","type":"text/vnd.tiddlywiki","title":"Personalización","tags":"","revision":"0","modified":"20210109183035128","created":"20210109181528267","bag":"default","tmap.id":"5a932634-2d0c-4856-bb18-c839f9e23d94"},
{"text":"Copincha\n\n!! Ciclo Copincha\n{{Ciclo Copincha}}\n\nActividades\n\n!!! Cafe Sorpresa\nPara compartir una experiencia y nutrirla juntos.\n\n!!! Cafe Reparación\nPara aprendr a reparar juntos y ser mejores ciudadanos del mundo roto.\n\n!!! Cafe Viaje en casa\nPara compartir experiencia e imaginarios de transicion\n\nPoster Mandos\n\nposter taller\n\nCultivo\n\nDocumentacion\n\nCopinchapedia\n\nAprovechar Paquete Semanal\n\nJargines Digitales\n\nTiddlywiki\n\nInfraestructuras de bolsillo\n\nSimplificar las infraestructuras\n\nFossil\n\nChatbot\n\nWikis federadas\n\n\n\n\n\n","title":"Presentacion Lucerne","tags":"","modified":"20210923090331685","created":"20210704160309263","tmap.id":"5d265b77-2060-48f7-b0bb-a3735b3fa055"},
{"created":"20220820232310677","creator":"M0","text":"!!!Cartografias de bolsillo","parent":"Proyectos/20220820221722596","stream-type":"default","stream-list":"Proyectos/20220820221841837","modified":"20220820232312159","modifier":"M0","title":"Proyectos/20220820232310672","tmap.id":"022f55ae-bb03-43a7-9d1c-f8cd0c270342"},
{"created":"20220904152111364","creator":"M0","modified":"20220904153416854","modifier":"M0","title":"proyectos/copincha/conuco/precious-plastic-la-habana","text":"!!!!Precious Plastic La Habana\n\nWiki\n\n[ext[Local|./proyectos/conucos-digitales/copincha/index.html]]\n\n[[Remoto|https://pph.copincha.org]]","tags":"","tmap.id":"cdecfa6b-99ee-47b9-80de-548d55bc4e83"},
{"text":"# Título\n\nEsta es una prueba de escritura para Markdown\n\n## Subtítulo\n\n```\nCódigo sin formato\n```\n\n```html\n\u003Ch1>Código con formato\u003C/h1>\n```","type":"text/x-markdown","title":"Prueba de Markdown","tags":"","modified":"20210204190602230","created":"20210109184511864","tmap.id":"de6091d3-280f-454c-9ca1-4b89444ff2d5"},
{"text":"Este es un [[tiddler|Tiddlers]] de pruebas.\n\nSi desde acá vinculamos algunos tiddlers, esto quiere decir que en la parte inferior de ellos, deberían haber unos\n//backlinks// (enlaces reversos) que se referieran a este tiddler, proveyéndonos así de enlaces internos de doble vía:\nun tiddler contiene hiperenlaces a otros, como en el HTML tradicional, y a su vez éste sabe de todos los que le vinculan\ncomo en la idea del hipertexto original. \nHaz click en estos enlaces para verificarlo.\n\n* [[Renombrar]]\n\nEntra al enlace [[Renombrar]] y renómbra el tiddler de acuerdo a las instrucciones indicadas en el mismo.\n\nLa siguiente es una muestra de un icono de la interfaz gráfica embebido y reescalado dentro de la documentación, con lo\ncual vemos esto \u003C\u003C_icon {{$:/core/images/new-button}} \"link\" \"tooltip text\">> en lugar de esto {{$:/core/images/new-button}}.","title":"Pruebas","tags":"","modifier":"Offray Luna","modified":"20210109181321595","creator":"Offray Luna","created":"20210103112645247","tmap.id":"6ee7cdc9-92e7-4319-8961-a1abc5cd9402"},
{"text":"* ''Prerrequisitos'':\n** [[Timimi: persistencia/almacenamiento]].\n** [[Crear tiddlers]].\n** [[Aprende WikiText básico]].\n* \u003Cdiv> ''Introducción:'': \u003Cbr> \nHasta ahora hemos venido usando TiddlyWiki en nuestro propio computador.\nAllí sirve de manera potente para gestionar y dejar huella de nuestros proyectos, aprendizajes y conocimientos.\nSi bien podría permanecer allí, mucha de la potencia del hipertexto, \nincluso el personal, tiene que ver con compartirlo.\nTiddlyHost nos ayudará a ello.\n\u003C/div> \n* ''Actividades:'':\n** Sigue las instrucciones de [[TiddlyHost]] y crea tu cuenta en esa plataforma.\n** \u003Cdiv> Sube //tu variante// de Wikilexias (este mismo wiki). Cuando decimos tu variante nos referimos al hecho de que en la medida\nen que has venido las actividades, tu copia se empieza a volver\nespecífica y particular de tu proceso de aprendizaje.\n\u003C/div> \n** Comparte el enlace a tu copia de wikilexias con otras aprendices.\n** Si tienes otros wikis que quieras compartir, súbelos a TiddlyHost y compartelos también.\n* \u003Cdiv>\u003C\u003CrespuestaTemplate \n\"\"\"\nColoca a continuación los enlaces a los wikis publicados en \nTiddlyHost que creaste en los pasos previos.\n\"\"\"\n>>\n\u003C/div>\n\n* \u003C\u003CapuntesTemplate>>\n\n{{Socializa hallazgos e inquietudes}}","title":"Publicar desde TiddlyHost","tags":"[[Publicar Wikis]] todo","respuesta":"","modifier":"Offray Luna-Cárdenas","modified":"20211023033733655","creator":"Offray Luna-Cárdenas","created":"20211011180408677","tmap.id":"9eee7a8b-5c43-42e7-8c2f-5d5c116a55b3"},
{"text":"Cambia el título de este tiddler arriba por otro.\nDeberías ver cómo cambia en todos los que apuntan a este\n(por ejemplo en el tiddler de [[pruebas|Pruebas]].\nNo más enlaces rotos en nuestro hipertexto! :-).","title":"Renombrar","tags":"","modifier":"Offray Luna","modified":"20210109181321586","creator":"Offray Luna","created":"20210103112740883","tmap.id":"776f92b5-cf0e-4544-98a5-4ee1063d3464"},
{"text":"!! Bitácora de cambios para las revisiones\n\nEstos son los cambios más relevantes introducidos en cada revisión, identificaa por su respectiva letra.\n\n!!! a\n\n* Cambio en el plugin de soporte para [[Markdown|https://tiddlywiki.com/plugins/tiddlywiki/markdown/]].\n* Mejora en instrucciones de instalación desde la interface gráfica.\n* Introducción de revisiones además de versiones.\n* Introducción de [[info style]] para la documentación.\n ","title":"Revisiones","modified":"20210204193912977","created":"20210204182240441","tmap.id":"ed1b4814-10b7-442c-bba7-b356df879fd2"},
{"created":"20211015045459344","creator":"M0","text":"\u003C\u003Cslider label:\"Texto Nivel 1\" src:\"{{slider ejemplo texto2}}\" status:\"close\">>","modified":"20211015045757303","modifier":"M0","title":"slider ejemplo texto1","tags":"","caption":"Texto Nivel 1","tmap.id":"4375536c-af1f-4c33-987d-f36710bbd348"},
{"created":"20211015043106106","creator":"M0","text":"\u003C\u003Cslider2 label:\"Texto Nivel 2\" src:\"{{slider ejemplo texto3}}\" status:\"close\">>","modified":"20211015045633415","modifier":"M0","title":"slider ejemplo texto2","tags":"","caption":"Texto Nivel 2","tmap.id":"c81ad389-5b7a-4243-bef9-b318e365b4de"},
{"created":"20211015043211624","creator":"M0","text":"\u003C\u003Cslider3 label:\"Texto Nivel 3\" src:\"{{slider ejemplo texto4}}\" status:\"close\">>","modified":"20211015045701028","modifier":"M0","title":"slider ejemplo texto3","tags":"","caption":"Texto Nivel 3","tmap.id":"8c118eed-50f0-4ab2-8524-998d34a729fd"},
{"created":"20211015043313549","creator":"M0","text":"\u003C\u003Cslider4 label:\"Texto Nivel 4\" src:\"{{slider ejemplo texto5}}\" status:\"close\">>","modified":"20211015045715885","modifier":"M0","title":"slider ejemplo texto4","tags":"","caption":"Texto Nivel 4","tmap.id":"2430b3d6-2c73-4906-942b-fe9eb9bf8305"},
{"created":"20211015043332677","creator":"M0","text":"\u003C\u003Cslider5 label:\"Texto Nivel 5\" src:\"{{slider ejemplo texto6}}\" status:\"close\">>","modified":"20211015045724588","modifier":"M0","title":"slider ejemplo texto5","tags":"","caption":"Texto Nivel 5","tmap.id":"f9d799b4-aac2-48f5-b0ce-c6cfac29c20a"},
{"created":"20211015043345801","creator":"M0","text":"\u003C\u003Cslider6 label:\"Texto Nivel 6\" src:\"\" status:\"close\">>","modified":"20211015044749985","modifier":"M0","title":"slider ejemplo texto6","tags":"","caption":"Texto Nivel 6","tmap.id":"058eca3a-c4aa-4ece-8bda-56883f8f1df1"},
{"created":"20220822092633419","creator":"M0","text":"lun, 22 ago, 06:13\n\t\npara CCP\n\nHello.\n\n I am having problems applying for a visa at the German Embassy in Cuba, to make a trip as soon as possible and share with the German side in Dresden, for the Synergy exchange program.\n\n I had been trying to register an appointment for the visa at the embassy for 2 weeks from their online platform, (as far as I know, it is the only way to access). The website says that there are no reservations available until November.\n\n Is it possible to process the visa in another way, with your help? What do you recommend?\n\nKind regards,\nMaurice","type":"text/x-markdown","title":"Solicitud de visa a ifa","tags":"ifa","modified":"20220823152014410","modifier":"M0","tmap.id":"024d8f98-87df-4890-999e-c85661955326"},
{"text":".tc-titlebar h2 { font-size: 0.8em; display: inline; }","title":"Tamano de titulo","tags":"$:/tags/Stylesheet","modifier":"M0","modified":"20210309222543733","creator":"M0","created":"20210309222247495","tmap.id":"f0899a52-ce08-4013-aa19-e21976f4d81f"},
{"text":"Si estás usando TiddlyWiki, de seguro ya sabes esto, pero no está de más una introducción a este concepto\nubicuo y potente en TiddlyWiki, en caso de que no lo conozcas o un repaso en español, en caso de que sí, \npues la intensión es que este Tiddler en particular se convierta en un elemento que podemos colocar en\nvarios wikis personales.\n\nUn tiddler es la unidad minima de información en TiddlyWiki y una de sus aportaciones más ingeniosas,\npues en este wiki se tienen unidades de información más pequeñas que las habituales páginas.\nPodemos pensar en un Tiddler como una ficha de anotaciones (de esas que en papel/carton de 9 cm por 15 cm),\npero potenciada por el hipertexto.\nAllí escribimos la prosa, los datos y el código que alimentan nuestro wiki personal y debido a su caracter\nminimalista y diverso pueden recombinarse de distintas maneras: enlazándolos entre sí, transcluyendo trozos de un \ntiddler en otro, agregando funcionalidad específica a medida, arrastrando y soltando plugins entre distintos \nwikis, entre otras.\n\nReciben su nombre [[por la palabra británica asociada a pez pequeño|https://tiddlywiki.com/#Tiddlers]]:\n\n\n\u003C\u003C\u003C\nUn \"tiddler es una palabra británica informal que significa pez pequeño [...].\nOtros sistemas tienen conceptos análogos con nombres genéricos como \"items\", \"entradas\", \"entidades\", \"nodos\"\no \"registros\".\nTiddlyWiki asume la postura de que es mejor ser confúsamente distinto que confúsamente genéricio.\n\u003C\u003C\u003C\n","title":"Tiddlers","tags":"traducciones","modifier":"Offray Luna","modified":"20210109174905282","creator":"Offray Luna","created":"20210104172652015","tmap.id":"9d35ae40-96e9-4144-a551-e3481b48ed22"},
{"text":"","title":"Tipos de Donaciones","tags":"Contenidos","orden":"1","modifier":"M0","modified":"20210309232548224","creator":"M0","created":"20210309224407182","tmap.id":"72d84ea1-53ef-46da-9f42-b582bc1f59c9"},
{"text":"TiddlyWiki\n\nVer Introducción.\nIdeas varias\n\n Integración Markdown TiddlyWiki: Traductor de Markdown a TiddlyWiki La dificultad está entre paréntesis.\n Se empezó la exploración inicial del traductor\n (baja) Hay implementar el código para un traductor simple.\n (alta) Crear el código del parser para un eventual traductor de TiddlyWiki a Markdown.\n\nCurrículo\n\nLa idea es crear distintos caminos de aprendizaje similares al que se ve abajo:\n\nLa intensión es crear Tiddlers que permitan vincular estos contenidos\n\n Lectura anotada.\n Escritura colaborativa: HedgeDoc y Markdown.\n TiddlyWiki\n Crear tiddlers.\n De Markdown a TiddlyWiki.\n Lenguaje de etiquetamiento nativo (WikiText).\n Transclusión: incluir sin copiar ni pegar.\n Filtros: Ejp.\n Compartir Tiddlers.\n Macros y platillas: contenidos semi-automatizados.\n Crear y listar recursos para crear tus wikis personales:\n Variantes de TiddlyWiki.\n Personalizar plantillas:\n Apariencia CSS\n Plugins y variantes.\n Plantillas concretas para usos específicos.\n Crear plugins.\n Publicar y versionar wikis (Fossil)\n Archivos versionados y no versionados.\n Formatos de exportación y serialización de datos: JSON y STON.\n Comentar Tiddlers.\n Automatización de publicación con Pharo.\n\n","type":"text/plain","title":"Untitled","tmap.id":"55bfc354-2d16-4a6b-81ad-3669b55cd07b"},
function t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid("invalid aes block size");var d=a.b[c],e=b[0]^d[0],f=b[c?3:1]^d[1],g=b[2]^d[2];b=b[c?1:3]^d[3];var h,k,l,n=d.length/4-2,m,p=4,r=[0,0,0,0];h=a.s[c];a=h[0];var q=h[1],v=h[2],w=h[3],x=h[4];for(m=0;m<n;m++)h=a[e>>>24]^q[f>>16&255]^v[g>>8&255]^w[b&255]^d[p],k=a[f>>>24]^q[g>>16&255]^v[b>>8&255]^w[e&255]^d[p+1],l=a[g>>>24]^q[b>>16&255]^v[e>>8&255]^w[f&255]^d[p+2],b=a[b>>>24]^q[e>>16&255]^v[f>>8&255]^w[g&255]^d[p+3],p+=4,e=h,f=k,g=l;for(m=
if(0>h)throw new sjcl.exception.invalid("this isn't base64!");26<e?(e-=26,c.push(g^h>>>e),g=h<<32-e):(e+=6,g^=h<<32-e)}e&56&&c.push(sjcl.bitArray.partial(e&56,g,1));returnc}};sjcl.codec.base64url={fromBits:function(a){returnsjcl.codec.base64.fromBits(a,1,1)},toBits:function(a){returnsjcl.codec.base64.toBits(a,1)}};sjcl.hash.sha256=function(a){this.b[0]||this.O();a?(this.F=a.F.slice(0),this.A=a.A.slice(0),this.l=a.l):this.reset()};sjcl.hash.sha256.hash=function(a){return(newsjcl.hash.sha256).update(a).finalize()};
function u(a,b){var c,d,e,f=a.F,g=a.b,h=f[0],k=f[1],l=f[2],n=f[3],m=f[4],p=f[5],r=f[6],q=f[7];for(c=0;64>c;c++)16>c?d=b[c]:(d=b[c+1&15],e=b[c+14&15],d=b[c&15]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+b[c&15]+b[c+9&15]|0),d=d+q+(m>>>6^m>>>11^m>>>25^m<<26^m<<21^m<<7)+(r^m&(p^r))+g[c],q=r,r=p,p=m,m=n+d|0,n=l,l=k,k=h,h=d+(k&l^n&(k^l))+(k>>>2^k>>>13^k>>>22^k<<30^k<<19^k<<10)|0;f[0]=f[0]+h|0;f[1]=f[1]+k|0;f[2]=f[2]+l|0;f[3]=f[3]+n|0;f[4]=f[4]+m|0;f[5]=f[5]+p|0;f[6]=f[6]+r|0;f[7]=
f[7]+q|0}
sjcl.mode.ccm={name:"ccm",G:[],listenProgress:function(a){sjcl.mode.ccm.G.push(a)},unListenProgress:function(a){a=sjcl.mode.ccm.G.indexOf(a);-1<a&&sjcl.mode.ccm.G.splice(a,1)},fa:function(a){varb=sjcl.mode.ccm.G.slice(),c;for(c=0;c<b.length;c+=1)b[c](a)},encrypt:function(a,b,c,d,e){varf,g=b.slice(0),h=sjcl.bitArray,k=h.bitLength(c)/8,l=h.bitLength(g)/8;e=e||64;d=d||[];if(7>k)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(f=2;4>f&&l>>>8*f;f++);f<15-k&&(f=15-k);c=h.clamp(c,
8*(15-f));b=sjcl.mode.ccm.V(a,b,c,d,e,f);g=sjcl.mode.ccm.C(a,g,c,b,e,f);return h.concat(g.data,g.tag)},decrypt:function(a,b,c,d,e){e=e||64;d=d||[];var f=sjcl.bitArray,g=f.bitLength(c)/8,h=f.bitLength(b),k=f.clamp(b,h-e),l=f.bitSlice(b,h-e),h=(h-e)/8;if(7>g)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(b=2;4>b&&h>>>8*b;b++);b<15-g&&(b=15-g);c=f.clamp(c,8*(15-b));k=sjcl.mode.ccm.C(a,k,c,l,e,b);a=sjcl.mode.ccm.V(a,k.data,c,d,e,b);if(!f.equal(k.tag,a))thrownewsjcl.exception.corrupt("ccm:tagdoesn'tmatch");
sjcl.mode.ocb2={name:"ocb2",encrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");var g,h=sjcl.mode.ocb2.S,k=sjcl.bitArray,l=k.i,n=[0,0,0,0];c=h(a.encrypt(c));var m,p=[];d=d||[];e=e||64;for(g=0;g+4<b.length;g+=4)m=b.slice(g,g+4),n=l(n,m),p=p.concat(l(c,a.encrypt(l(c,m)))),c=h(c);m=b.slice(g);b=k.bitLength(m);g=a.encrypt(l(c,[0,0,0,b]));m=k.clamp(l(m.concat([0,0,0]),g),b);n=l(n,l(m.concat([0,0,0]),g));n=a.encrypt(l(n,l(c,h(c))));
d.length&&(n=l(n,f?d:sjcl.mode.ocb2.pmac(a,d)));return p.concat(k.concat(m,k.clamp(n,e)))},decrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");e=e||64;var g=sjcl.mode.ocb2.S,h=sjcl.bitArray,k=h.i,l=[0,0,0,0],n=g(a.encrypt(c)),m,p,r=sjcl.bitArray.bitLength(b)-e,q=[];d=d||[];for(c=0;c+4<r/32;c+=4)m=k(n,a.decrypt(k(n,b.slice(c,c+4)))),l=k(l,m),q=q.concat(m),n=g(n);p=r-32*c;m=a.encrypt(k(n,[0,0,0,p]));m=k(m,h.clamp(b.slice(c),p).concat([0,
0,0]));l=k(l,m);l=a.encrypt(k(l,k(n,g(n))));d.length&&(l=k(l,f?d:sjcl.mode.ocb2.pmac(a,d)));if(!h.equal(h.clamp(l,e),h.bitSlice(b,r)))throw new sjcl.exception.corrupt("ocb: tag doesn't match");return q.concat(h.clamp(m,p))},pmac:function(a,b){var c,d=sjcl.mode.ocb2.S,e=sjcl.bitArray,f=e.i,g=[0,0,0,0],h=a.encrypt([0,0,0,0]),h=f(h,d(d(h)));for(c=0;c+4<b.length;c+=4)h=d(h),g=f(g,a.encrypt(f(h,b.slice(c,c+4))));c=b.slice(c);128>e.bitLength(c)&&(h=f(h,d(h)),c=e.concat(c,[-2147483648,0,0,0]));g=f(g,c);
sjcl.misc.hmac.prototype.encrypt=sjcl.misc.hmac.prototype.mac=function(a){if(this.aa)throw new sjcl.exception.invalid("encrypt on already updated hmac called!");this.update(a);return this.digest(a)};sjcl.misc.hmac.prototype.reset=function(){this.R=new this.W(this.w[0]);this.aa=!1};sjcl.misc.hmac.prototype.update=function(a){this.aa=!0;this.R.update(a)};sjcl.misc.hmac.prototype.digest=function(){var a=this.R.finalize(),a=(new this.W(this.w[1])).update(a).finalize();this.reset();return a};
sjcl.misc.pbkdf2=function(a,b,c,d,e){c=c||1E4;if(0>d||0>c)throw new sjcl.exception.invalid("invalid params to pbkdf2");"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));e=e||sjcl.misc.hmac;a=new e(a);var f,g,h,k,l=[],n=sjcl.bitArray;for(k=1;32*l.length<(d||1);k++){e=f=a.encrypt(n.concat(b,[k]));for(g=1;g<c;g++)for(f=a.encrypt(f),h=0;h<f.length;h++)e[h]^=f[h];l=l.concat(e)}d&&(l=n.clamp(l,d));returnl};
(k=1);if(!k){if(void 0===b)for(c=b=0;c<a.length;c++)for(e=a[c];0<e;)b++,e=e>>>1;this.c[g].update([d,this.N++,2,b,f,a.length].concat(a))}break;case "string":void 0===b&&(b=a.length);this.c[g].update([d,this.N++,3,b,f,a.length]);this.c[g].update(a);break;default:k=1}if(k)throw new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string");this.m[g]+=b;this.f+=b;h===this.u&&(this.isReady()!==this.u&&A("seeded",Math.max(this.o,this.f)),A("progress",this.getProgress()))},
this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(a,b){this.K[a][this.ga++]=b},removeEventListener:function(a,b){var c,d,e=this.K[a],f=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&f.push(d);for(c=0;c<f.length;c++)d=f[c],deletee[d]},la:function(){C(this,1)},oa:function(a){varb,c;try{b=a.x||a.clientX||a.offsetX||0,c=a.y||a.clientY||a.offsetY||0}catch(d){c=b=0}0!=b&&0!=c&&this.addEntropy([b,c],2,"mouse");C(this,0)},qa:function(a){a=
function A(a,b){var c,d=sjcl.random.K[a],e=[];for(c in d)d.hasOwnProperty(c)&&e.push(d[c]);for(c=0;c<e.length;c++)e[c](b)}functionC(a,b){"undefined"!==typeofwindow&&window.performance&&"function"===typeofwindow.performance.now?a.addEntropy(window.performance.now(),b,"loadtime"):a.addEntropy((newDate).valueOf(),b,"loadtime")}functiony(a){a.b=z(a).concat(z(a));a.L=newsjcl.cipher.aes(a.b)}functionz(a){for(varb=0;4>b&&(a.h[b]=a.h[b]+1|0,!a.h[b]);b++);return a.L.encrypt(a.h)}
function B(a,b){return function(){b.apply(a,arguments)}}sjcl.random=new sjcl.prng(6);
else break a;sjcl.random.addEntropy(F,1024,"crypto['getRandomValues']")}}catch(a){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(a))}
b.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&b.ct instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.decrypt(g,b.ct,b.iv,b.tag,f,b.ts):sjcl.mode[b.mode].decrypt(g,b.ct,b.iv,f,b.ts);e.g(d,b);d.key=a;return 1===c.raw?f:sjcl.codec.utf8String.fromBits(f)},decrypt:function(a,b,c,d){var e=sjcl.json;return e.ia(a,e.decode(b),c,d)},encode:function(a){var b,c="{",d="";for(b in a)if(a.hasOwnProperty(b)){if(!b.match(/^[a-z0-9]+$/i))throw new sjcl.exception.invalid("json encode: invalid property name");c+=d+'"'+
b+'":';d=",";switch(typeof a[b]){case "number":case "boolean":c+=a[b];break;case "string":c+='"'+escape(a[b])+'"';break;case "object":c+='"'+sjcl.codec.base64.fromBits(a[b],0)+'"';break;default:throw new sjcl.exception.bug("json encode: unsupported type");}}return c+"}"},decode:function(a){a=a.replace(/\s/g,"");if(!a.match(/^\{.*\}$/))throw new sjcl.exception.invalid("json decode: this isn't json!");a=a.replace(/^\{|\}$/g,"").split(/,/);var b={},c,d;for(c=0;c<a.length;c++){if(!(d=a[c].match(/^\s*(?:(["']?)([a-z][a-z0-9]*)\1)\s*:\s*(?:(-?\d+)|"([a-z0-9+\/%*_.@=\-]*)"|(true|false))$/i)))thrownewsjcl.exception.invalid("jsondecode:thisisn'tjson!");
null!=d[3]?b[d[2]]=parseInt(d[3],10):null!=d[4]?b[d[2]]=d[2].match(/^(ct|adata|salt|iv)$/)?sjcl.codec.base64.toBits(d[4]):unescape(d[4]):null!=d[5]&&(b[d[2]]="true"===d[5])}return b},g:function(a,b,c){void 0===a&&(a={});if(void 0===b)return a;for(var d in b)if(b.hasOwnProperty(d)){if(c&&void 0!==a[d]&&a[d]!==b[d])throw new sjcl.exception.invalid("required parameter overridden");a[d]=b[d]}return a},sa:function(a,b){var c={},d;for(d in a)a.hasOwnProperty(d)&&a[d]!==b[d]&&(c[d]=a[d]);return c},ra:function(a,
Information about each module is kept in an object with these members:
moduleType: type of module
definition: object, function or string defining the module; see below
exports: exports of the module, filled in after execution
The `definition` can be of several types:
* An object can be used to directly specify the exports of the module
* A function with the arguments `module,require,exports` that returns `exports`
* A string function body with the same arguments
Each moduleInfo object is stored in two hashmaps: $tw.modules.titles and $tw.modules.types. The first is indexed by title and the second is indexed by type and then title
*/
$tw.modules = {
titles: {}, // hashmap by module name of moduleInfo
types: {} // hashmap by module type and then name of moduleInfo
};
/*
Define a JavaScript tiddler module for later execution
moduleName: name of module being defined
moduleType: type of module
definition: module definition; see discussion above
The main boot kernel for TiddlyWiki. This single file creates a barebones TW environment that is just sufficient to bootstrap the modules containing the main logic of the application.
On the server this file is executed directly to boot TiddlyWiki. In the browser, this file is packed into a single HTML file.
\*/
var _boot = (function($tw) {
/*jslint node: true, browser: true */
/*global modules: false, $tw: false */
"use strict";
// Include bootprefix if we're not given module data
if(!$tw) {
$tw = require("./bootprefix.js").bootprefix();
}
$tw.utils = $tw.utils || Object.create(null);
/////////////////////////// Standard node.js libraries
promptMsg = ( $tw.language == undefined ? "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser" : $tw.language.getString("InternalJavaScriptError/Hint") );
Fill in any null or undefined properties of an object with the properties from a list of source objects. Each property that is an object is called recursively
Get the browser location.hash. We don't use location.hash because of the way that Firefox auto-urldecodes it (see http://stackoverflow.com/questions/1703552/encoding-of-window-location-hash)
*/
$tw.utils.getLocationHash = function() {
var href = window.location.href;
var idx = href.indexOf('#');
if(idx === -1) {
return "#";
} else if(idx <href.length-1&&href[idx+1]==='#'){
// Special case: ignore location hash if it itself starts with a #
return "#";
} else {
return href.substring(idx);
}
};
/*
Pad a string to a given length with "0"s. Length defaults to 2
*/
$tw.utils.pad = function(value,length) {
length = length || 2;
var s = value.toString();
if(s.length <length){
s = "000000000000000000000000000".substr(0,length - s.length) + s;
}
return s;
};
// Convert a date into UTC YYYYMMDDHHMMSSmmm format
$tw.utils.stringifyDate = function(value) {
return value.getUTCFullYear() +
$tw.utils.pad(value.getUTCMonth() + 1) +
$tw.utils.pad(value.getUTCDate()) +
$tw.utils.pad(value.getUTCHours()) +
$tw.utils.pad(value.getUTCMinutes()) +
$tw.utils.pad(value.getUTCSeconds()) +
$tw.utils.pad(value.getUTCMilliseconds(),3);
};
// Parse a date from a UTC YYYYMMDDHHMMSSmmm format string
$tw.utils.parseDate = function(value) {
if(typeof value === "string") {
var negative = 1;
if(value.charAt(0) === "-") {
negative = -1;
value = value.substr(1);
}
var year = parseInt(value.substr(0,4),10) * negative,
d = new Date(Date.UTC(year,
parseInt(value.substr(4,2),10)-1,
parseInt(value.substr(6,2),10),
parseInt(value.substr(8,2)||"00",10),
parseInt(value.substr(10,2)||"00",10),
parseInt(value.substr(12,2)||"00",10),
parseInt(value.substr(14,3)||"000",10)));
d.setUTCFullYear(year); // See https://stackoverflow.com/a/5870822
return d;
} else if($tw.utils.isDate(value)) {
return value;
} else {
return null;
}
};
// Stringify an array of tiddler titles into a list string
$tw.utils.stringifyList = function(value) {
if($tw.utils.isArray(value)) {
var result = new Array(value.length);
for(var t=0, l=value.length; t<l;t++){
var entry = value[t] || "";
if(entry.indexOf(" ") !== -1) {
result[t] = "[[" + entry + "]]";
} else {
result[t] = entry;
}
}
return result.join(" ");
} else {
return value || "";
}
};
// Parse a string array from a bracketted list. For example "OneTiddler [[Another Tiddler]] LastOne"
submitText: text to use for submit button (defaults to "Login")
serviceName: text of the human readable service name
noUserName: set true to disable username prompt
canCancel: set true to enable a cancel button (callback called with null)
repeatPassword: set true to prompt for the password twice
callback: function to be called on submission with parameter of object {username:,password:}. Callback must return `true` to remove the password prompt
Return an array of classes created from the modules of a specified type. Each module should export the properties to be added to those of the optional base class
Wiki constructor. State is stored in private members that only a small number of privileged accessor methods have direct access. Methods added via the prototype have to use these accessors and cannot access the state data directly.
options include:
enableIndexers - Array of indexer names to enable, or null to use all available indexers
*/
$tw.Wiki = function(options) {
options = options || {};
var self = this,
tiddlers = Object.create(null), // Hashmap of tiddlers
// Register the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting registration to an array of tiddler titles. Return the array of titles affected
self.unregisterPluginTiddlers(null,[title]); // Unregister the plugin if it's already registered
pluginTiddlers.push(tiddler);
registeredTitles.push(tiddler.fields.title);
}
}
};
if(titles) {
$tw.utils.each(titles,function(title) {
checkTiddler(self.getTiddler(title),title);
});
} else {
this.each(function(tiddler,title) {
checkTiddler(tiddler,title);
});
}
return registeredTitles;
};
// Unregister the plugin tiddlers of a particular type, or null/undefined for any type, optionally restricting unregistering to an array of tiddler titles. Returns an array of the titles affected
Enable safe mode by deleting any tiddlers that override a shadow tiddler
*/
$tw.Wiki.prototype.processSafeMode = function() {
var self = this,
overrides = [];
// Find the overriding tiddlers
this.each(function(tiddler,title) {
if(self.isShadowTiddler(title)) {
console.log(title);
overrides.push(title);
}
});
// Assemble a report tiddler
var titleReportTiddler = "TiddlyWiki Safe Mode",
report = [];
report.push("TiddlyWiki has been started in [[safe mode|https://tiddlywiki.com/static/SafeMode.html]]. All plugins are temporarily disabled. Most customisations have been disabled by renaming the following tiddlers:")
Decrypt any tiddlers stored within the element with the ID "encryptedArea". The function is asynchronous to allow the user to be prompted for a password
callback: function to be called the decryption is complete
// Storing encrypted tiddlers on the server isn't supported yet
callback();
};
} // End of if($tw.browser && !$tw.node)
/////////////////////////// Node definitions
if($tw.node) {
/*
Load the tiddlers contained in a particular file (and optionally extract fields from the accompanying .meta file) returned as {filepath:,type:,tiddlers:[],hasMetaFile:}
Load all the tiddlers recursively from a directory, including honouring `tiddlywiki.files` files for drawing in external files. Returns an array of {filepath:,type:,tiddlers: [{..fields...}],hasMetaFile:}. Note that no file information is returned for externally loaded tiddlers, just the `tiddlers` property.