From 01989c0208ff799ba7ae790aacf8a6ca37a2f241 Mon Sep 17 00:00:00 2001 From: OcttKB-TiddlyWiki-Sync Date: Fri, 13 Jan 2023 11:22:30 +0000 Subject: [PATCH] Saved by TiddlyWiki --- public/index.html | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/public/index.html b/public/index.html index d3845e1..aa71944 100644 --- a/public/index.html +++ b/public/index.html @@ -185,7 +185,7 @@ Error message and password prompt {"created":"20220922134412096","text":"\\define tabs-button()\n\\whitespace trim\n\u003C$button set=\u003C\u003CtabsState>> setTo=\u003C\u003CcurrentTab>> default=\u003C\u003C__default__>> selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}} role=\"switch\">\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 tabs-tab()\n\\whitespace trim\n\u003C$set name=\"save-currentTiddler\" value=\u003C\u003CcurrentTiddler>>>\n\t\u003C$tiddler tiddler=\u003C\u003CcurrentTab>>>\n\t\t\u003C\u003Ctabs-button>>\n\t\u003C/$tiddler>\n\u003C/$set>\n\\end\n\n\\define tabs-tab-list()\n\\whitespace trim\n\u003C$list filter=\u003C\u003C__tabsList__>> variable=\"currentTab\" storyview=\"pop\">\n\t\u003C\u003Ctabs-tab>>\n\u003C/$list>\n\\end\n\n\\define tabs-tab-body()\n\\whitespace trim\n\u003C$list filter=\u003C\u003C__tabsList__>> variable=\"currentTab\">\n\t\u003C$reveal type=\"match\" state=\u003C\u003CtabsState>> 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$transclude tiddler=\u003C\u003CcurrentTab>> mode=\"block\"/>\n\t\t\u003C/$transclude>\n\t\u003C/$reveal>\n\u003C/$list>\n\\end\n\n\\define tabs(tabsList,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 tabsState={{{ [\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\u003Ctabs-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\u003Ctabs-tab-body>>\n\t\t\t\u003C/div>\n\t\t\u003C/div>\n\t\u003C/$let>\n\u003C/$qualify>\n\\end\n","title":"$:/core/macros/tabs","tags":"$:/tags/Macro","code-body":"yes","modified":"20220922135318874"}, {"created":"20220920170048300","text":"\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n\u003C!doctype html>\n\u003Chtml>\n\u003Chead>\n\u003Cmeta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n\u003Cmeta name=\"generator\" content=\"TiddlyWiki\" />\n\u003Cmeta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\u003Cmeta name=\"format-detection\" content=\"telephone=no\">\n\u003Clink id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n\u003Ctitle>{{$:/core/wiki/title}}\u003C/title>\n\u003Cdiv id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n\u003C/div>\n\u003Cstyle type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n\u003C/style>\n\u003C/head>\n\u003Cbody class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n\u003Csection class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n\u003C/section>\n\u003C/body>\n\u003C/html>\n","title":"$:/core/templates/exporters/StaticRiver","tags":"$:/tags/Exporter","description":"{{$:/language/Exporters/StaticRiver}}","extension":".html","modified":"20220920170145211"}, {"created":"20220920140954764","text":"\u003C!-- For search engines, and people without JavaScript --->\n \nIf you're reading this, then your browser isn't executing JavaScript code (properly, or at all).\n\nIf you disabled JS on purpose, you may want to read the ''no-JS KB'': [ext[./Static.html]];\n\nIf you, instead, don't know why you're seeing this:\n\n* [[Enable JavaScript|http://web.archive.org/web/20220920042154/https://www.enable-javascript.com]], if you have it disabled;\n* Update your browser, if it's years out-of-date.\n\n\u003C!--\n\u003Cbr>\u003Chr>\u003Cbr>\n\n//The following is a preview of the Welcome Page.//\n\n{{~Welcome~}}\n--->\n\n\u003C!-- Old template\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n\u003Cul>\n\u003C$list filter=\u003C\u003CsaveTiddlerFilter>>>\n\u003Cli>\u003C$view field=\"title\" format=\"text\">\u003C/$view>\u003C/li>\n\u003C/$list>\n\u003C/ul>\n--->","title":"$:/core/templates/static.content","modified":"20220924193531494"}, -{"created":"20220920084655144","title":"$:/DefaultTiddlers","text":"[[~Welcome~]]\n[list[$:/StoryList]]","modified":"20220920165902004"}, +{"created":"20220920084655144","title":"$:/DefaultTiddlers","text":"[[~Welcome~]]\n[list[$:/StoryList]]","modified":"20230113094041121"}, {"created":"20220920142651849","title":"$:/GitLab/Branch","text":"main","modified":"20220920142652313"}, {"created":"20220920092034075","title":"$:/GitLab/Filename","text":"index.html","modified":"20220920142819555"}, {"created":"20220920092013542","title":"$:/GitLab/Path","text":"/public/","modified":"20220920092030508"}, @@ -203,11 +203,11 @@ Error message and password prompt {"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;\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":"20230112154435120","text":"/*\\\nGet the cover image from a MediaWiki article.\n[\u003C\u003C]MediaWikiGetCover \"Article\" \"Full Domain OR Wikipedia Subdomain\" \"Manual URL OR NULL\"[>>]\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 if (!URL || URL && !$OcttKB.Options.Nulls.includes(URL.toLowerCase())) {\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 if (File && File.original && File.original.source) {\n return `\u003Cimg src=\"${File.original.source}\">`;\n };\n };\n return '';\n} catch(e) {\n return $OcttKB.ErrAtLine(e);\n};\n}})();","tags":"","title":"$:/Macros/MediaWiki/GetCover.js","modified":"20230113105411316","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://' + 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":"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.Options = {};\n\n$OcttKB.Options.Trues = [1, true, 'yes'];\n$OcttKB.Options.Falses = [0, false, 'no'];\n$OcttKB.Options.Nulls = ['none', 'null'];\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":"20230113104823013","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":""}, @@ -286,6 +286,7 @@ Error message and password prompt {"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":"20230110193807228","title":"$:/state/folded/$:/themes/tiddlywiki/vanilla/base","text":"hide","modified":"20230110193807228"}, +{"created":"20230113112141976","title":"$:/state/folded/$:/ThirdParty/Libs/x-frame-bypass.js","text":"show","modified":"20230113112151332"}, {"created":"20221109160724924","title":"$:/state/folded/Apps/Dashboard","text":"show","modified":"20230110154641240"}, {"created":"20230110175216808","title":"$:/state/folded/Spacc:en","text":"show","modified":"20230110175217847"}, {"created":"20230112154323093","title":"$:/state/folded/Wikitext:en","text":"show","modified":"20230112154513195"}, @@ -307,7 +308,7 @@ Error message and password prompt {"created":"20230108195707554","title":"$:/state/plugin-info-1998008712-$:/plugins/tiddlywiki/railroad--119403598","text":"readme","modified":"20230108195709210"}, {"created":"20220920140732083","title":"$:/state/showeditpreview","text":"no","modified":"20230112094840559"}, {"created":"20220920114858684","title":"$:/state/ShowPaletteEditor","text":"yes","modified":"20220920114858684"}, -{"created":"20220920174307633","title":"$:/state/sidebar","text":"yes","modified":"20230111214314613"}, +{"created":"20220920174307633","title":"$:/state/sidebar","text":"yes","modified":"20230113110544361"}, {"created":"20220922115715109","title":"$:/state/tab--1091387428","text":"Music Archiving Status/Desired","modified":"20220923072023997"}, {"created":"20230109143853256","title":"$:/state/tab--1498284803","text":"$:/ThirdParty/TiddlyTools/FilterGenerators/Tags","modified":"20230111152605880"}, {"created":"20230110152826768","title":"$:/state/tab--1588928600","text":"$:/core/ui/TiddlerInfo/Fields","modified":"20230110152833719"}, @@ -319,7 +320,7 @@ Error message and password prompt {"created":"20220920090526980","title":"$:/state/tab--86143343","text":"$:/core/ui/ControlPanel/Plugins/Installed/Plugins","modified":"20230110151448831"}, {"created":"20220920090443750","title":"$:/state/tab--959111941","text":"$:/core/ui/ControlPanel/Cascades","modified":"20220921221337899"}, {"created":"20220922140851532","title":"$:/state/tab-1087611455","text":"Music Archiving Status/marsy","modified":"20220922212223216"}, -{"created":"20220920090405977","title":"$:/state/tab-1749438307","text":"$:/core/ui/ControlPanel/Plugins","modified":"20230112164350503"}, +{"created":"20220920090405977","title":"$:/state/tab-1749438307","text":"$:/core/ui/ControlPanel/Info","modified":"20230113093957708"}, {"created":"20230110215926447","title":"$:/state/tab-1754034960","text":"$:/core/ui/TiddlerInfo/References","modified":"20230110215935623"}, {"created":"20220922151106305","title":"$:/state/tab-2025781229","text":"Music Archiving Status/Android52","modified":"20220922151357705"}, {"created":"20220920091923734","title":"$:/state/tab-2065006209","text":"$:/core/ui/ControlPanel/Saving/GitLab","modified":"20230109162251967"}, @@ -329,14 +330,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":"20230112221206873"}, +{"created":"20220920092307479","title":"$:/state/tab/sidebar--595412856","text":"$:/core/ui/SideBar/More","modified":"20230113111422651"}, {"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":"20230112221250961"}, +{"created":"20230110183137080","title":"$:/state/toc/TableOfContents-OcttKB--1742311157","text":"close","modified":"20230113094018422"}, {"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"}, @@ -361,7 +362,7 @@ Error message and password prompt {"created":"20221108155618185","title":"$:/state/tree/$:/Macros/","text":"hide","modified":"20230112192714784"}, {"created":"20230112111343793","title":"$:/state/tree/$:/Macros/MediaWiki/","text":"show","modified":"20230112114436843"}, {"created":"20230111091330393","title":"$:/state/tree/$:/Manager/","text":"hide","modified":"20230111091332249"}, -{"created":"20230111084703963","title":"$:/state/tree/$:/OcttKB/","text":"hide","modified":"20230112192716082"}, +{"created":"20230111084703963","title":"$:/state/tree/$:/OcttKB/","text":"hide","modified":"20230113111432114"}, {"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"}, @@ -371,15 +372,15 @@ Error message and password prompt {"created":"20230110224506088","title":"$:/state/tree/$:/plugins/tobibeer/base64/","text":"show","modified":"20230110225016944"}, {"created":"20221107223237374","title":"$:/state/tree/$:/state/","text":"hide","modified":"20221107223238013"}, {"created":"20230111193642716","title":"$:/state/tree/$:/status/","text":"hide","modified":"20230111193643356"}, -{"created":"20230108193801573","title":"$:/state/tree/$:/Styles/","text":"show","modified":"20230112192855345"}, +{"created":"20230108193801573","title":"$:/state/tree/$:/Styles/","text":"hide","modified":"20230113111433929"}, {"created":"20230111091048227","title":"$:/state/tree/$:/Styles/View/","text":"hide","modified":"20230111193645428"}, {"created":"20221107223125902","title":"$:/state/tree/$:/themes/","text":"hide","modified":"20221109143847524"}, {"created":"20221107223127310","title":"$:/state/tree/$:/themes/tiddlywiki/","text":"show","modified":"20221107223127310"}, {"created":"20221107223234221","title":"$:/state/tree/$:/themes/tiddlywiki/starlight/","text":"hide","modified":"20221107223236014"}, -{"created":"20230109220348891","title":"$:/state/tree/$:/ThirdParty/","text":"hide","modified":"20230112104511946"}, +{"created":"20230109220348891","title":"$:/state/tree/$:/ThirdParty/","text":"show","modified":"20230113111435104"}, {"created":"20230110144530834","title":"$:/state/tree/$:/ThirdParty/Icons/","text":"hide","modified":"20230112093506489"}, {"created":"20230110144531578","title":"$:/state/tree/$:/ThirdParty/Icons/Windows/","text":"hide","modified":"20230110224421384"}, -{"created":"20230109220352035","title":"$:/state/tree/$:/ThirdParty/Libs/","text":"hide","modified":"20230109220353203"}, +{"created":"20230109220352035","title":"$:/state/tree/$:/ThirdParty/Libs/","text":"show","modified":"20230113111438404"}, {"created":"20230109220619790","title":"$:/state/tree/$:/ThirdParty/TiddlyTools/","text":"hide","modified":"20230110224427793"}, {"created":"20230109220622940","title":"$:/state/tree/$:/ThirdParty/TiddlyTools/FilterGenerators/","text":"show","modified":"20230109220622940"}, {"created":"20230109220622044","title":"$:/state/tree/$:/ThirdParty/TiddlyTools/Macros/","text":"hide","modified":"20230109220622628"}, @@ -387,7 +388,7 @@ Error message and password prompt {"created":"20230110224425624","title":"$:/state/tree/$:/ThirdParty/zemoxian/","text":"hide","modified":"20230111144254721"}, {"created":"20220920211944968","text":"{{$:/OcttKB/StaticBanner}}","tags":"","title":"$:/StaticBanner","modified":"20230112221911675"}, {"title":"$:/status/RequireReloadDueToPluginChange","text":"no"}, -{"title":"$:/StoryList","created":"20230112164209426","text":"","list":"","modified":"20230112222016186"}, +{"title":"$:/StoryList","created":"20230113093934094","text":"","list":"","modified":"20230113111645603"}, {"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 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"}, @@ -415,6 +416,7 @@ Error message and password prompt {"created":"20230112093455880","text":"\u003C?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n\u003C!-- Created with Inkscape (http://www.inkscape.org/) -->\n\u003Csvg\n xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n xmlns:cc=\"http://web.resource.org/cc/\"\n xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n xmlns:svg=\"http://www.w3.org/2000/svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n width=\"120\"\n height=\"42\"\n id=\"svg2759\"\n sodipodi:version=\"0.32\"\n inkscape:version=\"0.45+devel\"\n version=\"1.0\"\n sodipodi:docname=\"by-sa.svg\"\n inkscape:output_extension=\"org.inkscape.output.svg.inkscape\">\n \u003Cdefs\n id=\"defs2761\" />\n \u003Csodipodi:namedview\n id=\"base\"\n pagecolor=\"#ffffff\"\n bordercolor=\"#8b8b8b\"\n borderopacity=\"1\"\n gridtolerance=\"10000\"\n guidetolerance=\"10\"\n objecttolerance=\"10\"\n inkscape:pageopacity=\"0.0\"\n inkscape:pageshadow=\"2\"\n inkscape:zoom=\"1\"\n inkscape:cx=\"179\"\n inkscape:cy=\"89.569904\"\n inkscape:document-units=\"px\"\n inkscape:current-layer=\"layer1\"\n width=\"120px\"\n height=\"42px\"\n inkscape:showpageshadow=\"false\"\n inkscape:window-width=\"1198\"\n inkscape:window-height=\"624\"\n inkscape:window-x=\"488\"\n inkscape:window-y=\"401\" />\n \u003Cmetadata\n id=\"metadata2764\">\n \u003Crdf:RDF>\n \u003Ccc:Work\n rdf:about=\"\">\n \u003Cdc:format>image/svg+xml\u003C/dc:format>\n \u003Cdc:type\n rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n \u003C/cc:Work>\n \u003C/rdf:RDF>\n \u003C/metadata>\n \u003Cg\n inkscape:label=\"Layer 1\"\n inkscape:groupmode=\"layer\"\n id=\"layer1\">\n \u003Cg\n transform=\"matrix(0.9937807,0,0,0.9936694,-177.69409,-74.436409)\"\n id=\"g287\"\n inkscape:export-filename=\"/mnt/hgfs/Bov/Documents/Work/2007/cc/identity/srr buttons/big/by-sa.png\"\n inkscape:export-xdpi=\"300.23013\"\n inkscape:export-ydpi=\"300.23013\">\n\t\u003Cpath\n id=\"path3817_2_\"\n nodetypes=\"ccccccc\"\n d=\"M 182.23532,75.39014 L 296.29928,75.59326 C 297.89303,75.59326 299.31686,75.35644 299.31686,78.77344 L 299.17721,116.34033 L 179.3569,116.34033 L 179.3569,78.63379 C 179.3569,76.94922 179.51999,75.39014 182.23532,75.39014 z\"\n style=\"fill:#aab2ab\" />\n\n\t\u003Cg\n id=\"g5908_2_\"\n transform=\"matrix(0.872921,0,0,0.872921,50.12536,143.2144)\">\n\t\t\n\t\t\t\u003Cpath\n id=\"path5906_2_\"\n cx=\"296.35416\"\n ry=\"22.939548\"\n cy=\"264.3577\"\n type=\"arc\"\n rx=\"22.939548\"\n d=\"M 187.20944,-55.6792 C 187.21502,-46.99896 180.18158,-39.95825 171.50134,-39.95212 C 162.82113,-39.94708 155.77929,-46.97998 155.77426,-55.66016 C 155.77426,-55.66687 155.77426,-55.67249 155.77426,-55.6792 C 155.76922,-64.36054 162.80209,-71.40125 171.48233,-71.40631 C 180.16367,-71.41193 187.20441,-64.37842 187.20944,-55.69824 C 187.20944,-55.69263 187.20944,-55.68591 187.20944,-55.6792 z\"\n style=\"fill:#ffffff\" />\n\n\t\t\u003Cg\n id=\"g5706_2_\"\n transform=\"translate(-289.6157,99.0653)\">\n\t\t\t\u003Cpath\n id=\"path5708_2_\"\n d=\"M 473.88455,-167.54724 C 477.36996,-164.06128 479.11294,-159.79333 479.11294,-154.74451 C 479.11294,-149.69513 477.40014,-145.47303 473.9746,-142.07715 C 470.33929,-138.50055 466.04281,-136.71283 461.08513,-136.71283 C 456.18736,-136.71283 451.96526,-138.48544 448.42003,-142.03238 C 444.87419,-145.57819 443.10158,-149.81537 443.10158,-154.74451 C 443.10158,-159.6731 444.87419,-163.94049 448.42003,-167.54724 C 451.87523,-171.03375 456.09728,-172.77618 461.08513,-172.77618 C 466.13342,-172.77618 470.39914,-171.03375 473.88455,-167.54724 z M 450.76657,-165.20239 C 447.81982,-162.22601 446.34701,-158.7395 446.34701,-154.74005 C 446.34701,-150.7417 447.80529,-147.28485 450.72125,-144.36938 C 453.63778,-141.45288 457.10974,-139.99462 461.1383,-139.99462 C 465.16683,-139.99462 468.66848,-141.46743 471.64486,-144.41363 C 474.47076,-147.14947 475.88427,-150.59069 475.88427,-154.74005 C 475.88427,-158.85809 474.44781,-162.35297 471.57659,-165.22479 C 468.70595,-168.09546 465.22671,-169.53131 461.1383,-169.53131 C 457.04993,-169.53131 453.59192,-168.08813 450.76657,-165.20239 z M 458.52106,-156.49927 C 458.07074,-157.4809 457.39673,-157.9715 456.49781,-157.9715 C 454.90867,-157.9715 454.11439,-156.90198 454.11439,-154.763 C 454.11439,-152.62341 454.90867,-151.55389 456.49781,-151.55389 C 457.54719,-151.55389 458.29676,-152.07519 458.74647,-153.11901 L 460.94923,-151.94598 C 459.8993,-150.0805 458.32417,-149.14697 456.22374,-149.14697 C 454.60384,-149.14697 453.30611,-149.64367 452.33168,-150.63653 C 451.35561,-151.62994 450.86894,-152.99926 450.86894,-154.7445 C 450.86894,-156.46008 451.37123,-157.82159 452.37642,-158.83013 C 453.38161,-159.83806 454.63347,-160.34264 456.13423,-160.34264 C 458.35435,-160.34264 459.94407,-159.46776 460.90504,-157.71978 L 458.52106,-156.49927 z M 468.8844,-156.49927 C 468.43353,-157.4809 467.77292,-157.9715 466.90201,-157.9715 C 465.28095,-157.9715 464.46988,-156.90198 464.46988,-154.763 C 464.46988,-152.62341 465.28095,-151.55389 466.90201,-151.55389 C 467.95304,-151.55389 468.68918,-152.07519 469.10925,-153.11901 L 471.36126,-151.94598 C 470.31301,-150.0805 468.74007,-149.14697 466.64358,-149.14697 C 465.02587,-149.14697 463.73095,-149.64367 462.75711,-150.63653 C 461.78494,-151.62994 461.29773,-152.99926 461.29773,-154.7445 C 461.29773,-156.46008 461.79221,-157.82159 462.78061,-158.83013 C 463.76843,-159.83806 465.02588,-160.34264 466.55408,-160.34264 C 468.77027,-160.34264 470.35776,-159.46776 471.3154,-157.71978 L 468.8844,-156.49927 z\" />\n\n\t\t\u003C/g>\n\n\t\u003C/g>\n\n\t\u003Cpath\n d=\"M 297.29639,74.91064 L 181.06688,74.91064 C 179.8203,74.91064 178.80614,75.92529 178.80614,77.17187 L 178.80614,116.66748 C 178.80614,116.94922 179.03466,117.17822 179.31639,117.17822 L 299.04639,117.17822 C 299.32813,117.17822 299.55713,116.94922 299.55713,116.66748 L 299.55713,77.17188 C 299.55713,75.92529 298.54297,74.91064 297.29639,74.91064 z M 181.06688,75.93213 L 297.29639,75.93213 C 297.97998,75.93213 298.53565,76.48828 298.53565,77.17188 C 298.53565,77.17188 298.53565,93.09131 298.53565,104.59034 L 215.4619,104.59034 C 212.41698,110.09571 206.55077,113.83399 199.81835,113.83399 C 193.083,113.83399 187.21825,110.09913 184.1748,104.59034 L 179.82666,104.59034 C 179.82666,93.09132 179.82666,77.17188 179.82666,77.17188 C 179.82664,76.48828 180.38329,75.93213 181.06688,75.93213 z\"\n id=\"path294\" />\n\n\t\u003Cg\n enable-background=\"new \"\n id=\"g296\">\n\t\t\u003Cpath\n d=\"M 265.60986,112.8833 C 265.68994,113.03906 265.79736,113.16504 265.93115,113.26172 C 266.06494,113.35791 266.22119,113.42969 266.40088,113.47608 C 266.58154,113.52296 266.76807,113.54639 266.96045,113.54639 C 267.09033,113.54639 267.22998,113.53565 267.3794,113.51368 C 267.52784,113.4922 267.66749,113.44972 267.79835,113.3877 C 267.92823,113.32569 268.03761,113.23975 268.12355,113.13086 C 268.21144,113.02197 268.25441,112.88379 268.25441,112.71533 C 268.25441,112.53515 268.19679,112.38916 268.08156,112.27685 C 267.9673,112.16455 267.81594,112.07177 267.62941,111.99658 C 267.44386,111.92236 267.23195,111.85693 266.9966,111.80078 C 266.76027,111.74463 266.52101,111.68262 266.27883,111.61377 C 266.02981,111.55176 265.78762,111.47559 265.55129,111.38525 C 265.31594,111.29541 265.10402,111.17822 264.9175,111.03515 C 264.73098,110.89208 264.58059,110.71337 264.46535,110.49853 C 264.35109,110.28369 264.29347,110.02392 264.29347,109.71923 C 264.29347,109.37646 264.36671,109.07958 264.51222,108.82763 C 264.6587,108.57568 264.85011,108.36572 265.08644,108.19726 C 265.32179,108.02929 265.58937,107.90478 265.8882,107.82372 C 266.18605,107.74315 266.48488,107.70263 266.78273,107.70263 C 267.13136,107.70263 267.46535,107.74169 267.78566,107.81982 C 268.105,107.89746 268.39015,108.02392 268.6382,108.19824 C 268.88722,108.37256 269.08449,108.59521 269.23097,108.86621 C 269.37648,109.13721 269.44972,109.46582 269.44972,109.85156 L 268.02784,109.85156 C 268.01514,109.65234 267.97315,109.4873 267.90284,109.35693 C 267.83155,109.22607 267.73682,109.12353 267.61964,109.04834 C 267.50148,108.97412 267.36671,108.9209 267.21534,108.89014 C 267.063,108.85889 266.89796,108.84326 266.71827,108.84326 C 266.60108,108.84326 266.48292,108.85596 266.36573,108.88037 C 266.24757,108.90576 266.14112,108.94922 266.04542,109.01123 C 265.94874,109.07373 265.86964,109.15137 265.80812,109.24463 C 265.7466,109.33838 265.71535,109.45654 265.71535,109.59961 C 265.71535,109.73047 265.73976,109.83643 265.78957,109.91699 C 265.83937,109.99804 265.93801,110.07275 266.08352,110.14111 C 266.22903,110.20947 266.43118,110.27832 266.68899,110.34668 C 266.9468,110.41504 267.28372,110.50244 267.70071,110.60791 C 267.82473,110.63281 267.99661,110.67822 268.21731,110.74365 C 268.43801,110.80908 268.65676,110.91308 268.87454,111.05615 C 269.09231,111.1997 269.27981,111.39111 269.43899,111.63037 C 269.59719,111.87012 269.67629,112.17676 269.67629,112.55029 C 269.67629,112.85547 269.61672,113.13867 269.49856,113.3999 C 269.3804,113.66162 269.20461,113.8872 268.97122,114.07666 C 268.73782,114.26709 268.44876,114.41455 268.10403,114.52051 C 267.75833,114.62647 267.35794,114.6792 266.90481,114.6792 C 266.53762,114.6792 266.18118,114.63379 265.83547,114.54346 C 265.49074,114.45313 265.18508,114.31104 264.92043,114.11768 C 264.65676,113.92432 264.4468,113.67774 264.29055,113.37891 C 264.13528,113.07959 264.06106,112.7251 264.06692,112.31397 L 265.4888,112.31397 C 265.48877,112.53809 265.52881,112.72803 265.60986,112.8833 z\"\n id=\"path298\"\n style=\"fill:#ffffff\" />\n\n\t\t\u003Cpath\n d=\"M 273.8667,107.8667 L 276.35986,114.53076 L 274.8374,114.53076 L 274.33349,113.04638 L 271.84033,113.04638 L 271.31787,114.53076 L 269.84326,114.53076 L 272.36377,107.8667 L 273.8667,107.8667 z M 273.95068,111.95264 L 273.11084,109.50928 L 273.09229,109.50928 L 272.22315,111.95264 L 273.95068,111.95264 z\"\n id=\"path300\"\n style=\"fill:#ffffff\" />\n\n\t\u003C/g>\n\n\t\u003Cg\n enable-background=\"new \"\n id=\"g302\">\n\t\t\u003Cpath\n d=\"M 239.17821,107.8667 C 239.49559,107.8667 239.78563,107.89502 240.04735,107.95068 C 240.30907,108.00683 240.53368,108.09863 240.72118,108.22607 C 240.9077,108.35351 241.05321,108.52295 241.15575,108.73437 C 241.25829,108.94579 241.31005,109.20703 241.31005,109.51806 C 241.31005,109.854 241.23388,110.13329 241.08056,110.35742 C 240.92822,110.58154 240.70165,110.76465 240.40283,110.90771 C 240.81494,111.02587 241.12256,111.23291 241.32568,111.5288 C 241.5288,111.82469 241.63037,112.18114 241.63037,112.59814 C 241.63037,112.93408 241.56494,113.22509 241.43408,113.47119 C 241.30322,113.7168 241.12646,113.91748 240.90576,114.07324 C 240.68408,114.229 240.43115,114.34424 240.14795,114.41845 C 239.86377,114.49365 239.57275,114.53075 239.27295,114.53075 L 236.03662,114.53075 L 236.03662,107.86669 L 239.17821,107.86669 L 239.17821,107.8667 z M 238.99071,110.56201 C 239.25243,110.56201 239.46727,110.5 239.63622,110.37597 C 239.80419,110.25146 239.88817,110.05029 239.88817,109.77099 C 239.88817,109.61572 239.85985,109.48828 239.80419,109.38915 C 239.74755,109.28954 239.67333,109.21239 239.57958,109.15624 C 239.48583,109.10058 239.37841,109.06151 239.25731,109.04003 C 239.13524,109.01806 239.00926,109.00732 238.8784,109.00732 L 237.50535,109.00732 L 237.50535,110.56201 L 238.99071,110.56201 z M 239.07664,113.39014 C 239.22019,113.39014 239.35691,113.37647 239.48777,113.34815 C 239.61863,113.32032 239.73484,113.27344 239.83445,113.2085 C 239.93406,113.14307 240.01316,113.0542 240.07273,112.94239 C 240.1323,112.83058 240.1616,112.68751 240.1616,112.51319 C 240.1616,112.17139 240.06492,111.92725 239.87156,111.78126 C 239.6782,111.63527 239.42234,111.56202 239.10496,111.56202 L 237.50535,111.56202 L 237.50535,113.39014 L 239.07664,113.39014 z\"\n id=\"path304\"\n style=\"fill:#ffffff\" />\n\n\t\t\u003Cpath\n d=\"M 241.88914,107.8667 L 243.53269,107.8667 L 245.09324,110.49854 L 246.64402,107.8667 L 248.27781,107.8667 L 245.80418,111.97315 L 245.80418,114.53077 L 244.33543,114.53077 L 244.33543,111.93604 L 241.88914,107.8667 z\"\n id=\"path306\"\n style=\"fill:#ffffff\" />\n\n\t\u003C/g>\n\n\t\u003Cg\n id=\"g6316_1_\"\n transform=\"matrix(0.624995,0,0,0.624995,391.2294,176.9332)\">\n\t\t\n\t\t\t\u003Cpath\n id=\"path6318_1_\"\n cx=\"475.97119\"\n ry=\"29.209877\"\n cy=\"252.08646\"\n type=\"arc\"\n rx=\"29.209877\"\n d=\"M -175.0083,-139.1153 C -175.00204,-129.7035 -182.62555,-122.06751 -192.03812,-122.06049 C -201.44913,-122.05341 -209.08512,-129.67774 -209.09293,-139.09028 C -209.09293,-139.09809 -209.09293,-139.10749 -209.09293,-139.1153 C -209.09919,-148.52784 -201.47413,-156.1623 -192.06311,-156.17011 C -182.65054,-156.17713 -175.01456,-148.55207 -175.0083,-139.14026 C -175.0083,-139.13092 -175.0083,-139.1239 -175.0083,-139.1153 z\"\n style=\"fill:#ffffff\" />\n\n\t\t\u003Cg\n id=\"g6320_1_\"\n transform=\"translate(-23.9521,-89.72962)\">\n\t\t\t\u003Cpath\n id=\"path6322_1_\"\n d=\"M -168.2204,-68.05536 C -173.39234,-68.05536 -177.76892,-66.25067 -181.35175,-62.64203 C -185.02836,-58.90759 -186.86588,-54.48883 -186.86588,-49.38568 C -186.86588,-44.28253 -185.02836,-39.89416 -181.35175,-36.22308 C -177.67673,-32.55114 -173.29859,-30.71521 -168.2204,-30.71521 C -163.07974,-30.71521 -158.62503,-32.56677 -154.85312,-36.26996 C -151.30307,-39.78558 -149.52652,-44.15827 -149.52652,-49.38568 C -149.52652,-54.6123 -151.33432,-59.03265 -154.94843,-62.64203 C -158.5625,-66.25067 -162.98599,-68.05536 -168.2204,-68.05536 z M -168.17352,-64.69519 C -163.936,-64.69519 -160.33752,-63.20221 -157.37655,-60.21466 C -154.38748,-57.25836 -152.89214,-53.64899 -152.89214,-49.38568 C -152.89214,-45.09186 -154.35466,-41.52856 -157.28438,-38.69653 C -160.36876,-35.64727 -163.99849,-34.12304 -168.17351,-34.12304 C -172.34856,-34.12304 -175.94701,-35.63244 -178.96892,-38.64965 C -181.9908,-41.66918 -183.50176,-45.24657 -183.50176,-49.38567 C -183.50176,-53.52398 -181.97518,-57.13414 -178.92205,-60.21465 C -175.9939,-63.20221 -172.41107,-64.69519 -168.17352,-64.69519 z\" />\n\n\t\t\t\u003Cpath\n id=\"path6324_1_\"\n d=\"M -176.49548,-52.02087 C -175.75171,-56.71856 -172.44387,-59.22949 -168.30008,-59.22949 C -162.33911,-59.22949 -158.70783,-54.90448 -158.70783,-49.1372 C -158.70783,-43.50982 -162.57194,-39.13793 -168.39383,-39.13793 C -172.39856,-39.13793 -175.98297,-41.60277 -176.63611,-46.43877 L -171.93292,-46.43877 C -171.7923,-43.92778 -170.1626,-43.04418 -167.83447,-43.04418 C -165.1813,-43.04418 -163.4563,-45.50908 -163.4563,-49.27709 C -163.4563,-53.22942 -164.94693,-55.32244 -167.74228,-55.32244 C -169.79074,-55.32244 -171.55948,-54.57787 -171.93292,-52.02087 L -170.56418,-52.02789 L -174.26734,-48.32629 L -177.96894,-52.02789 L -176.49548,-52.02087 z\" />\n\n\t\t\u003C/g>\n\n\t\u003C/g>\n\n\t\u003Cg\n id=\"g313\">\n\t\t\u003Ccircle\n cx=\"242.56226\"\n cy=\"90.224609\"\n r=\"10.8064\"\n id=\"circle315\"\n sodipodi:cx=\"242.56226\"\n sodipodi:cy=\"90.224609\"\n sodipodi:rx=\"10.8064\"\n sodipodi:ry=\"10.8064\"\n style=\"fill:#ffffff\" />\n\n\t\t\u003Cg\n id=\"g317\">\n\t\t\t\u003Cpath\n d=\"M 245.68994,87.09766 C 245.68994,86.68116 245.35205,86.34424 244.93603,86.34424 L 240.16357,86.34424 C 239.74755,86.34424 239.40966,86.68115 239.40966,87.09766 L 239.40966,91.87061 L 240.74071,91.87061 L 240.74071,97.52295 L 244.3579,97.52295 L 244.3579,91.87061 L 245.68993,91.87061 L 245.68993,87.09766 L 245.68994,87.09766 z\"\n id=\"path319\" />\n\n\t\t\t\u003Ccircle\n cx=\"242.5498\"\n cy=\"84.083008\"\n r=\"1.63232\"\n id=\"circle321\"\n sodipodi:cx=\"242.5498\"\n sodipodi:cy=\"84.083008\"\n sodipodi:rx=\"1.63232\"\n sodipodi:ry=\"1.63232\" />\n\n\t\t\u003C/g>\n\n\t\t\u003Cpath\n clip-rule=\"evenodd\"\n d=\"M 242.53467,78.31836 C 239.30322,78.31836 236.56641,79.4458 234.32715,81.70215 C 232.0293,84.03516 230.88086,86.79736 230.88086,89.98633 C 230.88086,93.1753 232.0293,95.91846 234.32715,98.21338 C 236.625,100.50781 239.36133,101.65527 242.53467,101.65527 C 245.74756,101.65527 248.53272,100.49853 250.88819,98.18359 C 253.10889,95.98681 254.21827,93.2539 254.21827,89.98632 C 254.21827,86.71874 253.08936,83.95751 250.83057,81.70214 C 248.57178,79.4458 245.80615,78.31836 242.53467,78.31836 z M 242.56396,80.41797 C 245.2124,80.41797 247.46142,81.35156 249.31103,83.21875 C 251.18115,85.06592 252.11572,87.32227 252.11572,89.98633 C 252.11572,92.66992 251.20068,94.89746 249.36963,96.66699 C 247.4419,98.57275 245.17334,99.52539 242.56397,99.52539 C 239.9546,99.52539 237.70557,98.58252 235.81739,96.6958 C 233.92774,94.80957 232.98389,92.57324 232.98389,89.98633 C 232.98389,87.3999 233.93799,85.14404 235.84619,83.21875 C 237.67676,81.35156 239.9165,80.41797 242.56396,80.41797 z\"\n id=\"path323\"\n style=\"fill-rule:evenodd\" />\n\n\t\u003C/g>\n\n\u003C/g>\n \u003C/g>\n\u003C/svg>","tags":"","title":"$:/ThirdParty/Buttons/CC BY-SA.svg","modified":"20230112093619499","type":"image/svg+xml"}, {"title":"$:/ThirdParty/Icons/Windows/9x-Start.png","text":"iVBORw0KGgoAAAANSUhEUgAAAD0AAAAcBAMAAAAgvKpJAAAAG1BMVEVHcEzAwMAAAADf39+AgID/AAAAAP8A/wD//wBHfaDsAAAAAXRSTlMAQObYZgAAAKlJREFUKM/Vks0NwyAMhVnBVvA5flJ+rlU7QidAygIcOkBHyOQ1oDRNRbjnYQmhz9jmCXdv6dG7GzXUXYcDTQ7UEgpnC4QJapvWODOGML2VkFcW616f8eVU4d5OA7Bx5RSMnXsf0nylf85h/a3vl4A459lSf2t34GL1xzivG8fffRGJhaPKSV5xBNbS31CqTzj6k+c78c/8QXrYmf9cvNcr/q9nU71DU+4Dt0ZXoKPvmm4AAAAASUVORK5CYII=","type":"image/png"}, {"created":"20221108154338291","text":"/**\n * Source Code: \u003Chttps://github.com/lokesh/color-thief>\n * License (MIT): \u003Chttps://raw.githubusercontent.com/lokesh/color-thief/master/LICENSE>\n**/\n\nconst getPixels = require('get-pixels');\nconst quantize = require('quantize');\n\nfunction createPixelArray(imgData, pixelCount, quality) {\n const pixels = imgData;\n const pixelArray = [];\n\n for (let i = 0, offset, r, g, b, a; i \u003C pixelCount; i = i + quality) {\n offset = i * 4;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n\n // If pixel is mostly opaque and not white\n if (typeof a === 'undefined' || a >= 125) {\n if (!(r > 250 && g > 250 && b > 250)) {\n pixelArray.push([r, g, b]);\n }\n }\n }\n return pixelArray;\n}\n\nfunction validateOptions(options) {\n let { colorCount, quality } = options;\n\n if (typeof colorCount === 'undefined' || !Number.isInteger(colorCount)) {\n colorCount = 10;\n } else if (colorCount === 1 ) {\n throw new Error('colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()');\n } else {\n colorCount = Math.max(colorCount, 2);\n colorCount = Math.min(colorCount, 20);\n }\n\n if (typeof quality === 'undefined' || !Number.isInteger(quality) || quality \u003C 1) {\n quality = 10;\n }\n\n return {\n colorCount,\n quality\n }\n}\n\nfunction loadImg(img) {\n return new Promise((resolve, reject) => {\n getPixels(img, function(err, data) {\n if(err) {\n reject(err)\n } else {\n resolve(data);\n }\n })\n });\n}\n\nfunction getColor(img, quality) {\n return new Promise((resolve, reject) => {\n getPalette(img, 5, quality)\n .then(palette => {\n resolve(palette[0]);\n })\n .catch(err => {\n reject(err);\n })\n });\n\n}\n\nfunction getPalette(img, colorCount = 10, quality = 10) {\n const options = validateOptions({\n colorCount,\n quality\n });\n\n return new Promise((resolve, reject) => {\n loadImg(img)\n .then(imgData => {\n const pixelCount = imgData.shape[0] * imgData.shape[1];\n const pixelArray = createPixelArray(imgData.data, pixelCount, options.quality);\n\n const cmap = quantize(pixelArray, options.colorCount);\n const palette = cmap? cmap.palette() : null;\n\n resolve(palette);\n })\n .catch(err => {\n reject(err);\n })\n });\n}\n\nmodule.exports = {\n getColor,\n getPalette\n};","tags":"","title":"$:/ThirdParty/Libs/color-thief.js","modified":"20221108154854376","type":"application/javascript"}, +{"created":"20230113111504228","text":"/*\\\nSource Code: \u003Chttps://github.com/niutech/x-frame-bypass>\n\\*/\nexports.startup = function() {\ntry {\n\ncustomElements.define('x-frame-bypass', class extends HTMLIFrameElement {\n\tstatic get observedAttributes() {\n\t\treturn ['src']\n\t}\n\tconstructor () {\n\t\tsuper()\n\t}\n\tattributeChangedCallback () {\n\t\tthis.load(this.src)\n\t}\n\tconnectedCallback () {\n\t\tthis.sandbox = '' + this.sandbox || 'allow-forms allow-modals allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation' // all except allow-top-navigation\n\t}\n\tload (url, options) {\n\t\tif (!url || !url.startsWith('http'))\n\t\t\tthrow new Error(`X-Frame-Bypass src ${url} does not start with http(s)://`)\n\t\tconsole.log('X-Frame-Bypass loading:', url)\n\t\tthis.srcdoc = `\u003Chtml>\n\u003Chead>\n\t\u003Cstyle>\n\t.loader {\n\t\tposition: absolute;\n\t\ttop: calc(50% - 25px);\n\t\tleft: calc(50% - 25px);\n\t\twidth: 50px;\n\t\theight: 50px;\n\t\tbackground-color: #333;\n\t\tborder-radius: 50%; \n\t\tanimation: loader 1s infinite ease-in-out;\n\t}\n\t@keyframes loader {\n\t\t0% {\n\t\ttransform: scale(0);\n\t\t}\n\t\t100% {\n\t\ttransform: scale(1);\n\t\topacity: 0;\n\t\t}\n\t}\n\t\u003C/style>\n\u003C/head>\n\u003Cbody>\n\t\u003Cdiv class=\"loader\">\u003C/div>\n\u003C/body>\n\u003C/html>`\n\t\tthis.fetchProxy(url, options, 0).then(res => res.text()).then(data => {\n\t\t\tif (data)\n\t\t\t\tthis.srcdoc = data.replace(/\u003Chead([^>]*)>/i, `\u003Chead$1>\n\t\u003Cbase href=\"${url}\">\n\t\u003Cscript>\n\t// X-Frame-Bypass navigation event handlers\n\tdocument.addEventListener('click', e => {\n\t\tif (frameElement && document.activeElement && document.activeElement.href) {\n\t\t\te.preventDefault()\n\t\t\tframeElement.load(document.activeElement.href)\n\t\t}\n\t})\n\tdocument.addEventListener('submit', e => {\n\t\tif (frameElement && document.activeElement && document.activeElement.form && document.activeElement.form.action) {\n\t\t\te.preventDefault()\n\t\t\tif (document.activeElement.form.method === 'post')\n\t\t\t\tframeElement.load(document.activeElement.form.action, {method: 'post', body: new FormData(document.activeElement.form)})\n\t\t\telse\n\t\t\t\tframeElement.load(document.activeElement.form.action + '?' + new URLSearchParams(new FormData(document.activeElement.form)))\n\t\t}\n\t})\n\t\u003C/script>`)\n\t\t}).catch(e => console.error('Cannot load X-Frame-Bypass:', e))\n\t}\n\tfetchProxy (url, options, i) {\n\t\tconst proxies = (options || {}).proxies || [\n\t\t\t'https://cors-anywhere.herokuapp.com/',\n\t\t\t'https://yacdn.org/proxy/',\n\t\t\t'https://api.codetabs.com/v1/proxy/?quest='\n\t\t]\n\t\treturn fetch(proxies[i] + url, options).then(res => {\n\t\t\tif (!res.ok)\n\t\t\t\tthrow new Error(`${res.status} ${res.statusText}`);\n\t\t\treturn res\n\t\t}).catch(error => {\n\t\t\tif (i === proxies.length - 1)\n\t\t\t\tthrow error\n\t\t\treturn this.fetchProxy(url, options, i + 1)\n\t\t})\n\t}\n}, {extends: 'iframe'})\n\n} catch(e) {\n const Str = `${e.stack.split('\\n')[0]}: ${e}`\n console.log(Str);\n return Str;\n};\n};","tags":"","title":"$:/ThirdParty/Libs/x-frame-bypass.js","modified":"20230113112135773","type":"application/javascript","module-type":"startup"}, {"created":"20210719102404282","text":"\\define program() [prefix[$:/ThirdParty/TiddlyTools/FilterGenerators]] [[$:/ThirdParty/TiddlyTools/Macros/edit-list]] +[!sort[modified]]\n\n\\define import(tids)\nDrag this link to\n\u003C$button class=\"tc-btn-invisible tc-tiddlylink\" popup=\"$:/state/popup/$(currentTiddler)$/$tids$\" dragFilter=\u003C\u003C$tids$>>>\n ''import \u003C$count filter=\u003C\u003C$tids$>>/> $tids$ tiddlers.''\n\u003C/$button>\n\u003C$reveal type=\"popup\" state=\"$:/state/popup/$(currentTiddler)$/$tids$\" class=\"tc-drop-down\" style=\"padding:1em;\">\n \u003C$list filter=\u003C\u003C$tids$>>>\u003C$link/>\u003C/$list>\n\u003C/$reveal>\n\\end\n\n| author|''[ext[Eric Shulman|mailto:elsdesign@gmail.com]]''|\n| source|''http://TiddlyTools.com/filtergenerators.html''|\n| updated|''\u003C$view field=\"modified\" format=\"date\" template=\"DDD, MMM DDth YYYY at 0hh12:0mm:0ssam\"/>''|\n\n\u003C\u003Cimport program>>\n\n~TiddlyTools' ~FilterGenerators define several $:/AdvancedSearch addon tabs to provide a variety of specialized searches.\n\n!! [[$:/ThirdParty/TiddlyTools/FilterGenerators/Titles]]\n\u003C\u003C\u003C\n''Search for tiddler titles in selected types of tiddlers''\n\n* Finds tiddlers that contain the specified text anywhere in their title\n* Select one or more types of tiddlers to search in:\u003Cbr> tiddlers, shadows, system, tags, missing, orphans, images, binaries\n\u003C\u003C\u003C\n\n!! [[$:/ThirdParty/TiddlyTools/FilterGenerators/Tags]]\n\u003C\u003C\u003C\n''Search for tiddlers using a combination of tags''\n\n* Shows checkboxes for all tags in the file, including shadow tags\n* Select any combination of tags to search for\n* Shows results matching all tags (AND) and one or more tags (OR)\n\u003C\u003C\u003C\n\n!! [[$:/ThirdParty/TiddlyTools/FilterGenerators/TagCloud]]\n\u003C\u003C\u003C\n''Display tags using proportional size based on the number of tiddlers for each tag''\n\n* Select tags to include\n* Shows number of matching tiddlers on each tag \"pill\"\n* Sort results by tag title or number of matching tiddlers\n* options: min=minimum font size, step=font size increment, max=maximum font size, group=tag count cluster size\n\u003C\u003C\u003C\n\n!! [[$:/ThirdParty/TiddlyTools/FilterGenerators/PowerSearch]]\n\u003C\u003C\u003C\n''Assemble a compound filter to search for matching tiddlers''\n\u003Cbr>Requires: [[TiddlyTools/Macros/edit-list]]\n\n* select types of tiddlers to search\n* include/exclude prefixes, suffixes or tags\n* find tiddlers that have a specific field (even if blank)\n* search in one or more specified fields\n* use flags to define the search criteria\n* sort results by any tiddler field\n* copy the assembled filter syntax to the clipboard\n* save assembled filters for later re-use\n* add/remove tags, clone/rename, export, or delete matching/selected tiddlers\n\u003C\u003C\u003C","title":"$:/ThirdParty/TiddlyTools/FilterGenerators/Info","modified":"20230109220740719","tags":"TiddlyTools"}, {"created":"20191212065707527","text":"\\define config() $:/config/TiddlyTools/PowerSearch\n\\define saved() $:/config/TiddlyTools/PowerSearch/SavedFilters/\n\\define show() $:/config/TiddlyTools/PowerSearch!!show\n\\define options() $:/state/popup/TiddlyTools/PowerSearch/options\n\\define menu() $:/state/popup/TiddlyTools/PowerSearch/menu/\n\n\\define default_width() 15em\n\\define default_columns() 1\n\\define default_height() auto\n\\define default_wrap() nowrap\n\n\\define styles()\n\u003Cstyle>\n.powersearch_table { border:0; padding:0; margin:0; float:left; margin-right:0.5em; }\n.powersearch_table tr { border:0; padding:0; margin:0; }\n.powersearch_table td { border:0; padding:2px; margin:0; }\n.powersearch_table .editlist_input { outline:none; }\n.powersearch_savedfilters { font-size:100%;line-height:1em;max-height:20em;overflow:auto; }\n.powersearch_optionwidth { width:4em !important; }\n.powersearch_checkboxwidth input { width:auto !important; }\n.powersearch_listitem { overflow:hidden;word-break:break-all;text-overflow:ellipsis; }\n.powersearch_modal .tc-modal-header { padding:0em 1em; }\n.powersearch_modal .tc-modal-body { padding:1em 1em 0.5em 1em; }\n.powersearch_modal .tc-modal-footer { padding:0.5em 1em; }\n.powersearch_modal .tc-modal-body p { margin:0; }\n\u003C/style>\n\\end\n\n\\define get(index,filter,placeholder,multiple)\n\\define filter() $filter$\n\u003C$macrocall $name=\"edit\" tiddler=\u003C\u003Cconfig>> index=\"$index$\" filter=\u003C\u003Cfilter>> width=\"$(width)$\"\n confirm=\u003C\u003Cconfirm>> multiple=\"$multiple$\" find=\"or\" placeholder=\"$placeholder$\"/>\n\\end\n\n\\define edit(tiddler,index,width,confirm,multiple,filter,find,placeholder)\n\\define filter() $filter$\n\\define stip() enter/select a value\n\\define mtip() enter/select all that apply (use ctrl-click or shift-click)\n\u003C$list filter=\"[[edit-list]is[variable]]\" variable=\"if_edit_list_installed\">\n \u003C$macrocall $name=\"edit-list\" tiddler=\"$tiddler$\" index=\"$index$\" tooltip={{{ [[$multiple$]match[]then\u003Cstip>else\u003Cmtip>] }}}\n width=\"$width$\" listwidth=\"fit\" fontsize=\"100%\" focusPopup={{{ [\u003Cfilter>!match[]then[yes]] }}}\n confirm=\"$confirm$\" multiple=\"$multiple$\" filter=\u003C\u003Cfilter>> find=\"$find$\" placeholder=\"$placeholder$\"/>\n\u003C/$list>\n\u003C$list filter=\"[[edit-list]!is[variable]]\" variable=\"fallback_no_edit_list\">\n \u003Cstyle> .powersearch_inputwidth { width:$width$; } \u003C/style>\n \u003Cspan title={{{ [[$multiple$]match[]then\u003Cstip>else\u003Cmtip>search-replace[/select],[]search-replace[use ctrl-click or shift-click],[space separated]] }}}>\n \u003C$edit-text class=\"powersearch_inputwidth\" tag=\"input\"\n tiddler=\"$tiddler$\" field=\"text\" index=\"$index$\" default=\"\" placeholder=\"$placeholder$\"/>\n \u003C/span>\n\u003C/$list>\n\\end\n\n\\define shadowList(prefix: \"$:/\",maxdepth:\"4\")\n\\whitespace trim\n\u003C$list filter=\"[all[shadows]removeprefix[$prefix$]splitbefore[/]sort[]suffix[/]]\" variable=\"chunk\">\n \u003C$vars path={{{ [title[$prefix$]addsuffix\u003Cchunk>removesuffix[/]] }}}>\n \u003C$text text=\u003C\u003Cpath>>/> \n \u003C$list filter=\"[\u003Cpath>split[/]count[]min[$maxdepth$]!match[$maxdepth$]]\">\n \u003C$macrocall $name=\"shadowList\" prefix={{{ [title[$prefix$]addsuffix\u003Cchunk>] }}}/>\n \u003C/$list>\n \u003C/$vars>\n\u003C/$list>\n\\end\n\n\\define inputs()\n\u003C$set name=\"tidList\" filter=\"tiddlers shadows tiddlers+shadows tags orphans missing\">\n\u003C$set name=\"tagsList\" filter=\"[tags[]sort[]] [all[shadows]tags[]sort[]]\">\n\u003C$set name=\"sysFields\" filter=\"title text tags created creator modified modifier\">\n\u003C$set name=\"tidFields\" filter=\"[all[tiddlers]] -[prefix[$:/state/popup]] +[fields[]!enlist\u003CsysFields>sort[]]\">\n\u003C$set name=\"shadowFields\" filter=\"[all[shadows]fields[]!enlist\u003CsysFields>!enlist\u003CtidFields>sort[]]\">\n\u003C$set name=\"fieldsList\" filter=\"[enlist\u003CsysFields>] [enlist\u003CtidFields>] [enlist\u003CshadowFields>]\">\n\u003C$set name=\"searchList\" filter=\"[enlist\u003CsysFields>] [[*]] [enlist\u003CfieldsList>!enlist\u003CsearchList>]\">\n\u003C$set name=\"flagsList\" filter=\"words literal whitespace regexp casesensitive anchored\">\n\u003C$wikify name=\"shadowList\" text=\u003C\u003CshadowList>>>\n\n|powersearch_table|k\n| search all|\u003C\u003Cget \"tids\" \"[enlist\u003CtidList>]\" \"tiddlers\">> |\n| match prefix|\u003C\u003Cget \"prefix\" \"[enlist\u003CshadowList>]\" \"(none)\" >> |\n| exclude prefix|\u003C\u003Cget \"notprefix\" \"[enlist\u003CshadowList>]\" \"(none)\" >> |\n| match suffix|\u003C\u003Cget \"suffix\" \"[enlist\u003CshadowList>]\" \"(none)\" >> |\n| exclude suffix|\u003C\u003Cget \"notsuffix\" \"[enlist\u003CshadowList>]\" \"(none)\" >> |\n| match tag|\u003C\u003Cget \"tag\" \"[enlist\u003CtagsList>]\" \"(none)\" >> |\n| exclude tag|\u003C\u003Cget \"nottag\" \"[enlist\u003CtagsList>]\" \"(none)\" >> |\n| has field|\u003C\u003Cget \"has\" \"[enlist\u003CfieldsList>]\" \"(none)\" >> |\n| search fields|\u003C\u003Cget \"field\" \"[enlist\u003CsearchList>]\" \"title,text,tags\" \"yes\">> |\n| using flags|\u003C\u003Cget \"flags\" \"[enlist\u003CflagsList>]\" \"words\" \"yes\">> |\n| sort by|\u003C\u003Cget \"sort\" \"[enlist\u003CfieldsList>]\" \"title\" >> |\n| match term|\u003C\u003Cget \"term\" \"\" \"(none)\" >> |\n| custom filter|\u003C\u003Cget \"custom\" \"\" \"(none)\" >> |\n\\end\n\n\\define savedFilters()\n\u003C$vars lf=\"\n\">\n\u003C$list filter=\"[prefix\u003Csaved>limit[1]]\">\n\u003Cdiv style=\"white-space:nowrap;\">\n\u003C$button class=\"tc-btn-invisible\" tooltip=\"delete all saved filters\"> {{$:/core/images/delete-button}}\n \u003C$action-confirm $message=\"Are you sure you want to delete all saved filters?\">\n \u003C$action-deletetiddler $filter=\"[prefix\u003Csaved>]\" />\n \u003C/$action-confirm>\n\u003C/$button>\n''Saved filters:'' (\u003C$count filter=\"[prefix\u003Csaved>]\"/>)\n\u003Chr style=\"margin:1px 0;\">\n\u003Cdiv class=\"powersearch_savedfilters\">\n \u003C$list filter=\"[prefix\u003Csaved>sort[]]\" variable=\"item\">\n \u003C$vars popid={{{ [\u003Citem>removeprefix\u003Csaved>addprefix\u003Cmenu>addsuffix\u003Cqualify>] }}}>\n \u003C$vars desc={{{ [\u003Citem>get[description]] }}} filt={{{ [\u003Citem>get[filter]] }}} cust={{{ [\u003Cconfig>getindex[custom]addsuffix[ ]] }}}>\n \u003C$button class=\"tc-btn-invisible\" popup=\u003C\u003Cpopid>>> {{$:/core/images/menu-button}}\u003C/$button>\n \u003C$reveal type=\"popup\" state=\u003C\u003Cpopid>> class=\"tc-drop-down\" style=\"min-width:auto;\">\n \u003C$button class=\"tc-btn-invisible\" style=\"display:block;padding:0 0.5em;\" tooltip=\"delete this filter\"> {{$:/core/images/delete-button}} delete this filter\n \u003C$action-confirm $message={{{ [\u003Cfilt>] [\u003Cdesc>] [[ ]] [[Are you sure you want to delete this filter?]] +[join\u003Clf>] }}}>\n \u003C$action-deletetiddler $tiddler=\u003C\u003Citem>> />\n \u003C/$action-confirm>\n \u003C/$button>\n \u003C$button class=\"tc-btn-invisible\" style=\"display:block;padding:0 0.5em;\" tooltip=\"edit this filter\"> {{$:/core/images/edit-button}} edit this filter\n \u003C$action-sendmessage $message=\"tm-edit-tiddler\" $param=\u003C\u003Citem>> />\n \u003C/$button>\n \u003C$button class=\"tc-btn-invisible\" style=\"display:block;padding:0 0.5em;\" tooltip=\"add to custom filter\"> {{$:/core/images/new-button}} add to custom filter\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> $index=\"custom\" $value={{{ [\u003Ccust>addsuffix\u003Cfilt>trim[]] }}}/>\n \u003C/$button>\n \u003C$button class=\"tc-btn-invisible\" style=\"display:block;padding:0 0.5em;\" tooltip=\"copy to clipboard\"> {{$:/core/images/copy-clipboard}} copy to clipboard\n \u003C$action-sendmessage $message=\"tm-copy-to-clipboard\" $param=\u003C\u003Cfilt>>/>\n \u003C/$button>\n \u003C/$reveal>\n \u003C$button class=\"tc-btn-invisible\" tooltip=\"use this filter\"> \u003C$text text=\u003C\u003Cdesc>>/>\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> text={{{ [\u003Citem>get[text]] }}}/>\n \u003C/$button>\n \u003C/$vars>\n \u003C/$vars>\n \u003Cbr>\n \u003C/$list>\n\u003C/div>\n\\end\n\n\\define preFilter() prefix[$(pre)$]\n\\define notpreFilter() !prefix[$(notpre)$]\n\\define suffFilter() suffix[$(suff)$]\n\\define notsuffFilter() !suffix[$(notsuff)$]\n\\define tagFilter() tag[$(tagval)$]\n\\define nottagFilter() !tag[$(nottag)$]\n\\define hasFilter() has:field[$(has)$]\n\\define searchFilter() search:$(field)$:$(flags)$[$(term)$]\n\\define filter() [all[$(tids)$]$(preFilter)$$(notpreFilter)$$(suffFilter)$$(notsuffFilter)$$(tagFilter)$$(nottagFilter)$$(hasFilter)$$(searchFilter)$sort[$(sort)$]] $(custom)$\n\\define filter_exclude() $(filter)$ -[prefix[$:/state/modal]] -[prefix[$:/state/popup]] -[prefix[$:/temp/PowerSearch]] -[prefix[$:/temp/edit-list]]\n\n\\define doSearch()\n\u003C$vars tids={{{ [\u003Cconfig>getindex[tids]] ~[[tiddlers]] }}}\n pre={{{ [\u003Cconfig>getindex[prefix]] }}}\n notpre={{{ [\u003Cconfig>getindex[notprefix]] }}}\n suff={{{ [\u003Cconfig>getindex[suffix]] }}}\n notsuff={{{ [\u003Cconfig>getindex[notsuffix]] }}}\n tagval={{{ [\u003Cconfig>getindex[tag]] }}}\n nottag={{{ [\u003Cconfig>getindex[nottag]] }}}\n has={{{ [\u003Cconfig>getindex[has]] }}}\n field={{{ [\u003Cconfig>getindex[field]enlist-input[]join[,]] ~[[title,text,tags]] }}}\n flags={{{ [\u003Cconfig>getindex[flags]enlist-input[]join[,]] ~[[words]] }}}\n sort={{{ [\u003Cconfig>getindex[sort]] ~[[title]] }}}\n custom={{{ [\u003Cconfig>getindex[custom]] }}}\n term={{{ [\u003Cconfig>getindex[term]] }}}>\n\u003C$vars preFilter={{{ [\u003Cpre>!is[blank]then\u003CpreFilter>] }}}\n notpreFilter={{{ [\u003Cnotpre>!is[blank]then\u003CnotpreFilter>] }}}\n suffFilter={{{ [\u003Csuff>!is[blank]then\u003CsuffFilter>] }}}\n notsuffFilter={{{ [\u003Cnotsuff>!is[blank]then\u003CnotsuffFilter>] }}}\n tagFilter={{{ [\u003Ctagval>!is[blank]then\u003CtagFilter>] }}}\n nottagFilter={{{ [\u003Cnottag>!is[blank]then\u003CnottagFilter>] }}}\n hasFilter={{{ [\u003Chas>!is[blank]then\u003ChasFilter>] }}}\n searchFilter={{{ [\u003Cterm>!is[blank]then\u003CsearchFilter>] }}}>\n\u003C\u003CdoSearch_showresults>>\n\\end\n\n\\define doSearch_showresults()\n\u003C$vars count={{{ $(filter_exclude)$ +[count[]] }}}>\n''\u003C\u003Ccount>> match\u003C$list filter=\"[\u003Ccount>!match[1]]\">es\u003C/$list>''  \n\u003C\u003CtoggleList>> \u003C\u003CsaveFilter>> \u003C\u003CclearAll>> \u003C\u003CsetOptions>>  \n\u003C$vars height={{{ [\u003Cconfig>get[height]] ~[\u003Cdefault_height>] }}} cols={{{ [\u003Cconfig>get[cols]] ~[\u003Cdefault_columns>] }}} wrap={{{ [\u003Cconfig>get[wrap]] ~[\u003Cdefault_wrap>] }}}>\n\u003C$list filter=\"[\u003Ccount>!match[0]]\"> \u003C\u003Cmodal tag>> \u003C\u003Cmodal clone>> \u003C\u003Cmodal export>> \u003C\u003Cmodal delete>>  \u003C/$list>\n\u003C$reveal state=\u003C\u003Cshow>> type=\"match\" text=\"show\" style=\"font-size:90%;line-height:1em;\">\n columns:\n \u003C$select tiddler=\u003C\u003Cconfig>> field=\"cols\" default=\u003C\u003Ccols>>>\u003Coption>1\u003C/option> \u003Coption>2\u003C/option> \u003Coption>3\u003C/option> \u003Coption>4\u003C/option> \u003Coption>5\u003C/option>\u003C/$select>\n \u003C$checkbox tiddler=\u003C\u003Cconfig>> field=\"wrap\" checked=\"normal\" unchecked=\"nowrap\" default=\u003C\u003Cwrap>> class=\"powersearch_checkboxwidth\"> wrap \u003C/$checkbox> \n\u003C/$reveal>\n\u003C$reveal state=\u003C\u003Cshow>> type=\"match\" text=\"show\"> \u003C\u003CdoSearch_showlist>> \u003C/$reveal>\n\\end\n\n\\define doSearch_showlist()\n\u003Cfieldset style=\"border-radius:0.5em;\">\n \u003Clegend>\n \u003C$button class=\"tc-btn-invisible\" style=\"font-size:90%;text-align:left;word-break:break-all;\"\n message=\"tm-copy-to-clipboard\" param=\u003C\u003Cfilter>> tooltip=\"Copy filter to clipboard\">\n ''\u003C$text text=\u003C\u003Cfilter>>/>'' {{$:/core/images/copy-clipboard}}\n \u003C/$button>\n \u003C/legend>\n \u003Cdiv style=\"max-height:$(height)$;white-space:$(wrap)$;overflow:auto;font-size:80%;line-height:1em;\">\n \u003Col style=\"margin:0;column-gap:3em;column-count:$(cols)$;column-width:1em;\">\n \u003C$list filter=\u003C\u003Cfilter_exclude>>>\n \u003Cli>\u003Cdiv class=\"powersearch_listitem\" title=\u003C\u003CcurrentTiddler>>>\u003C$link/>\u003C/div>\u003C/li>\n \u003C/$list>\n \u003C/ol>\n \u003C/div>\n\u003C/fieldset>\n\\end\n\n\\define toggleList()\n\u003C$reveal state=\u003C\u003Cshow>> type=\"match\" text=\"\">\n \u003C$button tooltip=\"Show results\"> {{$:/core/images/chevron-down}}\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> show=\"show\" />\n \u003C/$button>\n\u003C/$reveal>\n\u003C$reveal state=\u003C\u003Cshow>> type=\"match\" text=\"show\">\n \u003C$button tooltip=\"Hide results\"> {{$:/core/images/chevron-up}}\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> $field=\"show\" />\n \u003C/$button>\n\u003C/$reveal>\n\\end\n\n\\define saveFilter()\n\u003C$vars target={{{ [\u003Cnow YYYY0MM0DD0hh0mm0ss>addprefix\u003Csaved>] }}}>\n\u003C$button tooltip=\"Save current filter\"> {{$:/core/images/save-button}}\n \u003C$action-setfield $tiddler=\u003C\u003Ctarget>> type=\"application/json\" text={{{ [\u003Cconfig>get[text]] }}}\n filter={{{ [\u003Cfilter>trim[]] }}} description={{{ [\u003Cfilter>trim[]] }}} tags=\"$:/tags/Filter\" />\n\u003C/$button>\n\\end\n\n\\define clearAll()\n\u003C$tiddler tiddler=\u003C\u003Cconfig>>>\n\u003C$button tooltip=\"Clear all inputs\"> {{$:/core/images/close-button}}\n \u003C$list filter=\"tids prefix notprefix suffix notsuffix tag nottag has field term flags sort custom\">\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> $index=\u003C\u003CcurrentTiddler>> />\n \u003C/$list>\n \u003C$action-deletetiddler $filter=\"[prefix[$:/state/popup/edit-list/]]\"/>\n\u003C/$button>\n\\end\n\n\\define setOptions()\n\u003C$button popup=\u003C\u003Cqualify $(options)$>> tooltip=\"Set display options\">\n {{$:/core/images/options-button}}\n\u003C/$button>\n\u003C$reveal type=\"popup\" state=\u003C\u003Cqualify $(options)$>> position=\"below\"\n class=\"tc-drop-down tt-drop-down tc-popup-keep\" style=\"min-width:auto;padding:0.5em;\">\n ~PowerSearch options\n \u003Cdiv class=\"tt-shadowbox inset\" style=\"text-align:right;\">\n input width: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"width\" class=\"powersearch_optionwidth\" default=\"\" placeholder=\u003C\u003Cdefault_width>> />\u003Cbr>\n max height: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"height\" class=\"powersearch_optionwidth\" default=\"\" placeholder=\u003C\u003Cdefault_height>> />\u003Cbr>\n \u003Ccenter>\n \u003C$checkbox tiddler=\u003C\u003Cconfig>> field=\"confirm\" checked=\"yes\" unchecked=\"\" default=\"\" class=\"powersearch_checkboxwidth\"> confirm inputs \u003C/$checkbox>\n \u003C/center>\n \u003C/div>\n\u003C/$reveal>\n\\end\n\n\\define modal(function)\n\\define select() $(filter_exclude)$ +[encodeuricomponent[]]\n\u003C$set name=\"selected\" filter=\u003C\u003Cselect>>>\n\u003C$button message=\"tm-modal\" param=\"$:/temp/PowerSearch\" tooltip=\"$function$ tiddlers\">\n \u003C$transclude tiddler=\"$:/core/images/$function$-button\"/>\n \u003C$action-setfield $tiddler=\"$:/temp/PowerSearch\" class=\"powersearch_modal tc-popup-handle\"\n subtitle=\u003C\u003Cmodal_title>> text=\u003C\u003Cmodal_text>> footer=\u003C\u003Cmodal_footer>>\n function=\"$function$\" list=\u003C\u003Cselected>> wrap=\u003C\u003Cwrap>> cols=\u003C\u003Ccols>> nostamp={{$:/config/TimestampDisable}}/>\n\u003C/$button>\n\\end\n\n\\define modal_title()\n\\import TiddlyTools/FilterGenerators/PowerSearch\n\\define filter() $(filter)$\n\u003Cspan style=\"float:right;font-size:80%;line-height:1em;margin-top:0.5em;\">\n columns:\n \u003C$select field=\"cols\">\u003Coption>1\u003C/option> \u003Coption>2\u003C/option> \u003Coption>3\u003C/option> \u003Coption>4\u003C/option> \u003Coption>5\u003C/option>\u003C/$select>\n \u003C$checkbox field=\"wrap\" checked=\"normal\" unchecked=\"nowrap\" class=\"powersearch_checkboxwidth\"> wrap \u003C/$checkbox> \n \u003C$vars tv-config-toolbar-icons=\"yes\" tv-config-toolbar-text=\"no\">{{$:/core/ui/Buttons/timestamp}}\u003C/$vars> \n \u003C\u003Cmodal_cancel \"{{$:/core/images/close-button}}\">>\n \u003C\u003Cmodal_ok \"{{$:/core/images/done-button}}\" >>\n\u003C/span>\n''\u003C$text text={{{ [{!!function}addsuffix[ tiddlers]sentencecase[]] }}}/>:''\n\u003Cdiv style=\"font-size:70%;line-height:1em;margin-bottom:0.5em;\">''\u003C$text text=\u003C\u003Cfilter>>/>''\u003C/div>\n\\end\n\n\\define modal_text()\n\\import TiddlyTools/FilterGenerators/PowerSearch\n\\define all() $(filter_exclude)$ +[encodeuricomponent[]]\n\u003C\u003Cstyles>>\n\u003Cdiv style={{{ [[max-height:calc(60vh - 5em);overflow:auto;font-size:80%;line-height:1em;margin-bottom:0.5em;white-space:]addsuffix{!!wrap}] }}}>\n\u003Col style={{{ [[margin:0;column-gap:3em;column-width:1em;column-count:]addsuffix{!!cols}] }}}>\n \u003C$list filter=\u003C\u003Call>> variable=\"thisTiddler\">\n \u003Cli>\n \u003Cdiv class=\"powersearch_listitem\" title={{{ [\u003CthisTiddler>decodeuricomponent[]] }}}>\n \u003C$list filter=\"[\u003CcurrentTiddler>contains\u003CthisTiddler>]\">\n \u003C$eventcatcher $click='\u003C$action-listops $subfilter=\"-[\u003CthisTiddler>]\"/>'>\n \u003Cinput type=\"checkbox\" checked=\"checked\"> \u003C$text text={{{ [\u003CthisTiddler>decodeuricomponent[]] }}}/>\n \u003C/$eventcatcher>\n \u003C/$list>\n \u003C$list filter=\"[\u003CcurrentTiddler>!contains\u003CthisTiddler>]\">\n \u003C$eventcatcher $click='\u003C$action-listops $subfilter=\"[\u003CthisTiddler>]\"/>'>\n \u003Cinput type=\"checkbox\"> \u003C$text text={{{ [\u003CthisTiddler>decodeuricomponent[]] }}}/>\n \u003C/$eventcatcher>\n \u003C/$list>\n \u003C/div>\n \u003C/li>\n \u003C/$list>\n\u003C/ol>\n\u003C/div>\n\u003C$vars count={{{ [\u003CcurrentTiddler>get[list]enlist-input[]count[]] }}}>\n\u003C$list filter=\"[\u003Ccount>match[0]]\" variable=\"msg\">''Select tiddlers you want to {{!!function}}''\u003C/$list>\n\u003C$list filter=\"[\u003Ccount>!match[0]]\" variable=\"msg\">\n ''Are you sure you want to {{!!function}} \u003C$list filter=\"[\u003Ccount>!match[1]]\" emptyMessage=\"this tiddler?\">these \u003C\u003Ccount>> tiddlers?\u003C/$list>''\n\u003C/$list>\n\\end\n\n\\define modal_footer()\n\\import TiddlyTools/FilterGenerators/PowerSearch\n\\define select() $(filter_exclude)$ +[encodeuricomponent[]]\n\u003C$set name=\"all\" filter=\u003C\u003Cselect>>>\n\u003Cdiv style=\"text-align:center;\">\n\u003Cdiv style=\"float:left;text-align:left;\">\n \u003C$button>all \u003C$action-setfield list=\u003C\u003Call>>/>\u003C/$button>\n \u003C$button>none \u003C$action-setfield list=\"\"/>\u003C/$button>\n\u003C/div>\n\u003Cdiv style=\"float:right;text-align:left;\">\u003C\u003Cmodal_cancel>> \u003C\u003Cmodal_ok>>\u003C/div>\n\u003C\u003Cmodal_options>>\n\\end\n\n\\define modal_cancel(label:\"cancel\")\n\u003C$button message=\"tm-close-tiddler\" tooltip=\"cancel\" actions=\u003C\u003Cmodal_done>>> $label$ \u003C/$button>\n\\end\n\n\\define modal_ok(label:{{!!function}})\n\u003C$vars ok={{{ [{!!function}!match[tag]] [{$:/temp/PowerSearch/add}!is[blank]] [{$:/temp/PowerSearch/remove}!is[blank]] +[then{!!list}!match[]then[yes]] }}}> \n\u003C$list filter=\"[\u003Cok>match[yes]]\" emptyMessage=\"\u003C$button> @@color:gray;fill:gray; $label$@@\u003C/$button>\" variable=\"is_enabled\">\n \u003C$button message=\"tm-close-tiddler\" tooltip={{!!function}} actions=\u003C\u003Cmodal_done>>> $label$ \u003C\u003Cmodal_functions>> \u003C/$button>\n\u003C/$list>\n\\end\n\n\\define modal_done()\n\u003C$list filter=\"[[$:/config/TimestampDisable]is[tiddler]]\" variable=\"reset_timestamp_setting\">\n \u003C$action-setfield $tiddler=\"$:/config/TimestampDisable\" text={{!!nostamp}}/>\n \u003C$list filter=\"[{!!nostamp}match[]]\">\u003C$action-deletetiddler $tiddler=\"$:/config/TimestampDisable\" />\u003C/$list>\n\u003C/$list>\n\u003C$action-deletetiddler $filter=\"[prefix[$:/temp/PowerSearch]]\" />\n\\end\n\n\\define modal_options()\n\\define taglist(tid,filter) \u003C\u003Cedit tiddler:\"$tid$\" width:12em multiple:yes filter:\"$filter$\" placeholder:\"enter/select tags\">>\n\u003Cdiv style=\"display:inline-block;\">\n\u003C$list filter=\"[{!!function}match[tag]]\" variable=\"function\">\n \u003Cnobr style=\"text-align:left;\">''Add tags:'' \u003C\u003Ctaglist \"$:/temp/PowerSearch/add\" \"[tags[]sort[]] [all[shadows]tags[]sort[]]\">>\u003C/nobr>\n \u003Cnobr style=\"text-align:left;\">''Remove tags:'' \u003C\u003Ctaglist \"$:/temp/PowerSearch/remove\" \"[enlist{$:/temp/PowerSearch!!list}decodeuricomponent[]tags[]sort[]]\">>\u003C/nobr>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[clone]]\" variable=\"function\">\n \u003Cnobr>''Replace'' \u003C$edit-text tiddler=\"$:/temp/PowerSearch/from\" tag=\"input\" size=\"20\" default=\"\" placeholder=\"\"/>\u003C/nobr>\n \u003Cnobr>''with'' \u003C$edit-text tiddler=\"$:/temp/PowerSearch/to\" tag=\"input\" size=\"20\" default=\"\" placeholder=\"\"/>\u003C/nobr>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[export]]\" variable=\"function\">\n ''Filename/format'':\n \u003C$edit-text tiddler=\"$:/temp/PowerSearch/filename\" tag=\"input\" size=\"20\" default=\"\"\n placeholder={{{ [{$:/temp/PowerSearch/format}suffix[TidFile]then[-- uses tiddler title --]else[tiddlers]] }}}\n disabled={{{ [{$:/temp/PowerSearch/format}suffix[TidFile]then[yes]] }}}/>\n \u003C$select tiddler=\"$:/temp/PowerSearch/format\" default=\"$:/core/templates/exporters/JsonFile\">\n \u003Coption value=\"$:/core/templates/exporters/CsvFile\"> csv \u003C/option>\n \u003Coption value=\"$:/core/templates/exporters/StaticRiver\"> html\u003C/option>\n \u003Coption value=\"$:/core/templates/exporters/JsonFile\"> json\u003C/option>\n \u003Coption value=\"$:/core/templates/exporters/TidFile\"> tid \u003C/option>\n \u003C/$select>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[delete]]\" variable=\"function\">\n   \u003C!-- NO OPTIONS -->\n\u003C/$list>\n\\end\n\n\\define modal_functions()\n\u003C$list filter=\"[{!!function}match[tag]]\" variable=\"function\">\n \u003C$list filter=\"[enlist{!!list}decodeuricomponent[]]\">\n \u003C$action-listops $field=\"tags\" $subfilter=\"+[append{$:/temp/PowerSearch/add}remove{$:/temp/PowerSearch/remove}]\"/>\n \u003C/$list>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[clone]]\" variable=\"function\">\n \u003C$list filter=\"[enlist{!!list}decodeuricomponent[]]\">\n \u003C$vars newtitle={{{ [\u003CcurrentTiddler>search-replace{$:/temp/PowerSearch/from},{$:/temp/PowerSearch/to}] }}}>\n \u003C$action-createtiddler $basetitle=\u003C\u003Cnewtitle>> $template=\u003C\u003CcurrentTiddler>> />\n \u003C/$vars>\n \u003C/$list>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[export]]\" variable=\"function\">\n \u003C$vars format={{{ [[$:/temp/PowerSearch/format]get[text]else[$:/core/templates/exporters/JsonFile]] }}}\n filename={{{ [[$:/temp/PowerSearch/filename]get[text]else[tiddlers]] }}}>\n \u003C$vars ext={{{ [\u003Cformat>get[extension]] }}}>\n \u003C$vars target={{{ [\u003Cext>addprefix\u003Cfilename>] }}}>\n \u003C$vars list=\"[enlist{$:/temp/PowerSearch!!list}decodeuricomponent[]]\">\n \u003C$list filter=\"[\u003Cformat>!suffix[TidFile]]\">\n \u003C$action-sendmessage $message=\"tm-download-file\" $param=\u003C\u003Cformat>>\n exportFilter=\u003C\u003Clist>> filename=\u003C\u003Ctarget>> />\n \u003C/$list>\n \u003C$list filter=\"[\u003Cformat>suffix[TidFile]]\">\n \u003C$list filter=\u003C\u003Clist>>>\n \u003C$action-sendmessage $message=\"tm-download-file\" $param=\u003C\u003Cformat>>\n exportFilter=\u003C\u003CcurrentTiddler>> filename={{{ [\u003CcurrentTiddler>addsuffix\u003Cext>] }}} />\n \u003C/$list>\n \u003C/$list>\n \u003C/$vars>\n \u003C/$vars>\n \u003C/$vars>\n \u003C/$vars>\n\u003C/$list>\n\u003C$list filter=\"[{!!function}match[delete]]\" variable=\"function\">\n \u003C$action-deletetiddler $filter=\"[enlist{!!list}decodeuricomponent[]]\" />\n\u003C/$list>\n\\end\n\n\u003C$vars width={{{ [\u003Cconfig>get[width]] ~[\u003Cdefault_width>] }}} confirm={{{ [\u003Cconfig>get[confirm]] }}}>\n \u003C\u003Cstyles>> \u003C\u003Cinputs>> \u003C\u003CsavedFilters>>\n\u003C/$vars>\n\u003Cdiv style=\"clear:both;padding-top:0.5em;\">\n\u003C\u003CdoSearch>>","creator":"EricShulman","title":"$:/ThirdParty/TiddlyTools/FilterGenerators/PowerSearch","caption":"PowerSearch","modified":"20230109220559886","modifier":"EricShulman","tags":"$:/tags/AdvancedSearch TiddlyTools"}, {"created":"20191128174135234","text":"\\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() 4.00\n\\define default_group() 5\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n\u003C!-- copied from $:/core/macros/tag - added font-size, margin-bottom and count display in pill -->\n\u003C$vars foregroundColor=\u003C\u003Ccontrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n\u003Cdiv style=\"display:inline-block;font-size:$(size)$em;line-height:1em;margin-bottom:2px;\">\n\u003C$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=\u003C\u003Ctag-pill-styles>>>\n$actions$\u003C$transclude tiddler=\"\"\"$icon$\"\"\"/> \u003C$view tiddler=\u003C\u003C__tag__>> field=\"title\" format=\"text\" /> (\u003C\u003Ccount>>)\n\u003C/$element-tag$>\n\u003C/div>\n\u003C/$vars>\n\\end\n\n\\define tagcloud_select()\n\u003C$set name=\"taglist\" filter=\"[all[tiddlers+shadows]tags[]sort[]]\">\n\u003Cdiv style=\"display:inline-block;float:left;margin-right:1em;margin-bottom:1em;\">\nSelect tags:\n\u003C$button class=\"tc-btn-invisible\">\n \u003Cspan style={{{ [\u003Cconfig>get[taglist]else[font-weight:bold;]] }}}>none\u003C/span>\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> taglist=\"\" />\n\u003C/$button> |\n\u003C$button class=\"tc-btn-invisible\">\n \u003Cspan style={{{ [\u003Cconfig>get[taglist]match\u003Ctaglist>then[font-weight:bold;]] }}}>all\u003C/span>\n \u003C$action-setfield $tiddler=\u003C\u003Cconfig>> taglist=\u003C\u003Ctaglist>> />\n\u003C/$button>\n\u003C\u003Ctagcloud_options>>\n\u003Cdiv style=\"clear:both;\">\n\u003C$select tiddler=\u003C\u003Cconfig>> field=\"taglist\" size=5 multiple>\n \u003C$list filter=\"[all[tiddlers+shadows]tags[]sort[]]\">\u003Coption>\u003C\u003CcurrentTiddler>>\u003C/option>\u003C/$list>\n\u003C/$select>\n\\end\n\n\\define tagcloud_options()\n\u003C$let popid={{{ [\u003Coptions>addsuffix\u003Cqualify>] }}}>\n\u003C$button class=\"tc-btn-invisible\" style=\"float:right;\" popup=\u003C\u003Cpopid>> tooltip=\"Set display options\">\n {{$:/core/images/options-button}}\n\u003C/$button>\n\u003C$reveal type=\"popup\" state=\u003C\u003Cpopid>> position=\"belowleft\"\n class=\"tc-drop-down tt-drop-down tc-popup-keep\" style=\"min-width:auto;padding:0.5em;\">\n \u003Cspan style=\"float:right;margin-left:1em;\">\n \u003C$button class=\"tc-btn-invisible\" style=\"display:inline;padding:0;width:auto;\" tooltip=\"reset to defaults\">{{$:/core/images/refresh-button}}\n \u003C$action-deletefield $tiddler=\u003C\u003Cconfig>> min step max group/>\n \u003C/$button>\n \u003C$button class=\"tc-btn-invisible\" style=\"display:inline;padding:0;width:auto;\" tooltip=\"close\">{{$:/core/images/close-button}}\n \u003C$action-deletetiddler $tiddler=\u003C\u003Cpopid>>/>\n \u003C/$button>\n \u003C/span>\n ~TagCloud options\n \u003Cdiv class=\"tt-shadowbox inset\" style=\"clear:both;text-align:right;\">\n min size: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"min\" class=\"option\" default=\u003C\u003Cdefault_min>> placeholder=\u003C\u003Cdefault_min>> />\u003Cbr>\n step size: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"step\" class=\"option\" default=\u003C\u003Cdefault_step>> placeholder=\u003C\u003Cdefault_step>> />\u003Cbr>\n max size: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"max\" class=\"option\" default=\u003C\u003Cdefault_max>> placeholder=\u003C\u003Cdefault_max>> />\u003Cbr>\n group size: \u003C$edit-text tiddler=\u003C\u003Cconfig>> field=\"group\" class=\"option\" default=\u003C\u003Cdefault_group>> placeholder=\u003C\u003Cdefault_group>> />\u003Cbr>\n \u003C/div>\n\u003C/$reveal>\n\\end\n\n\\define tagcloud_summary()\n\u003Cbr>\nThere are ''\u003C$text text={{{ [enlist\u003Ctaglist>count[]]\" }}}/> selected tags''\u003Cbr>\nTagging a total of ''\u003C$text text={{{ [enlist\u003Ctaglist>tagging[]count[]]\" }}}/> tiddlers''\u003Cbr>\nSort results by:\n\u003C$radio tiddler=\u003C\u003Cconfig>> field=\"sortorder\" value=\"count\"> count \u003C/$radio>\n\u003C$radio tiddler=\u003C\u003Cconfig>> field=\"sortorder\" value=\"name\"> name \u003C/$radio>\n\\end\n\n\\define tagcloud_show()\n\u003Cp style=\"clear:both;\">\n\u003C$let min={{{ [\u003Cconfig>get[min]] ~[\u003Cdefault_min>] }}}\n step={{{ [\u003Cconfig>get[step]] ~[\u003Cdefault_step>] }}}\n max={{{ [\u003Cconfig>get[max]] ~[\u003Cdefault_max>] }}}\n group={{{ [\u003Cconfig>get[group]] ~[\u003Cdefault_group>] }}}>\n\u003C$set name=\"sub\" filter=\"[\u003Cconfig>get[sortorder]] ~[[count]] +[match[count]]\" value=\"[tagging[]count[]]\" emptyValue=\"[get[title]]\">\n\u003C$list filter=\"[enlist\u003Ctaglist>!sortsub:integer\u003Csub>]\">\n \u003C$let count={{{ [\u003CcurrentTiddler>tagging[]count[]] }}} size={{{ [\u003Ccount>divide\u003Cgroup>trunc[]multiply\u003Cstep>add\u003Cmin>min\u003Cmax>] }}}>\u003C\u003Ctag>>\u003C/$let>\n\u003C/$list>\n\\end\n\n\u003Cstyle>\n .tt-tagcloud input { width:auto !important; }\n .tt-tagcloud input.option { width:3em !important; text-align:right; }\n\u003C/style>\n\u003Cdiv class=\"tt-tagcloud\">\n\u003C\u003Ctagcloud_select>>\n\u003C$set name=taglist filter=\"[\u003Cconfig>get[taglist]enlist-input[]]\">\n\u003C\u003Ctagcloud_summary>>\n\u003C\u003Ctagcloud_show>>","title":"$:/ThirdParty/TiddlyTools/FilterGenerators/TagCloud","caption":"TagCloud","modified":"20230109221623722","tags":"TiddlyTools $:/tags/AdvancedSearch"}, @@ -439,11 +441,14 @@ Error message and password prompt {"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":"20221107225602829","text":"!!! ''Outlook''\n* ''Username'': Full Email Address (e.g. `example@outlook.com`)\n* ''Password'': Standard Account Password\n* ''Server'': `smtp-mail.outlook.com`\n* ''Ports'':\n** ''TLS'': `587`\n** ''No Encryption'': `25`\n* ''Daily Limits'': 250 Mails, or [verification needed] 100 different Recipients\n\n!!! ''Yahoo Mail''\n\n* ''Username'': Full Email Address (e.g. `example@yahoo.com`)\n* ''Password'': App Password; Must be set from Yahoo's account security settings\n* ''Server'': `smtp.mail.yahoo.com`\n* Ports: 465 (With SSL)\n** ''SSL'': `465`\n** ''TLS'': `587`\n* ''Daily Limits''\u003Csup>[verification needed]\u003C/sup>: 500 Mails, or 100 Connections","tags":"i18n:en","title":"Email Settings","modified":"20221110230438336"}, {"created":"20220922204615800","title":"English","icon":"$:/languages/en-GB/icon","modified":"20220922204615800"}, +{"created":"20230113095118172","text":"* https://github.com/liriliri/eruda","tags":"TODO i18n:en","title":"Eruda:en","modified":"20230113095225026"}, {"created":"20221008141221923","text":"!! Flags\n\n* Specify an input file: `-i ${File}`\n* Framerate: `-r ${r}`, `-framerate ${r}` (//use both because one sometimes doesn't work//)\n\n\n!!! Filter Flags\n\n//These are specified by prefixing an argument://\n\n* Audio: `-filter:a` or `-af`\n* Video: `-filter:v` or `-vf`\n\n!!!! Audio Filters\n\n* Volume: `volume=`\n** `±{n}dB`: Adding or Subtracting to absolute value in dB\n** `{%/100}`: Target percentage divided by 100 (e.g: //150% -> 1.5//)\n\n* Detecting volume details: `volumedetect -f null /dev/null` (just prints to console)\n\n!!!! Video Filters\n\n* Scaling: `scale=${w}:${h}`\n* [[Cropping|https://video.stackexchange.com/questions/4563/how-can-i-crop-a-video-with-ffmpeg]]: `crop=${w}:${h}:${x}:${y}`\n\n\n!!! Audio/Video Flags\n\n//These are specified as `-flag:a` or `-flag:v`.//\n\n* Bitrate: `-b:{a|v} ${n}{k|m|...}`\n* Codec: `-c:{a|v} ${codec}`\n\n!!!! Audio Flags\n\n* Audio channels: `-ac ${n}`\n\n\n!! Codecs List\n\n!!! Special\n\n* `copy`: Copy data stream without re-encoding (if supported by container)\n\n!!! Audio Codecs\n\n* `libopus`\n\n!!! Video Codecs\n\n* `h263`, `h264`, `libx265`\n* `libvpx-vp8`, `libvpx-vp9`\n* `libaom-av1`\n\n\n!! Tips\n\n* [[Trim Video|https://shotstack.io/learn/use-ffmpeg-to-trim-video]]\n* [[Image+Audio -> Video|https://superuser.com/questions/1041816/combine-one-image-one-audio-file-to-make-one-video-using-ffmpeg]]","tags":"i18n:en Snippets","title":"FFmpeg/Snippets","modified":"20221228174603401"}, {"created":"20220923195125955","text":"''Free sharing'' is a philosophy founded on the belief that: every kind of information that is created to be publicly available has to be shareable by anyone without any restrictions.\n\nThe reasoning behind this philosophy is that the whole of humanity can benefit, in the long run, if each person creating works of culture puts aside their egoistic desires of wealth and power, and instead decides to explicitly allow anyone to freely share the works in question.\n\nPeople who believe in free sharing not only often choose to leave freedom of sharing what they create to the world, but also engage in mutual exchanges of public information that is officially not free (usually, hidden behind paywalls and/or licenses that don't allow redistribution).\n\nThis last kind of behavior is not to be confused with [[computer piracy]], which is a term indicating either the unauthorized redistribution of digital content with the main scope of monetary gain, and not the spirit of sharing for bettering humanity, or in general the perpetration of any illegal activity through the use of computer systems or regarding those.","tags":"i18n:en","title":"Free sharing","modified":"20230109135813770"}, +{"created":"20230113105935789","text":"\u003C\u003CMediaWiki Friendica en 2>>","tags":"i18n:en TODO Fediverse","title":"Friendica:en","modified":"20230113110013794"}, {"created":"20221006205957260","text":"* [[[PICO-8] Advanced Micro Platformer - Starter Kit|https://www.lexaloffle.com/bbs/?tid=28793]]","tags":"i18n:en Development Gaming","title":"GameDev Resources","modified":"20221006213515766"}, {"created":"20221018083042590","text":"!!! ''Commands (+ Flags/Tips)''\n\n* `clone ${URL}`: Clone (download) a repo to the computer storage\n** `--depth=${n}`: Explicitly specify how many commits to download (starting from latest)\n\n* `add ${Path}`: Update Git's internal list of tracked files. This should be issued (ideally for the root directory, `.`) before trying to commit after creating/deleting/moving/renaming files/folders.\n** A `.gitignore` file, containing a list of files or folder paths (one per line) can be created in a repo's root, to make the `add` command ignore those: they won't be tracked by Git, and thus won't be committed or pushed. Note: adding already tracked paths to `.gitignore` doesn't make it so they stop being tracked, they must be manually be deleted and then the `add` command issued again.\n\n* `config`\n** `credential.helper store`\n\n!!! ''Miscellaneous Flags''\n\n* `--global`: Apply a config command to the global user configuration (omitting applies to current directory if it is a Git repo)","tags":"Snippets i18n:en","title":"Git/Snippets","modified":"20221105130334227"}, {"created":"20221105125144413","text":"!!! ''Commands (+ Flags/Tips)''\n* `--list-keys`: List installed keys.\n* `--import Public.pgp`: Import someone's public key.\n* `--gen-key`: Generate a new keypair, with default options.\n* `--full-generate-key`: Generate a new keypair, customizing all the options.\n* `--edit-key {FINGERPRINT}`: Edit the internal data of a key.\n* `--output Revoke.pgp --gen-revoke {FINGERPRINT}`: Generate and output the revoke certificate for a key.\n* `--output Public.pgp --export {USER@EMAIL}`: Export a public key file.\n* ⚠️ `--output Private.pgp --export-secret-key {USER@EMAIL}`: Export a private key file.\n* ⚠️ `--output BackupPrivate.pgp --export-secret-keys --export-options export-backup {USER@EMAIL}`: Export private key(s) in backup format.\n* `--import-options restore --import BackupPrivate.pgp`\n\n!!!! ''`--edit-key` Commands''\n* `list`: List identities of the keys.\n* `uid {n}`: Select an identity to operate on.\n* `notation`: Write new notations inside the key; Prepend a dash (`-`) when typing a notations to remove it from the key, if present; Type just `none` to delete all notations.\n* `save`: Write changes to the key and quit.\n\n!!!! ''`--export` Flags''\n* `--armor`: Explicitly export as ASCII-armored, aka in text format.\n\n!!! ''Configuration Options''\n\n//These are usually inserted one-per-line in `~/gpg.conf`.//\n\n* `keyserver {URL}`","tags":"Snippets i18n:en","title":"GnuPG/Snippets","modified":"20221105173958587"}, +{"created":"20230113095521581","text":"\u003C\u003CMediaWiki Hacker_News en 2>>\n\n!! ''The Latest News''\n\n\u003C\u003CiFrame100 \"https://news.ycombinator.com\">>\n","tags":"i18n:en TODO","title":"Hacker News:en","modified":"20230113095807569"}, {"created":"20220922204301052","text":"Interesting news I collect from the hacky tech Internet sphere (HN primarily, but not exclusively).\n\n* [[TOTP tokens on my wrist with the smartest dumb watch|https://blog.singleton.io/posts/2022-10-17-otp-on-wrist]]\n* [[Boeing 787s must be turned off and on every 51 days to prevent 'misleading data' being shown to pilots|https://www.theregister.com/2020/04/02/boeing_787_power_cycle_51_days_stale_data]]\n* [[Disposable Root Servers|https://blog.thc.org/disposable-root-servers]]\n* [[Neurons in a dish learn to play Pong — what’s next?|https://www.nature.com/articles/d41586-022-03229-y]]\n* [[retrowin32, a win32 emulator|https://neugierig.org/software/blog/2022/10/retrowin32.html]]\n* [[Ray Tracing In Notepad.exe At 30 FPS|http://kylehalladay.com/blog/2020/05/20/Rendering-With-Notepad.html]]\n* [[You can't buy a Raspberry Pi right now|https://www.jeffgeerling.com/blog/2022/you-cant-buy-raspberry-pi-right-now]]\n* [[7 Cool HTML Elements Nobody Uses|https://tapajyoti-bose.medium.com/7-cool-html-elements-nobody-uses-436598d85668]]\n* [[Despite faster broadband every year, web pages don't load any faster|https://www.datafantic.com/how-much-time-do-we-waste-waiting-for-websites-to-load]] [//[[c|https://readhacker.news/c/5mBGU]]//]\n* [[Avoiding homework with code (and getting caught)|https://alistair.blog/mochip]] [//[[c|https://readhacker.news/c/5mBHL]]//]\n* [[Show HN: I made an open-source Bitly alternative|https://readhacker.news/c/5mzDH]]\n* [[If the Moon Were Only 1 Pixel (2014)|https://readhacker.news/c/5myKf]]","tags":"Reading i18n:en Tech","title":"Hacking News","modified":"20221018220810405"}, {"created":"20220926115058940","text":"","title":"i18n:en","icon":"$:/languages/en-GB/icon","modified":"20230110180103216"}, {"created":"20220926115105492","title":"i18n:it","icon":"$:/languages/it-IT/icon","modified":"20220926115105492"}, @@ -454,14 +459,16 @@ Error message and password prompt {"created":"20221110145611678","text":"''JavaScript'', or \"JS\", is an high-level programming language. It constitutes a core technology of the Web, sitting optionally alongside HTML and CSS. In recent years, it has gotten more and more popular even for desktop app and backend development.","tags":"Development i18n:en Internet","title":"JavaScript:en","modified":"20221110151535735"}, {"created":"20220923152137538","text":"[[johncena141|https://github.com/jc141x]] (jc141) is specialized in the field of compiling and distributing free repacks of current PC games for GNU+Linux.\n\nBefore their arrival to the GNU+Linux gaming scene in 2020-2021, obtaining known-safe and working repacks of games for the platform was a challenge, with native Linux repacks being almost impossible to find and Windows ones often not working.\n\nIn just about a year, johncena141 has become the most trusted repacker among GNU+Linux gamers, by putting the focus of their work directly and exclusively on GNU+Linux, as well as proving transparency and efficiency in their operations.","tags":"Gaming i18n:en","title":"johncena141:en","modified":"20220926115016387"}, {"created":"20221104183123144","text":"''Keyoxide'' is a libre, self-hostable tool to create and verify online identities, like different profiles, through cryptography.\n\n* Website, docs, and official instance: https://keyoxide.org\n* Source code: https://codeberg.org/keyoxide","tags":"i18n:en","title":"Keyoxide:en","modified":"20221104183453300"}, +{"created":"20230113102628101","text":"\u003C\u003CMediaWiki Lemmy_(software) en 1>>\n","tags":"TODO Fediverse i18n:en","title":"Lemmy:en","modified":"20230113105618015"}, {"created":"20230111153758951","text":"\u003C\u003CMediaWiki Linux en 5>>","tags":"i18n:en TODO","title":"Linux:en","modified":"20230111153845225"}, {"created":"20230111114229130","text":"* ''2023-01-10'' \u003Cdiv>\n\n; \"This group is unavailable due to copyright infringement.\"\n: TODO\n\u003C/div>\n","tags":"i18n:it TODO","title":"Lista Incidenti","modified":"20230111152012871"}, -{"created":"20230110220005274","text":"\u003C\u003CMediaWiki Mastodon_(social_network) en 3>>","tags":"Fediverse i18n:en","title":"Mastodon:en","modified":"20230110220150064"}, +{"created":"20230110220005274","text":"\u003C\u003CMediaWiki Mastodon_(social_network) en 3>>","tags":"Fediverse i18n:en TODO","title":"Mastodon:en","modified":"20230113102539290"}, {"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":"20230113110556145","text":"\u003C\u003CMediaWiki Miitomo en 2>>","tags":"i18n:en TODO","title":"Miitomo:en","modified":"20230113110628445"}, +{"created":"20230110220407274","text":"\u003C\u003CMediaWiki Miiverse en 3>>","tags":"Internet Nintendo i18n:en TODO","title":"Miiverse:en","modified":"20230113110251048"}, {"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"}, {"created":"20220921110925268","text":"\u003Ctable style=\"Width:100%;\">\n\u003Ctr style=\"Position:Sticky;\">\n\u003Cth>Album\u003C/th>\n\u003Cth>Got Any?\u003C/th>\n\u003Cth>Got Verified Lossless?\u003C/th>\n\u003Cth>Uploaded on Archive.org?\u003C/th>\n\u003Cth>Notes\u003C/th>\n\u003C/tr>\n\u003C/table>\n\n\u003C!--\n\u003C$list filter=\"[tag[Archiving]]+[tag[Music]]-[[Music Archiving Status]]-[has[draft.of]]\">\n\u003Cp>\n\u003Cdetails>\n\u003Csummary>\u003C\u003C#lself>> \u003C$transclude field=\"title\"/>\u003C/summary>\n\u003C$transclude/>\n\u003C/details>\n\u003C/p>\n\u003C/$list>\n--->\n\n\u003C\u003Cltabs \"[tag[Archiving]]+[tag[Music]]-[[Music Archiving Status]]-[has[draft.of]]\">>\n\n!! Future / To do\n\n''Albums'': FUGENE\n\n''Artists'': Desired, Future Girlfriend, In Love With A Ghost, Macross 82-99, nyankobrq, SoLush, YUC'e, Yunomi","tags":"Archiving Music","title":"Music Archiving Status","modified":"20220925154843964"}, @@ -487,7 +494,7 @@ Error message and password prompt {"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":"20220922200129612","text":"\u003C!-- \u003C\u003Ci18n>> --->\n\n\u003C!--\nIl ''Rasperino'' (''Raspberry Pi'') è il Single-Board-Computer più epico mai creato.\n--->\n\nIl ''Rasperino'' (''Raspberry Pi'') è un Single-Board-Computer ormai dimostratosi non all'altezza, sia a livello tecnico e pratico, sia per via di come l'azienda opera da più di un anno.\n\n[img[https://assets.raspberrypi.com/static/raspberry-pi-4-labelled-f5e5dcdf6a34223235f83261fa42d1e8.png]]\n\nPiù informazioni al suo riguardo sono disponibili sul sito ufficiale: [[https://www.raspberrypi.com]].\n\nSotto lo stesso nome di Raspberry Pi, la Raspberry Foundation crea anche dei microcontrollori, oltre che questo tipo di computer completi.","tags":"Raspberry i18n:it","title":"Rasperry Pi:it","modified":"20230111190331544","i18n":"RasperryPi"}, -{"created":"20230109104506263","text":"\u003C\u003CMediaWiki Reddit en 1>>","tags":"i18n:en Internet","title":"Reddit:en","modified":"20230109104538506"}, +{"created":"20230109104506263","text":"\u003C\u003CMediaWiki Reddit en 1>>","tags":"i18n:en Internet TODO","title":"Reddit:en","modified":"20230113105723193"}, {"created":"20221102121324531","text":"\u003C\u003CMediaWiki Retrogaming en 1>>\n\n!! ''Resources''\n\n!!! ''ROMs''\n* [[r/Roms Megathread|https://r-roms.github.io]]\n* [[No-Intro Romsets|https://archive.org/details/no-intro_romsets]]\n* [[Redump Romsets|https://archive.org/details/redump]]\n\n!!! ''Other''\n* [[Thumbnails for RetroArch|https://github.com/libretro-thumbnails/libretro-thumbnails]]\n","tags":"i18n:en Emulation Retrogaming","title":"Retrogaming:en","modified":"20230111111700315"}, {"created":"20220924130815541","text":"```sh\nfind ./ -type f -exec sed -i \"s/Old/New/g\" {} \\;\n```","tags":"Snippets i18n:en","title":"sed for all files in all subdirectories","modified":"20220926115016026"}, {"created":"20230109110607137","text":"\u003C\u003CMediaWiki Spacc/en wikispacc.miraheze.org>>","tags":"i18n:en TODO","title":"Spacc:en","modified":"20230111153654608"}, @@ -496,15 +503,15 @@ 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 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":"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* Embed mobile JS console\n* Lightboxes for images\n* Setup the [[x-frame-bypass|https://github.com/niutech/x-frame-bypass]] library\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":"20230113111205342","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"}, {"created":"20221103223952562","text":"Some ideas on //how// and //into what// to make a website I want to collect. Some I gather from other people's sites.\n\n* Site Changelog on Home page\n* Animated/Static Image Buttons for expressing ideas or linking to other websites\n* Shrines\n* Vast photo Galleries","tags":"Internet i18n:en","title":"Web design ideas","modified":"20221103231633336"}, {"created":"20221103220025295","text":"List of many Webrings.\n\n//I should ask some for joining (with the sitoctt or the octt hub? or the octtkb?)//\n\nLegend:\n\n* ✅: Joined\n* 📅: Waiting\n* ❓: Asked for joining but got ignored (verified through page changes and stuff across weeks/months)\n* ❌: Got rejected\n* ✏️ (or empty): Noted\n\n---\n\n* ✏️ https://250kb.club, https://512kb.club, https://1mb.club\n* ✅ https://fediring.net\n* ✏️ https://hotlinewebring.club\n* ✏️ https://xhtml.club\n* ✏️ https://webring.xxiivv.com\n* ❓ https://yesterweb.org/webring\n","tags":"Internet i18n:en","title":"Webrings","modified":"20221103223144572"}, {"created":"20221009212222560","text":"!! Flags\n\n* Download required page assets: `-p`\n* Convert internal links to relative: `-k`","tags":"i18n:en Snippets","title":"Wget/Snippets","modified":"20221105125638233"}, -{"created":"20221202225934313","text":"\u003C\u003CMediaWiki Wikipedia en 1>>\n\nIt is truly one of the best places to gain general culture from.","tags":"i18n:en Internet","title":"Wikipedia:en","modified":"20230110140557938"}, -{"created":"20230112115019993","text":"\u003C\u003CMediaWiki \"Help:Wikitext\" en 1>>\n\n!!! ''MediaWiki's vs TiddlyWiki Wikitext''\n\n!!!! ''Equalities''\n\n* ''Unordered and Ordered Lists''\n\n!!!! ''Differences''\n\n||''MediaWiki''|''TiddlyWiki''|\n|''Headings''|`=== Heading 3 ===`|`!!! Heading 3`|\n|''Bold''|||","tags":"i18n:en TODO","title":"Wikitext:en","modified":"20230112120527622"}, +{"created":"20221202225934313","text":"\u003C\u003CMediaWiki Wikipedia en 1>>\n\nIt is truly one of the best places to gain general culture from. For anything that is not found on the [[OcttKB]], you should visit Wikipedia!","tags":"i18n:en Internet","title":"Wikipedia:en","modified":"20230113095348086"}, +{"created":"20230112115019993","text":"\u003C\u003CMediaWiki \"Help:Wikitext\" en 1>>\n\n!!! ''MediaWiki's vs TiddlyWiki's Wikitext''\n\n''Documentation'': [[Wikipedia's|https://en.m.wikipedia.org/wiki/Help:Wikitext]] | [[TiddlyWiki's|https://tiddlywiki.com/#WikiText]]\n\n!!!! ''Equalities''\n\n* ''Unordered and Ordered Lists''\n\n!!!! ''Differences''\n\n||''MediaWiki''|''TiddlyWiki''|\n|''Headings''|`=== Heading 3 ===`|`!!! Heading 3`|\n|''Bold''|||","tags":"i18n:en TODO","title":"Wikitext:en","modified":"20230113103619873"}, {"created":"20220920144224759","text":"!! Multi-Screen Fixes\n\n!!! LG Flatron W1943SS (R) + TV Toshiba (L)\n\n```sh\nxrandr --output DVI-D-0 --addmode DVI-D-0 1920x1080\nxrandr --output DVI-D-0 --mode 1920x1080 -r 60.00\nxrandr --output DVI-D-0 --left-of HDMI-A-0\n```","tags":"Snippets i18n:en","title":"X11/Snippets","modified":"20221105125617281"}, {"created":"20230109104559438","text":"\u003C\u003CMediaWiki YouTube en 1>>","tags":"i18n:en Internet TODO","title":"YouTube:en","modified":"20230111153728680"} ]