diff --git a/public/index.html b/public/index.html
index 94d84c7..d3845e1 100644
--- a/public/index.html
+++ b/public/index.html
@@ -202,14 +202,15 @@ Error message and password prompt
{"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":"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","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, Proto;\n Sections = parseInt(Sections) || 0;\n/*\n if (!Domain) {\n Domain = 'en.wikipedia.org';\n } else\n if (!Domain.includes('.')) {\n Domain += '.wikipedia.org';\n };\n Domain = Domain.toLowerCase();\n Domain.startsWith('http://') || Domain.startsWith('https://') ? Proto = '' : Proto = 'https://';\n*/\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":"20230112192700104","type":"application/javascript","module-type":"macro"},
-{"created":"20230112154435120","text":"/*\\\nGet the cover image from a MediaWiki article.\n[\u003C\u003C]MediaWikiGetCover \"Article\" \"Full Domain OR Wikipedia Subdomain\" \"Manual URL\"[>>]\n\\*/\n\n(function(){\n\"use strict\";\nexports.name = \"MediaWikiGetCover\";\nexports.params = [\n {name: \"Article\"},\n {name: \"Domain\"},\n {name: \"URL\"}\n];\n\nexports.run = function(Article, Domain, URL) {\ntry {\n let Req, File, Proto;\n/*\n if (!Domain) {\n Domain = 'en.wikipedia.org';\n } else\n if (!Domain.includes('.')) {\n Domain += '.wikipedia.org';\n };\n Domain = Domain.toLowerCase();\n Domain.startsWith('http://') || Domain.startsWith('https://') ? Proto = '' : Proto = 'https://';\n*/\n Domain = $OcttKB.MediaWiki.MkDomain(Domain);\n Req = new XMLHttpRequest();\n Req.open('GET', Domain + '/w/api.php?action=query&prop=pageimages&format=json&piprop=original&origin=*&titles=' + Article, false);\n Req.send();\n File = Object.values(JSON.parse(Req.responseText).query.pages)[0];\n File ? File = File.original.source : File = '';\n File ? File = `\u003Cimg src=\"${File}\">` : File = '';\n return File;\n} catch(e) {\n return $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/MediaWiki/GetCover.js","modified":"20230112192620089","type":"application/javascript","module-type":"macro"},
+{"created":"20230108190340455","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":"20230112200938331","type":"application/javascript","module-type":"macro"},
+{"created":"20230112154435120","text":"/*\\\nGet the cover image from a MediaWiki article.\n[\u003C\u003C]MediaWikiGetCover \"Article\" \"Full Domain OR Wikipedia Subdomain\" \"Manual URL\"[>>]\n\\*/\n\n(function(){\n\"use strict\";\nexports.name = \"MediaWikiGetCover\";\nexports.params = [\n {name: \"Article\"},\n {name: \"Domain\"},\n {name: \"URL\"}\n];\n\nexports.run = function(Article, Domain, URL) {\ntry {\n let File;\n Domain = $OcttKB.MediaWiki.MkDomain(Domain);\n const Req = new XMLHttpRequest();\n Req.open('GET', Domain + '/w/api.php?action=query&prop=pageimages&format=json&piprop=original&origin=*&titles=' + Article, false);\n Req.send();\n File = Object.values(JSON.parse(Req.responseText).query.pages)[0];\n File ? File = File.original.source : File = '';\n File ? File = `\u003Cimg src=\"${File}\">` : File = '';\n return File;\n} catch(e) {\n return $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/MediaWiki/GetCover.js","modified":"20230112200955387","type":"application/javascript","module-type":"macro"},
{"created":"20230110102736164","text":"\u003C!--\n[\u003C\u003C]MediaWiki[>>]\n| Embed sections of an article from a MediaWiki server.\n| [\u003C\u003C]MediaWiki \"Article\" \"Full Domain OR Wikipedia Subdomain\" \"Section Filtering\" \"Cover Media\"[>>]\n--->\n\n\\define MediaWiki(Article Domain Sections Cover)\n\u003Cdiv class=\"MediaWikiEmbed MediaWikiEmbedBlock\">\n\u003Cdiv class=\"EmbedFrom MediaWikiEmbedFrom\">\n From \u003C$set name=\"FullDomain\" filter=\"[[$Domain$]regexp[\\.]then[$Domain$]else[$Domain$.Wikipedia.org]]\">\n \u003C$macrocall $name=\"ExtMediaWikiAnchor\" Article=\"$Article$\" Domain=\u003C\u003CFullDomain>>/>\n \u003C/$set>\n\u003C/div>\n\u003Cdiv class=\"MediaWikiEmbedCover\">\n \u003C\u003CMediaWikiGetCover \"$Article$\" \"$Domain$\" \"$Cover$\">>\n\u003C/div>\n\u003Cdiv class=\"MediaWikiEmbedContent\">\n \u003C\u003CMediaWikiEmbedInternal \"$Article$\" \"$Domain$\" \"$Sections$\">>\n\u003C/div>\n\u003C/div>\n\\end\n\n\\define ExtMediaWikiAnchor(Article Domain) [[$Domain$/$Article$|https://$Domain$/wiki/$Article$]]\n","tags":"$:/tags/Macro","title":"$:/Macros/MediaWiki/Main","modified":"20230112154312063"},
{"created":"20220921191720432","text":"\\define r(Title Notes)\n\u003Ctr>\n\u003Ctd>$Title$\u003C/td>\n\u003Ctd>\u003C\u003Cx# \"$Title$ - GotAny\">>\u003C/td>\n\u003Ctd>\u003C\u003Cx# \"$Title$ - GotLossless\">>\u003C/td>\n\u003Ctd>\u003C\u003Cx# \"$Title$ - UploadedLossless:Archive.org\">>\u003C/td>\n\u003Ctd>$Notes$\u003C/td>\n\u003C/tr>\n\\end\n\n\u003C$importvariables filter=\"$:/Macros\">","tags":"","title":"$:/Macros/Music Archiving Status","modified":"20220922052514703"},
{"created":"20220922114846670","text":"\u003C\u003Clist-links \"[!is[system]sort[title]]\">>","tags":"","title":"$:/OcttKB/AllTiddlers","modified":"20230110182200212"},
-{"created":"20230111221906132","text":"/*\\\nLoad our reusable, comodity JS functions.\n\\*/\nexports.startup = function() {\ntry {\nlet $OcttKB = {};\n\n$OcttKB.ErrAtLine = function ErrAtLine(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n\n$OcttKB.MediaWiki = {};\n\n$OcttKB.MediaWiki.MkDomain = function MkDomain(Domain) {\n if (!Domain) {\n Domain = 'en.wikipedia.org';\n } else\n if (!Domain.includes('.')) {\n Domain += '.wikipedia.org';\n };\n Domain = Domain.toLowerCase();\n if (!Domain.startsWith('http://') && !Domain.startsWith('https://')) {\n Domain += 'https://';\n };\n return Domain;\n};\n\nwindow.$OcttKB = $OcttKB;\n} catch(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n};","tags":"","title":"$:/OcttKB/Functions.js","modified":"20230112192440345","type":"application/javascript","module-type":"startup"},
-{"created":"20230112094149171","text":"\u003C$link to=\"OcttKB/Licensing\" class=\"StartHere-Button\">[img[$:/ThirdParty/Buttons/CC BY-SA.svg]]\u003C/$link>","tags":"","title":"$:/OcttKB/LicensingButtons","modified":"20230112094204911"},
+{"created":"20230111221906132","text":"/*\\\nLoad our reusable, comodity JS functions.\n\\*/\nexports.startup = function() {\ntry {\nlet $OcttKB = {};\n\n$OcttKB.ErrAtLine = function ErrAtLine(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n\n$OcttKB.MediaWiki = {};\n\n$OcttKB.MediaWiki.MkDomain = function MkDomain(Domain) {\n if (!Domain) {\n Domain = 'en.wikipedia.org';\n } else\n if (!Domain.includes('.')) {\n Domain += '.wikipedia.org';\n };\n Domain = Domain.toLowerCase();\n if (!Domain.startsWith('http://') && !Domain.startsWith('https://')) {\n Domain = 'https://' + Domain;\n };\n return Domain;\n};\n\nwindow.$OcttKB = $OcttKB;\n} catch(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n};","tags":"","title":"$:/OcttKB/Functions.js","modified":"20230112200824252","type":"application/javascript","module-type":"startup"},
+{"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":"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"},
{"created":"20230110205229441","text":"!!! Personal Tweaks\n\n|\u003C$link to=\"$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding\">.tc-story-river Padding\u003C/$link>\u003Cbr>//Default 42px.//|\u003C$edit-text tiddler=\"$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding\" default=\"\" tag=\"input\"/>|\n","tags":"","title":"$:/OcttKB/Tweaks/Starlight.cfg","modified":"20230110213137071"},
@@ -271,6 +272,7 @@ Error message and password prompt
{"created":"20230110102542175","title":"$:/state/edit/references--797560378","text":"show","modified":"20230110102718417"},
{"created":"20230111153551736","title":"$:/state/edit/references-1341778059","text":"show","modified":"20230111153551736"},
{"created":"20230112154542269","title":"$:/state/edit/references-2099622070","text":"hide","modified":"20230112154544212"},
+{"created":"20230112221558289","title":"$:/state/edit/references-332165217","text":"hide","modified":"20230112221559913"},
{"created":"20230110224547000","title":"$:/state/edit/references-828285479","text":"hide","modified":"20230110224548160"},
{"created":"20220920191756623","title":"$:/state/editpreviewtype","text":"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw","modified":"20230109162935656"},
{"created":"20221108223526572","title":"$:/state/folded/$:/Apps/Dashboard/index.html","text":"hide","modified":"20230109162823352"},
@@ -327,14 +329,14 @@ Error message and password prompt
{"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","title":"$:/state/tab/moresidebar-1850697562","text":"$:/core/ui/MoreSideBar/Explorer","modified":"20230112104507976"},
-{"created":"20220920092307479","title":"$:/state/tab/sidebar--595412856","text":"TableOfContents","modified":"20230112193000824"},
+{"created":"20220920092307479","title":"$:/state/tab/sidebar--595412856","text":"TableOfContents","modified":"20230112221206873"},
{"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"},
{"created":"20230109161519933","title":"$:/state/toc/TableOfContents-Apps--118161433","text":"close","modified":"20230109221359461"},
{"created":"20230111152831238","title":"$:/state/toc/TableOfContents-Apps-550494662","text":"close","modified":"20230111152835422"},
{"created":"20230109221055460","title":"$:/state/toc/TableOfContents-OcttKB--118161433","text":"close","modified":"20230109222508816"},
-{"created":"20230110183137080","title":"$:/state/toc/TableOfContents-OcttKB--1742311157","text":"close","modified":"20230112093811835"},
+{"created":"20230110183137080","title":"$:/state/toc/TableOfContents-OcttKB--1742311157","text":"close","modified":"20230112221250961"},
{"created":"20230110193924411","title":"$:/state/toc/TableOfContents-OcttKB-1491465924","text":"close","modified":"20230112145642401"},
{"created":"20230110224516936","title":"$:/state/tree/$:/.tb/","text":"show","modified":"20230110224516936"},
{"created":"20230110224517512","title":"$:/state/tree/$:/.tb/macros/","text":"show","modified":"20230110224517512"},
@@ -383,11 +385,11 @@ Error message and password prompt
{"created":"20230109220622044","title":"$:/state/tree/$:/ThirdParty/TiddlyTools/Macros/","text":"hide","modified":"20230109220622628"},
{"created":"20230110224557624","title":"$:/state/tree/$:/ThirdParty/tobibeer/","text":"hide","modified":"20230110224558304"},
{"created":"20230110224425624","title":"$:/state/tree/$:/ThirdParty/zemoxian/","text":"hide","modified":"20230111144254721"},
-{"created":"20220920211944968","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":"","title":"$:/StaticBanner","modified":"20220925153532518"},
+{"created":"20220920211944968","text":"{{$:/OcttKB/StaticBanner}}","tags":"","title":"$:/StaticBanner","modified":"20230112221911675"},
{"title":"$:/status/RequireReloadDueToPluginChange","text":"no"},
-{"title":"$:/StoryList","created":"20230112164209426","text":"","list":"$:/Styles/Main $:/OcttKB/Functions.js $:/Macros/MediaWiki/EmbedInternal.js $:/Macros/MediaWiki/GetCover.js","modified":"20230112192856464"},
+{"title":"$:/StoryList","created":"20230112164209426","text":"","list":"","modified":"20230112222016186"},
{"created":"20230112154615238","text":"\\define --HeadingColor0() #c061cb;\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":"20230112165150132"},
-{"created":"20230108190740128","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 {\n\tcontent: \"Β»\";\n}\nul dl {\n\tmargin-left: 8px;\n}\nul dl dd {\n\tmargin-left: 24px;\n}\n\n@media (min-width: \u003C\u003Csidebarbreakpoint>>) {\n\t.tc-sidebar-scrollable {\n\t\tpadding-left: 0px;\n\t\tpadding-right: 0px;\n\t}\n\t.tc-story-river {\n\t\tpadding: {{$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding}};\n\t}\n\t.tc-tiddler-frame {\n\t\tpadding: 20px /*24px 32px 24px 32px*/;\n\t\tmargin-bottom: 20px;\n\t}\n\n\u003C\u003Cif-fluid-fixed text:\"\"\"\n\t.tc-story-river {\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\"\"\" hiddenSidebarText:\"\"\"\n\t.tc-story-river {\n\t\tmargin-right: 0px;\n\t\tpadding-right: 24px;\n\t}\n\"\"\">>\n}\n\nsection.tc-story-river {\n\tpadding-bottom: 0px;\n}\nsection.tc-story-river ~ p {\n\tdisplay: none;\n}\n\ndiv.tc-tiddler-frame,\ndiv.tc-tiddler-body p iframe {\n\tBox-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);\n}\ndiv.tc-tiddler-body p iframe {\n\tBorder: None;\n}\n\n.tc-tiddler-frame {\n border-radius: 4px;\n}\n\n.DirList-Title, .DirList-Title * {\n\tFont-Style: Normal !Important;\n}\n\n.Separator-Right:Last-Of-Type {\n\tDisplay: None;\n}\n\na.StartHere-Button {\n font-size: smaller;\n text-decoration: none !important;\n user-select: none;\n}\na.StartHere-Button > span {\n position: relative;\n top: -10px;\n}\n","tags":"$:/tags/Stylesheet","title":"$:/Styles/Main","modified":"20230112192952306"},
+{"created":"20230108190740128","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 {\n content: \"Β»\";\n}\nul dl {\n margin-left: 8px;\n}\nul dl dd {\n margin-left: 24px;\n}\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\nsection.tc-story-river {\n padding-bottom: 0px;\n}\nsection.tc-story-river ~ p {\n display: none;\n}\n\ndiv.tc-tiddler-frame,\ndiv.tc-tiddler-body p iframe {\n Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);\n}\ndiv.tc-tiddler-body p iframe {\n Border: None;\n}\n\n.tc-tiddler-frame {\n border-radius: 4px;\n}\n\n/* Large tag selection menu, optimized for desktop */\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}\n\n.DirList-Title, .DirList-Title * {\n Font-Style: Normal !Important;\n}\n\n.Separator-Right:last-of-type {\n Display: None;\n}\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","tags":"$:/tags/Stylesheet","title":"$:/Styles/Main","modified":"20230112221438131"},
{"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: START COPYING HERE -->\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>\n\u003C!-- TOP RIGHT RIBBON: END COPYING HERE -->","tags":"$:/tags/PageControls","title":"$:/Styles/Ribbon.xml","modified":"20230111090809812","type":""},
{"created":"20230111090705398","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/10-Missing.xml","modified":"20230111145028282"},
@@ -458,6 +460,7 @@ Error message and password prompt
{"created":"20220923130111988","text":"[[MeBoy|http://arktos.se/meboy]] is a libre (GPLv2) [[Game Boy|Game Boy:en]] (and Game Boy color) emulator for the [[J2ME|J2ME:en]] platform.","tags":"Emulation Gaming Nintendo [[Game Boy]] i18n:en","title":"MeBoy:en","modified":"20220926115012739"},
{"created":"20230112112905496","text":"\u003C\u003CMediaWiki MediaWiki en 4>>\n\n!! ''Resources''\n\n!!! ''Development''\n\n* \u003C\u003CExtMediaWikiAnchor \"API:Get_the_contents_of_a_page\" mediawiki.org>>","tags":"i18n:en TODO","title":"MediaWiki:en","modified":"20230112114851493"},
{"created":"20220923104738517","text":"[[melonDS|https://melonds.kuribo64.net]] is (sort of) a libre [[Nintendo DS|Nintendo DS:en]] emulator.\n\n[img[https://raw.githubusercontent.com/melonDS-emu/melonDS/master/res/icon/melon_128x128.png]]\n\nOver the years of development, the emulator had time to become a mature melon.\n\nToday, while it still needs a lot of work before being complete, it's considered the best NDS emulator available, at least on PC.","tags":"Emulation Nintendo NDS Gaming i18n:en","title":"melonDS:en","modified":"20220926115012546"},
+{"created":"20230112215325845","text":"\u003C\u003CMediaWiki Microsoft en 1>>","tags":"i18n:en TODO","title":"Microsoft:en","modified":"20230112221025051"},
{"created":"20230110220407274","text":"\u003C\u003CMediaWiki Miiverse en 3>>","tags":"Internet Nintendo i18n:en","title":"Miiverse:en","modified":"20230110220435720"},
{"created":"20230111223018169","text":"\u003C\u003CMediaWiki Minesweeper_(video_game) en 2>>\n\n!! ''Gamin' Time''\n\n\u003C\u003CiFrame100NoScroll \"https://vuesweeper.netlify.app\">>","tags":"TODO i18n:en Gaming Puzzle","title":"Minesweeper","modified":"20230112091113342"},
{"created":"20221202225134930","text":"[[Misskey|https://misskey-hub.net/en]] is an open, semi-decentralized social media platform. Decentralization is founded on the [[ActivityPub|ActivityPub:en]] protocol.\n\n[img[https://raw.githubusercontent.com/misskey-dev/misskey/develop/assets/title_float.svg]]","tags":"Fediverse i18n:en","title":"Misskey:en","modified":"20221202225915631"},
@@ -475,6 +478,7 @@ Error message and password prompt
{"created":"20230110214847556","text":"''[[Nitter|https://github.com/zedeus/nitter]]'' is a free and open source alternative [[Twitter|Twitter:en]] front-end focused on privacy and performance.\n\nQuoting from the project's README:\n\n\u003C\u003C\u003C\nInspired by the Invidious project.\n\n* No JavaScript or ads\n* All requests go through the backend, client never talks to Twitter\n* Prevents Twitter from tracking your IP or JavaScript fingerprint\n* Uses Twitter's unofficial API (no rate limits or developer account required)\n* Lightweight (60KB vs 784KB from twitter.com)\n* RSS feeds\n* Themes\n* Mobile support (responsive design)\n* AGPLv3 licensed, no proprietary instances permitted\n\u003C\u003C\u003C\n","tags":"Internet i18n:en TODO","title":"Nitter:en","modified":"20230111153740426"},
{"created":"20230111120518929","text":"\u003C\u003CMediaWiki Nonogram en 3>>\n\n!! ''Gamin' Time''\n\n\u003C\u003CiFrame100NoScroll \"https://jokude.github.io/react-nonogram\">>","tags":"i18n:en TODO Gaming Puzzle","title":"Nonogram:en","modified":"20230112095959145"},
{"created":"20220920160811383","text":"!! Welcome to my Personal {Knowledge Base + Public Notebook}!\n\nGeneral information about the site will soon be available. Licensing information is available [[here|OcttKB/Licensing]].\n\n!!! ''Table of Contents''\n{{$:/OcttKB/ToC}}\n\n!!! ''External Links''\n* ''My Hub'', Global Home Page: https://hub.octt.eu.org - Links to my blog, webapps, and social profiles\n* ''KB Git Repo'' (deploy scripts, + some history): https://gitlab.com/octtspacc/OcttKB\n\n!!! ''Tags''\n{{$:/OcttKB/TagCloud}}\n\u003C!--\n\u003Cspan style=\"Line-Height:2em;\">\n\u003C$list filter=\"[tags[]!is[system]]\">\n\u003Cspan style=\"Padding:2px;\">\n\u003C$macrocall $name=\"tag\" tag={{!!caption}}/>\n\u003C/span>\n\u003C/$list>\n\u003C/span>\n--->\n\u003C!--\n\u003C\u003Clist-links filter:\"[!is[system]tags[]]\">>\n--->\n\n!!! ''All Entries''\n\u003Cdetails>{{$:/OcttKB/AllTiddlers}}\u003C/details>\n\n\u003Cbr>\u003Chr>\u003Cbr>\n\n(Partial) [[Copyright Β© 2022, OctoSpacc|OcttKB/Licensing]] || OcttKB is powered by [[TiddlyWiki|TiddlyWiki:en]].\n\n\u003Csmall>//As with any TiddlyWiki, you can make your own changes right here and save them locally for yourself.//\u003C/small>","tags":"i18n:en Meta TableOfContents","title":"OcttKB","modified":"20230110182657272"},
+{"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":"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"},
@@ -492,8 +496,7 @@ Error message and password prompt
{"created":"20230109112202970","text":"\u003Cdiv>\n\u003C$link to=\"OcttKB\" class=\"StartHere-Button\">[img[$:/ThirdParty/Icons/Windows/9x-Start.png]] \u003Cspan>here!\u003C/span>\u003C/$link>\n\u003C/div>\n\n{{$:/OcttKB/ToC}}\n\n\u003C!-- caption: {{$:/language/SideBar/Contents/Caption}} --->\n\n{{$:/OcttKB/LicensingButtons}}","tags":"$:/tags/SideBar","title":"TableOfContents","modified":"20230112095220294","caption":"Index","list-after":"$:/core/ui/SideBar/Open"},
{"created":"20221015115923815","text":"Some useful or at least miscellaneous nice-to-know tech resources.\n\n* [[Textualize|https://www.textualize.io]]: Curses but better\n* [[C++ by Example|https://readhacker.news/c/5mzeZ]]\n\n!!! ''Web Frameworks''\n\n!!!! ''Metro (Windows 8) Style''\n* https://github.com/ryanlowdermilk/metro-tile\n* https://metroui.org.ua/intro.html\n* http://www.drewgreenwell.com/projects/metrojs/themes\n* https://github.com/tholman/tileJs","tags":"i18n:en Tech","title":"Tech Resources","modified":"20221108212229737"},
{"created":"20230112091241450","text":"\u003C\u003CMediaWiki Tetris en 3>>","tags":"i18n:en Gaming TODO Puzzle","title":"Tetris:en","modified":"20230112091357634"},
-{"created":"20220924193842295","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 Docs: [[Standard|https://tiddlywiki.com]], [[Dev|https://tiddlywiki.com/dev]]\n\n!!! ''Other Wikis, Plugin Collections''\n\n* [[NoteSelf|https://noteself.org]] - TiddlyWiki fork/flavor with interesting features built-in\n* [[Tobias Beer's Plugins and Resources|https://tobibeer.github.io]]\n* [[ZemoxWiki|https://zemox.tiddlyspot.com]] - //a haphazard meandering of notes, thoughts, experiments, links...//\n* [[The public musings of Soren Bjornstad (Zettelkasten)|https://zettelkasten.sorenbjornstad.com]]\n\n!!! ''Discussions''\n\n* [[Simple Javascript insertion in tiddlers (text/vnd.tiddlywiki)|https://groups.google.com/g/tiddlywiki/c/NwOI-QER2ig/m/lSLS3XolwDoJ]], [[enable-js (using inline script tags)|http://tobibeer.github.io/tw/enable-js]]\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\n!! ''Notes/Personal''\n\n!!! ''WIP/TODO''\n\n* Trying to understand this: [[Setting HTML attributes with a macro?|https://groups.google.com/g/tiddlywiki/c/Qp8Fzi0BR5I/m/N65Q6thTEwAJ]]\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* \"Path bar\" (like on GNOME/KDE/Windows file explorer) shown in tiddlers which are in a directory\n* Personal easy notes on various technical things of TiddlyWiki\n* Fix excess margin at the bottom of the story river!\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?)\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\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*** Show a featured image\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\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":"20230112155148478","tags":"TiddlyWiki i18n:en"},
-{"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)\n* ~~$:/themes/tiddlywiki/vanilla (Changed paddings)~~","tags":"TiddlyWiki i18n:en","title":"TiddlyWiki/Hacks","modified":"20230110174101864"},
+{"created":"20220924193842295","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\n!!! ''Other Wikis, Plugin Collections''\n\n* [[NoteSelf|https://noteself.org]] - TiddlyWiki fork/flavor with interesting features built-in - [[[Git|https://github.com/NoteSelf]]]\n* [[Tobias Beer's Plugins and Resources|https://tobibeer.github.io]] - [[[Git|https://github.com/tobibeer]]]\n* [[ZemoxWiki|https://zemox.tiddlyspot.com]] - //a haphazard meandering of notes, thoughts, experiments, links...//\n* [[The public musings of Soren Bjornstad (Zettelkasten)|https://zettelkasten.sorenbjornstad.com]]\n* [[kookma's codes, macros, and solutions in TW|https://kookma.github.io/TW-Scripts]]\n* [[Stroll|https://giffmex.org/stroll/stroll.html]] - //A Roam-like experience in a free, downloadable file//\n* [[TiddlyMap|http://tiddlymap.org]] - //Map drawing and topic visualization for your wiki!// - [[[Git|https://github.com/felixhayashi/TW5-TiddlyMap]]]\n\n!!!! ''Small Plugins''\n\n* [[enable-js (using inline script tags)|http://tobibeer.github.io/tw/enable-js]]\n\n!!! ''Discussions''\nDiscussions that helped or might help me solve problems. And also some that are just plain interesing.\n\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* [[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\n!! ''Notes/Personal''\n\n!!! ''WIP/TODO''\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* \"Path bar\" (like on GNOME/KDE/Windows file explorer) shown in tiddlers which are in a directory\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?)\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\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*** 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\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":"20230112224921091","tags":"TiddlyWiki i18n:en TODO"},
{"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":"20220923144125627","text":"The [[Wayback Machine|https://web.archive.org]] is a public website archiving service, provided by the [[Internet Archive|Internet Archive:en]].\n\n[img[https://upload.wikimedia.org/wikipedia/commons/0/01/Wayback_Machine_logo_2010.svg]]\n\nThe project exists to fulfill the goal of Web content preservation. It allows for users to visit a snapshot of a webpage captured in the past, serving as a way to preserve history, both in the case of the site owners altering the contents of a page, or simply the server going permanently down.","title":"Wayback Machine:en","modified":"20220926115014242","tags":"Archiving Internet i18n:en"},