diff --git a/public/index.html b/public/index.html
index a680a68..7010cdf 100644
--- a/public/index.html
+++ b/public/index.html
@@ -203,7 +203,7 @@ Error message and password prompt
{"created":"20230109160537807","text":"\u003C!-- Directory Features --->\n\n\n\\define CurDirList()\n\u003C$set name=\"Name\" value=\u003C\u003CGetCurrentDirectoryPath>>>\n\u003Cul>\n\u003C$list filter=\"[prefix\u003CName>]\">\n\t\u003Cli>\n\t\t\u003C$link>\n\t\t\t\u003C\u003CcurrentTiddler>>\n\t\t\u003C/$link>\n\t\u003C/li>\n\u003C/$list>\n\u003C/ul>\n\u003C/$set>\n\\end\n\n\\define TCurDirList(h:\"2\")\n\u003Ch$h$ class=\"DirList-Title\">Directory Listing\u003C/h$h$>\n\u003C\u003CCurDirList>>\n\\end\n\n\n\\define DirList(Path)\n\u003C$set name=\"Name\" value=\u003C\u003CGetDirectoryPath $Path$>>>\n\u003Cul>\n\u003C$list filter=\"[prefix\u003CName>]\">\n\t\u003Cli>\n\t\t\u003C$link>\n\t\t\t\u003C\u003CcurrentTiddler>>\n\t\t\u003C/$link>\n\t\u003C/li>\n\u003C/$list>\n\u003C/ul>\n\u003C/$set>\n\\end\n\n\\define TDirList(Path h:\"2\")\n\u003Ch$h$ class=\"DirList-Title\">Directory Listing of [[$Path$]]/\u003C/h$h$>\n\u003C\u003CDirList $Path$>>\n\\end\n\n\n\\define GetCurrentDirectoryPath() $(currentTiddler)$/\n\\define GetDirectoryPath(Path) $Path$/\n\n\n\u003C!--\n\\define GetDirectoryPath(Path) $Path$/\n\n\\define DirList(Path:\u003C\u003CcurrentTiddler>>)\n\u003C$set name=\"Name\" value=\u003C$macrocall $name=\"GetDirectoryPath\" Path=$Path$/>>>\n\u003Cul>\n\u003C$list filter=\"[prefix\u003CName>]\">\n\t\u003Cli>\n\t\t\u003C$link>\n\t\t\t\u003C\u003CcurrentTiddler>>\n\t\t\u003C/$link>\n\t\u003C/li>\n\u003C/$list>\n\u003C/ul>\n\u003C/$set>\n\\end\n\n\\define TDirList(Path)\n\u003Ch2>Directory Listing\u003C/h2>\n\u003C\u003CDirList $Path$>>\n\\end\n--->","tags":"$:/tags/Macro","title":"$:/Macros/Directory","modified":"20230110171059989"},
{"created":"20230111212908327","text":"\\define iFrame100Style()\nMargin: 0px;\nPadding: 0px;\nWidth: 100vw;\nHeight: 100vh;\n\\end\n\n\\define EmbedFromLine(Link)\n\u003Cp class=\"Embed-From EmbedFrom\">Embed of [[$Link$]]\u003C/p>\n\\end\n\n\\define iFrame(Src Class:\"iFrame100\" Attrs)\n\u003C\u003CEmbedFromLine \"$Src$\">>\n\u003Ciframe class=\"$Class$\" frameborder=\"0\" $Attrs$ src=\"$Src$\">\u003C/iframe>\n\\end\n\n\\define iFrameFixed(Src Class:\"iFrame100\" Attrs) \u003C\u003CiFrame \"$Src$\" \"$Class$\" 'scrolling=\"no\" $Attrs$'>>\n\\define iFrameBypassFixed(Src Class:\"iFrame100\" Attrs) \u003C\u003CiFrameBypass \"$Src$\" \"$Class$\" 'scrolling=\"no\" $Attrs$'>>\n\\define iFrameFixedBypass(Src Class:\"iFrame100\" Attrs) \u003C\u003CiFrameBypass \"$Src$\" \"$Class$\" 'scrolling=\"no\" $Attrs$'>>\n\n\\define iFrameBypass(Src Class:\"iFrame100\" Attrs)\n\u003C\u003CEmbedFromLine \"$Src$\">>\n\u003Ciframe class=\"$Class$\" frameborder=\"0\" $Attrs$ src='\ndata:text/html;utf8,\n\u003C!DOCTYPE html>\n\u003C!-- Code from X-Frame-Bypass: \u003Chttps://github.com/niutech/x-frame-bypass> --->\n\u003Chtml>\n\u003Chead>\n \u003Cstyle>\n html, body { overflow: hidden; }\n html, body, iframe { margin: 0px; padding: 0px; width: 100%; height: 100%; border: none; }\n \u003C/style>\n \u003Cscript src=\"https://unpkg.com/@ungap/custom-elements-builtin\">\u003C/script>\n \u003Cscript src=\"https://octospacc.gitlab.io/pastebin/x-frame-bypass.js\" type=\"module\">\u003C/script>\n\u003C/head>\n\u003Cbody>\u003Ciframe frameborder=\"0\" is=\"x-frame-bypass\" src=\"$Src$\">\u003C/iframe>\u003C/body>\n\u003C/html>\n'>\u003C/iframe>\n\\end\n\n\n\\define iFrame100(Src)\n\u003C\u003CEmbedFromLine \"$Src$\">>\n\u003Ciframe style=\u003C\u003CiFrame100Style>> frameborder=\"0\" src=\"$Src$\">\u003C/iframe>\n\\end\n\n\\define iFrame100NoScroll(Src)\n\u003C\u003CEmbedFromLine \"$Src$\">>\n\u003Ciframe style=\u003C\u003CiFrame100Style>> frameborder=\"0\" src=\"$Src$\" scrolling=\"no\">\u003C/iframe>\n\\end\n\n\\define iFrame100UriDirect(Src)\n\u003Ciframe style=\u003C\u003CiFrame100Style>> frameborder=\"0\" src=$Src$>\u003C/iframe>\n\\end\n\n\\define iFrame100Tid(Tid)\n\u003C\u003CEmbedFromLine \"$Tid$\">>\n\u003C\u003CiFrame100UriDirect \"\"\"\u003C\u003Cb64TidUriEnc \"$Tid$\">>\"\"\">>\n\\end","tags":"$:/tags/Macro","title":"$:/Macros/Frames","modified":"20230114150926520"},
{"created":"20220926113710012","text":"\\define i18n-target()\n\u003C$list filter=\"[[$(currentTiddler)$]tags[]prefix[i18n:]split[:]last[]]\">\n\t\u003Cspan style=\"Padding:8px;\">\n\t\t\u003C\u003CcurrentTiddler>>\n\t\u003C/span>\n\u003C/$list>\n\\end\n\n\\define i18n()\n\u003Cstyle>\n\t/* Rainbow gradient from https://stackoverflow.com/a/63302468 */\n\t.LanguageBox {\n\t\tBorder: Solid Black 1px;\n\t\tPadding: 4px;\n\t\tBackground: Linear-Gradient(\n\t\t\t90deg,\n\t\t\tRGBA(255, 0, 0, 1) 0%,\n\t\t\tRGBA(255, 154, 0, 1) 10%,\n\t\t\tRGBA(208, 222, 33, 1) 20%,\n\t\t\tRGBA(79, 220, 74, 1) 30%,\n\t\t\tRGBA(63, 218, 216, 1) 40%,\n\t\t\tRGBA(47, 201, 226, 1) 50%,\n\t\t\tRGBA(28, 127, 238, 1) 60%,\n\t\t\tRGBA(95, 21, 242, 1) 70%,\n\t\t\tRGBA(186, 12, 248, 1) 80%,\n\t\t\tRGBA(251, 7, 217, 1) 90%,\n\t\t\tRGBA(255, 0, 0, 1) 100%\n\t\t);\n\t}\n\t.LanguageBox > Div {\n\t\tBorder: Solid Black 1px;\n\t\tPadding: 4px;\n\t\tFont-Size: Larger;\n\t\tText-Align: Center;\n\t\tBackground: White;\n\t}\n\u003C/style>\n\u003Cdiv class=\"LanguageBox\">\u003Cdiv>\n\t\u003C$vars id={{!!i18n}}>\n\t\t\u003C$list filter=\"[!is[system]contains:i18n\u003Cid>]\">\n\t\t\t\u003C$link>\n\t\t\t\t\u003C$macrocall $name=\"i18n-target\"/>\n\t\t\t\u003C/$link>\n\t\t\u003C/$list>\n\t\u003C/$vars>\n\u003C/div>\u003C/div>\n\\end","tags":"$:/tags/Macro","title":"$:/Macros/i18n","modified":"20230108195259126"},
-{"created":"20230125222831006","creator":"Octt","text":"/*\\\n---\n\\*/\n(function(){\n\"use strict\";\nexports.name = \"i18nBreadcrumbsNamespaceLabelStrip\";\nexports.params = [];\n\nexports.run = function() {\ntry {\n var Languages = $tw.wiki.getTiddler('$:/i18n').fields.Languages.split(' ');\n var Path = this.getVariable('currentTiddler');\n var Select = `.tc-story-river > div[data-tiddler-title=\"${Path}\"] > .View-Breadcrumbs > .Path-Elem`;\n var List = document.querySelectorAll(Select + ':last-of-type');\n for (var i=0; i \u003C List.length; i++) {\n var Name = List[i].innerHTML.trim();\n var Code = Name.toLowerCase().split(':').slice(-1)[0];\n if (Languages.includes(Lang)) {\n List[i].innerHTML = `${Name.split(':').slice(0, -1)}\u003Cspan class=\"Inline-Hidden\">:${Code}\u003C/span>`;\n } else\n if (Languages.includes(Path.toLowerCase().split(':')[1].split('/')[0])) {\n // TODO: Handle removal of i18n namespace labels at start of path\n \n };\n };\n} catch(e) {\n $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/i18nBreadcrumbsNamespaceLabelStrip.js","modified":"20230125234504647","modifier":"Octt","module-type":"macro","type":"application/javascript"},
+{"created":"20230125222831006","creator":"Octt","text":"/*\\\nHide i18n namespace labels dynamically from the Breadcrumbs line\n(by wrapping them in CSS-selectable elements)\n\\*/\n(function(){\n\"use strict\";\nexports.name = \"i18nBreadcrumbsNamespaceLabelStrip\";\nexports.params = [];\n\nexports.run = function() {\ntry {\n var Languages = $tw.wiki.getTiddler('$:/i18n').fields.Languages.toLowerCase().split(' ');\n var Path = this.getVariable('currentTiddler');\n var Select = `.tc-story-river > div[data-tiddler-title=\"${Path}\"] > .View-Breadcrumbs > .Path-Elem`;\n var List = document.querySelectorAll(Select + ':last-of-type');\n for (var i=0; i \u003C List.length; i++) {\n // At end of tiddler path (e.g: Tests/Misc/Test:en)\n var Name = List[i].innerHTML.trim();\n var Code = Name.toLowerCase().split(':').slice(-1)[0];\n if (Languages.includes(Code)) {\n List[i].innerHTML = `${Name.split(':').slice(0, -1)}\u003Cspan class=\"Inline-Hidden\">:${Code}\u003C/span>`;\n } else {\n // At start of tiddler path (e.g: Testing:en/Misc/Test); handle $:/ prefix if present\n var Index = Path.startsWith('$:/') ? 2 : 1;\n var Code = Path.toLowerCase().split(':')[Index].split('/')[0];\n if (Languages.includes(Code)) {\n var List = document.querySelectorAll(`${Select}:nth-child(${Index})`);\n for (var i=0; i \u003C List.length; i++) {\n // TODO // List[i].innerHTML = `\u003Cspan class=\"Inline-Hidden\">:${Code}\u003C/span>/${Path.split(':')[Index].split('/').slice(1).join('/')}`;\n };\n };\n };\n };\n} catch(e) {\n $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/i18nBreadcrumbsNamespaceLabelStrip.js","modified":"20230126090506478","modifier":"Octt","module-type":"macro","type":"application/javascript"},
{"created":"20220922135257709","text":"\u003C!-- The following code is almost totally derived from [[$:/core/macros/tabs]] --->\n\n\\define ltabs-button()\n\\whitespace trim\n\u003C$button set=\u003C\u003CltabsState>> setTo=\u003C\u003CcurrentTab>> default=\u003C\u003C__default__>> selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}} role=\"switch\">\n\t\u003Cspan> [[#|$(currentTab)$]] \u003C/span>\n\t\u003C$tiddler tiddler=\u003C\u003Csave-currentTiddler>>>\n\t\t\u003C$set name=\"tv-wikilinks\" value=\"no\">\n\t\t\t\u003C$transclude tiddler=\u003C\u003C__buttonTemplate__>> mode=\"inline\">\n\t\t\t\t\u003C$transclude tiddler=\u003C\u003CcurrentTab>> field=\"caption\">\n\t\t\t\t\t\u003C$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n\t\t\t\t\u003C/$transclude>\n\t\t\t\u003C/$transclude>\n\t\t\u003C/$set>\n\t\u003C/$tiddler>\n\t\u003C\u003C__actions__>>\n\u003C/$button>\n\\end\n\n\\define ltabs-tab()\n\\whitespace trim\n\u003C$set name=\"save-currentTiddler\" value=\u003C\u003CcurrentTiddler>>>\n\t\u003C$tiddler tiddler=\u003C\u003CcurrentTab>>>\n\t\t\u003C\u003Cltabs-button>>\n\t\u003C/$tiddler>\n\u003C/$set>\n\\end\n\n\\define ltabs-tab-list()\n\\whitespace trim\n\u003C$list filter=\u003C\u003C__ltabsList__>> variable=\"currentTab\" storyview=\"pop\">\n\t\u003C\u003Cltabs-tab>>\n\u003C/$list>\n\\end\n\n\\define ltabs-tab-body()\n\\whitespace trim\n\u003C$list filter=\u003C\u003C__ltabsList__>> variable=\"currentTab\">\n\t\u003C$reveal type=\"match\" state=\u003C\u003CltabsState>> text=\u003C\u003CcurrentTab>> default=\u003C\u003C__default__>> retain=\u003C\u003C__retain__>> tag=\"div\">\n\t\t\u003C$transclude tiddler=\u003C\u003C__template__>> mode=\"block\">\n\t\t\t\u003C$tiddler tiddler=\u003C\u003CcurrentTab>>>\n\t\t\t\t\u003C$transclude mode=\"block\" />\n\t\t\t\u003C/$tiddler>\n\t\t\u003C/$transclude>\n\t\u003C/$reveal>\n\u003C/$list>\n\\end\n\n\\define ltabs(ltabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n\\whitespace trim\n\u003C$qualify title=\u003C\u003C__state__>> name=\"qualifiedState\">\n\t\u003C$let ltabsState={{{ [\u003C__explicitState__>minlength[1]] ~[\u003CqualifiedState>] }}}>\n\t\t\u003Cdiv class={{{ [[tc-tab-set]addsuffix[ ]addsuffix\u003C__class__>] }}}>\n\t\t\t\u003Cdiv class={{{ [[tc-tab-buttons]addsuffix[ ]addsuffix\u003C__class__>] }}}>\n\t\t\t\t\u003C\u003Cltabs-tab-list>>\n\t\t\t\u003C/div>\n\t\t\t\u003Cdiv class={{{ [[tc-tab-divider]addsuffix[ ]addsuffix\u003C__class__>] }}}/>\n\t\t\t\u003Cdiv class={{{ [[tc-tab-content]addsuffix[ ]addsuffix\u003C__class__>] }}}>\n\t\t\t\t\u003C\u003Cltabs-tab-body>>\n\t\t\t\u003C/div>\n\t\t\u003C/div>\n\t\u003C/$let>\n\u003C/$qualify>\n\\end\n","tags":"$:/tags/Macro","title":"$:/Macros/ltabs","modified":"20220925154754580"},
{"created":"20220920092322164","text":"\u003C!-- Transclude with clickable link --->\n\\define #:(Name)\n\u003Cstyle>\n.Transcluding > h1,\n.Transcluding > h2,\n.Transcluding > h3,\n.Transcluding > h4,\n.Transcluding > h5,\n.Transcluding > h6 {\nDisplay: Inline;\n}\n\u003C/style>\n\u003Cdiv class=\"Transcluding\">\n[[#|$Name$]]\n{{$Name$}}\n\u003C/div>\n\\end\n\n\u003C!-- Link to currentTiddler --->\n\\define lself() [[$(currentTiddler)$]]\n\\define #lself() [[#|$(currentTiddler)$]]\n\n\u003C!-- Field Checkbox --->\n\\define x#(Field Text)\n\u003C$checkbox field=\"$Field$\" checked=\"true\" unchecked=\"false\" default=\"false\"> $Text$\u003C/$checkbox>\n\\end\n\n\\define Table(Rows) \u003Ctable class=\"Octt-Table\" style=\"Width:100%;\">\u003Cstyle>.Octt-Table tr:nth-child(odd){background-color:#EEEEEE;}\u003C/style>$Rows$\u003C/table>\n\n\\define ColorText(Text Foreground)\n\u003Cspan style=\"Color:$Foreground$;\">$Text$\u003C/span>\n\\end\n\n\\define ColorSpan(Text Background)\n\u003Cspan style=\"Color:#FFFFFF; Background-Color:$Background$;\">$Text$\u003C/span>\n\\end\n\n\\define LImg(Src Href Alt)\n\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"$Href$\">\u003Cimg src=\"$Src$\" alt=\"$Alt$\">\u003C/a>\n\\end\n","tags":"$:/tags/Macro","title":"$:/Macros/Main","modified":"20230111212929188"},
{"created":"20230108190340455","creator":"Octt","text":"/*\\\nSee [[$:/Macros/MediaWiki]] for usage of this macro.\nNote: source must always be credited, and thus it's not ideal to use this macro directly. Please use the \u003C\u003CMediaWiki>> wrapper macro instead, as it provides a link to the source automatically. (This feature is implemented in its own non-JS macro to make at least the URL show on static wiki exports.)\n\\*/\n\n(function(){\n\"use strict\";\nexports.name = \"MediaWikiEmbedInternal\";\nexports.params = [\n {name: \"Article\"},\n {name: \"Domain\"},\n {name: \"Sections\"},\n];\n\nexports.run = function(Article, Domain, Sections) {\ntry {\n let Text;\n Sections = parseInt(Sections) || 0;\n Domain = $OcttKB.MediaWiki.MkDomain(Domain);\n const Req = new XMLHttpRequest();\n Req.open('GET', Domain + '/w/api.php?action=query&formatversion=2&prop=extracts&format=json&origin=*&titles=' + Article, false);\n Req.send();\n Text = JSON.parse(Req.responseText).query.pages[0].extract;\n if (!Text) {\n Text = '\u003Cp>An error occurred while trying to extract the content. Close and reopen this \u003Ci>tiddler\u003C/i> to retry, or click the link to open the source in a new tab.\u003C/p>'\n };\n Text = Text.replaceAllTxt('\\n', '').replaceAllTxt('\u003Cp class=\"mw-empty-elt\">\u003C/p>', '');\n if (Sections != 0) {\n for (let i=1; i\u003C=6; i++) {\n Text = Text.replaceAllTxt(`\u003C/p>\u003Ch${i}>`, `\u003C/p>\u003C!--:PARAGRAPH:--->\\n\u003Ch${i}>`);\n };\n Text = Text.replaceAllTxt(`\u003C/p>\u003Cp>`, `\u003C/p>\u003C!--:PARAGRAPH:--->\u003Cp>`);\n //Text = Text.split('\u003C!--:PARAGRAPH:--->').slice(0, Max+1).join('');\n //Text = Text.split('\u003Cp>').slice(0, Max+1).join('\u003Cp>');\n if (Sections \u003C 0) {\n Sections = 0;\n };\n Text = Text.split('\u003C!--:PARAGRAPH:--->').slice(0, Sections).join('');\n //Text += '\u003Cp>[...]\u003C/p>'\n };\n/*\n Sections = Sections.split(' ');\n for (let i=0; i\u003CSections.length; i++) {\n const Sec = Sections[i];\n if (Sec) {\n const Ind = Sec.toLowerCase()[0];\n const Val = Sec.substring(1);\n if (Ind == 'p' || Ind == 's') {\n if (Ind == 'p') {\n const Sep = '\u003C!--:PARAGRAPH:--->';\n } else \n if (Ind == 's') {\n const Sep = '\u003C!--:SECTION:--->';\n };\n Text = Text.split(Sep).slice(0, Val).join('');\n } else\n if (Ind == '#') {\n \n };\n };\n };\n*/\n return Text;\n} catch(e) {\n return $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/MediaWiki/EmbedInternal.js","modified":"20230124213837502","type":"application/javascript","module-type":"macro","modifier":"Octt"},
@@ -216,6 +216,9 @@ Error message and password prompt
{"created":"20230117113707614","text":"\u003C$list filter=\"[!is[system]get[modified]!prefix[NaN]!sort[]limit[1]]\" variable=modified>\n \u003C$list filter=\"[!is[system]modified\u003Cmodified>]\">\n \u003C$text text={{{[{!!modified}format:date[YYYY-0MM-0DD, 0hh:0mm]]}}}/>\n \u003C/$list>\n\u003C/$list>","tags":"","title":"$:/OcttKB/LastEditTime","modified":"20230117120120631"},
{"created":"20230112094149171","text":"\u003C$link to=\"OcttKB/Licensing\" class=\"CC-BY-SA-Button\">[img[$:/ThirdParty/Buttons/CC BY-SA.svg]]\u003C/$link>","tags":"","title":"$:/OcttKB/LicensingButtons","modified":"20230112210048896"},
{"created":"20230111154758023","text":"/*\\\nLoad our custom polyfills, for old browsers support.\n\\*/\nexports.startup = function() {\ntry {\n\n// https://stackoverflow.com/a/63958411\nString.prototype.replaceAllTxt = function replaceAll(search, replace) {\n return this.split(search).join(replace);\n};\n\n} catch(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n};","tags":"","title":"$:/OcttKB/Polyfills.js","modified":"20230112185932820","type":"application/javascript","module-type":"startup"},
+{"created":"20230126082147025","creator":"Octt","text":"#!/bin/sh\ncd ./public\ntiddlywiki \\\n\t--load index.html \\\n\t--output ./ \\\n\t--rendertiddler $:/core/templates/static.template.css Style.css text/plain \\\n\t--rendertiddler $:/core/templates/alltiddlers.template.html Static.html text/plain\n","title":"$:/OcttKB/Repo/Build.sh","modified":"20230126082232541","modifier":"Octt","type":"text/plain"},
+{"created":"20230126082330667","creator":"Octt","text":"#!/bin/sh\nURL=\"https://kb.octt.eu.org\"\ncd ./public\nwget -O \"./-1.html\" \"$URL\" || true\nwget -O \"./-2.html\" \"$URL/-1.html\" || true\n","title":"$:/OcttKB/Repo/DeployOld.sh","modified":"20230126082445095","modifier":"Octt","type":"text/plain"},
+{"created":"20230126081754717","creator":"Octt","text":"#!/bin/sh\n./Build.sh\n./DeployOld.sh\n","tags":"","title":"$:/OcttKB/Repo/Main.sh","modified":"20230126082102765","modifier":"Octt","type":"text/plain"},
{"created":"20230112221909714","modified":"20230112221909714","title":"$:/OcttKB/StaticBanner","text":"\u003Cdiv style=\"Padding-Left:16px; Padding-Right:16px;\">\n\u003Ch1 class=\"tc-site-title\">\n\u003Ca class=\"tc-tiddlylink tc-tiddlylink-missing\" >OcttKB\u003C/a>\n\u003C/h1>\n\u003Cdiv class=\"tc-site-subtitle\">\nOctt Knowledge Base || Powered by [[TiddlyWiki|TiddlyWiki:en]].\u003C/div>\n\u003Cp>\n\u003Cb>Note\u003C/b>: You're viewing the no-JS version of this site, some features will be missing. For the best experience, \u003Ca href=\"./\">load the full version\u003C/a>.\n\u003C/p>\n\u003C/div>","tags":""},
{"created":"20230110181206539","text":"\\import [[$:/ThirdParty/TiddlyTools/FilterGenerators/TagCloud]]\n\n\\define config() $:/config/TiddlyTools/TagCloud\n\\define options() $:/state/popup/tagcloud\n\\define default_min() 0.75\n\\define default_step() 0.25\n\\define default_max() 3.00\n\\define default_group() 5\n\n\u003Cstyle>\n.tc-tag-label { white-space: normal !important; }\n.tc-tag-list-item { padding: 2px; }\n .tt-tagcloud input { width:auto !important; }\n .tt-tagcloud input.option { width:3em !important; text-align:right; }\n\u003C/style>\n\n\u003Cdiv class=\"tt-tagcloud\">\n\u003C!--\u003C\u003Ctagcloud_select>>--->\n\u003C!--\u003C$set name=taglist filter=\"[\u003Cconfig>get[taglist]enlist-input[]]\">--->\n\u003C$set name=taglist filter=\"[tags[]!is[system]]\">\n\u003C!--\u003C\u003Ctagcloud_summary>>--->\n\u003C\u003Ctagcloud_show>>\n","tags":"","title":"$:/OcttKB/TagCloud","modified":"20230110182005662"},
{"created":"20230110183048646","text":"\u003Cdiv class=\"tc-table-of-contents\">\n\u003C\u003Ctoc-selective-expandable \"TableOfContents\">>\n\u003C/div>","tags":"","title":"$:/OcttKB/ToC","modified":"20230110183103058"},
@@ -239,6 +242,7 @@ Error message and password prompt
{"title":"$:/plugins/tiddlywiki/text-slicer","name":"Text Slicer","description":"Tools for slicing text into tiddlers","list":"readme docs","dependents":"$:/plugins/tiddlywiki/sax","version":"5.2.3","plugin-type":"plugin","type":"application/json","text":"{\"tiddlers\":{\"$:/plugins/tiddlywiki/text-slicer/docs/exporters\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs/exporters\",\"tags\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"caption\":\"Exporters\",\"text\":\"Documents can be saved under Node.js, or previewed in the browser.\\n\\n[TBD]\\n\"},\"$:/plugins/tiddlywiki/text-slicer/docs/internals\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs/internals\",\"tags\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"caption\":\"Internals\",\"text\":\"! Introduction\\n\\nThe slicing process is performed by a simple automaton that scans the document and applies simple declarative rules to yield a collection of tiddlers.\\n\\nThe automaton processes the incoming XML document starting with the root element and then recursively visits each child node and their children. Actions are triggered as each component of the document is encountered:\\n\\n* Opening tags of elements\\n* Closing tags of elements\\n* Text nodes\\n\\nComponents are matched against the current set of rules to determine what actions should be performed. They can include a combination of:\\n\\n* Starting a new tiddler with specified fields\\n* Rendering the markup for the current tag into the current tiddler\\n* Appending the content of the current text node to the current tiddler\\n* Threading tiddlers to their parents using a combination of the `list` and `tags` fields\\n\\n! Slicing State Data\\n\\nAs the automaton performs its scan, it maintains the following state information:\\n\\n* ''chunks'' - an array of tiddlers without titles, addressed by their numeric index. The title field is reused to hold the plain text of the chunk that is later used to generate the final title for the tiddler\\n* ''currentChunk'' - the numeric index of the chunk currently being filled, or `null` if there is no current chunk\\n* ''parentStack'' - a stack of parent chunks stored as `{chunk: \u003Cchunk-index>, actions: \u003Cactions>}`\\n\\nAt the start, the special document chunk is created and pushed onto the stack of parent chunks\\n\\n! Slicing Rules\\n\\nSlicing rules are maintained in tiddlers tagged `$:/tags/text-slicer/slicer-rules` with the following fields:\\n\\n* ''title'' - title of the tiddler containing the listof rules\\n* ''name'' - short, human readable name for the set of rules\\n* ''inherits-from'' - (optional) the ''name'' field of another set of rules that should be inherited as a base\\n* ''text'' - JSON data as described below\\n\\nThe JSON data is an array of rules, each of which is an object with the following fields:\\n\\n* ''selector'' - a selector string identifying the components to be matched by this rule\\n* ''actions'' - an object describing the actions to be performed when this selector matches a tag\\n\\n!! Selectors\\n\\nThe selector format is a simplified form of CSS selectors. They are specified as follows:\\n\\n* A ''selector'' is a list of one or more ''match expressions'' separated by commas. The rule is triggered if any of the match expressions produce a positive match\\n* A ''match expression'' is a list of one or element ''tag names'' separated by spaces. The rule is triggered if the final tag name in the list matches the tag of the current element, and all of the preceding tags in the expression exist as ancestors of the current element in the specified order (but not necessarily as immediate children of one another)\\n* A ''tag name'' is the textual name of an element\\n* Tag names in match expressions may optionally be separated by a `>` sign surrounded by spaces to impose the requirement that the left hand element be the immediate parent of the right hand element\\n\\n!!! Example Selectors\\n\\nThis XML document will be used to illustrate some examples:\\n\\n```\\n\u003Ca>\\n \u003Cb>\\n \u003Cd>one\u003C/d>\\n \u003C/b>\\n \u003Cc>\\n \u003Cd>two\u003C/d>\\n \u003Ce>\\n three\\n \u003Ce>\\n four\\n \u003C/e>\\n \u003C/e>\\n \u003C/c>\\n\u003C/a>\\n\\n```\\n\\n|!Selector |!Matches |\\n|b |Matches the single `\u003Cb>` element |\\n|d |Matches both of the two `\u003Cd>` elements |\\n|c,d |Matches the `\u003Cc>` element and both of the two `\u003Cd>` elements |\\n|c d |Matches the second of the two `\u003Cd>` elements |\\n|a d |Matches both of the two `\u003Cd>` elements |\\n|a > d |Doesn't match anything |\\n|e |Matches both of the two `\u003Ce>` elements |\\n|c > e |Matches the outermost of the two `\u003Ce>` elements |\\n|e > e |Matches the innermost of the two `\u003Ce>` elements |\\n\\n!! Actions\\n\\nThe ''action'' property of a slicer rule is an object that can have any of the following optional fields:\\n\\n* ''startNewChunk'' - causes a new chunk to be started on encountering an opening tag. The value is an object containing the fields to be assigned to the new chunk\\n* ''isParent'' - causes the new chunk to be marked as a child of the current chunk (boolean flag; only applies if ''startNewChunk'' is set)\\n* ''headingLevel'' - arrange heading parents according to level (numerical index; only applies if ''startNewChunk'' and ''isParent'' are set)\\n* ''dontRenderTag'' - disables the default rendering of opening and closing tags to the current chunk. By default the tags are rendered as XML tags, but this can be overridden via ''markup'' (boolean; defaults to ''false'')\\n* ''isImage'' - identifies an element as representing an HTML image element, with special processing for the ''src'' attribute\\n* ''markup'' - optional object with either or both of `{wiki: {prefix: \u003Cstr>,suffix: \u003Cstr>}}` and `{html: {prefix: \u003Cstr>,suffix: \u003Cstr>}}` allowing the rendered tags to be customised\\n\"},\"$:/plugins/tiddlywiki/text-slicer/docs/model\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs/model\",\"tags\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"caption\":\"Document Model\",\"text\":\"Individual tiddlers are created for each heading, paragraph and list item. They are linked together into a hierarchical outline using lists.\\n\\nFor example, consider a tiddler titled ''Example'' containing this simple text:\\n\\n\u003C\u003C\u003C\\n! This is a heading\\n\\nThis is a paragraph.\\n\\n* And the first list item\\n* Second list item\\n\u003C\u003C\u003C\\n\\nIt will be sliced up into:\\n\\n* a tiddler for the overall document\\n** a tiddler for the heading\\n*** a tiddler for the paragraph\\n*** a tiddler for the list\\n**** and a tiddler for each list item\\n\\nThese tiddlers are bound together using lists: the parent tiddler has a ''list'' field that lists each child in the correct order.\\n\\n!! Slicing Process\\n\\nSlicing generates the following component tiddlers.\\n\\nTiddler titles are generated automatically in most cases (but can subsequently be changed manually). The automatically generated title is made up of concatenating the following elements:\\n\\n* root text (e.g. ''para'')\\n* a dash ''-''\\n* the first few words of the text of the item (up to 40 characters), separated with dashes ''-''\\n* if necessary, a dash ''-'' and a numerical index to make the title unique\\n\\nFor example, ''para-how-to-use-pentagonal-tiles 23''.\\n\\nAny CSS classes used in the original document are assigned as tags to the associated tiddlers.\\n\\n!!! Document\\n\\nThe document itself is represented by a tiddler with the following fields:\\n\\n* ''toc-type'': the text \\\"document\\\"\\n* ''title'': the text ''\\\"Sliced up \\\"'' plus the title of the tiddler that was sliced\\n* ''text'': Available for comments about the document\\n* ''list'': ordered list of tiddlers making up the root level of this document\\n\\n!!! Headings\\n\\nTiddlers representing headings have the following fields:\\n\\n* ''toc-type'': the text \\\"heading\\\"\\n* ''toc-heading-level'': the heading level \\\"h1\\\", \\\"h2\\\", \\\"h3\\\" etc.\\n* ''title'': an automatically generated unique title\\n* ''text'': the text of the heading\\n* ''list'': ordered list of tiddlers tagged with this heading (i.e. the child headings, paragraphs and lists displayed under this heading)\\n** In addition, any CSS classes found in the HTML are converted into tags\\n\\n!!! Paragraphs\\n\\nTiddlers representing paragraphs have the following fields:\\n\\n* ''toc-type'': the text \\\"paragraph\\\"\\n* ''title'': an automatically generated unique title\\n* ''text'': the text of the paragraph\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\n!!! Lists\\n\\nLists are represented by several tiddlers: one for the list itself, and one for each item in the list.\\n\\nThe tiddler representing the list itself has the following fields:\\n\\n* ''toc-type'': the text \\\"list\\\"\\n* ''toc-list-type'': the text \\\"ul\\\" or \\\"ol\\\"\\n* ''toc-list-filter'': the default filter used to generate the titles of the list items\\n* ''title'': an automatically generated unique title\\n* ''list'': ordered list of titles of tiddlers representing the items in this list\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\nThe tiddlers representing items within the list have the following fields:\\n\\n* ''toc-type'': the text \\\"item\\\"\\n* ''title'': an automatically generated unique title\\n* ''text'': the text of the list item\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\n!!! Definition lists\\n\\nDefinition lists are represented by several tiddlers: one for the definition list itself, and one for each term and definition in the list.\\n\\nThe tiddler representing the definition list itself has the following fields:\\n\\n* ''toc-type'': the text \\\"def-list\\\"\\n* ''toc-list-filter'': the default filter used to generate the titles of the definition list items\\n* ''title'': an automatically generated unique title\\n* ''list'': ordered list of titles of tiddlers representing the items (terms and/or definition) in the definition list\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\nThe tiddlers representing terms within the definition list have the following fields:\\n\\n* ''toc-type'': the text \\\"term\\\"\\n* ''title'': an automatically generated unique title\\n* ''text'': the text of the definition list term\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\nThe tiddlers representing definitions within the definition list have the following fields:\\n\\n* ''toc-type'': the text \\\"definition\\\"\\n* ''title'': an automatically generated unique title\\n* ''text'' : the text of the definition list definition\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\\n!!! Images\\n\\nTiddlers representing images have the following fields:\\n\\n* ''toc-type'': the text \\\"image\\\"\\n* ''title'': an automatically generated unique title\\n* ''type'': appropriate content type for the image (eg \\\"image/jpeg\\\")\\n\\n!!! Notes\\n\\nNotes are available during editing but hidden for static renderings. The slicing mechanism does not generate notes; they can only be subsequently added manually. Tiddlers representing notes have the following fields:\\n\\n* ''toc-type'': the text \\\"note\\\"\\n* ''title'': an automatically generated unique title\\n* ''text'': the text of the note\\n* ''tags'': any CSS classes found in the HTML are converted into tags\\n\"},\"$:/plugins/tiddlywiki/text-slicer/docs/preview\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs/preview\",\"tags\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"caption\":\"Preview\",\"text\":\"The document preview column appears at the left side of the screen. The content of headings can be collapsed and expanded to help navigation. Clicking on a tiddler opens the corresponding tiddler in the main story river.\\n\\nClicking ''Show toolbar'' causes each tiddler to be preceded by a toolbar showing the underlying title. It can be edited directly to rename the tiddler. References to the tiddler in the ''tags'' and ''list'' are automatically updated to reflect the change, but note that links to the tiddler will not be automatically changed.\\n\\nThe following theme tweaks should be applied to enable the preview column:\\n\\n* Set [[story left position|$:/themes/tiddlywiki/vanilla/metrics/storyleft]] to ''400px'' (or more)\\n* It is recommended to also set the [[sidebar layout|$:/themes/tiddlywiki/vanilla/options/sidebarlayout]] to ''fluid-fixed''.\\n\\nTo preview the entire document in a separate window, locate it in the preview column and click the button labelled \\\"View document\\\". The document will open in plain text in a new window. The window will be automatically updated as you work on the document.\\n\"},\"$:/plugins/tiddlywiki/text-slicer/docs/usage\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs/usage\",\"tags\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"caption\":\"Usage\",\"text\":\"The tool can slice any tiddler that can be rendered as HTML, including both WikiText and HTML itself.\\n\\nDocuments created with Microsoft Word will need to be first converted to HTML. The library [[mammoth.js|https://github.com/mwilliamson/mammoth.js]] is recommended for this purpose.\\n\\n!! Browser\\n\\nIn the browser, you can slice a monolithic document tiddler using the slicer toolbar button.\\n\\n!! Node.js\\n\\nThe `--slice` command allows a tiddler to be sliced under Node.js:\\n\\n```\\ntiddlywiki mywiki --slice SourceDocument --build index\\n```\\n\"},\"$:/plugins/tiddlywiki/text-slicer/docs\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/docs\",\"list\":\"$:/plugins/tiddlywiki/text-slicer/docs/usage $:/plugins/tiddlywiki/text-slicer/docs/preview $:/plugins/tiddlywiki/text-slicer/docs/model $:/plugins/tiddlywiki/text-slicer/docs/exporters $:/plugins/tiddlywiki/text-slicer/docs/internals\",\"text\":\"! Introduction\\n\\nThis plugin contains tools to help work with documents that are structured as a hierarchical outline of tiddlers. The structural relationships within the document are expressed through the `list` and `tags` fields: for example, headings have a list specifying the chunks of content to be shown under the heading.\\n\\nThe major components within the text slicer plugin include:\\n\\n* ''the slicer'', a tool that slices up an existing monolithic document according to the headings, lists and paragraphs. It is available as a toolbar button for the browser, or as a command for use under Node.js\\n* ''document preview column'', a new sidebar on the left that shows the full text of any documents in the wiki and allows individual tiddlers to be opened with a click\\n* ''templates'' for previewing and exporting the individual documents as HTML files\\n\\nMinor components include:\\n\\n* a new `list-children` filter that returns all the descendents listed in the `list` field of the selected tiddlers\\n* a new canned filter for [[advanced search|$:/AdvancedSearch]] that lists orphans tiddlers that are not part of any document\\n\\n\u003C\u003Ctabs \\\"[all[tiddlers+shadows]tag[$:/plugins/tiddlywiki/text-slicer/docs]!has[draft.of]]\\\" \\\"$:/plugins/tiddlywiki/text-slicer/docs/usage\\\">>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/readme\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/readme\",\"text\":\"This plugin contains tools to help slice up long texts into individual tiddlers. It currently works directly with XHTML documents and with Microsoft Word compatible DOCX documents via conversion to HTML.\\n\\nIt is an expression of the philosophy of TiddlyWiki: that text is easier to re-use and work with if it is sliced up into separate chunks that can be independently manipulated, and then woven back together to make up stories and narratives for publication.\\n\\n\"},\"$:/plugins/tiddlywiki/text-slicer/icon\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/icon\",\"tags\":\"$:/tags/Image\",\"text\":\"\u003Csvg class=\\\"tc-image-text-slicer tc-image-button\\\" width=\\\"22pt\\\" height=\\\"22pt\\\" viewBox=\\\"0 0 128 128\\\">\\n \u003Cg fill-rule=\\\"evenodd\\\" sketch:type=\\\"MSPage\\\">\\n \u003Cpath d=\\\"M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\\\" >\u003C/path>\\n \u003Cg transform=\\\"translate(32.000000, 32.000000) scale(2.19)\\\" fill=\\\"#ffffff\\\">\\n {{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}}\\n \u003C/g>\\n \u003C/g>\\n\u003C/svg>\"},\"$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon\",\"tags\":\"$:/tags/Image\",\"text\":\"\u003Csvg class=\\\"tc-image-text-slicer tc-image-button\\\" width=\\\"22pt\\\" height=\\\"22pt\\\" viewBox=\\\"0 0 128 128\\\">\\n\\t\u003Cg fill-rule=\\\"evenodd\\\">\\n\\t\\t\u003Cpath d=\\\"M78.3637366,56.1312577 L78.3637366,60.2285796 L26.7489717,26.7095593 C23.9558586,24.8956905 23.1577753,21.1490577 24.9741388,18.3521031 C26.7898442,15.5561619 30.5337016,14.7576591 33.3309445,16.5742099 L87.6340125,51.8390346 L84.9731806,51.8390346 L103.852266,39.5788135 L105.182681,41.6274744 L104.070376,43.8022835 C102.858368,43.1824026 101.719662,42.4138485 100.675491,41.5061647 C93.6569185,35.4050129 92.9012893,24.7795163 98.9918187,17.7731637 C105.082348,10.766811 115.709601,10.0363032 122.728174,16.137455 C129.746746,22.2386068 130.502375,32.8641034 124.411846,39.870456 C123.229956,41.2300649 121.856251,42.3760135 120.416666,43.2314984 L94.2434565,60.2285796 L94.2434565,56.1312577 L120.765587,73.3549304 C121.152097,73.6059335 121.506081,73.898207 121.822516,74.2262669 L120.064365,75.9221214 L121.489555,73.938223 C121.915739,74.2443848 122.328975,74.5712591 122.728174,74.9182775 C129.746746,81.0194293 130.502375,91.6449259 124.411846,98.6512786 C118.321316,105.657631 107.694063,106.388139 100.675491,100.286987 C93.6569185,94.1858354 92.9012893,83.5603389 98.9918187,76.5539862 C100.441592,74.8862128 102.178627,73.5416182 104.115112,72.5685999 L105.211846,74.7513028 L103.88143,76.7999638 L84.9731806,64.5208027 L87.6340125,64.5208027 L61.3662147,81.57931 L61.3662147,67.1695775 L78.3637366,56.1312577 Z M114.533131,83.6707925 L115.961891,81.689464 L114.933771,83.9053132 C114.675216,83.7853476 114.424622,83.6467924 114.183613,83.4902793 L113.644945,83.1404643 L114.975362,81.0918038 L113.881545,83.2759699 C111.959385,82.3133637 109.605897,82.7611681 108.179792,84.4017143 C106.463272,86.3763445 106.676536,89.3752164 108.660203,91.0995921 C110.643871,92.8239678 113.643238,92.617794 115.359758,90.6431638 C117.076278,88.6685336 116.863014,85.6696617 114.879347,83.945286 C114.767376,83.8479516 114.651892,83.7564326 114.533131,83.6707925 Z M115.359758,31.8623412 C117.076278,29.8877111 116.863014,26.8888391 114.879347,25.1644635 C112.89568,23.4400878 109.896312,23.6462616 108.179792,25.6208918 C106.463272,27.5955219 106.676536,30.5943939 108.660203,32.3187696 C110.643871,34.0431452 113.643238,33.8369714 115.359758,31.8623412 Z\\\" fill-rule=\\\"nonzero\\\">\u003C/path>\\n\\t\\t\u003Cg transform=\\\"translate(0.000000, 46.000000)\\\">\\n\\t\\t\\t\u003Cpath d=\\\"M62.9632954,19.5390625 L62.984127,19.5390625 L62.984127,76.87441 C62.984127,79.7051952 60.6450077,82 57.7588318,82 L5.49996847,82 C2.61411765,82 0.274673329,79.7050809 0.274673329,76.87441 L0.274673329,5.12559005 C0.274673329,2.29480483 2.61379258,0 5.49996847,0 L42.7341992,0 L42.7341992,0.0129302741 C44.1445002,-0.0458264988 45.5745556,0.452971616 46.6523962,1.51002434 L61.4328365,16.0053998 C62.4299816,16.9833134 62.9403234,18.2577109 62.9632954,19.5390625 L62.9632954,19.5390625 Z M42.7341992,5.125 L5.50046113,5.125 L5.50046113,76.875 L57.7583392,76.875 L57.7583392,19.5390625 L47.9602131,19.5390625 C45.0739653,19.5390625 42.7341992,17.2466672 42.7341992,14.4138408 L42.7341992,5.125 Z\\\" >\u003C/path>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"23.0625\\\" width=\\\"41.8063024\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"33.3125\\\" width=\\\"41.8063024\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"43.5625\\\" width=\\\"41.8063024\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"53.8125\\\" width=\\\"41.8063024\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"64.0625\\\" width=\\\"41.8063024\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\\t\u003Crect x=\\\"10.7262489\\\" y=\\\"12.8125\\\" width=\\\"26.128939\\\" height=\\\"5.125\\\" rx=\\\"2.5625\\\">\u003C/rect>\\n\\t\\t\u003C/g>\\n\\t\u003C/g>\\n\u003C/svg>\\n\"},\"$:/language/Help/slice\":{\"title\":\"$:/language/Help/slice\",\"description\":\"Slice a hierarchical document into individual tiddlers\",\"text\":\"Slices the specified tiddler\\n\\n```\\n--slice \u003Csource-title> [\u003Cdest-title>] [\u003Cslicer-rules>] [\u003Coutput-mode>]\\n```\\n\\n* ''source-title'': Title of the tiddler to be sliced\\n* ''dest-title'': Base title for the generated output tiddlers\\n* ''slicer-rules'': Name of the slicer rules to use for the operation (see below)\\n* ''output-mode'': \\\"html\\\" vs \\\"wiki\\\"\\n\\nThe plugin comes with several built-in sets of slicer rules:\\n\\n* //html-by-paragraph//: Slice every paragraph into a separate tiddler, threaded by heading\\n* //html-by-heading//: Slice every heading into separate threaded tiddlers\\n* //html-plain-paragraphs//: Slice every paragraph into a separate tiddler, without formatting or headings\\n\\nAdvanced users can create or edit their own slicer rules for precise control over the conversion process\\n\"},\"$:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js\\ntype: application/javascript\\nmodule-type: command\\n\\nCommand to slice a specified tiddler\\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\\\"),\\n\\ttextSlicer = require(\\\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\\\");\\n\\nexports.info = {\\n\\tname: \\\"slice\\\",\\n\\tsynchronous: false\\n};\\n\\nvar Command = function(params,commander,callback) {\\n\\tthis.params = params;\\n\\tthis.commander = commander;\\n\\tthis.callback = callback;\\n};\\n\\nCommand.prototype.execute = function() {\\n\\tif(this.params.length \u003C 1) {\\n\\t\\treturn \\\"Missing parameters\\\";\\n\\t}\\n\\tvar self = this,\\n\\t\\twiki = this.commander.wiki,\\n\\t\\tsourceTitle = this.params[0],\\n\\t\\tdestTitle = this.params[1],\\n\\t\\tslicerRules = this.params[2],\\n\\t\\toutputMode = this.params[3],\\n\\t\\tslicer = new textSlicer.Slicer({\\n\\t\\t\\tsourceTiddlerTitle: sourceTitle,\\n\\t\\t\\tbaseTiddlerTitle: destTitle,\\n\\t\\t\\tslicerRules: slicerRules,\\n\\t\\t\\toutputMode: outputMode,\\n\\t\\t\\twiki: wiki,\\n\\t\\t\\tcallback: function(err,tiddlers) {\\n\\t\\t\\t\\tif(err) {\\n\\t\\t\\t\\t\\treturn self.callback(err);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\twiki.addTiddlers(tiddlers);\\n\\t\\t\\t\\tself.callback();\\t\\n\\t\\t\\t}\\n\\t\\t});\\n\\treturn null;\\n};\\n\\nexports.Command = Command;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"command\"},\"$:/core/modules/filters/list-children.js\":{\"title\":\"$:/core/modules/filters/list-children.js\",\"text\":\"/*\\\\\\ntitle: $:/core/modules/filters/list-children.js\\ntype: application/javascript\\nmodule-type: filteroperator\\n\\nFilter operator returning all the descendents of a tiddler listed in the \\\"list\\\" field\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\n/*\\nExport our filter function\\n*/\\nexports[\\\"list-children\\\"] = function(source,operator,options) {\\n\\tvar children = {},\\n\\t\\tprocessTiddler = function(title) {\\n\\t\\t\\tvar tiddler = options.wiki.getTiddler(title);\\n\\t\\t\\tif(tiddler && !$tw.utils.hop(children,title)) {\\n\\t\\t\\t\\tchildren[title] = true;\\n\\t\\t\\t\\tvar list = options.wiki.getTiddlerList(title,operator.operand);\\n\\t\\t\\t\\tlist.forEach(function(listItem) {\\n\\t\\t\\t\\t\\tif(!$tw.utils.hop(children,listItem)) {\\n\\t\\t\\t\\t\\t\\tprocessTiddler(listItem);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t});\\n\\t\\t\\t}\\n\\t\\t};\\n\\tsource(function(tiddler,title) {\\n\\t\\tprocessTiddler(title);\\n\\t});\\n\\treturn Object.keys(children);\\n};\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"filteroperator\"},\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-heading.json\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-heading.json\",\"name\":\"html-by-heading\",\"caption\":\"By Heading (HTML)\",\"description\":\"One tiddler per heading, threaded (HTML)\",\"inherits-from\":\"html-by-paragraph\",\"type\":\"application/json\",\"tags\":\"$:/tags/text-slicer/slicer-rules\",\"text\":\"[\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"address,center,fieldset,form,hr,iframe,isindex,noframes,noscript,ol,ul,li,pre,table\\\",\\n\\t\\t\\\"actions\\\": {}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"blockquote\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\u003C\u003C\u003C\\\\n\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\u003C\u003C\u003C\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dd\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\\\\n: \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dl\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\\\\n\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dt\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\\\\n; \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h1\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h1\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 1,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h2\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h2\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 2,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"!! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h3\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h3\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 3,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"!!! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h4\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h4\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 4,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"!!!! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h5\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h5\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 5,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"!!!!! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h6\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h6\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"mergeNext\\\": true,\\n\\t\\t\\t\\\"setCaption\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 6,\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"!!!!!! \\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"p\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"*\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t}\\n]\\n\"},\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-paragraph.json\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-paragraph.json\",\"name\":\"html-by-paragraph\",\"caption\":\"By Paragraph (HTML)\",\"description\":\"One tiddler per paragraph, threaded by heading (HTML)\",\"type\":\"application/json\",\"tags\":\"$:/tags/text-slicer/slicer-rules\",\"text\":\"[\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"address,center,fieldset,form,hr,iframe,isindex,noframes,noscript,pre,table\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"blockquote\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"\u003C\u003C\u003C\\\\n\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"\u003C\u003C\u003C\\\\n\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"body,div,head,html,span\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dd\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"definition\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dl\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"def-list\\\",\\n\\t\\t\\t\\t\\\"toc-list-filter\\\": \\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"dt\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"term\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"em,i\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"//\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"//\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h1\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 1,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h1\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h2\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 2,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h2\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h3\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 3,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h3\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h4\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 4,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h4\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h5\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 5,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h5\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"h6\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"headingLevel\\\": 6,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"heading\\\",\\n\\t\\t\\t\\t\\\"toc-heading-level\\\": \\\"h6\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"img\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"isImage\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"li\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"item\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"ol\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"list\\\",\\n\\t\\t\\t\\t\\\"toc-list-type\\\": \\\"ol\\\",\\n\\t\\t\\t\\t\\\"toc-list-filter\\\": \\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"p\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"strike\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"~~\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"~~\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"strong,b\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"''\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"''\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"sub\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\",,\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\",,\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"sup\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"^^\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"^^\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"head > title\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"u\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"markup\\\": {\\n\\t\\t\\t\\t\\\"wiki\\\": {\\n\\t\\t\\t\\t\\t\\\"prefix\\\": \\\"__\\\",\\n\\t\\t\\t\\t\\t\\\"suffix\\\": \\\"__\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"ul\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"isParent\\\": true,\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"list\\\",\\n\\t\\t\\t\\t\\\"toc-list-type\\\": \\\"ul\\\",\\n\\t\\t\\t\\t\\\"toc-list-filter\\\": \\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"*\\\",\\n\\t\\t\\\"actions\\\": {}\\n\\t}\\n]\"},\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-linear.json\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-linear.json\",\"name\":\"html-linear\",\"caption\":\"Linear (HTML)\",\"description\":\"One tiddler per paragraph in a single linear thread (HTML)\",\"type\":\"application/json\",\"tags\":\"$:/tags/text-slicer/slicer-rules\",\"text\":\"[\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"li > p\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"p\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"a\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"isAnchor\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"address,blockquote,center,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,hr,iframe,isindex,noframes,noscript,ol,pre,table,ul\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"br,caption,code,col,colgroup,em,i,dd,li,strike,strong,b,sub,sup,u,tbody,td,tfoot,th,thead,tr\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"img\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"isImage\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"head\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true,\\n\\t\\t\\t\\\"discard\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"*\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t}\\n]\"},\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-plain-paragraphs.json\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-plain-paragraphs.json\",\"name\":\"html-plain-paragraphs\",\"caption\":\"Plain Paragraphs (HTML)\",\"description\":\"One tiddler per paragraph, without formatting (HTML)\",\"type\":\"application/json\",\"tags\":\"$:/tags/text-slicer/slicer-rules\",\"text\":\"[\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"address,blockquote,center,dd,dt,h1,h2,h3,h4,h5,h6,li,p\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"startNewChunk\\\": {\\n\\t\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t\\t},\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t},\\n\\t{\\n\\t\\t\\\"selector\\\": \\\"*\\\",\\n\\t\\t\\\"actions\\\": {\\n\\t\\t\\t\\\"dontRenderTag\\\": true\\n\\t\\t}\\n\\t}\\n]\\n\"},\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/slicer.js\\ntype: application/javascript\\nmodule-type: library\\n\\nSlice a tiddler or DOM document into individual tiddlers\\n\\nvar slicer = new textSlicer.Slicer(doc,{\\n\\t\\tslicerRules: JSON data defining slicer rules -or- title of rules taken from tiddlers tagged $:/tags/text-slicer/slicer-rules\\n\\t\\tsourceTiddlerTitle: tiddler to slice -or-\\n\\t\\tsourceText: text to slice\\n\\t\\toutputMode: \\\"html\\\" (default) -or- \\\"wiki\\\"\\n\\t\\tbaseTiddlerTitle: \\\"MySlicedTiddlers-\\\"\\n\\t\\trole: \\\"sliced-content\\\"\\n\\t\\tcallback: function(err,tiddlers)\\n\\t});\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nfunction Slicer(options) {\\n\\t// Quick tests\\n\\tthis.testSlicerRuleMatching();\\n\\t// Marshal parameters\\n\\tthis.sourceTiddlerTitle = options.sourceTiddlerTitle;\\n\\tthis.sourceText = options.sourceText;\\n\\tthis.wiki = options.wiki;\\n\\tthis.role = options.role || \\\"sliced-html\\\";\\n\\tthis.outputMode = options.outputMode || \\\"html\\\";\\n\\tthis.escapeWikiText = options.escapeWikiText || false;\\n\\tthis.callbackFn = options.callback;\\n\\t// Get the slicer rules\\n\\tvar nameSlicerRules = null;\\n\\tif(!options.slicerRules) {\\n\\t\\tnameSlicerRules = \\\"html-by-paragraph\\\";\\n\\t\\tthis.slicerRules = this.loadSlicerRules(nameSlicerRules);\\n\\t} else if(typeof options.slicerRules === \\\"string\\\") {\\n\\t\\tnameSlicerRules = options.slicerRules;\\n\\t\\tthis.slicerRules = this.loadSlicerRules(nameSlicerRules);\\n\\t} else {\\n\\t\\tthis.slicerRules = options.slicerRules;\\n\\t}\\n\\t// Set up the base tiddler title\\n\\tthis.baseTiddlerTitle = this.getBaseTiddlerTitle(options.baseTiddlerTitle);\\n\\t// Initialise state\\n\\tthis.namespaces = {}; // Hashmap of URLs\\n\\tthis.chunks = []; // Array of tiddlers without titles, addressed by their index. We use the title field to hold the plain text content\\n\\tthis.currentChunk = null; // Index of the chunk currently being written to\\n\\tthis.parentStack = []; // Stack of parent chunks {chunk: chunk index,actions:}\\n\\tthis.elementStack = []; // Stack of {tag:,isSelfClosing:,actions:}\\n\\tthis.titleCounts = {}; // Hashmap of counts of prefixed titles that have been issued\\n\\t// Set up the document tiddler as top level heading\\n\\tthis.chunks.push({\\n\\t\\t\\\"toc-type\\\": \\\"document\\\",\\n\\t\\ttitle: this.baseTiddlerTitle,\\n\\t\\ttext: \\\"\u003Cdiv class='tc-table-of-contents'>\u003C\u003Ctoc-selective-expandable \\\\\\\"\\\\\\\"\\\\\\\"\\\" + this.baseTiddlerTitle + \\\"document\\\\\\\"\\\\\\\"\\\\\\\">>\u003C/div>\\\",\\n\\t\\tlist: [],\\n\\t\\ttags: [],\\n\\t\\trole: this.role,\\n\\t\\t\\\"slicer-rules\\\": nameSlicerRules,\\n\\t\\t\\\"slicer-output-mode\\\": this.outputMode\\n\\t});\\n\\tthis.parentStack.push({chunk: 0, actions: this.getMatchingSlicerRuleActions(\\\"(document)\\\")});\\n\\tthis.insertPrecedingChunk({\\n\\t\\t\\\"toc-type\\\": \\\"anchor\\\",\\n\\t\\t\\\"title\\\": this.baseTiddlerTitle + \\\"-anchor-\\\"\\n\\t});\\n\\t// Set up the parser\\n\\tvar sax = require(\\\"$:/plugins/tiddlywiki/sax/sax.js\\\");\\n\\tthis.sax = sax.parser(false,{\\n\\t\\txmlns: true,\\n\\t\\tlowercase: true\\n\\t});\\n\\tthis.sax.onerror = this.onError.bind(this);\\n\\tthis.sax.onopennamespace = this.onOpenNamespace.bind(this);\\n\\tthis.sax.onclosenamespace = this.onCloseNamespace.bind(this);\\n\\tthis.sax.onopentag = this.onOpenTag.bind(this);\\n\\tthis.sax.onclosetag = this.onCloseTag.bind(this);\\n\\tthis.sax.ontext = this.onText.bind(this);\\n\\tthis.sax.onend = this.onEnd.bind(this);\\n\\t// Start streaming the data\\n\\tthis.sax.write(this.getSourceText());\\n\\tthis.sax.close();\\n}\\n\\nSlicer.prototype.callback = function(err,tiddlers) {\\n\\tvar self = this;\\n\\t$tw.utils.nextTick(function() {\\n\\t\\tself.callbackFn(err,tiddlers);\\n\\t});\\n};\\n\\nSlicer.prototype.loadSlicerRules = function(name) {\\n\\t// Collect the available slicer rule tiddlers\\n\\tvar self = this,\\n\\t\\ttitles = this.wiki.getTiddlersWithTag(\\\"$:/tags/text-slicer/slicer-rules\\\"),\\n\\t\\ttiddlers = {},\\n\\t\\trules = {},\\n\\t\\truleNames = [];\\n\\ttitles.forEach(function(title) {\\n\\t\\tvar tiddler = self.wiki.getTiddler(title);\\n\\t\\ttiddlers[tiddler.fields.name] = tiddler;\\n\\t\\trules[tiddler.fields.name] = self.wiki.getTiddlerData(title,[]);\\n\\t});\\n\\t// Follow the inheritance trail to get a stack of slicer rule names\\n\\tvar n = name;\\n\\tdo {\\n\\t\\truleNames.push(n);\\n\\t\\tn = tiddlers[n] && tiddlers[n].fields[\\\"inherits-from\\\"];\\n\\t} while(n && ruleNames.indexOf(n) === -1);\\n\\t// Concatenate the slicer rules\\n\\trules = ruleNames.reduce(function(accumulator,name) {\\n\\t\\treturn accumulator.concat(rules[name]);\\n\\t},[]);\\n\\treturn rules;\\n};\\n\\nSlicer.prototype.getMatchingSlicerRuleActions = function(name) {\\n\\tvar rule = this.searchSlicerRules(name,this.slicerRules,this.elementStack);\\n\\tif(!rule) {\\n\\t\\treturn {};\\n\\t} else {\\n\\t\\treturn rule.actions;\\n\\t}\\n};\\n\\nSlicer.prototype.testSlicerRuleMatching = function() {\\n\\tvar tests = [\\n\\t\\t\\t{\\n\\t\\t\\t\\ttest: this.searchSlicerRules(\\\"title\\\",[\\n\\t\\t\\t\\t\\t\\t{selector: \\\"title,head,body\\\", rules: true},\\n\\t\\t\\t\\t\\t\\t{selector: \\\"body\\\", rules: true}\\n\\t\\t\\t\\t\\t],[\\n\\t\\t\\t\\t\\t\\t{tag:\\\"head\\\"}\\n\\t\\t\\t\\t\\t]),\\n\\t\\t\\t\\tresult: \\\"title,head,body\\\"\\n\\t\\t\\t},\\n\\t\\t\\t{\\n\\t\\t\\t\\ttest: this.searchSlicerRules(\\\"body\\\",[\\n\\t\\t\\t\\t\\t\\t{selector: \\\"title,head,body\\\", rules: true},\\n\\t\\t\\t\\t\\t\\t{selector: \\\"body\\\", rules: true}\\n\\t\\t\\t\\t\\t],[\\n\\t\\t\\t\\t\\t\\t{tag:\\\"head\\\"}\\n\\t\\t\\t\\t\\t]),\\n\\t\\t\\t\\tresult: \\\"title,head,body\\\"\\n\\t\\t\\t},\\n\\t\\t\\t{\\t\\n\\t\\t\\t\\ttest: this.searchSlicerRules(\\\"title\\\",[\\n\\t\\t\\t\\t\\t\\t{selector: \\\"head > title\\\", rules: true},\\n\\t\\t\\t\\t\\t\\t{selector: \\\"title\\\", rules: true}\\n\\t\\t\\t\\t\\t],[\\n\\t\\t\\t\\t\\t\\t{tag:\\\"head\\\"}\\n\\t\\t\\t\\t\\t]),\\n\\t\\t\\t\\tresult: \\\"head > title\\\"\\n\\t\\t\\t}\\n\\t\\t],\\n\\t\\tresults = tests.forEach(function(test,index) {\\n\\t\\t\\tif(test.test.selector !== test.result) {\\n\\t\\t\\t\\tthrow \\\"Failing test \\\" + index + \\\", returns \\\" + test.test.selector + \\\" instead of \\\" + test.result;\\n\\t\\t\\t}\\n\\t\\t});\\n};\\n\\nSlicer.prototype.searchSlicerRules = function(name,rules,elementStack) {\\n\\treturn rules.find(function(rule) {\\n\\t\\t// Split and trim the selectors for this rule\\n\\t\\treturn !!rule.selector.split(\\\",\\\").map(function(selector) {\\n\\t\\t\\t\\treturn selector.trim();\\n\\t\\t\\t// Find the first selector that matches, if any\\n\\t\\t\\t}).find(function(selector) {\\n\\t\\t\\t\\t// Split and trim the parts of the selector\\n\\t\\t\\t\\tvar parts = selector.split(\\\" \\\").map(function(part) {\\n\\t\\t\\t\\t\\treturn part.trim();\\n\\t\\t\\t\\t});\\n\\t\\t\\t\\t// * matches any element\\n\\t\\t\\t\\tif(parts.length === 1 && parts[0] === \\\"*\\\") {\\n\\t\\t\\t\\t\\treturn true;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t// Make a copy of the element stack so that we can be destructive\\n\\t\\t\\t\\tvar elements = elementStack.slice(0).concat({tag: name}),\\n\\t\\t\\t\\t\\tnextElementMustBeAtTopOfStack = true,\\n\\t\\t\\t\\t\\tcurrentPart = parts.length - 1;\\n\\t\\t\\t\\twhile(currentPart >= 0) {\\n\\t\\t\\t\\t\\tif(parts[currentPart] === \\\">\\\") {\\n\\t\\t\\t\\t\\t\\tnextElementMustBeAtTopOfStack = true;\\n\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\tif(!nextElementMustBeAtTopOfStack) {\\n\\t\\t\\t\\t\\t\\t\\twhile(elements.length > 0 && elements[elements.length - 1].tag !== parts[currentPart]) {\\n\\t\\t\\t\\t\\t\\t\\t\\telements.pop();\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\tif(elements.length === 0 || elements[elements.length - 1].tag !== parts[currentPart]) {\\n\\t\\t\\t\\t\\t\\t\\treturn false;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\telements.pop();\\n\\t\\t\\t\\t\\t\\tnextElementMustBeAtTopOfStack = false;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tcurrentPart--;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true;\\n\\t\\t\\t});\\n\\t\\t});\\n};\\n\\nSlicer.prototype.getBaseTiddlerTitle = function(baseTiddlerTitle) {\\n\\tif(baseTiddlerTitle) {\\n\\t\\treturn baseTiddlerTitle\\t\\t\\n\\t} else {\\n\\t\\tif(this.sourceTiddlerTitle) {\\n\\t\\t\\treturn \\\"Sliced up \\\" + this.sourceTiddlerTitle + \\\":\\\";\\n\\t\\t} else {\\n\\t\\t\\treturn \\\"SlicedTiddler\\\";\\n\\t\\t}\\n\\t}\\n};\\n\\nSlicer.prototype.getSourceText = function() {\\n\\tif(this.sourceTiddlerTitle) {\\n\\t\\tvar tiddler = this.wiki.getTiddler(this.sourceTiddlerTitle);\\n\\t\\tif(!tiddler) {\\n\\t\\t\\tconsole.log(\\\"Tiddler '\\\" + this.sourceTiddlerTitle + \\\"' does not exist\\\");\\n\\t\\t\\treturn \\\"\\\";\\n\\t\\t}\\n\\t\\tif(tiddler.fields.type === \\\"text/html\\\" || tiddler.fields.type === \\\"text/xml\\\" || (tiddler.fields.type || \\\"\\\").slice(-4) === \\\"+xml\\\") {\\n\\t\\t\\treturn tiddler.fields.text;\\n\\t\\t} else {\\n\\t\\t\\treturn this.getTiddlerAsHtml(tiddler);\\n\\t\\t}\\n\\t} else {\\n\\t\\treturn this.sourceText;\\n\\t}\\n};\\n\\nSlicer.prototype.getTiddlerAsHtml = function(tiddler) {\\n\\tvar widgetNode = this.wiki.makeTranscludeWidget(tiddler.fields.title,{\\n\\t\\t\\tdocument: $tw.fakeDocument,\\n\\t\\t\\tparseAsInline: false,\\n\\t\\t\\timportPageMacros: true}),\\n\\t\\tcontainer = $tw.fakeDocument.createElement(\\\"div\\\");\\n\\twidgetNode.render(container,null);\\n\\treturn [\\\"\u003C!DOCTYPE html PUBLIC \\\\\\\"-//W3C//DTD XHTML 1.1//EN\\\\\\\" \\\\\\\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\\\\\\\">\\\",\\\"\u003Chtml xmlns=\\\\\\\"http://www.w3.org/1999/xhtml\\\\\\\">\\\",\\\"\u003Chead>\\\",\\\"\u003C/head>\\\",\\\"\u003Cbody>\\\",container.innerHTML,\\\"\u003C/body>\\\",\\\"\u003C/html>\\\"].join(\\\"\\\\n\\\");\\n};\\n\\n\\nSlicer.prototype.getImmediateParent = function() {\\n\\treturn this.parentStack.slice(-1)[0];\\n};\\n\\nSlicer.prototype.onError = function(e) {\\n\\tconsole.error(\\\"Sax error: \\\", e)\\n\\t// Try to resume after errors\\n\\tthis.sax.error = null;\\n\\tthis.sax.resume();\\n};\\n\\nSlicer.prototype.onOpenNamespace = function(info) {\\n\\tthis.namespaces[info.prefix] = info.uri;\\n};\\n\\nSlicer.prototype.onCloseNamespace = function(info) {\\n};\\n\\nSlicer.prototype.onOpenTag = function(node) {\\n\\tvar actions = this.getMatchingSlicerRuleActions(node.name);\\n\\t// Create an anchor if we encounter an ID\\n\\tif(node.attributes.id) {\\n\\t\\tthis.insertPrecedingChunk({\\n\\t\\t\\t\\\"toc-type\\\": \\\"anchor\\\",\\n\\t\\t\\t\\\"title\\\": this.baseTiddlerTitle + \\\"-anchor-\\\" + node.attributes.id.value\\n\\t\\t});\\n\\t}\\n\\t// Check for an element that should start a new chunk\\n\\tif(actions.startNewChunk) {\\n\\t\\t// If this is a heading, pop off any higher or equal level headings first\\n\\t\\tif(actions.isParent && actions.headingLevel) {\\n\\t\\t\\tvar parentActions = this.getImmediateParent().actions;\\n\\t\\t\\twhile(parentActions.isParent && parentActions.headingLevel && parentActions.headingLevel >= actions.headingLevel) {\\n\\t\\t\\t\\tthis.parentStack.pop();\\n\\t\\t\\t\\tparentActions = this.getImmediateParent().actions;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t// Start the new chunk\\n\\t\\tthis.startNewChunk(actions.startNewChunk);\\n\\t\\t// If this is a parent then also add it to the parent stack\\n\\t\\tif(actions.isParent) {\\n\\t\\t\\tthis.parentStack.push({chunk: this.currentChunk, actions: actions});\\n\\t\\t}\\n\\t}\\n\\t// Render the tag inline in the current chunk unless we should ignore it\\n\\tif(!actions.dontRenderTag) {\\n\\t\\tif(actions.isImage) {\\n\\t\\t\\tthis.onOpenImage(node);\\n\\t\\t} else if(actions.isAnchor) {\\n\\t\\t\\tthis.onOpenAnchor(node);\\n\\t\\t} else {\\n\\t\\t\\tvar markupInfo = actions.markup && actions.markup[this.outputMode];\\n\\t\\t\\tif(markupInfo) {\\n\\t\\t\\t\\tthis.addTextToCurrentChunk(markupInfo.prefix);\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003C\\\" + node.name + (node.isSelfClosing ? \\\"/\\\" : \\\"\\\") + \\\">\\\");\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t// Remember whether this tag is self closing\\n\\tthis.elementStack.push({tag: node.name,isSelfClosing: node.isSelfClosing, actions: actions, node: node});\\n};\\n\\nSlicer.prototype.onOpenAnchor = function(node) {\\n\\tif(node.attributes.href) {\\n\\t\\tvar value = node.attributes.href.value;\\n\\t\\tif(value.indexOf(\\\"https://\\\") === 0 || value.indexOf(\\\"http://\\\") === 0) {\\n\\t\\t\\t// External link\\n\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003Ca href=\\\\\\\"\\\" + value + \\\"\\\\\\\" target=\\\\\\\"_blank\\\\\\\" rel=\\\\\\\"noopener noreferrer\\\\\\\">\\\");\\n\\t\\t} else {\\n\\t\\t\\t// Internal link\\n\\t\\t\\tvar parts = value.split(\\\"#\\\"),\\n\\t\\t\\t\\tbase = parts[0],\\n\\t\\t\\t\\thash = parts[1] || \\\"\\\",\\n\\t\\t\\t\\ttitle = $tw.utils.resolvePath(base,this.baseTiddlerTitle) + \\\"-anchor-\\\" + hash;\\n\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003C$link to=\\\\\\\"\\\" + title + \\\"\\\\\\\">\\\");\\t\\t\\t\\n\\t\\t}\\n\\t}\\n};\\n\\nSlicer.prototype.onCloseAnchor = function(elementInfo) {\\n\\tif(elementInfo.node.attributes.href) {\\n\\t\\tvar value = elementInfo.node.attributes.href.value;\\n\\t\\tif(value.indexOf(\\\"https://\\\") === 0 || value.indexOf(\\\"http://\\\") === 0) {\\n\\t\\t\\t// External link\\n\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003C/a>\\\");\\n\\t\\t} else {\\n\\t\\t\\t// Internal link\\n\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003C/$link>\\\");\\n\\t\\t}\\n\\t}\\n};\\n\\nSlicer.prototype.onOpenImage = function(node) {\\n\\tvar url = node.attributes.src.value;\\n\\tif(url.slice(0,5) === \\\"data:\\\") {\\n\\t\\t// var parts = url.slice(5).split(\\\",\\\");\\n\\t\\t// this.chunks.push({\\n\\t\\t// \\ttitle: ,\\n\\t\\t// \\ttext: parts[1],\\n\\t\\t// \\ttype: parts[0].split[\\\";\\\"][0],\\n\\t\\t// \\trole: this.role\\n\\t\\t// });\\n\\t}\\n\\tthis.addTextToCurrentChunk(\\\"[img[\\\" + $tw.utils.resolvePath(url,this.baseTiddlerTitle) + \\\"]]\\\");\\n};\\n\\nSlicer.prototype.onCloseTag = function(name) {\\n\\tvar e = this.elementStack.pop(),\\n\\t\\tactions = e.actions,\\n\\t\\tselfClosing = e.isSelfClosing;\\n\\t// Set the caption if required\\n// TODO\\n// \\tif(actions.setCaption) {\\n// \\t\\tthis.chunks[this.currentChunk].caption = this.chunks[this.currentChunk].title;\\n// \\t}\\n\\t// Render the tag\\n\\tif(actions.isAnchor) {\\n\\t\\tthis.onCloseAnchor(e);\\n\\t} else if (!actions.dontRenderTag && !selfClosing) {\\n\\t\\tvar markupInfo = actions.markup && actions.markup[this.outputMode];\\n\\t\\tif(markupInfo) {\\n\\t\\t\\tthis.addTextToCurrentChunk(markupInfo.suffix);\\n\\t\\t} else {\\n\\t\\t\\tthis.addTextToCurrentChunk(\\\"\u003C/\\\" + name + \\\">\\\");\\t\\t\\t\\n\\t\\t}\\n\\t}\\n\\t// Check for an element that started a new chunk\\n\\tif(actions.startNewChunk) {\\n\\t\\tif(!actions.mergeNext) {\\n\\t\\t\\tthis.currentChunk = null;\\t\\t\\t\\n\\t\\t}\\n\\t\\t// If this is a parent and not a heading then also pop it from the parent stack\\n\\t\\tif(actions.isParent && !actions.headingLevel) {\\n\\t\\t\\tthis.parentStack.pop();\\n\\t\\t}\\n\\t}\\n};\\n\\nSlicer.prototype.onText = function(text) {\\n\\tvar self = this;\\n\\t// Discard the text if we're inside an element with actions.discard set true\\n\\tif(this.elementStack.some(function(e) {return e.actions.discard;})) {\\n\\t\\treturn;\\n\\t}\\n\\t// Optionally escape common character sequences that might be parsed as wikitext\\n\\ttext = $tw.utils.htmlEncode(text);\\n\\tif(this.escapeWikiText) {\\n\\t\\t$tw.utils.each([\\\"[[\\\",\\\"{{\\\",\\\"__\\\",\\\"''\\\",\\\"//\\\",\\\",,\\\",\\\"^^\\\",\\\"~~\\\",\\\"`\\\",\\\"--\\\",\\\"\\\\\\\"\\\\\\\"\\\",\\\"@@\\\"],function(str) {\\n\\t\\t\\tvar replace = str.split(\\\"\\\").map(function(c) {\\n\\t\\t\\t\\treturn \\\"\\\" + c.charCodeAt(0) + \\\";\\\";\\n\\t\\t\\t}).join(\\\"\\\");\\n\\t\\t\\ttext = text.replace(new RegExp($tw.utils.escapeRegExp(str),\\\"mg\\\"),replace);\\n\\t\\t});\\n\\t}\\n\\tthis.addTextToCurrentChunk(text);\\n\\tthis.addTextToCurrentChunk(text,\\\"caption\\\");\\n};\\n\\nSlicer.prototype.onEnd = function() {\\n\\tthis.callback(null,this.chunks);\\n};\\n\\nSlicer.prototype.addTextToCurrentChunk = function(str,field) {\\n\\tfield = field || \\\"text\\\";\\n\\tif(this.currentChunk === null && str.trim() !== \\\"\\\") {\\n\\t\\tthis.startNewChunk({\\n\\t\\t\\ttitle: this.makeTitle(\\\"paragraph\\\"),\\n\\t\\t\\t\\\"toc-type\\\": \\\"paragraph\\\"\\n\\t\\t});\\n\\t}\\n\\tif(this.currentChunk !== null) {\\n\\t\\tthis.chunks[this.currentChunk][field] += str;\\n\\t}\\n};\\n\\nSlicer.prototype.startNewChunk = function(fields) {\\n\\tvar title = fields.title || this.makeTitle(fields[\\\"toc-type\\\"]);\\n\\tvar parentChunk = this.chunks[this.getImmediateParent().chunk];\\n\\tthis.chunks.push($tw.utils.extend({},{\\n\\t\\ttitle: title,\\n\\t\\ttext: \\\"\\\",\\n\\t\\tcaption: \\\"\\\",\\n\\t\\ttags: [parentChunk.title],\\n\\t\\tlist: [],\\n\\t\\trole: this.role\\n\\t},fields));\\n\\tthis.currentChunk = this.chunks.length - 1;\\n\\tparentChunk.list.push(title);\\n};\\n\\nSlicer.prototype.insertPrecedingChunk = function(fields) {\\n\\tif(!fields.title) {\\n\\t\\tthrow \\\"Chunks need a title\\\"\\n\\t}\\n\\tif(!this.currentChunk) {\\n\\t\\tthis.startNewChunk(fields);\\n\\t\\tthis.currentChunk = null;\\n\\t} else {\\n\\t\\tvar parentChunk = this.chunks[this.getImmediateParent().chunk],\\n\\t\\t\\tindex = this.chunks.length - 1;\\n\\t\\t// Insert the new chunk\\n\\t\\tthis.chunks.splice(index,0,$tw.utils.extend({},{\\n\\t\\t\\ttext: \\\"\\\",\\n\\t\\t\\tcaption: \\\"\\\",\\n\\t\\t\\ttags: [parentChunk.title],\\n\\t\\t\\tlist: [],\\n\\t\\t\\trole: this.role\\n\\t\\t},fields));\\n\\t\\t// Adjust the current chunk pointer\\n\\t\\tthis.currentChunk += 1;\\n\\t\\t// Insert a pointer to the new chunk in the parent\\n\\t\\tparentChunk.list.splice(parentChunk.list.length - 1,0,fields.title);\\t\\t\\n\\t}\\n};\\n\\nSlicer.prototype.isBlank = function(s) {\\n\\treturn (/^[\\\\s\\\\xA0]*$/g).test(s);\\n};\\n\\nSlicer.prototype.makeTitle = function(prefix) {\\n\\tprefix = prefix || \\\"\\\";\\n\\tvar count = (this.titleCounts[prefix] || 0) + 1;\\n\\tthis.titleCounts[prefix] = count;\\n\\treturn this.baseTiddlerTitle + \\\"-\\\" + prefix + \\\"-\\\" + count;\\n};\\n\\nexports.Slicer = Slicer;\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"library\"},\"$:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js\",\"text\":\"/*\\\\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js\\ntype: application/javascript\\nmodule-type: startup\\n\\nSetup the root widget event handlers\\n\\n\\\\*/\\n(function(){\\n\\n/*jslint node: true, browser: true */\\n/*global $tw: false */\\n\\\"use strict\\\";\\n\\nvar textSlicer = require(\\\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\\\");\\n\\n// Export name and synchronous status\\nexports.name = \\\"slicer\\\";\\nexports.platforms = [\\\"browser\\\"];\\nexports.after = [\\\"startup\\\"];\\nexports.synchronous = true;\\n\\n// Install the root widget event handlers\\nexports.startup = function() {\\n\\t// Check sax is installed\\n\\tif(!$tw.utils.hop($tw.modules.titles,\\\"$:/plugins/tiddlywiki/sax/sax.js\\\")) {\\n\\t\\t// Make a logger\\n\\t\\tvar logger = new $tw.utils.Logger(\\\"text-slicer\\\");\\n\\t\\tlogger.alert(\\\"The plugin 'text-slicer' requires the 'sax' plugin to be installed\\\");\\n\\t}\\n\\t// Add tm-slice-tiddler event handler\\n\\t$tw.rootWidget.addEventListener(\\\"tm-slice-tiddler\\\",function(event) {\\n\\t\\tvar slicer = new textSlicer.Slicer({\\n\\t\\t\\tsourceTiddlerTitle: event.param,\\n\\t\\t\\tslicerRules: event.paramObject && event.paramObject.slicerRules,\\n\\t\\t\\toutputMode: event.paramObject && event.paramObject.outputMode,\\n\\t\\t\\tbaseTiddlerTitle: event.paramObject && event.paramObject.destTitle,\\n\\t\\t\\trole: event.paramObject && event.paramObject.role,\\n\\t\\t\\twiki: $tw.wiki,\\n\\t\\t\\tcallback: function(err,tiddlers) {\\n\\t\\t\\t\\tif(err) {\\n\\t\\t\\t\\t\\tlogger.alert(\\\"Slicer error: \\\" + err);\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t$tw.wiki.addTiddlers(tiddlers);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t});\\n\\t});\\n};\\n\\n})();\\n\",\"type\":\"application/javascript\",\"module-type\":\"startup\"},\"$:/plugins/tiddlywiki/text-slicer/styles\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/styles\",\"tags\":\"$:/tags/Stylesheet\",\"text\":\"\\\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\\n\\n.tc-document-preview-column {\\n\\tposition: fixed;\\n\\toverflow-y: auto;\\n\\toverflow-x: visible;\\n\\t-webkit-overflow-scrolling: touch;\\n background-color: \u003C\u003Ccolour page-background>>;\\n\\tright: auto;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\\n\\tfont-size: 0.9em;\\n}\\n\\n.tc-sliced-document-title {\\n\\tfont-size: 1.7em;\\n}\\n\\n.tc-slice-note {\\n color: #800;\\n padding: 4px 4px 4px 4px;\\n border: 1px solid #feed77;\\n background: #feed77;\\n background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#dede80),color-stop(7%,#feed77),color-stop(92%,#feed77),color-stop(100%,#dede80));\\n background: -webkit-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -webkit-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\\n background: -moz-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -moz-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\\n background: -o-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -o-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\\n background: -ms-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -ms-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\\n background: linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\\n\\t\u003C\u003Cbox-shadow \\\"1px 1px 6px rgba(0,0,0,0.4)\\\">>\\n}\\n\\n.tc-document-preview-column .tc-sliced-document-header {\\n\\tmargin-left: 24px;\\n}\\n\\n.tc-document-preview-column .tc-sliced-document {\\n\\tmargin-bottom: 3px;\\n}\\n\\n.tc-view-template-document-tiddler-wrapper,\\n.tc-edit-template-document-tiddler-wrapper {\\n border-top: 2px solid #D6A2A2;\\n margin-left: -42px;\\n margin-right: -42px;\\n margin-bottom: -42px;\\n padding-left: 42px;\\n padding-right: 42px;\\n background: #FFE3E3;\\n padding-bottom: 10px;\\n}\\n\\n.tc-edit-template-document-tiddler-wrapper {\\n\\tbackground: #A3A3D7;\\n}\\n\\ndiv.tc-view-template-document-tiddler-heading a,\\ndiv.tc-edit-template-document-tiddler-heading a {\\n\\tborder: 1px solid #D6A2A2;\\n\\tbackground: #fff;\\n\\tborder-radius: 16px;\\n padding: 0px 4px 0px 4px;\\n margin: 2px 4px 2px 4px;\\n white-space: nowrap;\\n display: inline-block;\\n}\\n\\ndiv.tc-view-template-document-tiddler-heading a:hover,\\ndiv.tc-edit-template-document-tiddler-heading a:hover {\\n\\tborder: 1px solid \u003C\u003Ccolour background>>;\\n\\ttext-decoration: none;\\n\\tcolor: \u003C\u003Ccolour background>>;\\n\\tbackground: \u003C\u003Ccolour foreground>>;\\n}\\n\\n.tc-view-template-document-tiddler-heading-icon,\\n.tc-edit-template-document-tiddler-heading-icon {\\n\\twidth: 42px;\\n\\ttext-align: center;\\n margin-left: -42px;\\n margin-right: -42px;\\n position: absolute;\\n}\\n\\n.tc-view-template-document-tiddler-subheading,\\n.tc-edit-template-document-tiddler-subheading {\\n\\tfont-size: 0.7em;\\n\\tfont-weight: bold;\\n\\tcolor: \u003C\u003Ccolour muted-foreground>>;\\n}\\n\\n.tc-view-template-document-tiddler-heading-icon svg,\\n.tc-edit-template-document-tiddler-heading-icon svg {\\n\\tfill: \u003C\u003Ccolour background>>;\\t\\n}\\n\\n.tc-view-template-document-tiddler {\\n\\tfont-size: 0.9em;\\n}\\n\\n.tc-document-tiddler {\\n\\tfont-family: Georgia, Times, 'Times New Roman', serif;\\n}\\n\\n.tc-text-slicer-rename input {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n}\\n\\n.tc-document-tiddler-link {\\n\\tcursor: pointer;\\n}\\n\\n.tc-document-tiddler-link:hover {\\n background: \u003C\u003Ccolor background>>;\\n}\\n\\n.tc-document-tiddler-toolbar {\\n\\tposition: absolute;\\n\\twidth: 24px;\\n\\ttext-align: center;\\n}\\n\\n.tc-document-preview-column .tc-sliced-document-body {\\n\\tmargin-left: 24px;\\n}\\n\\n.tc-document-preview-column .tc-document-tiddler-toolbar {\\n\\tmargin-left: -24px;\\n}\\n\\n.tc-table-of-contents .tc-slice-toolbar button {\\n\\tcolor: inherit;\\n\\tbackground-color: inherit;\\n}\\n\\n.tc-tiddler-frame .tc-document-tiddler-toolbar {\\n left: 0;\\n width: 42px;\\n}\\n\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/def-list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/def-list\",\"text\":\"\\\\define body()\\n\u003Cdl>\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\\\"/>\\n\u003C/$list>\\n\u003C/dl>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/definition\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/definition\",\"text\":\"\\\\define body()\\n\u003C$link tag=\\\"dd\\\" class=\\\"tc-document-tiddler-link\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$link>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\",\"text\":\"\\\\define config-document-status()\\n$:/state/plugins/tiddlywiki/text-slicer/show-preview-document/$(tv-heading-status-config-prefix)$/$(currentTiddler)$\\n\\\\end\\n\\n\\\\define config-show-toolbar()\\n$:/state/plugins/tiddlywiki/text-slicer/show-toolbar/$(currentTiddler)$\\n\\\\end\\n\\n\\\\define config-show-metadata()\\n$:/state/plugins/tiddlywiki/text-slicer/show-metadata/$(currentTiddler)$\\n\\\\end\\n\\n\\\\define config-heading-status()\\n$:/state/plugins/tiddlywiki/text-slicer/heading-status/$(currentTiddler)$\\n\\\\end\\n\\n\\\\define body()\\n\u003C$set name=\\\"tv-heading-status-config-title\\\" value=\u003C\u003Cconfig-heading-status>>>\\n\u003C$set name=\\\"tv-show-toolbar\\\" value={{$(config-show-toolbar)$}}>\\n\u003Cdiv class=\\\"tc-sliced-document\\\">\\n\u003Cdiv class=\\\"tc-sliced-document-header\\\">\\n\u003Cdiv class=\\\"tc-document-tiddler-toolbar\\\">\\n\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-document-status>> text=\\\"close\\\" default=\\\"open\\\" tag=\\\"div\\\">\\n\u003C$button set=\u003C\u003Cconfig-document-status>> setTo=\\\"close\\\" class=\\\"tc-btn-invisible\\\">\\n{{$:/core/images/down-arrow}}\\n\u003C/$button>\\n\u003C/$reveal>\\n\u003C$reveal type=\\\"match\\\" state=\u003C\u003Cconfig-document-status>> text=\\\"close\\\" default=\\\"open\\\" tag=\\\"div\\\">\\n\u003C$button set=\u003C\u003Cconfig-document-status>> setTo=\\\"open\\\" class=\\\"tc-btn-invisible\\\">\\n{{$:/core/images/right-arrow}}\\n\u003C/$button>\\n\u003C/$reveal>\\n\u003C/div>\\n\u003Ch1 class=\\\"tc-sliced-document-title\\\">''Document'': \u003C$link>\u003C$view field=\\\"title\\\"/>\u003C/$link>\u003C/h1>\\n\u003C/div>\\n\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cconfig-document-status>> text=\\\"close\\\" default=\\\"open\\\" tag=\\\"div\\\">\\n{{||$:/plugins/tiddlywiki/text-slicer/ui/document/header}}\\n\u003Cdiv class='tc-sliced-document-body'>\\n\u003C$set name=\\\"tv-show-toolbar\\\" value={{$(config-show-toolbar)$}}>\\n\u003C$set name=\\\"tv-exclude-filter\\\" value={{!!toc-exclude-filter}}>\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\\\"/>\\n\u003C/$set>\\n\u003C/$set>\\n\u003C/div>\\n\u003C/$reveal>\\n\u003C/div>\\n\u003C/$set>\\n\u003C/$set>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/heading\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/heading\",\"text\":\"\\\\define config-heading-status()\\n$(tv-heading-status-config-title)$/$(tv-heading-status-config-prefix)$/$(currentTiddler)$\\n\\\\end\\n\\n\\\\define body(level:\\\"h1\\\")\\n\u003C$set name=\\\"tv-heading-status-config-title\\\" value=\u003C\u003Cconfig-heading-status>>>\\n\u003Cdiv class=\\\"tc-document-tiddler\\\">\\n\u003Cdiv class=\\\"tc-document-tiddler-toolbar\\\">\\n\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Ctv-heading-status-config-title>> text=\\\"close\\\" default=\u003C\u003Ctv-default-heading-state>> tag=\\\"div\\\">\\n\u003C$button set=\u003C\u003Ctv-heading-status-config-title>> setTo=\\\"close\\\" class=\\\"tc-btn-invisible\\\">\\n{{$:/core/images/down-arrow}}\\n\u003C/$button>\\n\u003C/$reveal>\\n\u003C$reveal type=\\\"match\\\" state=\u003C\u003Ctv-heading-status-config-title>> text=\\\"close\\\" default=\u003C\u003Ctv-default-heading-state>> tag=\\\"div\\\">\\n\u003C$button set=\u003C\u003Ctv-heading-status-config-title>> setTo=\\\"open\\\" class=\\\"tc-btn-invisible\\\">\\n{{$:/core/images/right-arrow}}\\n\u003C/$button>\\n\u003C/$reveal>\\n\u003C/div>\\n\u003C$link tag=\\\"$level$\\\" class=\\\"tc-document-tiddler-link\\\">\\n\u003C$transclude/>\\n\u003C/$link>\\n\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Ctv-heading-status-config-title>> text=\\\"close\\\" default=\u003C\u003Ctv-default-heading-state>> tag=\\\"div\\\">\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\\\"/>\\n\u003C/$reveal>\\n\u003C/div>\\n\u003C/$set>\\n\\\\end\\n\\n\u003C$macrocall $name=\\\"body\\\" level={{!!toc-heading-level}}/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/image\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/image\",\"text\":\"\\\\define body()\\n\u003C$link tag=\\\"div\\\" class=\\\"tc-document-tiddler-link tc-document-tiddler\\\">\\n\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$list>\\n\\n\u003C/$link>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/item\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/item\",\"text\":\"\\\\define body()\\n\u003C$link tag=\\\"li\\\" class=\\\"tc-document-tiddler-link\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$link>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/list\",\"text\":\"\\\\define body(type:\\\"ul\\\")\\n\u003C$type$>\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\\\"/>\\n\u003C/$list>\\n\u003C/$type$>\\n\\\\end\\n\\n\u003C$macrocall $name=\\\"body\\\" type={{!!toc-list-type}}/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/note\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/note\",\"text\":\"\\\\define body()\\n\u003Cdiv class=\\\"tc-slice-note\\\">\\n\\n\u003C$link tag=\\\"div\\\" class=\\\"tc-document-tiddler-link tc-document-tiddler\\\">\\n\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$list>\\n\\n\u003C/$link>\\n\\n\u003C/div>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/paragraph\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/paragraph\",\"text\":\"\\\\define body()\\n\u003C$link tag=\\\"div\\\" class=\\\"tc-document-tiddler-link tc-document-tiddler\\\">\\n\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$list>\\n\\n\u003C/$link>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/term\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/term\",\"text\":\"\\\\define body()\\n\u003C$link tag=\\\"dt\\\" class=\\\"tc-document-tiddler-link\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$link>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\",\"text\":\"\\\\define if(condition,then,else)\\n\u003C$list filter=\\\"\\\"\\\"$condition$ +[limit[1]]\\\"\\\"\\\" emptyMessage=\\\"\\\"\\\"$else$\\\"\\\"\\\" variable=\\\"ignore\\\">\\n$then$\\n\u003C/$list>\\n\\\\end\\n\\n\\\\define include-component(type)\\n\u003C\u003Cif \\\"[{!!toc-type}match[$type$]]\\\" \\\"\\\"\\\"\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/$type$\\\" mode=\\\"block\\\"/>\\n\\\"\\\"\\\">>\\n\\\\end\\n\\n\u003C$list filter=\\\"[\u003Ctv-show-toolbar>match[yes]]\\\" variable=\\\"hasToolbar\\\">\\n{{||$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar}}\\n\u003C/$list>\\n\\n\u003C\u003Cinclude-component \\\"document\\\">>\\n\u003C\u003Cinclude-component \\\"heading\\\">>\\n\u003C\u003Cinclude-component \\\"paragraph\\\">>\\n\u003C\u003Cinclude-component \\\"note\\\">>\\n\u003C\u003Cinclude-component \\\"list\\\">>\\n\u003C\u003Cinclude-component \\\"item\\\">>\\n\u003C\u003Cinclude-component \\\"image\\\">>\\n\u003C\u003Cinclude-component \\\"def-list\\\">>\\n\u003C\u003Cinclude-component \\\"term\\\">>\\n\u003C\u003Cinclude-component \\\"definition\\\">>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list\",\"text\":\"\\\\define body()\\n\u003Cdl>\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\\\"/>\\n\u003C/$list>\\n\u003C/dl>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/definition\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/definition\",\"text\":\"\\\\define body()\\n\u003Cdd>\\n\\n\u003C$transclude/>\\n\\n\u003C/dd>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\",\"text\":\"\u003C$set name=\\\"tv-exclude-filter\\\" value={{!!toc-exclude-filter}}>\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\\\"/>\\n\\n\u003C/$set>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/heading\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/heading\",\"text\":\"\\\\define body(level:\\\"h1\\\")\\n\u003C$level$>\\n\u003C$transclude/>\\n\u003C/$level$>\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\\\"/>\\n\\\\end\\n\\n\u003C$macrocall $name=\\\"body\\\" level={{!!toc-heading-level}}/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/image\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/image\",\"text\":\"\u003C$transclude/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/item\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/item\",\"text\":\"\\\\define body()\\n\u003Cli>\\n\\n\u003C$transclude/>\\n\\n\u003C/li>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/list\",\"text\":\"\\\\define body(type:\\\"ul\\\")\\n\u003C$type$>\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\\\"/>\\n\u003C/$list>\\n\u003C/$type$>\\n\\\\end\\n\\n\u003C$macrocall $name=\\\"body\\\" type={{!!toc-list-type}}/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/note\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/note\",\"text\":\"\u003C!-- Don't display notes in plain mode -->\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph\",\"text\":\"\\\\define body()\\n\u003Cdiv>\\n\\n\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude/>\\n\\n\u003C/$list>\\n\\n\u003C/div>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/term\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/term\",\"text\":\"\\\\define body()\\n\u003Cdt>\\n\\n\u003C$transclude/>\\n\\n\u003C/dt>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\",\"text\":\"\u003C$vars toc-type={{!!toc-type}}>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[document]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[heading]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/heading\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[paragraph]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[note]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/note\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[list]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/list\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[item]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/item\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[image]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/image\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[def-list]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[term]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/term\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[definition]]\\\" variable=\\\"item\\\">\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/definition\\\" mode=\\\"block\\\"/>\\n\u003C/$list>\\n\\n\u003C/$vars>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/def-list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/def-list\",\"text\":\"\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n`\u003Cdl class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\\n`\u003C/dl>`\\n\\n\u003C/$list>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/definition\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/definition\",\"text\":\"`\u003Cdd class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$transclude/>\\n\\n`\u003C/dd>`\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/document\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/document\",\"text\":\"\u003C$set name=\\\"tv-exclude-filter\\\" value={{!!toc-exclude-filter}}>\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\\n\u003C/$set>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/heading\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/heading\",\"text\":\"`\u003C`\u003C$text text={{!!toc-heading-level}}/>` class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$view field=\\\"text\\\" format=\\\"htmlencodedplainwikified\\\"/>\\n\\n`\u003C/`\u003C$text text={{!!toc-heading-level}}/>`>`\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes\",\"text\":\"\u003C$list filter=\\\"[all[current]tags[]addprefix[$:/_DocumentTags/]has[title]]\\\">\u003C$view field=\\\"css-class\\\"/> \u003C/$list>\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/image\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/image\",\"text\":\"\u003C$reveal state=\\\"!!_canonical_uri\\\" type=\\\"match\\\" text=\\\"\\\">\\n\\n`\u003Cimg src=\\\"data:`\u003C$view format=\\\"text\\\" field=\\\"type\\\"/>`;base64,`\u003C$view format=\\\"text\\\" field=\\\"text\\\"/>`\\\" class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C/$reveal>\\n\\n\u003C$reveal state=\\\"!!_canonical_uri\\\" type=\\\"nomatch\\\" text=\\\"\\\">\\n\\n`\u003Cimg src=\\\"`\u003C$text text=\u003C\u003Ctv-external-image-path>>/>\u003C$view field=\\\"title\\\" format=\\\"doubleurlencoded\\\"/>`\\\" class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C/$reveal>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/item\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/item\",\"text\":\"`\u003Cli class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$transclude/>\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\\n`\u003C/li>`\\n\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/list\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/list\",\"text\":\"\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n`\u003C`\u003C$text text={{!!toc-list-type}}/>` class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$list filter={{!!toc-list-filter}} template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\\n`\u003C/`\u003C$text text={{!!toc-list-type}}/>`>`\\n\\n\u003C/$list>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/note\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/note\",\"text\":\"\u003C!-- Don't display notes in static mode -->\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph\",\"text\":\"\u003C$list filter=\\\"\\\"\\\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\\\"\\\"\\\" variable=\\\"item\\\">\\n\\n`\u003Cp class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$view field=\\\"text\\\" format=\\\"htmlencodedplainwikified\\\"/>\\n\\n`\u003C/p>`\\n\\n\u003C/$list>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/term\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/term\",\"text\":\"`\u003Cdt class=\\\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\\\">`\\n\\n\u003C$transclude/>\\n\\n`\u003C/dt>`\\n\\n\u003C$list filter=\\\"[list\u003CcurrentTiddler>!has[draft.of]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\\\"/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\",\"text\":\"\u003C$vars toc-type={{!!toc-type}}>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[document]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/document\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[heading]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/heading\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[paragraph]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[note]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/note\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[list]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/list\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[item]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/item\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[image]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/image\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[def-list]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/def-list\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[term]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/term\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C$list filter=\\\"[\u003Ctoc-type>match[definition]]\\\" variable=\\\"item\\\">\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/static/definition\\\" mode=\\\"block\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C/$vars>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/document/header\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/document/header\",\"text\":\"\\\\define metadatafield()\\n\u003Ctr>\\n\u003Ctd>\\n''\u003C$transclude tiddler=\u003C\u003ClistItem>> field=\\\"caption\\\"/>''\\n\u003C/td>\\n\u003Ctd>\\n\u003C$reveal type=\\\"match\\\" state=\\\"\\\"\\\"$(listItem)$!!field-type\\\"\\\"\\\" text=\\\"string\\\">\\n\u003C$edit-text field={{$(listItem)$!!field}}/>\\n\u003C/$reveal>\\n\u003C$reveal type=\\\"match\\\" state=\\\"\\\"\\\"$(listItem)$!!field-type\\\"\\\"\\\" text=\\\"list\\\">\\n\u003C$edit-text tag=\\\"textarea\\\" field={{$(listItem)$!!field}}/>\\n\u003C/$reveal>\\n\u003C/td>\\n\u003C/tr>\\n\\\\end\\n\\n\u003Cdiv class=\\\"tc-sliced-document-header\\\">\\n\\n''Exclude filter'': \u003C$edit-text field=\\\"toc-exclude-filter\\\"/>\\n\\n\u003C$checkbox tiddler=\u003C\u003Cconfig-show-toolbar>> field=\\\"text\\\" checked=\\\"yes\\\" unchecked=\\\"no\\\" default=\\\"no\\\"> Show toolbar \u003C/$checkbox> \u003C$checkbox tiddler=\u003C\u003Cconfig-show-metadata>> field=\\\"text\\\" checked=\\\"yes\\\" unchecked=\\\"no\\\" default=\\\"no\\\"> Show metadata\u003C/$checkbox> \u003C$button>\\n\u003C$action-sendmessage $message=\\\"tm-open-window\\\" $param=\u003C\u003CcurrentTiddler>> template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\\\"/>\\nView document\\n\u003C/$button>\\n\\n\u003C$reveal state=\u003C\u003Cconfig-show-metadata>> default=\\\"no\\\" type=\\\"match\\\" text=\\\"yes\\\">\\n\u003Ctable>\\n\u003Ctbody>\\n\u003C$list filter=\\\"[all[system+tiddlers]tag[$:/tags/DocumentMetaData]]\\\" variable=\\\"listItem\\\">\\n\u003C\u003Cmetadatafield>>\\n\u003C/$list>\\n\u003C/tbody>\\n\u003C/table>\\n\u003C/$reveal>\\n\\n\\n\u003C/div>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/edit-template-segment\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/edit-template-segment\",\"tags\":\"$:/tags/EditTemplate\",\"text\":\"\\\\define edit-field(name,tag:\\\"input\\\")\\n$name$:\\n\\n\u003C$edit-text field=\\\"\\\"\\\"$name$\\\"\\\"\\\" tag=\\\"$tag$\\\" class=\\\"tc-edit-texteditor\\\"/>\\n\\\\end\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"!!toc-type\\\" text=\\\"\\\">\\n\\n\u003Cdiv class=\\\"tc-edit-template-document-tiddler-wrapper\\\">\\n\\n\u003Cdiv class=\\\"tc-edit-template-document-tiddler-heading\\\">\\n\\n\u003Cdiv class=\\\"tc-edit-template-document-tiddler-heading-icon\\\">\\n\\n{{$:/core/images/file}}\\n\\n\u003C/div>\\n\\n\u003Cdiv class=\\\"tc-edit-template-document-tiddler-subheading\\\">\\n\\n\u003C$view field=\\\"toc-type\\\"/>\\n\\n\u003C/div>\\n\\n\u003C\u003Cedit-field \\\"list\\\" tag:\\\"textarea\\\">>\\n\\n\u003C/div>\\n\\n\u003C/div>\\n\\n\u003C/$reveal>\\n\\n\"},\"$:/plugins/tiddlywiki/text-slicer/filters/Orphans\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/filters/Orphans\",\"tags\":\"$:/tags/Filter\",\"filter\":\"[has[toc-type]] -[toc-type[document]list-children[]]\",\"description\":\"[Text-slicer] Tiddlers that are not part of any document\",\"text\":\"\"},\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty\",\"text\":\"\u003Cdiv class=\\\"tc-sliced-document-header\\\">\\n\\nCreate a document by slicing an existing tiddler\\n\\n---\\n\\n[[Help|$:/plugins/tiddlywiki/text-slicer/docs]]\\n\\n\u003C/div>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple\",\"text\":\"Show document: \u003C$select tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/config/currentDocument\\\">\\n\u003C$list filter=\\\"[toc-type[document]!has[draft.of]sort[title]]\\\">\\n\u003Coption value=\u003C\u003CcurrentTiddler>>>\u003C$view field=\\\"title\\\"/>\u003C/option>\\n\u003C/$list>\\n\u003C/$select>\\n\\n\u003C$tiddler tiddler={{$:/plugins/tiddlywiki/text-slicer/config/currentDocument}}>\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\\\"/>\\n\\n\u003C/$tiddler>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single\",\"text\":\"\u003C$list filter=\\\"[toc-type[document]!has[draft.of]sort[title]limit[1]]\\\" template=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\\\"/>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column\",\"tags\":\"$:/tags/AboveStory\",\"text\":\"\u003C$scrollable fallthrough=\\\"no\\\" class=\\\"tc-document-preview-column\\\">\\n\\n\u003C$vars\\n\\ttv-default-heading-state=\\\"open\\\"\\n>\\n\\n\u003C$list filter=\\\"[toc-type[document]!has[draft.of]sort[title]limit[1]]\\\" emptyMessage={{$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty}}>\\n\\n\u003C$list filter=\\\"[toc-type[document]!has[draft.of]sort[title]butfirst[1]limit[1]]\\\" emptyMessage={{$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single}} template=\\\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple\\\"/>\\n\\n\u003C/$list>\\n\\n\u003C/$vars>\\n\\n\u003C/$scrollable>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal\",\"footer\":\"\u003C$button message=\\\"tm-close-tiddler\\\">Cancel\u003C/$button> \u003C$button>\u003C$action-sendmessage $message=\\\"tm-close-tiddler\\\"/>\u003C$action-sendmessage $message=\\\"tm-slice-tiddler\\\" $param=\u003C\u003CcurrentTiddler>> slicerRules={{$:/config/plugins/text-slicer/slice-rule}} outputMode={{$:/config/plugins/text-slicer/output-mode}} destTitle={{$:/config/plugins/text-slicer/base-title}}/>Slice\u003C/$button>\",\"subtitle\":\"Slicing \\\"\u003C$text text=\u003C\u003CcurrentTiddler>>/>\\\" into chunks\",\"text\":\"''Choose how the tiddler should be sliced''\\n\\nPrefix for extracted tiddlers: \u003C$edit-text tiddler=\\\"$:/config/plugins/text-slicer/base-title\\\" default={{{ [[Sliced up ]addsuffix\u003CcurrentTiddler>addsuffix[:]] }}} tag=\\\"input\\\" size=\\\"30\\\"/>\\n\\n\u003C$select tiddler=\\\"$:/config/plugins/text-slicer/slice-rule\\\" default=\\\"html-by-paragraph\\\">\\n\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/text-slicer/slicer-rules]!has[draft.of]]\\\">\\n\u003Coption value={{!!name}}>\u003C$text text={{!!description}}/>\u003C/option>\\n\u003C/$list>\\n\u003C/$select>\\n\\nOutput mode: \u003C$select tiddler=\\\"$:/config/plugins/text-slicer/output-mode\\\" default=\\\"html\\\">\\n\u003Coption value=\\\"html\\\">HTML\u003C/option>\\n\u003Coption value=\\\"wiki\\\">Wiki text\u003C/option>\\n\u003C/$select>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button\",\"tags\":\"$:/tags/ViewToolbar\",\"list-before\":\"$:/core/ui/Buttons/edit\",\"caption\":\"{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}} Slice text tiddler\",\"description\":\"Slice this text tiddler by headings and lists\",\"text\":\"\\\\whitespace trim\\n\\n\\\\define hint()\\nSlice this text tiddler into chunks\\n\\\\end\\n\\n\u003C$list filter=\\\"[\u003CcurrentTiddler>!is[image]!is[binary]]\\\" variable=\\\"ignore\\\">\\n\u003C$button tooltip=\u003C\u003Chint>> aria-label=\u003C\u003Chint>> class=\u003C\u003Ctv-config-toolbar-class>>>\\n\u003C$action-sendmessage $message=\\\"tm-modal\\\" $param=\\\"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal\\\" currentTiddler=\u003C\u003CcurrentTiddler>>/>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>match[yes]]\\\">\\n{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}}\\n\u003C/$list>\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>match[yes]]\\\">\\n\u003Cspan class=\\\"tc-btn-text\\\">Slice tiddler\u003C/span>\\n\u003C/$list>\\n\u003C/$button>\\n\u003C/$list>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar/title\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar/title\",\"tags\":\"$:/tags/TextSlicerToolbar\",\"text\":\"\\\\define renameProxyTitle()\\n$:/state/plugins/tiddlywiki/text-slicer/rename-$(currentTiddler)$\\n\\\\end\\n\\n\\\\define body()\\n\u003Cdiv class=\\\"tc-text-slicer-rename\\\">\\n\u003C$edit-text tag=\\\"input\\\" tiddler=\u003C\u003CrenameProxyTitle>> placeholder=\\\"Rename\\\" default=\u003C\u003CcurrentTiddler>>/>\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"\\\"\\\"$(renameProxyTitle)$\\\"\\\"\\\" text=\u003C\u003CcurrentTiddler>> default=\u003C\u003CcurrentTiddler>>>\\n\u003C$button>\\n\u003C$action-deletetiddler $tiddler=\u003C\u003CrenameProxyTitle>>/>\\ncancel\\n\u003C/$button>\\n\u003C$button>\\n\u003C$action-sendmessage $message=\\\"tm-rename-tiddler\\\" from=\u003C\u003CcurrentTiddler>> to={{$(renameProxyTitle)$}}/>\\n\u003C$action-deletetiddler $tiddler=\u003C\u003CrenameProxyTitle>>/>\\nrename\\n\u003C/$button>\\n\u003C$set name=\\\"proxy-title\\\" value={{$(renameProxyTitle)$}}>\\n\u003C$list filter=\\\"\\\"\\\"[\u003Cproxy-title>is[tiddler]]\\\"\\\"\\\">\\nWarning: tiddler already exists\\n\u003C/$list>\\n\u003C/$set>\\n\u003C/$reveal>\\n\u003C/div>\\n\\\\end\\n\\n\u003C\u003Cbody>>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar\",\"text\":\"\u003Cdiv class=\\\"tc-slice-toolbar\\\">\\n\u003C$list filter=\\\"[all[shadows+tiddlers]tag[$:/tags/TextSlicerToolbar]!has[draft.of]]\\\" variable=\\\"listItem\\\">\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\u003C/$list>\\n\u003C/div>\\n\"},\"$:/plugins/tiddlywiki/text-slicer/ui/view-template-segment\":{\"title\":\"$:/plugins/tiddlywiki/text-slicer/ui/view-template-segment\",\"tags\":\"$:/tags/ViewTemplate\",\"text\":\"\\\\define config-heading-status()\\n$:/state/plugins/tiddlywiki/text-slicer/heading-status/$(currentTiddler)$\\n\\\\end\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\u003C\u003Cfolded-state>> text=\\\"hide\\\" retain=\\\"yes\\\" animate=\\\"yes\\\">\\n\\n\u003C$reveal type=\\\"nomatch\\\" state=\\\"!!toc-type\\\" text=\\\"\\\">\\n\\n\u003Cdiv class=\\\"tc-view-template-document-tiddler-wrapper\\\">\\n\\n\u003Cdiv class=\\\"tc-view-template-document-tiddler-heading\\\">\\n\\n\u003Cdiv class=\\\"tc-view-template-document-tiddler-heading-icon\\\">\\n\\n{{$:/core/images/file}}\\n\\n\u003C/div>\\n\\n\u003Cdiv class=\\\"tc-view-template-document-tiddler-subheading\\\">\\n\\n\u003C$view field=\\\"toc-type\\\"/>\\n\\n\u003C/div>\\n\\nParents: \u003C$list filter=\\\"[all[current]listed[]!is[system]]\\\" emptyMessage=\\\"None\\\">\\n\u003C$link>\u003C$view field=\\\"title\\\"/>\u003C/$link>\\n\u003C/$list>\\n\\n\u003C/div>\\n\\n\u003Cdiv class=\\\"tc-view-template-document-tiddler\\\">\\n\\n\u003C$vars\\n\\ttv-default-heading-state=\\\"close\\\"\\n\\ttv-heading-status-config-prefix=\\\"view-template\\\"\\n\\ttv-heading-status-config-title=\u003C\u003Cconfig-heading-status>>\\n>\\n\\n\u003C$transclude tiddler=\\\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\\\"/>\\n\\n\u003C/$vars>\\n\\n\u003C/div>\\n\\n\u003C/div>\\n\\n\u003C/$reveal>\\n\\n\u003C/$reveal>\\n\"}}}"},
{"created":"20221109160736203","title":"$:/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button","tags":"$:/tags/ViewToolbar","caption":"{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}} Slice text tiddler","description":"Slice this text tiddler by headings and lists","text":"\\whitespace trim\n\n\\define hint()\nSlice this text tiddler into chunks\n\\end\n\n\u003C$list filter=\"[\u003CcurrentTiddler>!is[image]!is[binary]]\" variable=\"ignore\">\n\u003C$button tooltip=\u003C\u003Chint>> aria-label=\u003C\u003Chint>> class=\u003C\u003Ctv-config-toolbar-class>>>\n\u003C$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal\" currentTiddler=\u003C\u003CcurrentTiddler>>/>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}}\n\u003C/$list>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-text>match[yes]]\">\n\u003Cspan class=\"tc-btn-text\">Slice tiddler\u003C/span>\n\u003C/$list>\n\u003C/$button>\n\u003C/$list>\n","modified":"20221109160736203"},
{"title":"$:/plugins/tobibeer/base64","description":"base64 encoding and decoding for ~TiddlyWiki","author":"Tobias Beer","version":"0.5.0","core-version":">=5.1.9","source":"https://github.com/tobibeer/tw5-base64","documentation":"https://tobibeer.github.io/tw5-base64","plugin-type":"plugin","requires":"","list":"readme","dependents":"","type":"application/json","text":"{\n \"tiddlers\": {\n \"$:/plugins/tobibeer/base64/filter.js\": {\n \"title\": \"$:/plugins/tobibeer/base64/filter.js\",\n \"text\": \"/*\\\\\\r\\ntitle: $:/plugins/tobibeer/base64/filter.js\\r\\ntype: application/javascript\\r\\nmodule-type: filteroperator\\r\\n\\r\\nA filter to encode and decode base64\\r\\n\\r\\n@preserve\\r\\n\\\\*/\\r\\n(function(){\\\"use strict\\\";exports.base64=function(e,r,t){var n=\\\"\\\",o=r.suffix==\\\"decode\\\";try{if(r.operand){n=r.operand}else{e(function(e,r){n+=r})}n=o?atob(n):btoa(n)}catch(i){return[\\\"Error in base64 filter trying to \\\"+(o?\\\"de\\\":\\\"en\\\")+\\\"code'\\\"+n+\\\"':\\\\n\\\"+i]}return[n]}})();\",\n \"type\": \"application/javascript\",\n \"module-type\": \"filteroperator\"\n },\n \"$:/plugins/tobibeer/base64/readme\": {\n \"title\": \"$:/plugins/tobibeer/base64/readme\",\n \"text\": \"The plugin $:/plugins/tobibeer/base64 provides:\\n\\n; base64[]\\r\\n: a filter to encode text to base64\\n\\n; base64:decode[]\\r\\n: and dencode base64 to text\\n\\n\u003Cbr>\\n\\n; documentation / examples / demos...\\r\\n: http://tobibeer.github.io/tw5-plugins#base64\"\n }\n }\n}"},
+{"title":"$:/plugins/tobibeer/inc","description":"Enhance transclusion by including tiddlers with an on-hover toolbar","author":"Tobias Beer","version":"0.5.2","core-version":">=5.1.9","source":"https://github.com/tobibeer/tw5-inc","documentation":"https://tobibeer.github.io/tw5-inc","plugin-type":"plugin","requires":"","list":"readme","dependents":"","type":"application/json","text":"{\n \"tiddlers\": {\n \"$:/plugins/tobibeer/inc/buttons/open\": {\n \"title\": \"$:/plugins/tobibeer/inc/buttons/open\",\n \"text\": \"\u003C$button tooltip=\\\"Open this tiddler\\\" class=\u003C\u003Ctv-config-toolbar-class>>>\\r\\n\u003C$action-navigate/>\\r\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-icons>prefix[yes]]\\\">\\r\\n{{$:/core/images/down-arrow}}\\r\\n\u003C/$list>\\r\\n\u003C$list filter=\\\"[\u003Ctv-config-toolbar-text>prefix[yes]]\\\">\\r\\n\u003Cspan class=\\\"tc-btn-text\\\">open\u003C/span>\\r\\n\u003C/$list>\\r\\n\u003C/$button>\"\n },\n \"$:/plugins/tobibeer/inc/macro\": {\n \"title\": \"$:/plugins/tobibeer/inc/macro\",\n \"tags\": \"$:/tags/Macro\",\n \"text\": \"\\\\define tb-inc(tiddler)\\r\\n\u003Cdiv class=\\\"tb-inc\\\" title=\\\"\\\"\\\"transcluded tiddler '$tiddler$'\\\"\\\"\\\">\\r\\n\u003C$tiddler tiddler=\\\"\\\"\\\"$tiddler$\\\"\\\"\\\">\\r\\n\u003Cdiv class=\\\"tb-inc-controls tc-tiddler-controls\\\">\\r\\n\u003C$list filter=\\\"[list[$:/plugins/tobibeer/inc/toolbar!!text]]\\\" variable=\\\"listItem\\\">\u003C$transclude tiddler=\u003C\u003ClistItem>>/>\u003C/$list>\\r\\n\u003C/div>\\r\\n\u003Cdiv class=\\\"tb-inc-tiddler\\\">\\r\\n\u003C$transclude mode=block/>\\r\\n\u003C/div>\\r\\n\u003C/$tiddler>\\r\\n\u003C/div>\\r\\n\\\\end\\r\\n\\\\define {(tiddler)\\r\\n\u003C$reveal type=\\\"match\\\" text=\\\"\\\"\\\"$tiddler$\\\"\\\"\\\" default=\\\"\\\">\\r\\n\u003C$macrocall $name=\\\"tb-inc\\\" tiddler=\u003C\u003CcurrentTiddler>>/>\\r\\n\u003C/$reveal>\\r\\n\u003C$reveal type=\\\"nomatch\\\" text=\\\"\\\"\\\"$tiddler$\\\"\\\"\\\" default=\\\"\\\">\\r\\n\u003C$macrocall $name=\\\"tb-inc\\\" tiddler=\\\"\\\"\\\"$tiddler$\\\"\\\"\\\"/>\\r\\n\u003C/$reveal>\\r\\n\\\\end\"\n },\n \"$:/plugins/tobibeer/inc/readme\": {\n \"title\": \"$:/plugins/tobibeer/inc/readme\",\n \"text\": \"Provides the macro `\u003C\u003C{>>` that allows to transclude tiddlers with an on-hover toolbar for editing.\\n\\n; documentation / examples / demos...\\r\\n: http://tobibeer.github.io/tw5-plugins#inc\"\n },\n \"$:/plugins/tobibeer/inc/styles\": {\n \"title\": \"$:/plugins/tobibeer/inc/styles\",\n \"tags\": \"$:/tags/Stylesheet\",\n \"type\": \"text/css\",\n \"text\": \".tb-inc-controls{\\r\\nmargin-top:-2em;\\r\\npadding: 5px;\\r\\ndisplay:none;\\r\\n}\\r\\n.tb-inc-tab-content .tb-inc{\\r\\nmargin:0;\\r\\npadding:0;\\r\\nposition:relative;\\r\\n}\\r\\n.tb-inc-tab-content .tb-inc-controls{\\r\\nposition:absolute;\\r\\nmargin-top:-5px;\\r\\nright:0;\\r\\ntop:0;\\r\\n}\\r\\n.tb-inc:hover > .tb-inc-controls{\\r\\ndisplay:block;\\r\\nfloat:right;\\r\\n}\"\n },\n \"$:/plugins/tobibeer/inc/templates/tabs\": {\n \"title\": \"$:/plugins/tobibeer/inc/templates/tabs\",\n \"text\": \"\u003Cdiv class=\\\"tb-inc-tab-content\\\">\\n\u003C$macrocall $name=\\\"{\\\" tiddler=\u003C\u003CcurrentTab>>/>\\n\u003C/div>\"\n },\n \"$:/plugins/tobibeer/inc/toolbar\": {\n \"title\": \"$:/plugins/tobibeer/inc/toolbar\",\n \"text\": \"$:/plugins/tobibeer/inc/buttons/open\\n\\n$:/core/ui/Buttons/edit\\n\\n$:/core/ui/Buttons/delete\"\n }\n }\n}"},
{"created":"20220920084517972","text":"Octt Knowledge Base || // Static version available at [ext[./Static.html]].//","title":"$:/SiteSubtitle","modified":"20230110220531245"},
{"created":"20220920084457368","title":"$:/SiteTitle","text":"OcttKB","modified":"20220920084507769"},
{"created":"20230117124854056","creator":"Octt","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/index.html/$:/temp/RemoteAssetInfo/https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/index.html/$:/plugins/ahahn/tinka","text":"no","modified":"20230117124857465","modifier":"Octt"},
@@ -281,11 +285,12 @@ Error message and password prompt
{"created":"20221108100524743","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tiddlywiki.com/library/v5.2.3/index.html/$:/temp/RemoteAssetInfo/https://tiddlywiki.com/library/v5.2.3/index.html/$:/plugins/tiddlywiki/xlsx-utils","text":"no","modified":"20221109143007747"},
{"created":"20230108200252323","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tiddlywiki.com/library/v5.2.3/index.html/$:/temp/RemoteAssetInfo/https://tiddlywiki.com/library/v5.2.3/index.html/$:/plugins/tiddlywiki/xmldom","text":"no","modified":"20230108200257364"},
{"created":"20230116211824537","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/hash","text":"no","modified":"20230116211829680"},
+{"created":"20230126105040295","creator":"Octt","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/inc","text":"yes","modified":"20230126105040295","modifier":"Octt"},
{"created":"20230108200113123","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/plantuml","text":"no","modified":"20230108200117260"},
{"created":"20230108200054788","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/sparkl","text":"no","modified":"20230108200124531"},
{"created":"20221109144756834","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/split","text":"yes","modified":"20230116211830913"},
{"created":"20221109162512951","title":"$:/state/add-plugin-info/$:/temp/ServerConnection/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/temp/RemoteAssetInfo/https://tobibeer.github.io/tw5-plugins/library/index.html/$:/plugins/tobibeer/value","text":"no","modified":"20230108200106539"},
-{"created":"20221109142817793","creator":"Octt","title":"$:/state/addplugins/tab-1342078386","text":"$:/config/TiddlyWiki-CPL/GitHub","modified":"20230117124807689","modifier":"Octt"},
+{"created":"20221109142817793","creator":"Octt","title":"$:/state/addplugins/tab-1342078386","text":"$:/pluginlibrary/tobibeer/official","modified":"20230126104809131","modifier":"Octt"},
{"created":"20230109143853256","title":"$:/state/advancedsearch/currentTab","text":"$:/ThirdParty/TiddlyTools/FilterGenerators/Tags","modified":"20230111152605879"},
{"created":"20230117113820190","title":"$:/state/commander/reveal/$:/plugins/kookma/commander/search/selection-668442618","text":"closed","modified":"20230117113820190"},
{"created":"20230112111303249","title":"$:/state/edit/references--1005422481","text":"show","modified":"20230112111303250"},
@@ -308,6 +313,7 @@ Error message and password prompt
{"created":"20220920191756623","title":"$:/state/editpreviewtype","text":"$:/core/ui/EditTemplate/body/preview/output","modified":"20230116141039810"},
{"created":"20221108223526572","title":"$:/state/folded/$:/Apps/Dashboard/index.html","text":"hide","modified":"20230109162823352"},
{"created":"20230108200647964","title":"$:/state/folded/$:/ControlPanel","text":"show","modified":"20230108212807728"},
+{"created":"20230126102445110","creator":"Octt","title":"$:/state/folded/$:/core/ui/ViewTemplate/title","text":"hide","modified":"20230126102449007","modifier":"Octt"},
{"created":"20221110131939563","title":"$:/state/folded/$:/Macros/b64TidUriEnc.js","text":"show","modified":"20221110151548461"},
{"created":"20221109221630590","title":"$:/state/folded/$:/Macros/Data","text":"show","modified":"20221109221631102"},
{"created":"20230112104535152","title":"$:/state/folded/$:/Macros/MediaWiki","text":"show","modified":"20230112104541859"},
@@ -319,7 +325,7 @@ Error message and password prompt
{"created":"20230125175038342","creator":"Octt","title":"$:/state/folded/$:/OcttKB/Functions.js","text":"show","modified":"20230125215928280","modifier":"Octt"},
{"created":"20230111080840168","title":"$:/state/folded/$:/Styles/Main.css","text":"show","modified":"20230111152951359"},
{"created":"20230111145020050","title":"$:/state/folded/$:/Styles/View/10-Missing.xml","text":"show","modified":"20230111145030153"},
-{"created":"20230125175041382","creator":"Octt","title":"$:/state/folded/$:/Styles/View/2-10-Breadcrumbs.xml","text":"hide","modified":"20230125233801759","modifier":"Octt"},
+{"created":"20230125175041382","creator":"Octt","title":"$:/state/folded/$:/Styles/View/2-10-Breadcrumbs.xml","text":"hide","modified":"20230126092910726","modifier":"Octt"},
{"created":"20230125165303521","creator":"Octt","title":"$:/state/folded/$:/Test","text":"hide","modified":"20230125165303521","modifier":"Octt"},
{"created":"20230125173205210","creator":"Octt","title":"$:/state/folded/$:/Tests","text":"hide","modified":"20230125173205210","modifier":"Octt"},
{"created":"20230110193807228","title":"$:/state/folded/$:/themes/tiddlywiki/vanilla/base","text":"hide","modified":"20230110193807228"},
@@ -380,8 +386,8 @@ Error message and password prompt
{"created":"20230108195829187","title":"$:/state/tab-791689762","text":"$:/plugins/tiddlywiki/qrcode/MakeContactQR","modified":"20230108195830858"},
{"created":"20230110152841020","title":"$:/state/tab-914888664","text":"$:/core/ui/TiddlerInfo/References","modified":"20230110152841020"},
{"created":"20220921221238452","title":"$:/state/tab-99014043","text":"$:/core/ui/ControlPanel/EditTemplateBody","modified":"20220921221239099"},
-{"created":"20220920114911876","creator":"Octt","title":"$:/state/tab/moresidebar-1850697562","text":"$:/core/ui/MoreSideBar/Explorer","modified":"20230125150236142","modifier":"Octt"},
-{"created":"20220920092307479","creator":"Octt","title":"$:/state/tab/sidebar--595412856","text":"$:/core/ui/SideBar/Recent","modified":"20230125225800158","modifier":"Octt"},
+{"created":"20220920114911876","creator":"Octt","title":"$:/state/tab/moresidebar-1850697562","text":"$:/core/ui/MoreSideBar/Explorer","modified":"20230126094929073","modifier":"Octt"},
+{"created":"20220920092307479","creator":"Octt","title":"$:/state/tab/sidebar--595412856","text":"$:/core/ui/SideBar/Recent","modified":"20230126105503180","modifier":"Octt"},
{"created":"20220920114638764","title":"$:/state/tabs/controlpanel/toolbars-1345989671","text":"$:/core/ui/ControlPanel/Toolbars/EditToolbar","modified":"20230109112510655"},
{"created":"20230109231545587","text":"inline","title":"$:/state/tag-cloud-count","modified":"20230109231831243"},
{"created":"20230111212759834","title":"$:/state/toc/TableOfContents-Apps--1089262602","text":"close","modified":"20230111212800395"},
@@ -401,30 +407,33 @@ Error message and password prompt
{"created":"20230124111909186","creator":"Octt","title":"$:/state/tree/$:/Config/OcttKB/","text":"show","modified":"20230124111909186","modifier":"Octt"},
{"created":"20230124111910740","creator":"Octt","title":"$:/state/tree/$:/Config/OcttKB/Tweaks/","text":"show","modified":"20230124111910740","modifier":"Octt"},
{"created":"20230124111912310","creator":"Octt","title":"$:/state/tree/$:/Config/OcttKB/Tweaks/Starlight/","text":"show","modified":"20230124111912310","modifier":"Octt"},
-{"created":"20221109224641397","creator":"Octt","title":"$:/state/tree/$:/core/","text":"hide","modified":"20230124215510501","modifier":"Octt"},
+{"created":"20221109224641397","creator":"Octt","title":"$:/state/tree/$:/core/","text":"hide","modified":"20230126102703459","modifier":"Octt"},
{"created":"20230124215451478","creator":"Octt","title":"$:/state/tree/$:/core/images/","text":"hide","modified":"20230124215509662","modifier":"Octt"},
{"created":"20221109224642925","title":"$:/state/tree/$:/core/modules/","text":"hide","modified":"20230110194802133"},
{"created":"20221109224645646","title":"$:/state/tree/$:/core/modules/macros/","text":"hide","modified":"20230110194459004"},
{"created":"20230110194514995","title":"$:/state/tree/$:/core/save/","text":"hide","modified":"20230110194521869"},
-{"created":"20230110194514220","title":"$:/state/tree/$:/core/ui/","text":"hide","modified":"20230110225414497"},
+{"created":"20230110194514220","creator":"Octt","title":"$:/state/tree/$:/core/ui/","text":"show","modified":"20230126102416358","modifier":"Octt"},
{"created":"20230110225336441","title":"$:/state/tree/$:/core/ui/Buttons/","text":"hide","modified":"20230110225412104"},
{"created":"20230110194531428","title":"$:/state/tree/$:/core/ui/ControlPanel/","text":"hide","modified":"20230110225333201"},
+{"created":"20230126102425798","creator":"Octt","title":"$:/state/tree/$:/core/ui/ViewTemplate/","text":"show","modified":"20230126102425798","modifier":"Octt"},
+{"created":"20230126102628287","creator":"Octt","title":"$:/state/tree/$:/core/ui/ViewTemplate/body/","text":"hide","modified":"20230126102632401","modifier":"Octt"},
{"created":"20230110194507332","title":"$:/state/tree/$:/core/wiki/","text":"hide","modified":"20230110194513468"},
{"created":"20230124111922848","creator":"Octt","title":"$:/state/tree/$:/GitLab/","text":"hide","modified":"20230124111926905","modifier":"Octt"},
{"created":"20230124111928275","creator":"Octt","title":"$:/state/tree/$:/info/","text":"hide","modified":"20230124214622221","modifier":"Octt"},
-{"created":"20230110143952610","creator":"Octt","title":"$:/state/tree/$:/language/","text":"hide","modified":"20230125151107833","modifier":"Octt"},
-{"created":"20220922201011279","creator":"Octt","title":"$:/state/tree/$:/languages/","text":"hide","modified":"20230124214619608","modifier":"Octt"},
+{"created":"20230110143952610","creator":"Octt","title":"$:/state/tree/$:/language/","text":"hide","modified":"20230126102737523","modifier":"Octt"},
+{"created":"20230126102719945","creator":"Octt","title":"$:/state/tree/$:/language/BinaryWarning/","text":"hide","modified":"20230126102731926","modifier":"Octt"},
+{"created":"20220922201011279","creator":"Octt","title":"$:/state/tree/$:/languages/","text":"hide","modified":"20230126102711395","modifier":"Octt"},
{"created":"20220922201015063","creator":"Octt","title":"$:/state/tree/$:/languages/en-GB/","text":"hide","modified":"20230117124102053","modifier":"Octt"},
{"created":"20220922201252688","creator":"Octt","title":"$:/state/tree/$:/languages/it-IT/","text":"hide","modified":"20230117124102629","modifier":"Octt"},
{"created":"20221109224443069","creator":"Octt","title":"$:/state/tree/$:/library/","text":"hide","modified":"20230124214618653","modifier":"Octt"},
-{"created":"20221108155618185","creator":"Octt","title":"$:/state/tree/$:/Macros/","text":"show","modified":"20230125170912821","modifier":"Octt"},
+{"created":"20221108155618185","creator":"Octt","title":"$:/state/tree/$:/Macros/","text":"hide","modified":"20230126081742269","modifier":"Octt"},
{"created":"20230125150238615","creator":"Octt","title":"$:/state/tree/$:/Macros/Breadcrumbs/","text":"show","modified":"20230125150238615","modifier":"Octt"},
{"created":"20230112111343793","creator":"Octt","title":"$:/state/tree/$:/Macros/MediaWiki/","text":"hide","modified":"20230125150326167","modifier":"Octt"},
{"created":"20230125093534902","creator":"Octt","title":"$:/state/tree/$:/Macros/View/","text":"hide","modified":"20230125114608509","modifier":"Octt"},
{"created":"20230111091330393","creator":"Octt","title":"$:/state/tree/$:/Manager/","text":"hide","modified":"20230125150328094","modifier":"Octt"},
{"created":"20230124111902915","creator":"Octt","title":"$:/state/tree/$:/Manager/ItemMain/","text":"show","modified":"20230124111902915","modifier":"Octt"},
-{"created":"20230111084703963","creator":"Octt","title":"$:/state/tree/$:/OcttKB/","text":"hide","modified":"20230125221337443","modifier":"Octt"},
-{"created":"20230124111843850","creator":"Octt","title":"$:/state/tree/$:/OcttKB/Tweaks/","text":"hide","modified":"20230125150332863","modifier":"Octt"},
+{"created":"20230111084703963","creator":"Octt","title":"$:/state/tree/$:/OcttKB/","text":"hide","modified":"20230126094936444","modifier":"Octt"},
+{"created":"20230124111843850","creator":"Octt","title":"$:/state/tree/$:/OcttKB/Tweaks/","text":"hide","modified":"20230126081751242","modifier":"Octt"},
{"created":"20220920114917653","title":"$:/state/tree/$:/palettes/","text":"hide","modified":"20221109143849684"},
{"created":"20221109143850220","title":"$:/state/tree/$:/pluginlibrary/","text":"hide","modified":"20230110225025209"},
{"created":"20221109143850885","title":"$:/state/tree/$:/pluginlibrary/tobibeer/","text":"show","modified":"20221109143850885"},
@@ -435,9 +444,10 @@ Error message and password prompt
{"created":"20230124214632814","creator":"Octt","title":"$:/state/tree/$:/snippets/","text":"hide","modified":"20230125152102586","modifier":"Octt"},
{"created":"20221107223237374","creator":"Octt","title":"$:/state/tree/$:/state/","text":"hide","modified":"20230124214608518","modifier":"Octt"},
{"created":"20230111193642716","creator":"Octt","title":"$:/state/tree/$:/status/","text":"hide","modified":"20230124214638278","modifier":"Octt"},
-{"created":"20230108193801573","creator":"Octt","title":"$:/state/tree/$:/Styles/","text":"hide","modified":"20230125221341331","modifier":"Octt"},
+{"created":"20230108193801573","creator":"Octt","title":"$:/state/tree/$:/Styles/","text":"show","modified":"20230126090855243","modifier":"Octt"},
{"created":"20230114162317662","creator":"Octt","title":"$:/state/tree/$:/Styles/1337box/","text":"hide","modified":"20230124213732005","modifier":"Octt"},
{"created":"20230111091048227","creator":"Octt","title":"$:/state/tree/$:/Styles/View/","text":"show","modified":"20230125093600734","modifier":"Octt"},
+{"created":"20230126090852091","creator":"Octt","title":"$:/state/tree/$:/tags/","text":"hide","modified":"20230126090854108","modifier":"Octt"},
{"created":"20230124214611814","creator":"Octt","title":"$:/state/tree/$:/temp/","text":"hide","modified":"20230125150506047","modifier":"Octt"},
{"created":"20221107223125902","creator":"Octt","title":"$:/state/tree/$:/themes/","text":"hide","modified":"20230124214644325","modifier":"Octt"},
{"created":"20221107223127310","creator":"Octt","title":"$:/state/tree/$:/themes/tiddlywiki/","text":"hide","modified":"20230124214642870","modifier":"Octt"},
@@ -452,18 +462,19 @@ Error message and password prompt
{"created":"20230110224557624","creator":"Octt","title":"$:/state/tree/$:/ThirdParty/tobibeer/","text":"hide","modified":"20230124104242599","modifier":"Octt"},
{"created":"20230110224425624","title":"$:/state/tree/$:/ThirdParty/zemoxian/","text":"hide","modified":"20230111144254721"},
{"created":"20230124111822867","creator":"Octt","title":"$:/state/tree/$:/ThirdPary/","text":"show","modified":"20230124111822868","modifier":"Octt"},
-{"created":"20230116211721929","creator":"Octt","title":"$:/state/tree/$:/Tools/","text":"hide","modified":"20230125151105353","modifier":"Octt"},
+{"created":"20230116211721929","creator":"Octt","title":"$:/state/tree/$:/Tools/","text":"show","modified":"20230126091447267","modifier":"Octt"},
{"created":"20220920211944968","text":"{{$:/OcttKB/StaticBanner}}","tags":"","title":"$:/StaticBanner","modified":"20230112221911675"},
{"title":"$:/status/RequireReloadDueToPluginChange","text":"no"},
{"created":"20230117123049592","creator":"O","title":"$:/status/UserName","text":"Octt","modified":"20230117123050206","modifier":"Oct"},
-{"title":"$:/StoryList","created":"20230125225804692","creator":"Octt","text":"","list":"TiddlyWiki:en $:/Macros/i18nBreadcrumbsNamespaceLabelStrip.js $:/Styles/View/2-10-Breadcrumbs.xml","modified":"20230125232445832","modifier":"Octt"},
+{"title":"$:/StoryList","created":"20230126082138226","creator":"Octt","text":"","list":"","modified":"20230126110052802","modifier":"Octt"},
{"created":"20230114161404958","text":"/*\\\nCredits: 1337box by Leah Rowe, Creative Commons Zero 1.0\nInfo: \u003Chttps://vimuser.org/1337box.html>\n\\*/\n.f, .f * {\n position: fixed;\n max-width: 100%;\n max-height: 100%;\n top: 50%;\n left: 50%\n}\n.f * { transform: translate(-50%,-50%) }\n.f {\n display: none;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 999;\n background:rgba(0,0,0,0.8);\n}\n*:focus + .f { display:block; }\nimg { cursor:pointer; }\n","title":"$:/Styles/1337box/shadow.css","modified":"20230114163044372","type":"text/css","tags":""},
{"created":"20230124224040783","creator":"Octt","text":"\u003C!-- Original image is by \u003Chttps://bilibili.com> -->\n\u003Cdiv\nclass=\"bilibili-back-to-top\"\ntitle=\"Cute little lolis from bilibili to help you reach the top of the page...\"\nstyle=\"\n display: block; \n position: fixed;\n bottom: 100px;\n right: 20px;\n transform: translateY(0px);\n width: 62px;\n height: 85px;\n margin-left: 602px;\n cursor: pointer;\n background-image: url(https://s1.hdslb.com/bfs/static/jinkela/space/assets/space-to-top.png);\n background-position: -40px -44px;\n\" onclick=\"\n \n\">\u003C/div>","tags":"","title":"$:/Styles/bilibili-back-to-top.html","modified":"20230124225300849","modifier":"Octt","type":"text/html"},
+{"created":"20230126091040410","creator":"Octt","text":".tc-story-river > .tc-tiddler-frame > .tc-tiddler-title .tc-title { /*display: none;*/ }\n.tc-story-river > .tc-tiddler-frame > .View-Breadcrumbs {\n opacity: 0.80;\n/*\n font-size: xx-large;\n margin-top: 0px;\n margin-bottom: -1.5em;\n position: sticky;\n z-index: 512;\n*/\n}\n.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs > * {\n /*font-style: normal !important;*/\n opacity: 0.40;\n}\n.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs:hover > * { opacity: 0.80; }\n.tc-story-river > .tc-tiddler-frame > .View-Breadcrumbs > .Inline-Icon > * {\n width: 1em;\n height: 1em;\n vertical-align: top;\n}\n\n/*.View-Breadcrumbs > .Inline-Sep:not(.View-Breadcrumbs > .Inline-Sep:last-of-type):before*/\n.View-Breadcrumbs > .Inline-Sep:after { content: '>'; }\n.View-Breadcrumbs > .Inline-Sep > span { font-size: 0px; }\n.View-Breadcrumbs > .Path-Elem[data-path-elem=\"$:\"] > a { color: inherit; }\n.View-Breadcrumbs > .Path-Elem[data-path-elem=\"$:\"] + .Inline-Sep:after { content: ''; }\n.View-Breadcrumbs > .Path-Elem[data-path-elem=\"$:\"] + .Inline-Sep > span { font-size: initial; }\n","title":"$:/Styles/Breadcrumbs.css","modified":"20230126094414333","modifier":"Octt","type":"text/css","tags":"$:/tags/Stylesheet"},
{"created":"20230112154615238","text":"\\define --HeadingColor0() #c061cb;\n\n.iFrame100 {\nMargin: 0px;\nPadding: 0px;\nWidth: 100vw;\nHeight: 100vh;\n}\n\n.MediaWikiEmbed, .MediaWikiEmbedBlock {\n Border-Left: 4px Solid \u003C\u003C--HeadingColor0>>;\n Padding-Left: 1em /*8px*/;\n}\n\n.MediaWikiEmbedCover { float: right; }\n.MediaWikiEmbedCover > * { max-height: 35vh /*50vh*/; }\n\n.EmbedFrom, .Embed-From,\n.MediaWikiEmbed-From, .MediaWikiEmbedFrom {\n Font-Size: Smaller;\n Font-Style: Italic;\n}","tags":"$:/tags/Stylesheet","title":"$:/Styles/Embed","modified":"20230113120146141"},
-{"created":"20230108190740128","creator":"Octt","text":"\\define --HeadingColor0() #c061cb;\n\n\\define sidebarbreakpoint()\n\u003C$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n\u003C$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n\u003C$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n\u003C/$reveal>\n\u003C/$reveal>\n\\end\n\ndd:before { content: 'ยป'; }\nul dl { margin-left: 8px; }\nul dl dd { margin-left: 24px; }\n\n@media (min-width: \u003C\u003Csidebarbreakpoint>>) {\n .tc-sidebar-scrollable {\n padding-left: 0px;\n padding-right: 0px;\n }\n .tc-story-river {\n padding: {{$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding}};\n }\n .tc-tiddler-frame {\n padding: 20px /*24px 32px 24px 32px*/;\n margin-bottom: 20px;\n }\n\n\u003C\u003Cif-fluid-fixed text:\"\"\"\n .tc-story-river {\n margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n }\n\"\"\" hiddenSidebarText:\"\"\"\n .tc-story-river {\n margin-right: 0px;\n padding-right: 24px;\n }\n\"\"\">>\n}\n\nDiv.View-Breadcrumbs\n{ margin: 4px; padding: 4px; }\n\n.tc-story-river { padding-bottom: 0px; }\n.tc-story-river ~ p { display: none; }\n\n.tc-tiddler-frame,\n.tc-tiddler-body p iframe {\n Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);\n}\n\n.tc-tiddler-body p iframe { Border: None; }\n.tc-tiddler-frame { border-radius: 4px; }\n.tc-modal-body { max-height: 75vh /*60vh*/; }\n\n/* Large tag selection menu, optimized for desktop + nicer tag button */\n.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown {\n position: revert;\n white-space: revert;\n}\n.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown a {\n display: inline-block;\n border-radius: 1em;\n}\n\n.DirList-Title, .DirList-Title * { Font-Style: Normal !Important; }\n.Separator-Right:last-of-type { Display: None; }\n\n.StartHere-Button {\n font-size: x-large /*smaller*/;\n text-decoration: none !important;\n user-select: none;\n}\n.StartHere-Button > img {\n width: 122px;\n image-rendering: crisp-edges;\n}\n.StartHere-Button > span {\n position: relative;\n top: -20px /*-10px*/;\n}\n\nImg.Img90, .Img90 Img {\n Max-Width: 90%;\n Max-Height: 90vh;\n}\n\n.tc-sidebar-scrollable .tc-sidebar-header .tc-page-controls .tc-popup .tc-drop-down { min-width: auto; }\n\n.tc-story-river > .tc-tiddler-frame > .tc-tiddler-title .tc-title { /*display: none;*/ }\n.tc-story-river > .tc-tiddler-frame > .View-Breadcrumbs {\n opacity: 0.8;\n/*\n font-size: xx-large;\n margin-top: 0px;\n margin-bottom: -1.5em;\n position: sticky;\n z-index: 512;\n*/\n}\n.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs > * {\n /*font-style: normal !important;*/\n opacity: 0.32;\n}\n.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs:hover > * { opacity: 0.80; }\n.tc-story-river > .tc-tiddler-frame > .View-Breadcrumbs > .Inline-Icon > * {\n width: 1em;\n height: 1em;\n vertical-align: top;\n}\n\n/*.View-Breadcrumbs > .Inline-Sep:not(.View-Breadcrumbs > .Inline-Sep:last-of-type):before*/ .View-Breadcrumbs > .Inline-Sep:before { content: '>' }\n","tags":"$:/tags/Stylesheet","title":"$:/Styles/Main","modified":"20230125155701909","modifier":"Octt"},
+{"created":"20230108190740128","creator":"Octt","text":"\\define --HeadingColor0() #c061cb;\n\n\\define sidebarbreakpoint()\n\u003C$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n\u003C$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n\u003C$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n\u003C/$reveal>\n\u003C/$reveal>\n\\end\n\n.NoDisplay { display: none; }\n\ndd:before { content: 'ยป'; }\nul dl { margin-left: 8px; }\nul dl dd { margin-left: 24px; }\n\n@media (min-width: \u003C\u003Csidebarbreakpoint>>) {\n .tc-sidebar-scrollable {\n padding-left: 0px;\n padding-right: 0px;\n }\n .tc-story-river {\n padding: {{$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding}};\n }\n .tc-tiddler-frame {\n padding: 20px /*24px 32px 24px 32px*/;\n margin-bottom: 20px;\n }\n\n\u003C\u003Cif-fluid-fixed text:\"\"\"\n .tc-story-river {\n margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n }\n\"\"\" hiddenSidebarText:\"\"\"\n .tc-story-river {\n margin-right: 0px;\n padding-right: 24px;\n }\n\"\"\">>\n}\n\nDiv.View-Breadcrumbs\n{ margin: 4px; padding: 4px; }\n\n.tc-story-river { padding-bottom: 0px; }\n.tc-story-river ~ p { display: none; }\n\n.tc-tiddler-frame,\n.tc-tiddler-body p iframe {\n Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);\n}\n\n.tc-tiddler-body p iframe { Border: None; }\n.tc-tiddler-frame { border-radius: 4px; }\n.tc-modal-body { max-height: 75vh /*60vh*/; }\n\n/* Large tag selection menu, optimized for desktop + nicer tag button */\n.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown {\n position: revert;\n white-space: revert;\n}\n.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown a {\n display: inline-block;\n border-radius: 1em;\n}\n\n.DirList-Title, .DirList-Title * { Font-Style: Normal !Important; }\n.Separator-Right:last-of-type { Display: None; }\n\n.StartHere-Button {\n font-size: x-large /*smaller*/;\n text-decoration: none !important;\n user-select: none;\n}\n.StartHere-Button > img {\n width: 122px;\n image-rendering: crisp-edges;\n}\n.StartHere-Button > span {\n position: relative;\n top: -20px /*-10px*/;\n}\n\nImg.Img90, .Img90 Img {\n Max-Width: 90%;\n Max-Height: 90vh;\n}\n\n.tc-sidebar-scrollable .tc-sidebar-header .tc-page-controls .tc-popup .tc-drop-down { min-width: auto; }\n\n.tc-story-river > .tc-tiddler-frame .tc-subtitle { margin: 4px; padding: 4px; }\n","tags":"$:/tags/Stylesheet","title":"$:/Styles/Main","modified":"20230126095618737","modifier":"Octt"},
{"created":"20150924065447163","text":".tc-tiddler-frame .tc-titlebar button {\nopacity: 0;\ntransition: opacity .5s ease-in-out;\n}\n.tc-tiddler-frame:hover .tc-titlebar button {\nzoom: 1;\nfilter: alpha(opacity=100);\nopacity: 1;\n}","bag":"default","revision":"0","type":"text/css","title":"$:/Styles/onhover-toolbar-styles.css","tags":"","modifier":"Tobias Beer","modified":"20230110175248723","creator":"Tobias Beer"},
{"created":"20230108212828635","text":"\u003C!-- TOP RIGHT RIBBON --->\n\u003Cdiv class=\"github-fork-ribbon-wrapper right\">\u003Cdiv class=\"github-fork-ribbon\">\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://hub.octt.eu.org\">Visit the Octt Hub ๐\u003C/a>\u003C/div>\u003C/div>","tags":"$:/tags/PageControls","title":"$:/Styles/Ribbon.xml","modified":"20230113220939942","type":""},
-{"created":"20230124190137826","creator":"Octt","text":"\u003Cdiv class=\"View-Breadcrumbs\">\n\u003C!--\n\u003Ca class=\"Inline-Icon\" href=\"javascript:(alert('TODO copy title to clipboard'))\">{{$:/core/images/folder}}\u003C/a>\n-->\n\u003C$set name=\"Caller\" value=\u003C\u003CcurrentTiddler>>>\n\u003C$list filter=\"[\u003CcurrentTiddler>split[/]limit[-1]]\" counter=\"Index\">\n\u003Cspan class=\"Path-Elem\" data-path-elem=\u003C\u003CcurrentTiddler>>>\n\u003C$link to={{{[\u003CCaller>split[/]limit\u003CIndex>join[/]]}}}>\u003C\u003CcurrentTiddler>>\u003C/$link>\n\u003C/span>\n\u003Cspan class=\"Inline-Sep\">\u003C/span>\n\u003C/$list>\n\u003C/$set>\n\u003Cspan class=\"Path-Elem\" data-path-elem=\u003C\u003CcurrentTiddler>>>\n\u003C$text text={{{[\u003CcurrentTiddler>split[/]last[]]}}}/>\n\u003C/span>\n\u003C/div>\n\n\u003C\u003Ci18nBreadcrumbsNamespaceLabelStrip>>","tags":"$:/tags/ViewTemplate","title":"$:/Styles/View/2-10-Breadcrumbs.xml","modified":"20230125234156455","modifier":"Octt","list-after":"$:/core/ui/ViewTemplate/title"},
+{"created":"20230124190137826","creator":"Octt","text":"\u003Cdiv class=\"View-Breadcrumbs\">\n\u003C!--\n\u003Ca class=\"Inline-Icon\" href=\"javascript:(alert('TODO copy title to clipboard'))\">{{$:/core/images/folder}}\u003C/a>\n-->\n\u003C$set name=\"Caller\" value=\u003C\u003CcurrentTiddler>>>\n\u003C$list filter=\"[\u003CcurrentTiddler>split[/]limit[-1]]\" counter=\"Index\">\n\u003Cspan class=\"Path-Elem\" data-path-elem=\u003C\u003CcurrentTiddler>>>\n\u003C$link to={{{[\u003CCaller>split[/]limit\u003CIndex>join[/]]}}}>\u003C\u003CcurrentTiddler>>\u003C/$link>\n\u003C/span>\n\u003Cspan class=\"Inline-Sep\">\u003Cspan>/\u003C/span>\u003C/span>\n\u003C/$list>\n\u003C/$set>\n\u003C$set name=\"Tiddler\" value={{{[\u003CcurrentTiddler>split[/]last[]]}}}>\n\u003Cspan class=\"Path-Elem\" data-path-elem=\u003C\u003CTiddler>>>\n\u003C$text text=\u003C\u003CTiddler>>/>\n\u003C/span>\n\u003C/$set>\n\u003C/div>\n\n\u003C\u003Ci18nBreadcrumbsNamespaceLabelStrip>>","tags":"$:/tags/ViewTemplate","title":"$:/Styles/View/2-10-Breadcrumbs.xml","modified":"20230126093443424","modifier":"Octt","list-after":"$:/core/ui/ViewTemplate/title"},
{"created":"20230111090705398","creator":"Octt","text":"\u003C$list filter=\"[all[current]!is[system]is[missing]]\" variable=~>\n \u003C$button>\n Great features todo!\n\u003C!--\n \u003C$action-setfield object-type=\"todo\"/>\n Make Todo\n--->\n \u003C/$button>\n\u003C/$list>","tags":"$:/tags/ViewTemplate TODO","title":"$:/Styles/View/9-10-Missing.xml","modified":"20230124191507263","modifier":"Octt"},
{"created":"20230111080904175","creator":"Octt","text":"\u003C$list filter=\"[all[current]backlinks[]limit[1]has[title]]-[prefix[$:/temp/]]\" variable=ignore>\n\u003Cdiv class=\"Backlinks-Div tc-subtitle\">\n\u003Chr>\nSee also: \u003C$list filter=\"[!is[system]all[current]backlinks[]sort[title]] -[is[current]]-[prefix[$:/temp/]]\">\u003C$link />\u003Cspan class=\"Separator-Right\"> | \u003C/span>\u003C/$list>\n\u003C/div>\n\u003C/$list>\n","tags":"$:/tags/ViewTemplate","title":"$:/Styles/View/9-50-Backlinks.xml","modified":"20230125115456476","modifier":"Octt"},
{"created":"20230124112022156","creator":"Octt","text":"\u003C!--\n\u003C\u003Cscript off>>\n\u003Cscript>\n/*\n\u003C$text text=\u003C\u003CcurrentTiddler>>/>\n*/\n/*\ndocument.querySelector('.tc-story-river > div[data-tiddler-title=\"\"]')\nconsole.log();\n*/\n\u003C/script>\n\u003C\u003Cscript off>>\n-->\n\u003C!--\u003C\u003CTiddlerViewShowBreadcrumbs>>-->","tags":"","title":"$:/Styles/View/9-99-Hacks","modified":"20230124191516599","modifier":"Octt"},
@@ -515,6 +526,7 @@ Error message and password prompt
{"created":"20221105114920520","text":"''Base64'' is a 8-bit-binary to text data encoding scheme.\n\nDue to the format using a character set of 64 characters, representable by 6 bits, a minimal b64 block is ''24 bits'' large (lcm(8,6)), which is 3 binary bytes, or 4 b64 text characters.","tags":"i18n:en","title":"Base64:en","modified":"20221105120759433"},
{"created":"20220923190200484","text":"''BitTorrent'' is an open [[peer-to-peer|peer-to-peer:en]] file sharing protocol. It is expecially common among the [[free sharing]] community.\n\nIts only requirement for each user is a client application, meaning that efficiently sharing with BitTorrent is effectively free, since a beefy server isn't needed to make the content circulate.\n\nFor this reason, the protocol is most commonly used to share large files that have a lot of people requesting them, such as movies, operating systems, and videogames.\n\nThis kind of information would be usually expensive to share using a traditional client-server infrastructure, but with BitTorrent every client can seed (send) data to other requesting clients, exponentially optimizing delivery.","tags":"Internet BitTorrent P2P i18n:en","title":"BitTorrent:en","modified":"20220926115016291"},
{"created":"20230112100848709","text":"\u003C\u003CMediaWiki Celeste_(video_game) en 3>>\n\n!! ''Gamin' Time''\n\n\u003C\u003CiFrameFixed \"https://www.lexaloffle.com/bbs/widget.php?pid=15133\" \" \" 'style=\"width:100%; height:512px\"'>>","tags":"Gaming i18n:en TODO Platformer","title":"Celeste:en","modified":"20230114151134183"},
+{"created":"20230126102033696","creator":"Octt","text":"\u003C\u003CMediaWiki ChatGPT en 2>>","tags":"i18n:en TODO","title":"ChatGPT:en","modified":"20230126102334074","modifier":"Octt"},
{"created":"20220925131851817","text":"!! Creative Commons\n\n!!! ''Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)''\n\nThis is a human-readable summary of (and not a substitute for) the [[license|https://creativecommons.org/licenses/by-sa/4.0/legalcode]].\n\n\u003Cdetails>\n\u003Csummary>Disclaimer\u003C/summary>\n\u003Cp>This deed highlights only some of the key features and terms of the actual license. It is not a license and has no legal value. You should carefully review all of the terms and conditions of the actual license before using the licensed material.\u003C/p>\n\n\u003Cp>Creative Commons is not a law firm and does not provide legal services. Distributing, displaying, or linking to this deed or the license that it summarizes does not create a lawyer-client or any other relationship.\u003C/p>\n\u003C/details>\n\n[img[$:/ThirdParty/Buttons/CC BY-SA.svg]]\n\n!!!'' You are free to:''\n\n''Share'' โ copy and redistribute the material in any medium or format\n\n''Adapt'' โ remix, transform, and build upon the material\nfor any purpose, even commercially.\n\nThe licensor cannot revoke these freedoms as long as you follow the license terms.\n\n!!! ''Under the following terms:''\n\n''Attribution'' โ You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.\n\n''ShareAlike'' โ If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.\n\n''No additional restrictions'' โ You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.\n\n!!! ''Notices:''\nYou do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.\n\nNo warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.","title":"Creative Commons/BY-SA 4.0:en","modified":"20230112094422566","tags":"i18n:en TODO"},
{"created":"20230116204701243","text":"''[[daedalOS|https://dustinbrett.com]]'' is an [[open-source]] [[pseudo-OS]] made for the Web browser.\n\n* Git: [[github.com/DustinBrett/daedalOS|https://github.com/DustinBrett/daedalOS]]\n\n!! ''Try it''\n\n\u003C\u003CiFrameFixed \"https://dustinbrett.com\">>","tags":"i18n:en","title":"daedalOS:en","modified":"20230116215530993"},
{"created":"20230116202834289","text":"\u003C\u003CMediaWiki Doom_(franchise) en 4>>\n\n\u003C!--\n!! ''Gamin' Time''\n\n\n\u003C\u003CiFrameFixed \"https://dos.zone/player/?bundleUrl=https://cdn.dos.zone/custom/dos/doom.jsdos&exit=1\">>\n--->\n","tags":"i18n:en Retrogaming TODO FPS","title":"DOOM:en","modified":"20230116211221991"},
@@ -575,6 +587,7 @@ Error message and password prompt
{"created":"20220920160642961","text":"!!! Macros\n> \u003C\u003CTDirList $:/Macros 4>>\n\n!!! Theming\n> \u003C\u003CTDirList $:/Styles 4>>\n* [[$:/palettes/Octt Light]]\n\n!!! Modified system files\n* $:/StaticBanner (Shown as banner in statically exported pages)\n* $:/core/templates/static.content (Shown as static HTML content in the standard TiddlyWiki file)\n* $:/core/templates/exporters/StaticRiver (Added meta viewport for correct viewing on mobile) [[[Pull Request|https://github.com/Jermolene/TiddlyWiki5/pull/6953]]]\n* ~~$:/themes/tiddlywiki/vanilla (Changed paddings)~~","tags":"TiddlyWiki i18n:en OcttKB","title":"OcttKB/Hacks","modified":"20230112221919315"},
{"created":"20220924173239034","text":"All my //original content// on this website, unless where otherwise specified, is licensed under [[CC BY-SA 4.0|Creative Commons/BY-SA 4.0:en]].\n\nIt is a [[free culture]] license that promotes the benefits of making information available for anyone to learn from and build upon. However, be sure to know its terms before doing anything other than just consuming the site!\n\nYou can easily recognize which of the directly hosted (entirely contained in a //tiddler// itself, like text, string-encoded files, or standalone files in the file system) content is my original creation: it's anything that features no indication of source or license.\n\nUnless I forget to do so in specific instances, I always credit the source and/or specify the original license for anything upon which I don't hold 100% of the rights (even public domain content) and is a straight copy. I may not do so if the content in question is not directly copied //into// my site, but instead embedded from a Web space which is the property of another entity - in which case, a clickable link directing to the source will be present; if not, you can click the pencil-shaped (edit) button to read the source code for a specific //tiddler//, to discover possible external embed URLs.\n\nThe above is valid for all //content tiddlers// (those whose name does not start with `$:/`) and all //system tiddlers// created by me (not part of standard [[TiddlyWiki|TiddlyWiki:en]] or any of my [[installed plugins|$:/core/ui/ControlPanel/Plugins]]).\n\n//Non-original system tiddlers// which I never touched, obviously fall under their own license; but, for simplicity of operations, as well as to avoid accidentally claiming ownership on code not written by me, I hereby explicitly give away my copyright for //non-original system tiddlers// that I modified from their original state. This means you can consider those as always falling under their original license, even if I touched them; From another point of view, you can effectively consider any //diff// generated between the original version of a //system tiddler// and my modified version of the same file as falling under public domain.\n\n{{$:/OcttKB/LicensingButtons}}","tags":"i18n:en OcttKB","title":"OcttKB/Licensing","modified":"20230112094239424"},
{"created":"20230109220804304","text":"\u003C!--\n!! Clouds!\n\nAre these useless? ''Yes!'' But they are so pretty...\n\n{{$:/OcttKB/TagCloud}}\n--->\n\nI still have to put a lot of stuff here... see [[TiddlyWiki:en]]","tags":"i18n:en OcttKB","title":"OcttKB/Stats","modified":"20230111082547532"},
+{"created":"20230126105640952","creator":"Octt","text":"!!! ''WIP/TODO''\n\n* Move all bachecoctt links (and old GitHub stars) to proper tiddlers\n* Personal easy notes on various technical things of TiddlyWiki\n* Organize all my customizations into plugins easily installable by anyone\n* On showing date and time of last wiki saving (on Index tab on sidebar), also consider when a system tiddler is edited\n\n* Breadcrumbs bar only shown on tiddlers which are or are in a directory / Find a good way to integrate it in the tiddler title maybe, to save on screen space.\n** Show unformatted title on click or at least disable hiding of some tokens\n** Button to copy full path to clipboard\n\n* Custom proper reusable directory tree browser (maybe like the one we have with $:/OcttKB/ToC)\n** To use instead of the [[Directory macros|$:/Macros/Directory]], showing automatically on pages that are directories, and also as a file browser for the whole wiki\n\n* Data compression of everything (without breaking TiddlyWiki CLI support)\n** Choosing algorithm: best is probably Zstd\n** Tiddlers should be stored compressed individually; At saving, they are all compressed and stored in the HTML; At loading, they are read and decompressed to start the app\n** Single tiddlers are only compressed when it actually saves space, they should be checked at saving stage\n\n* When opening missing tiddlers, show a preview from Wikipedia or from word dictionaries, with GUI to customize fetching options\n* To the possible extent, save Git deploy scripts for the KB inside itself, for easy editing needs\n* Case insensitivity for tiddlers (?)\n* Handy button to reload direct scripts like $:/OcttKB/Functions.js\n* A way to reload any internal script (JS macros and exports) without reloading the entire wiki\n* Button to reload a single tiddler; if not possible, then the macros that can fail (e.g. MediaWiki, or all which fetch content from the Internet) should provide their own retry button\n* Fix images embedded with CSS float, make them not go out of tiddler's body if too tall\n* Better positioning of open/close sidebar button (should move the tiddler action bar buttons slightly to the left on single-column layout at least)\n\n* Add a feature to let users send issues or pull requests\n* Maybe add normal user comments?\n\n* Rehost embedded games for better CSS\n** Find the best retro console HTML5 emulator to embed in tiddlers which talk about certain games - they also need to be adapted to load ROMs from URL\n\n* In here I also put some tiddlers that are about a mainstream thing or topic just because they are connected to a more worthy tiddler; they should be tagged as Mainstream so that they can be filtered out in search and stuff\n* Special protection for some tiddlers, not encryption necessarily but just lock access to them globally until a specific task is performed (a password inputted is boring, maybe specific screen swipes is better)\n\n* \"Back to top\" button\n** Made with the style of bilibili, graphic is reused but logic needs to be reprogrammed\n\n!!!! ''Nice to have''\n* When tiddlers are transcluded show a small version of their action bar without the `\u003C\u003C{ >>` macro\n* Automatic lightboxes for images, without having to use the `\u003C\u003Cibox>>` macro\n\n!!!! ''i18n''\n* Make the language bar collapsed by default, or make it a menu callable by a button on the tiddler\n** Show the button as a country flag in the tiddler title maybe? Ideally showing it in place of the \":lang\" suffix when present\n* Selecting to open a language on a tiddler should ideally remove the previously open tiddler from the story river (or else if you switch language many times you have a cluttered river but no real advantage)\n* Automatically handle connections between different-language versions of a tiddler when the only difference in title is the \":lang\" suffix, without manually setting \"i18n\" attribute\n* Automatically handle eventual tiddlers which don't exist by their common i18n name (e.g \"Thing\") but do with a \":lang\" suffix, that should automatically transclude the //preferred language//\n** Preferred language could be enforced by the user with a global setting, or just be set softly based on the language of the last tiddler opened by the user (latter is ideal)\n\n!!!! ''External wikis''\n* Unified transclusion features for external TiddlyWikis and MediaWikis\n** Adapt the [[MediaWiki macro|$:/Macros/MediaWiki]] to:\n** Have internal links present\n*** Add lists of known wikis callable from a shorthand name\n*** Choosing number (by total from first/last, or ranges), or titles, of paragraphs or chapters to transclude (with support for specifying items to exclude)\n*** Retrieving and embedding files from wiki or Commons by known name (`File:`)\n*** It must also handle files that aren't images (audio/video)\n**** Default embed displays also the article cover image, allow setting a custom file or just `none`\n** Understand transclusions from external TiddlyWikis (it seems like people just use iframes, OK for showing things but not for choosing to display specific limited sections)\n* Somehow have working full-text search for tiddlers that transclude external wikis?\n\n!!!! ''Graphing and statistics''\n* Keyword (not tag) cloud ([[[tw5] Simple Word Clouds|https://talk.tiddlywiki.org/t/tw5-simple-word-clouds/3234]]?)\n* Need to get an automatic relationship map (like the one on [[https://baczek.me/map/]])\n* Activity view with calendar (like KOReader) or squares wall (Git)\n","tags":"","title":"OcttKB/WIP","modified":"20230126111538567","modifier":"Octt"},
{"created":"20230108195546523","text":"The following entities host miscellaneous useful open-source Internet services for the public. Some are classifiable as [[pubnixes|Pubnix:en]].\n\n* [[adminForge|https://services.adminforge.de]]\n* [[Artemis|https://artemislena.eu/services]]\n* [[Bฤ
czek|https://baczek.me/decentralisation]]\n* [[Brotherbear Den|https://stuehieyr.com]]\n* [[bus-hit.me|https://bus-hit.me/#services]]\n* [[dcs0|https://dcs0.hu]]\n* [[CachyOS|https://github.com/CachyOS/CachyOS-services/blob/master/README.md]]\n* [[Devol|https://devol.it]]\n* [[dhusch.de|https://dhusch.de]]\n* [[Disroot|https://disroot.org/en]]\n* [[domain.glass|https://domain.glass]]\n* [[Drivet|https://drivet.xyz/services]]\n* [[envs.net|https://envs.net]]\n* [[Esmail EL BoB|https://esmailelbob.xyz/en]]\n* [[Epic Site|https://epicsite.xyz]]\n* [[Freedit|https://freedit-org.github.io/status]]\n* [[foss.wtf|https://foss.wtf]]\n* [[Garuda Linux|https://start.garudalinux.org]]\n* [[GGC-Project|https://www.ggc-project.de/index.html#services]]\n* [[Hostux|https://hostux.network/en]]\n* [[Jae.fi|https://jae.fi/#public-services]]\n* [[kavin.rocks|https://kavin.rocks]]\n* [[LibertaCasa|https://liberta.casa]]\n* [[Lunar.ICU|https://service.lunar.icu]]\n* [[ManaSiWibi|https://manasiwibi.com/public-instance-services]]\n* [[Mask.sh|https://mask.sh]]\n* [[Miaoute (4201337.xyz)|https://4201337.xyz]]\n* [[Ming Di Leom (mdleom.com)|https://mdleom.com/about/#Services]]\n* [[Mico Hautaluoma (mha.fi)|https://mha.fi/services]]\n* [[mint.lgbt|https://mint.lgbt]]\n* [[namazso|https://namazso.eu]]\n* [[Odyssey346|https://odyssey346.dev/posts/selfhost]]\n* [[Plausibility|https://plausibility.cloud]]\n* [[Plus St|https://plus.st]]\n* [[PrivacyDev|https://privacydev.net/services.html]]\n* [[Privex+PrivacyTools|https://www.privex.io/articles/privacy-frontends]]\n* [[Project Segfault|https://projectsegfau.lt]]\n* [[Puffyan|https://puffyan.us]]\n* [[PussTheCat.org|https://pussthecat.org]]\n* [[Riseup|https://riseup.net]]\n* [[Riverside Rocks|https://riverside.rocks]]\n* [[rtrace.io|https://status.rtrace.io]]\n* [[Stetsed's Selfhosted (selfhostable.net)|https://dash.selfhostable.net]]\n* [[Services FACiLes|https://facil.services]]\n* [[Seth For Privacy|https://status.sethforprivacy.com]]\n* [[Slipfox Network Suite|https://slipfox.xyz]]\n* [[Snopyta|https://snopyta.org]]\n* [[Strongthany|https://blog.strongthany.cc/about/#other-strongservices]]\n* [[The Froth Zone|https://status.froth.zone]]\n* [[The kitty zone|https://thekitty.zone]]\n* [[Tiekรถtter|https://www.tiekoetter.com/en/services]]\n* [[Tildeverse|https://tildeverse.org]]\n* [[Tinfoil-hat.net|https://tinfoil-hat.net]]\n* [[Tokhmi|https://status.tokhmi.xyz]]\n* [[TotalDarkness|https://totaldarkness.net]]\n* [[TROM.tf|https://trom.tf]]\n* [[~vern|https://vern.cc]]\n* [[Voring.me|https://status.voring.me]]\n* [[weblibre.org|https://weblibre.org]]\n* [[whatever.social|https://whatever.social]]\n* [[YuruVerse (funami.tech)|https://funami.tech]]\n* [[zaggy.nl|https://zaggy.nl]]\n\n!!! Specific single offerings\n\n* [[CryptPad|CryptPad:en]]: [[๐ Curated List|https://cryptpad.org/instances]]\n\n* [[SearX/SearXNG|SearX:en]] (Metasearch engine): [[๐ Curated List|https://searx.space]] | [[priv.au|https://priv.au]]\n\n* [[Whoogle|Whoogle:en]]: [[๐ Curated List|https://github.com/benbusby/whoogle-search#public-instances]]\n\n* [[Lingva|Lingva:en]]: [[๐ Curated List|https://github.com/TheDavidDelta/lingva-translate#instances]]\n\n* [[Libreddit|Libreddit:en]]: [[๐ Curated List|https://github.com/libreddit/libreddit-instances/blob/master/instances.md]]\n\n* [[Teddit|Teddit:en]]: [[๐ Curated List|https://codeberg.org/teddit/teddit#instances]]\n\n* [[Nitter|Nitter:en]] (Twitter frontend): [[๐ Curated List|https://xnaas.github.io/nitter-instances]]\n\n* [[Invidious|Invidious:en]]: [[๐ Curated List|https://api.invidious.io]] \u003C!--| [[com.sb|https://y.com.sb]], [[flokinet.to|https://invidious.flokinet.to]], [[lidarshield|https://invidious.lidarshield.cloud]], [[ggtyler.dev|https://iv.ggtyler.dev]], [[melmac.space|https://iv.melmac.space]], [[nerdvpn.de|https://invidious.nerdvpn.de]], [[priv.au|https://vid.priv.au]], [[Silur.me|https://invidious.silur.me]]--->\n\n* [[Piped|Piped:en]]: [[๐ Curated List|https://github.com/TeamPiped/Piped/wiki/Instances]]\n","tags":"i18n:en Internet","title":"Open Services Providers","modified":"20230110101540396"},
{"created":"20230109105615720","text":"\u003C\u003CMediaWiki Papier-mรขchรฉ en 2>>","title":"Papier-mรขchรฉ","modified":"20230109105630799","tags":"i18n:en"},
{"created":"20230114144201530","text":"\u003C\u003CMediaWiki PeerTube en 3>>","tags":"i18n:en TODO Fediverse","title":"PeerTube:en","modified":"20230114144341830"},
@@ -582,7 +595,7 @@ Error message and password prompt
{"created":"20230114145440371","text":"\u003C\u003CMediaWiki Picross_DS en 1>>","tags":"i18n:en Gaming TODO NDS Nintendo Puzzle","title":"Picross DS:en","modified":"20230114145529262"},
{"created":"20230114124635690","text":"","tags":"Nintendo NDS i18n:en TODO","title":"PictoChat:en","modified":"20230114124650710"},
{"created":"20230114154328830","text":"\u003C\u003CMediaWiki Pixelfed en 2>>\n\n* https://pixelfed.org\n* https://github.com/pixelfed","tags":"i18n:en Fediverse TODO","title":"Pixelfed:en","modified":"20230114154453880"},
-{"created":"20230117105218211","text":"* [[daedalOS]]\n* ''OS.js'': [[Website|https://www.os-js.org]] | [[Demo|https://demo.os-js.org]] | [[Git|https://github.com/os-js]]","tags":"i18n:en TODO","title":"Pseudo-OS:en","modified":"20230117105503109"},
+{"created":"20230117105218211","creator":"Octt","text":"A ''pseudo-operating-system'' is a software that acts (in a limited way) like an operating system, but is usually a normal application that runs on top of real OS.\n\n!!! ''Here are some''\n\n* [[daedalOS|daedalOS:en]]\n* ''OS.js'': [[Website|https://www.os-js.org]] | [[Demo|https://demo.os-js.org]] | [[Git|https://github.com/os-js]]","tags":"i18n:en TODO","title":"Pseudo-OS:en","modified":"20230126101650454","modifier":"Octt"},
{"created":"20230108215508443","text":"\nA ''pubnix'' (public-unix) is a [[Unix|Unix:en]] server provided by any entity, without profit motives, to the general public. They usually exist for self-empowerment, recreational, and learning use.\n\nSome pubnixes are formally joined together in networks. One of the most popular active today is [[Tildeverse|https://tildeverse.org]].\n","tags":"i18n:en Internet Unix","title":"Pubnix:en","modified":"20230108220232499"},
{"created":"20221110120605389","text":"[[Python|https://www.python.org]] is a high-level, general-purpose, dynamically-typed, and garbage-collected programming language, with an extensive standard library and mandatory-indentation style.\n\n\u003Ca title=\"www.python.org, GPL <http://www.gnu.org/licenses/gpl.html>, via Wikimedia Commons\" href=\"https://commons.wikimedia.org/wiki/File:Python-logo-notext.svg\">\u003Cimg alt=\"Python-logo-notext\" src=\"https://upload.wikimedia.org/wikipedia/commons/c/c3/Python-logo-notext.svg\">\u003C/a>","tags":"i18n:en Development","title":"Python:en","modified":"20221110143925630"},
{"created":"20230113212036797","text":"\u003C\u003CMediaWiki qBittorrent en 1>>","tags":"TODO i18n:en","title":"qBittorrent:en","modified":"20230113212121140"},
@@ -602,7 +615,7 @@ Error message and password prompt
{"created":"20230113231015907","text":"* https://github.com/26F-Studio/Techmino","tags":"i18n:en TODO","title":"Techmino:en","modified":"20230113231026790"},
{"created":"20230114125105418","text":"","tags":"TODO Gaming i18n:en","title":"Tetris Effect:en","modified":"20230114125518126"},
{"created":"20230112091241450","text":"\u003C\u003CMediaWiki Tetris en 3>>\n\n!! ''Gamin' Time''\n\n\u003C\u003CiFrameFixed \"https://reactgular.github.io/tetromino\">>","tags":"i18n:en Gaming TODO Puzzle","title":"Tetris:en","modified":"20230114124319245"},
-{"created":"20220924193842295","creator":"Octt","text":"[[TiddlyWiki|https://tiddlywiki.com]] is the software upon which this website is built.\n\nIt is a libre, JavaScript-rich, non-linear notebook, that can well adapt to anyone's way of building a logically interconnected information database.\n\n\u003C\u003CMediaWiki TiddlyWiki en 2>>\n\n!! ''Useful Resources''\n\n* Official Git Repos: [[TiddlyWiki5 Source|https://github.com/Jermolene/TiddlyWiki5]], [[Others|https://github.com/TiddlyWiki]]\n* Official Docs: [[Standard|https://tiddlywiki.com]], [[Dev|https://tiddlywiki.com/dev]]\n* [[Links Aggregator|https://links.tiddlywiki.org]]\n* [[Grok TiddlyWiki|https://groktiddlywiki.com]] - //Build a deep, lasting understanding of TiddlyWiki//\n* [[TiddlyWiki Toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]]\n\n!!! ''Other Wikis, Plugin Collections''\n\n* [[BrainTest|https://braintest.tiddlyspot.com]] - //tools for a digital brain//\n* [[Joe's Blog|https://joearms.github.io]] - Contains the [[Chandler|https://joearms.github.io/#2018-12-26%20Fun%20with%20the%20TiddlyWiki]] prototype time-management tool\n* [[kookma's codes, macros, and solutions in TW|https://kookma.github.io/TW-Scripts]]\n* [[NoteSelf|https://noteself.org]] - TiddlyWiki fork/flavor with interesting features built-in - [[[Git|https://github.com/NoteSelf]]]\n* [[Projectify|https://thaddeusjiang.github.io/Projectify]] - //Project management for TiddlyWiki// - [[[Git|https://github.com/ThaddeusJiang/Projectify]]]\n* [[Stroll|https://giffmex.org/stroll/stroll.html]] - //A Roam-like experience in a free, downloadable file//\n* [[The public musings of Soren Bjornstad (Zettelkasten)|https://zettelkasten.sorenbjornstad.com]]\n* [[TiddlyMap|http://tiddlymap.org]] - //Map drawing and topic visualization for your wiki!// - [[[Git|https://github.com/felixhayashi/TW5-TiddlyMap]]]\n* [[Tobias Beer's Plugins and Resources|https://tobibeer.github.io]] - [[[Profile|https://tobibeer.github.io/tb5/#Tobias%20Beer]]] [[[Git|https://github.com/tobibeer]]]\n* [[TW5 CPL Wiki|https://tw-cpl.netlify.app]] - //TiddlyWiki5 Plugin Library for TiddlyWiki Chinese Communities//\n* [[TW5 Magick|https://tw5magick.tiddlyspot.com]] - //Some tricks and snippets for TiddlyWiki 5//\n* [[ZemoxWiki|https://zemox.tiddlyspot.com]] - //a haphazard meandering of notes, thoughts, experiments, links...//\n\n!!!! ''Individual Plugins''\n\n* [[Context Plugin|https://contextplugin.tiddlyspot.com]] - //search with context//\n* [[ECharts|https://tiddly-gittly.github.io/tw-echarts]] [[[Git|https://github.com/tiddly-gittly/tw-echarts]], [[Thread|https://talk.tiddlywiki.org/t/echarts-bringing-amazing-visualization-tools-to-tiddlywiki/1944]]] - //An All-in-one Visualization Framework for TiddlyWiki5 based on ECharts//\n* [[enable-js|http://tobibeer.github.io/tw/enable-js]] - //using inline script tags//\n* [[ibox|https://tobibeer.github.io/tw/ibox]] - //pretty-show images in tw5//\n* [[Relink|https://flibbles.github.io/tw5-relink]] - //flexibility when relinking renamed tiddlers//\n\n!!! ''Useful Documentation Pages''\n* [[DateFormat|https://tiddlywiki.com/static/DateFormat.html]]\n\n!!! ''Discussions''\nDiscussions that helped or might help me solve problems. And also some that are just plain interesing.\n\n* [[Date time wiki last updated or saved?|https://groups.google.com/g/TiddlyWiki/c/RxJdciY7yZY]]\n* [[I want to edit something, oh no that's a transclusion|https://groups.google.com/g/TiddlyWiki/c/tYgM6kh9lNA]], [[How do I transclude an edit window of a tiddler?|https://groups.google.com/g/tiddlywiki/c/GsMkfxSPkmA/m/cxGdAieIBgAJ]], [[How to quickly navigate to a transcluded tiddler?|https://talk.tiddlywiki.org/t/how-to-quickly-navigate-to-a-transcluded-tiddler/4535/5]]\n* [[Is there way to make TiddlyWiki system-wide case insensitive?|https://groups.google.com/g/tiddlywiki/c/BcEF4fTzCj8]]\n* [[Simple Javascript insertion in tiddlers (text/vnd.tiddlywiki)|https://groups.google.com/g/tiddlywiki/c/NwOI-QER2ig/m/lSLS3XolwDoJ]]\n* [[[TW5] Tag (Text) Cloud for TW5?|https://groups.google.com/g/tiddlywiki/c/_YE1pjZMFkg]], [[TagCloud plugin|https://groups.google.com/g/tiddlywiki/c/VQPaJC6yyWM]]\n* [[Setting HTML attributes with a macro?|https://groups.google.com/g/tiddlywiki/c/Qp8Fzi0BR5I/m/N65Q6thTEwAJ]]\n* [[[Plugin] Presenting TW5-Uglify! Plugin compression the TiddlyWIki way!|https://groups.google.com/g/tiddlywiki/c/-kIVw00crRQ]]\n\n!! ''Notes/Personal''\n\n!!! ''WIP/TODO''\n\n* Move all bachecoctt links (and old GitHub stars) to proper tiddlers\n* Custom proper reusable directory tree browser (maybe like the one we have with $:/OcttKB/ToC)\n** To use instead of the [[Directory macros|$:/Macros/Directory]], showing automatically on pages that are directories, and also as a file browser for the whole wiki\n* Breadcrumbs bar only shown on tiddlers which are or are in a directory / Find a good way to integrate it in the tiddler title maybe, to save on screen space.\n** Style $:/ prefix\n** Show unformatted title on click or at least disable hiding of some tokens\n** Button to copy full path to clipboard\n* Personal easy notes on various technical things of TiddlyWiki\n* Organize all my customizations into plugins easily installable by anyone\n* ~~Show date and time of last saving somewhere accessible (Index tab on sidebar?)~~ Done for now, but it should also consider when a system tiddler is edited\n* Data compression of everything\n* When opening missing tiddlers, show a preview from Wikipedia or from word dictionaries, with GUI to customize fetching options\n* To the possible extent, save Git deploy scripts for the KB inside itself, for easy editing needs\n* When tiddlers are transcluded show a small version of their action bar\n* Case insensitivity for tiddlers (?)\n* Handy button to reload direct scripts like $:/OcttKB/Functions.js\n* A way to reload any script, like JS macros or installed plugins, without reloading the entire wiki\n* Button to reload a single tiddler; if not possible, then the macros that can fail (e.g. MediaWiki, or all which fetch content from the Internet) should provide their own retry button\n* Automatic lightboxes for images, without having to use the `\u003C\u003Cibox>>` macro\n* Fix images embedded with CSS float, make them not go out of tiddler's body if too tall\n* Better positioning of open/close sidebar button (should move the tiddler action bar buttons slightly to the left on single-column layout at least)\n* Add a feature to let users send issues or pull requests\n* Maybe add normal user comments?\n* Rehost embedded games for better CSS\n** Find the best retro console HTML5 emulator to embed in tiddlers which talk about certain games - they also need to be adapted to load ROMs from URL\n* In here I also put some tiddlers that are about a mainstream thing or topic just because they are connected to a more worthy tiddler; they should be tagged as Mainstream so that they can be filtered out in search and stuff\n* Special protection for some tiddlers, not encryption necessarily but just lock access to them globally until a specific task is performed (a password inputted is boring, maybe specific screen swipes is better)\n* \"Back to top\" button\n** I should probably take the style used by bilibili, it's so cute\n\n!!!! ''i18n''\n* Make the language bar collapsed by default, or make it a menu callable by a button on the tiddler\n** Show the button as a country flag in the tiddler title maybe? Ideally showing it in place of the \":lang\" suffix when present\n* Selecting to open a language on a tiddler should ideally remove the previously open tiddler from the story river (or else if you switch language many times you have a cluttered river but no real advantage)\n* Automatically handle connections between different-language versions of a tiddler when the only difference in title is the \":lang\" suffix, without manually setting \"i18n\" attribute\n* Automatically handle eventual tiddlers which don't exist by their common i18n name (e.g \"Thing\") but do with a \":lang\" suffix, that should automatically transclude the //preferred language//\n** Preferred language could be enforced by the user with a global setting, or just be set softly based on the language of the last tiddler opened by the user (latter is ideal)\n\n!!!! ''External wikis''\n* Unified transclusion features for external TiddlyWikis and MediaWikis\n** Adapt the [[MediaWiki macro|$:/Macros/MediaWiki]] to:\n** Have internal links present\n*** Add lists of known wikis callable from a shorthand name\n*** Choosing number (by total from first/last, or ranges), or titles, of paragraphs or chapters to transclude (with support for specifying items to exclude)\n*** Retrieving and embedding files from wiki or Commons by known name (`File:`)\n*** It must also handle files that aren't images (audio/video)\n**** Default embed displays also the article cover image, allow setting a custom file or just `none`\n** Understand transclusions from external TiddlyWikis (it seems like people just use iframes, OK for showing things but not for choosing to display specific limited sections)\n* Somehow have working full-text search for tiddlers that transclude external wikis?\n\n!!!! ''Graphing and statistics''\n* Keyword (not tag) cloud ([[[tw5] Simple Word Clouds|https://talk.tiddlywiki.org/t/tw5-simple-word-clouds/3234]]?)\n* Need to get an automatic relationship map (like the one on [[https://baczek.me/map/]])\n* Activity view with calendar (like KOReader) or squares wall (Git)\n","title":"TiddlyWiki:en","modified":"20230125233603371","tags":"TiddlyWiki i18n:en TODO","modifier":"Octt"},
+{"created":"20220924193842295","creator":"Octt","text":"[[TiddlyWiki|https://tiddlywiki.com]] is the software upon which this website is built.\n\nIt is a libre, JavaScript-rich, non-linear notebook, that can well adapt to anyone's way of building a logically interconnected information database.\n\n\u003C\u003CMediaWiki TiddlyWiki en 2>>\n\n!! ''Useful Resources''\n\n* Official Git Repos: [[TiddlyWiki5 Source|https://github.com/Jermolene/TiddlyWiki5]], [[Others|https://github.com/TiddlyWiki]]\n* Official Docs: [[Standard|https://tiddlywiki.com]], [[Dev|https://tiddlywiki.com/dev]]\n* [[Links Aggregator|https://links.tiddlywiki.org]]\n* [[Grok TiddlyWiki|https://groktiddlywiki.com]] - //Build a deep, lasting understanding of TiddlyWiki//\n* [[TiddlyWiki Toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]]\n\n!!! ''Other Wikis, Plugin Collections''\n\n* [[BrainTest|https://braintest.tiddlyspot.com]] - //tools for a digital brain//\n* [[Joe's Blog|https://joearms.github.io]] - Contains the [[Chandler|https://joearms.github.io/#2018-12-26%20Fun%20with%20the%20TiddlyWiki]] prototype time-management tool\n* [[kookma's codes, macros, and solutions in TW|https://kookma.github.io/TW-Scripts]]\n* [[NoteSelf|https://noteself.org]] - TiddlyWiki fork/flavor with interesting features built-in - [[[Git|https://github.com/NoteSelf]]]\n* [[Projectify|https://thaddeusjiang.github.io/Projectify]] - //Project management for TiddlyWiki// - [[[Git|https://github.com/ThaddeusJiang/Projectify]]]\n* [[Stroll|https://giffmex.org/stroll/stroll.html]] - //A Roam-like experience in a free, downloadable file//\n* [[The public musings of Soren Bjornstad (Zettelkasten)|https://zettelkasten.sorenbjornstad.com]]\n* [[TiddlyMap|http://tiddlymap.org]] - //Map drawing and topic visualization for your wiki!// - [[[Git|https://github.com/felixhayashi/TW5-TiddlyMap]]]\n* [[Tobias Beer's Plugins and Resources|https://tobibeer.github.io]] - [[[Profile|https://tobibeer.github.io/tb5/#Tobias%20Beer]]] [[[Git|https://github.com/tobibeer]]]\n* [[TW5 CPL Wiki|https://tw-cpl.netlify.app]] - //TiddlyWiki5 Plugin Library for TiddlyWiki Chinese Communities//\n* [[TW5 Magick|https://tw5magick.tiddlyspot.com]] - //Some tricks and snippets for TiddlyWiki 5//\n* [[ZemoxWiki|https://zemox.tiddlyspot.com]] - //a haphazard meandering of notes, thoughts, experiments, links...//\n\n!!!! ''Individual Plugins''\n\n* [[Context Plugin|https://contextplugin.tiddlyspot.com]] - //search with context//\n* [[ECharts|https://tiddly-gittly.github.io/tw-echarts]] [[[Git|https://github.com/tiddly-gittly/tw-echarts]], [[Thread|https://talk.tiddlywiki.org/t/echarts-bringing-amazing-visualization-tools-to-tiddlywiki/1944]]] - //An All-in-one Visualization Framework for TiddlyWiki5 based on ECharts//\n* [[enable-js|http://tobibeer.github.io/tw/enable-js]] - //using inline script tags//\n* [[ibox|https://tobibeer.github.io/tw/ibox]] - //pretty-show images in tw5//\n* [[Relink|https://flibbles.github.io/tw5-relink]] - //flexibility when relinking renamed tiddlers//\n\n!!! ''Useful Documentation Pages''\n* [[DateFormat|https://tiddlywiki.com/static/DateFormat.html]]\n\n!!! ''Discussions''\nDiscussions that helped or might help me solve problems. And also some that are just plain interesing.\n\n* [[Date time wiki last updated or saved?|https://groups.google.com/g/TiddlyWiki/c/RxJdciY7yZY]]\n* [[I want to edit something, oh no that's a transclusion|https://groups.google.com/g/TiddlyWiki/c/tYgM6kh9lNA]], [[How do I transclude an edit window of a tiddler?|https://groups.google.com/g/tiddlywiki/c/GsMkfxSPkmA/m/cxGdAieIBgAJ]], [[How to quickly navigate to a transcluded tiddler?|https://talk.tiddlywiki.org/t/how-to-quickly-navigate-to-a-transcluded-tiddler/4535/5]]\n* [[Is there way to make TiddlyWiki system-wide case insensitive?|https://groups.google.com/g/tiddlywiki/c/BcEF4fTzCj8]]\n* [[Simple Javascript insertion in tiddlers (text/vnd.tiddlywiki)|https://groups.google.com/g/tiddlywiki/c/NwOI-QER2ig/m/lSLS3XolwDoJ]]\n* [[[TW5] Tag (Text) Cloud for TW5?|https://groups.google.com/g/tiddlywiki/c/_YE1pjZMFkg]], [[TagCloud plugin|https://groups.google.com/g/tiddlywiki/c/VQPaJC6yyWM]]\n* [[Setting HTML attributes with a macro?|https://groups.google.com/g/tiddlywiki/c/Qp8Fzi0BR5I/m/N65Q6thTEwAJ]]\n* [[[Plugin] Presenting TW5-Uglify! Plugin compression the TiddlyWIki way!|https://groups.google.com/g/tiddlywiki/c/-kIVw00crRQ]]\n\n!! ''Notes/Personal''\n\n* [[OcttKB/WIP]]","title":"TiddlyWiki:en","modified":"20230126110044642","tags":"TiddlyWiki i18n:en TODO","modifier":"Octt"},
{"created":"20220922163220116","text":"\u003Cstyle>\ntr:nth-child(even) {background-color: #f2f2f2;}\n\u003C/style>","tags":"Snippets TiddlyWiki","title":"TiddlyWiki/Snippets to Test","modified":"20230111082334125"},
{"created":"20230109104324882","text":"\u003C\u003CMediaWiki Twitter en 1>>","tags":"i18n:en Internet TODO","title":"Twitter:en","modified":"20230111153747555"},
{"created":"20230114161806791","text":"\u003C!--\n\\define URLRnd() https://source.unsplash.com/random?\u003C$macrocall $name=\"now\"/>\u003C\u003Cnow \"hh.mm.ss.XXX\">>\n--->\n\n\u003C\u003CMediaWiki Unsplash en 1>>\n\n!! ''Random Picture from the Gallery''\n\n\u003Ca href=\"https://unsplash.com\" rel=\"noopener noreferrer\" target=\"_blank\">\u003Cimg class=\"Img90\" src=\"https://source.unsplash.com/random\">\u003C/a>\n\n\u003C!--\n\u003Ca href=\"https://source.unsplash.com/random?{{{[\u003Cnow hh.mm.ss.XXX>]}}}\">a\u003C/a>\n--->","tags":"i18n:en TODO Internet","title":"Unsplash:en","modified":"20230114170906333"},