diff --git a/TWWiki.html b/TWWiki.html
index a1edab9..2d3a227 100644
--- a/TWWiki.html
+++ b/TWWiki.html
@@ -1274,6 +1274,8 @@
$:/state/tab-1115053536
+$:/state/tab-1125109324
+
$:/state/tab-1131355378
$:/state/tab-1132867236
@@ -3692,7 +3694,7 @@
{"created":"20220506124332217","creator":"Takoyaki Umaaaaaa","text":"\\define dumpvariables()\n\u003C$set name=\"tv-show-missing-links\" value=\"no\">\n\u003Ctable style=\"font-size: small; line-height: 1.2em; word-break: break-all; overflow-wrap: anywhere; word-wrap: break-word; white-space: pre-line;\">\u003Ctbody>\n\u003Ctr>\n\t\u003Cth>変数名\u003C/th>\n\t\u003Cth><<変数名>>\u003C/th>\n\t\u003Cth>[<変数名>getvariable[]]\u003C/th>\n\u003C/tr>\n\u003C$list filter=\"[variables[]]\" variable=\"varname\">\n\u003C$set name=\"text-color\" filter=\"[\u003Cvarname>search:title:regexp[(storyTiddler|transclusion)]then[true]]\" \n value=\"min-width: 5em; color: #d33682;\" emptyValue=\"min-width: 5em;\" >\n\u003Ctr>\n\t\u003Ctd style=\u003C\u003Ctext-color>> >\u003C$text text=\u003C\u003Cvarname>>/>\u003C/td>\n\t\u003Ctd style=\"min-width: 5em;\">\u003C\u003Cvarname>>\u003C/td>\n\t\u003Ctd>\u003Cspan style=\"margin: 0; padding: 0; border: none; background-color: transparent; font-size: smaller; line-height: 1.2em; word-break: break-all; overflow-wrap: anywhere; word-wrap: break-word; white-space: pre-line;\">{{{ [\u003Cvarname>getvariable[]] }}}\u003C/span>\u003C/td>\n\u003C/tr>\n\u003C/$set>\n\u003C/$list>\n\u003C/tbody>\u003C/table>\n\u003C/$set>\n\\end\n","title":"$:/core/macros/dumpvariables","tags":"$:/tags/Macro","modified":"20220531115809178","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220423110722835","creator":"Takoyaki Umaaaaaa","text":"\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() \u003C$action-deletetiddler $filter=\"[\u003CnewTagNameTiddler>] [\u003CstoreTitle>] [\u003CtagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n\u003C$set name=\"tag\" value={{{ [\u003C__tiddler__>get[text]] }}}>\n\u003C$list filter=\"[\u003CsaveTiddler>!contains:$tagField$\u003Ctag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n\u003C$action-listops $tiddler=\u003C\u003CsaveTiddler>> $field=\u003C\u003C__tagField__>> $subfilter=\"-[\u003Ctag>]\"/>\n\"\"\">\n\u003C$action-listops $tiddler=\u003C\u003CsaveTiddler>> $field=\u003C\u003C__tagField__>> $subfilter=\"[\u003Ctag>]\"/>\n$actions$\n\u003C/$list>\n\u003C/$set>\n\u003C\u003Cdelete-tag-state-tiddlers>>\n\u003C$action-setfield $tiddler=\u003C\u003CrefreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n\u003C$list filter=\"[\u003CstoreTitle>has[text]] [\u003CnewTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\u003C\u003Ccancel-delete-tiddler-actions \"cancel\">>\"\"\">\n\u003C\u003Cdelete-tag-state-tiddlers>>\n\u003C/$list>\n\\end\n\n\\define clear-tags-actions()\n\u003C$set name=\"userInput\" value={{{ [\u003CstoreTitle>get[text]] }}}>\n\u003C$list filter=\"[\u003CnewTagNameTiddler>get[text]!match\u003CuserInput>]\" emptyMessage=\"\"\"\u003C\u003Cclear-tags-actions-inner>>\"\"\">\n\u003C$action-setfield $tiddler=\u003C\u003CnewTagNameTiddler>> text=\u003C\u003CuserInput>>/>\u003C$action-setfield $tiddler=\u003C\u003CrefreshTitle>> text=\"yes\"/>\n\u003C/$list>\n\u003C/$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n\u003C$vars newTagNameInputTiddlerQualified=\u003C\u003Cqualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=\u003C\u003Cqualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n\u003C$vars storeTitle={{{ [\u003CnewTagNameInputTiddler>!match[]] ~[\u003CnewTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [\u003CnewTagNameSelectionTiddler>!match[]] ~[\u003CnewTagNameSelectionTiddlerQualified>] }}}>\n\u003C$vars refreshTitle=\u003C\u003Cqualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title\u003CuserInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title\u003CuserInput>sort[]]\">\n\u003Cdiv class=\"tc-edit-add-tag\">\n\u003Cdiv>\n\u003Cspan class=\"tc-add-tag-name tc-small-gap-right\">\n\u003C$macrocall $name=\"keyboard-driven-input\" tiddler=\u003C\u003CnewTagNameTiddler>> storeTitle=\u003C\u003CstoreTitle>> refreshTitle=\u003C\u003CrefreshTitle>>\n\t\tselectionStateTitle=\u003C\u003CtagSelectionState>> inputAcceptActions=\"\"\"\u003C$macrocall $name=\"add-tag-actions\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>>/>\"\"\"\n\t\tinputCancelActions=\u003C\u003Cclear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=\u003C\u003Cqualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=\u003C\u003CtabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=\u003C\u003CcancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n\u003C/span>\u003C$button popup=\u003C\u003Cqualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}\u003C/$button>\u003C$reveal state=\u003C\u003CstoreTitle>> type=\"nomatch\" text=\"\">\u003C$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}\u003C\u003Cdelete-tag-state-tiddlers>>\u003C/$button>\u003C/$reveal>\u003Cspan class=\"tc-add-tag-button tc-small-gap-left\">\n\u003C$set name=\"tag\" value={{{ [\u003CnewTagNameTiddler>get[text]] }}}>\n\u003C$button set=\u003C\u003CnewTagNameTiddler>> setTo=\"\" class=\"\">\n\u003C$action-listops $tiddler=\u003C\u003CsaveTiddler>> $field=\u003C\u003C__tagField__>> $subfilter=\"[\u003Ctag>]\"/>\n$actions$\n\u003C$set name=\"currentTiddlerCSSEscaped\" value={{{ [\u003CsaveTiddler>escapecss[]] }}}>\n\u003C\u003Cdelete-tag-state-tiddlers>>\u003C$action-sendmessage $message=\"tm-focus-selector\" $param=\u003C\u003Cget-tagpicker-focus-selector>>/>\n\u003C/$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n\u003C/$button>\n\u003C/$set>\n\u003C/span>\n\u003C/div>\n\u003Cdiv class=\"tc-block-dropdown-wrapper\">\n\u003C$reveal state=\u003C\u003Cqualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n\u003Cdiv class=\"tc-block-dropdown tc-block-tags-dropdown\">\n\u003C$set name=\"userInput\" value={{{ [\u003CstoreTitle>get[text]] }}}>\n\u003C$list filter=\"[\u003CuserInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"\u003Cdiv class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}\u003C/div>\"\"\" variable=\"listItem\">\n\u003C$list filter=\u003C\u003CnonSystemTagsFilter>> variable=\"tag\">\n\u003C$list filter=\"[\u003Ctag>addsuffix[-primaryList]] -[\u003CtagSelectionState>get[text]]\" emptyMessage=\"\"\"\u003C$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>> currentTiddler=\u003C\u003Ctag>>>{{||$:/core/ui/TagPickerTagTemplate}}\u003C/$vars>\"\"\">\n\u003C$vars button-classes=\"tc-btn-invisible\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>> currentTiddler=\u003C\u003Ctag>>>{{||$:/core/ui/TagPickerTagTemplate}}\u003C/$vars>\n\u003C/$list>\n\u003C/$list>\u003C/$list>\n\u003Chr class=\"hr-text\" data-content=\"\">\n\u003C$list filter=\"[\u003CuserInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"\u003Cdiv class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}\u003C/div>\"\"\" variable=\"listItem\">\n\u003C$list filter=\u003C\u003CsystemTagsFilter>> variable=\"tag\">\n\u003C$list filter=\"[\u003Ctag>addsuffix[-secondaryList]] -[\u003CtagSelectionState>get[text]]\" emptyMessage=\"\"\"\u003C$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>> currentTiddler=\u003C\u003Ctag>>>{{||$:/core/ui/TagPickerTagTemplate}}\u003C/$vars>\"\"\">\n\u003C$vars button-classes=\"tc-btn-invisible\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>> currentTiddler=\u003C\u003Ctag>>>{{||$:/core/ui/TagPickerTagTemplate}}\u003C/$vars>\n\u003C/$list>\n\u003C/$list>\u003C/$list>\n\u003C/$set>\n\u003C/div>\n\u003C/$reveal>\n\u003C/div>\n\u003C/div>\n\u003C/$vars>\n\u003C/$vars>\n\u003C/$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n\u003C$vars saveTiddler=\u003C\u003CcurrentTiddler>> palette={{$:/palette}}>\n\u003C$list filter=\"[\u003CnewTagNameTiddler>match[]]\" emptyMessage=\"\"\"\u003C$macrocall $name=\"tag-picker-inner\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>>/>\"\"\">\n\u003C$set name=\"newTagNameTiddler\" value=\u003C\u003Cqualify \"$:/temp/NewTagName\">>>\n\u003C$macrocall $name=\"tag-picker-inner\" actions=\u003C\u003C__actions__>> tagField=\u003C\u003C__tagField__>>/>\n\u003C/$set>\n\u003C/$list>\n\u003C/$vars>\n\\end\n","title":"$:/core/macros/tag-picker","tags":"$:/tags/Macro","first-search-filter":"[tags[]!is[system]search:title\u003CuserInput>sort[]]","second-search-filter":"[tags[]is[system]search:title\u003CuserInput>sort[]]","modified":"20220423112547473","modifier":"Takoyaki Umaaaaaa"},
{"created":"20141212105914482","creator":"Takoyaki Umaaaaaa","text":"\\define timeline-title()\n\\whitespace trim\n\u003C$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n\u003Cdiv class=\"tc-timeline\">\u003C!-- timeline全体領域 -->\n\u003C$list filter=\"[$subfilter$has[$dateField$]!prefix[$:/temp/]!prefix[$:/config/]!prefix[$:/state/]!title[$:/HistoryList]!title[$:/StoryList]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n\u003Cdiv class=\"tc-menu-list-item\">\u003C!-- 日単位領域 -->\n\u003Cspan class=\"tc-date-item\">\u003C$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\u003C/span>\n\u003C$list filter=\"[sameday:$dateField${!!$dateField$}$subfilter$!prefix[$:/temp/]!prefix[$:/config/]!prefix[$:/state/]!title[$:/HistoryList]!title[$:/StoryList]!sort[$dateField$]]\">\n\u003Cdiv class=\"tc-menu-list-subitem\">\u003C!-- tiddler単位 -->\n\u003Cspan class=\"tc-subitem-space\" style=\"display: inline-block; width: 15px;\">\u003C!-- 余白領域 -->\u003C/span>\u003C$link to={{!!title}}>\u003C\u003Ctimeline-title>>\u003C/$link>\n\u003C/div>\n\u003C/$list>\n\u003C/div>\n\u003C/$list>\n\u003C/div>\n\\end\n","title":"$:/core/macros/timeline","modified":"20220709024131759","tags":"$:/tags/Macro timeline","modifier":"Takoyaki Umaaaaaa"},
-{"created":"20220505084147696","creator":"Takoyaki Umaaaaaa","text":"/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// ---------------------------------------------\n//ChangeEditFont-CreateLoadElements( this );\n/*\n\tlet linktag = this.iframeDoc.createElement(\"link\");\n\tlinktag.href = \"花鳥風月.css\";\n\tlinktag.rel = \"stylesheet\";\n\tlinktag.type = \"text/css\";\n\tthis.iframeDoc.head.appendChild( linktag );\n\n\tlet linktag2 = this.iframeDoc.createElement(\"link\");\n\tlinktag2.href = \"https://fonts.googleapis.com/css2?family=Farsan&family=Nanum+Gothic+Coding&display=swap\";\n\tlinktag2.rel = \"stylesheet\";\n\tlinktag2.type = \"text/css\";\n\tthis.iframeDoc.head.appendChild( linktag2 );\n\n\tlet styletag = this.iframeDoc.createElement(\"style\");\n\tstyletag.textContent = \"::selection { color: inherit; background-color: #0098CB30; }\";\n\tthis.iframeDoc.head.appendChild( styletag );\n*/\n\t// ---------------------------------------------\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Add drag and drop event listeners if fileDrop is enabled\n\tif(this.widget.isFileDropEnabled) {\n\t\t$tw.utils.addEventListeners(this.domNode,[\n\t\t\t{name: \"dragenter\",handlerObject: this.widget,handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\",handlerObject: this.widget,handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\",handlerObject: this.widget,handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"dragend\",handlerObject: this.widget,handlerMethod: \"handleDragEndEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this.widget,handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this.widget,handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"click\",handlerObject: this.widget,handlerMethod: \"handleClickEvent\"}\n\t\t]);\n\t}\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n\t// --------------------------------\n\tthis.domNode.style[\"background-color\"] = \"#FCF9F0\";\n\t// --------------------------------\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\ttry {\n\t\tthis.domNode.value = text;\n\t} catch(e) {\n\t\t// Ignore\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions,this,event,{actionValue: this.getText()});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n","title":"$:/core/modules/editor/engines/framed.js","type":"application/javascript","module-type":"library","modified":"20220614134559732","modifier":"Takoyaki Umaaaaaa","tags":"ChangeEditFont"},
+{"created":"20220505084147696","creator":"Takoyaki Umaaaaaa","text":"/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// ---------------------------------------------\n//ChangeEditFont-CreateLoadElements( this );\n\n\tlet linktag = this.iframeDoc.createElement(\"link\");\n\tlinktag.href = \"花鳥風月.css\";\n\tlinktag.rel = \"stylesheet\";\n\tlinktag.type = \"text/css\";\n\tthis.iframeDoc.head.appendChild( linktag );\n\n\tlet linktag2 = this.iframeDoc.createElement(\"link\");\n\tlinktag2.href = \"https://fonts.googleapis.com/css2?family=Farsan&family=Nanum+Gothic+Coding&display=swap\";\n\tlinktag2.rel = \"stylesheet\";\n\tlinktag2.type = \"text/css\";\n\tthis.iframeDoc.head.appendChild( linktag2 );\n\n\tlet styletag = this.iframeDoc.createElement(\"style\");\n\tstyletag.textContent = \"::selection { color: inherit; background-color: #0098CB30; }\";\n\tthis.iframeDoc.head.appendChild( styletag );\n\n\t// ---------------------------------------------\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\tif(this.widget.editAutoComplete) {\n\t\tthis.domNode.setAttribute(\"autocomplete\",this.widget.editAutoComplete);\n\t}\n\tif(this.widget.isDisabled === \"yes\") {\n\t\tthis.domNode.setAttribute(\"disabled\",true);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"},\n\t\t{name: \"focus\",handlerObject: this,handlerMethod: \"handleFocusEvent\"}\n\t]);\n\t// Add drag and drop event listeners if fileDrop is enabled\n\tif(this.widget.isFileDropEnabled) {\n\t\t$tw.utils.addEventListeners(this.domNode,[\n\t\t\t{name: \"dragenter\",handlerObject: this.widget,handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\",handlerObject: this.widget,handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\",handlerObject: this.widget,handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"dragend\",handlerObject: this.widget,handlerMethod: \"handleDragEndEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this.widget,handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this.widget,handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"click\",handlerObject: this.widget,handlerMethod: \"handleClickEvent\"}\n\t\t]);\n\t}\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n\t// --------------------------------\n\tthis.domNode.style[\"background-color\"] = \"#FCF9F0\";\n\t// --------------------------------\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.updateDomNodeText(text);\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nUpdate the DomNode with the new text\n*/\nFramedEngine.prototype.updateDomNodeText = function(text) {\n\ttry {\n\t\tthis.domNode.value = text;\n\t} catch(e) {\n\t\t// Ignore\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a focus event\n*/\nFramedEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editCancelPopups) {\n\t\t$tw.popup.cancel(0);\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\tif(this.widget.editInputActions) {\n\t\tthis.widget.invokeActionString(this.widget.editInputActions,this,event,{actionValue: this.getText()});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n","title":"$:/core/modules/editor/engines/framed.js","type":"application/javascript","module-type":"library","modified":"20221113051457543","modifier":"Takoyaki Umaaaaaa","tags":"ChangeEditFont"},
{"created":"20220528111049597","creator":"Takoyaki Umaaaaaa","text":"/*\\\ntitle: $:/core/modules/macros/convhex2rgb.js\ntype: application/javascript\nmodule-type: macro\n\n\u003C\u003Cconvhex2rgb #112233>>\n\n16進数color表現を cssの rgb function形式に変換する。\nversion.jsをコピーして作成。コメント部分が必要なのか、正直分かっていない。\n⚠注意:inputは #RRGGBB 形式のみ。 #RGB や #RRGGBBAA は変換できません。\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"convhex2rgb\";\n\nexports.params = [\n\t{name: \"colorhex\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(colorhex) {\n\t// 16進数部分を抽出\n\tlet startpos = colorhex.indexOf( '#' );\n\tif( -1 === startpos )\tstartpos = 0;\n\telse\t\t\t\t\tstartpos++;\n\tlet hex = parseInt( colorhex.substr( startpos ), 16);\n\n\t// Javascriptは除算で小数点以下を返すので floorを使用\n\t// 受ける側の型を指定できないからだよね・・・\n\tlet bb = hex % 0x100;\n\tlet rrgg = Math.floor( hex / 0x100 );\n\tlet gg = rrgg % 0x100;\n\tlet rr = Math.floor( rrgg / 0x100 );\n\n\tlet strcolor = rr.toString(10) + \", \" + gg.toString(10) + \", \" + bb.toString(10);\n\t\n\treturn strcolor;\n};\n\n})();\n","title":"$:/core/modules/macros/convhex2rgb.js","type":"application/javascript","module-type":"macro","tags":"Glassmorphism","modified":"20220528141423342","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220503163036475","creator":"Takoyaki Umaaaaaa","text":"\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") \u003C$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"\u003C$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=\u003C\u003CnextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() \u003C$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"\u003C$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\">\u003C$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/>\u003C$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\u003C/$list>\n\n\\define input-accept-actions() \u003C$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"\u003C$list filter=\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\">\u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\u003C/$list>\"\"\">\u003C$action-navigate $to={{{ [\u003C__tiddler__>get[text]] }}}/>\u003C/$list>\n\n\\define input-accept-variant-actions() \u003C$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"\u003C$list filter=\"[\u003C__tiddler__>get[text]!is[missing]] ~[\u003C__tiddler__>get[text]is[shadow]]\">\u003C$list filter=\"[\u003C__tiddler__>get[text]minlength[1]]\">\u003C$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [\u003C__tiddler__>get[text]] }}}/>\u003C/$list>\u003C/$list>\"\"\">\u003C$list filter=\"[\u003C__tiddler__>get[text]minlength[1]]\">\u003C$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [\u003C__tiddler__>get[text]] }}}/>\u003C/$list>\u003C/$list>\n\n\u003C\u003Clingo Filter/Hint>>\u003Cbr>\n^^※ Filter list は[[こちら|$:/tags/Filter]]^^\n\n\u003C$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\u003Cdiv class=\"tc-search tc-advanced-search\">\n\u003C$keyboard key=\"((input-tab-right))\" actions=\u003C\u003Cset-next-input-tab>>>\n\u003C$keyboard key=\"((input-tab-left))\" actions=\u003C\u003Cset-next-input-tab \"before\">>>\n\u003C$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=\u003C\u003Cinput-accept-actions>> inputAcceptVariantActions=\u003C\u003Cinput-accept-variant-actions>> \n\t\tinputCancelActions=\u003C\u003Ccancel-search-actions>>/>\n\u003C/$keyboard>\n\u003C/$keyboard>\n\u003C$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\">\u003C$transclude/>\u003C/$list>\n\u003C/div>\n\n\u003C$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\u003C$set name=\"resultCount\" value=\"\"\"\u003C$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n\u003Cdiv class=\"tc-search-results\">\n\u003C\u003Clingo Filter/Matches>>\n\u003C$list filter={{$:/temp/advancedsearch}}>\n\u003Cspan class={{{[\u003CcurrentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n\u003C$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n\u003C/span>\n\u003C/$list>\n\u003C/div>\n\u003C/$set>\n\u003C/$reveal>\n\u003C/$set>\n","title":"$:/core/ui/AdvancedSearch/Filter","tags":"$:/tags/AdvancedSearch","caption":"{{$:/language/Search/Filter/Caption}}","modified":"20220506075113113","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220429063503058","creator":"Takoyaki Umaaaaaa","text":"\\whitespace trim\n\u003C$button message=\"tm-close-all-tiddlers\" data-handtooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=\u003C\u003Ctv-config-toolbar-class>>>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n\u003C/$list>\n\u003C$list filter=\"[\u003Ctv-config-toolbar-text>match[yes]]\">\n\u003Cspan class=\"tc-btn-text\">\n\u003C$text text={{$:/language/Buttons/CloseAll/Caption}}/>\n\u003C/span>\n\u003C/$list>\n\u003C/$button>","title":"$:/core/ui/Buttons/close-all","tags":"$:/tags/PageControls","caption":"{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}","description":"{{$:/language/Buttons/CloseAll/Hint}}","modified":"20220429063518391","modifier":"Takoyaki Umaaaaaa"},
@@ -4041,7 +4043,7 @@
{"created":"20220413145221858","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--194372196","text":"$:/core/ui/TiddlerInfo/Tagging","modified":"20220413145221858","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220420232248687","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--1946065536","text":"Tags","modified":"20220504150102316","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220415135106886","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--1959873524","text":"$:/core/ui/TiddlerInfo/Tagging","modified":"20220507115218269","modifier":"Takoyaki Umaaaaaa"},
-{"created":"20220327214759141","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--1963855381","text":"$:/core/ui/ControlPanel/Theme","modified":"20220710100404493","modifier":"Takoyaki Umaaaaaa"},
+{"created":"20220327214759141","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--1963855381","text":"$:/themes/tiddlywiki/vanilla/themetweaks","modified":"20221113051541151","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220423004635640","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--1988034298","text":"Tags","modified":"20220423004635640","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220327222324944","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--2013290908","text":"$:/core/ui/TiddlerInfo/Fields","modified":"20221112190031157","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220429103624407","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab--2018389438","text":"$:/core/ui/TiddlerInfo/Fields","modified":"20220429103627455","modifier":"Takoyaki Umaaaaaa"},
@@ -4131,6 +4133,7 @@
{"created":"20220723164254147","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1104839316","text":"Tags","modified":"20220723164254147","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220424094107266","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1107386090","text":"$:/core/ui/TiddlerInfo/Tagging","modified":"20220424094107266","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220429144921780","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1115053536","text":"Tags","modified":"20220429144921780","modifier":"Takoyaki Umaaaaaa"},
+{"created":"20221113051413066","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1125109324","text":"Tags","modified":"20221113051413066","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220421222804825","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1131355378","text":"Tags","modified":"20220421222804825","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220423151234634","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1132867236","text":"Tags","modified":"20220517113634728","modifier":"Takoyaki Umaaaaaa"},
{"created":"20221113041952013","creator":"Takoyaki Umaaaaaa","title":"$:/state/tab-1137454616","text":"$:/core/ui/TiddlerInfo/Tools","modified":"20221113042000446","modifier":"Takoyaki Umaaaaaa"},
@@ -4519,7 +4522,7 @@
{"created":"20220529071614463","creator":"Takoyaki Umaaaaaa","title":"$:/state/tree/$:/themes/tiddlywiki/vanilla/options/","text":"show","modified":"20220529071614463","modifier":"Takoyaki Umaaaaaa"},
{"title":"$:/status/RequireReloadDueToPluginChange","text":"no"},
{"created":"20220117043138920","title":"$:/status/UserName","text":"Takoyaki Umaaaaaa","modified":"20220117043138920"},
-{"title":"$:/StoryList","created":"20221112105821625","creator":"Takoyaki Umaaaaaa","text":"","list":"$:/AdvancedSearch ☘️FontOption-CSS ChangeEditFont $:/core/modules/editor/engines/framed.js DefineEditFont- FontOption-data [[New Tiddler 2]] font FontOption [[New Tiddler 7]] slideInFrom slideInFrom-CSS Pararaxをやりたい 凡例","modified":"20221113044544339","modifier":"Takoyaki Umaaaaaa"},
+{"created":"20221112105821625","creator":"Takoyaki Umaaaaaa","title":"$:/StoryList","text":"","list":"$:/ControlPanel $:/AdvancedSearch ☘️FontOption-CSS ChangeEditFont $:/core/modules/editor/engines/framed.js FontOption-data [[New Tiddler 2]] font FontOption [[New Tiddler 7]] slideInFrom slideInFrom-CSS Pararaxをやりたい 凡例","modified":"20221113051535358","modifier":"Takoyaki Umaaaaaa"},
{"created":"20220106192619567","creator":"Takoyaki Umaaaaaa","text":"\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n\u003C$link to=\"\">\u003C\u003Clingo Icons/None>>\u003C/$link>\n\u003C$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n\u003C$link to={{!!title}}>\n\u003C$transclude/> \u003C$view field=\"title\"/>\n\u003C/$link>\n\u003C/$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n\u003Cdiv class=\"tc-drop-down-wrapper\">\n\u003C$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix\u003C__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}\u003C/$button>\n\u003C$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix\u003C__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n\u003Cdiv class=\"tc-drop-down\">\n\u003C$linkcatcher actions=\"\"\"\u003C$action-setfield $tiddler=\u003C\u003C__title__>> icon=\u003C\u003CnavigateTo>>/>\"\"\">\n\u003C\u003CiconEditorTab type:\"!\">>\n\u003Chr/>\n\u003C\u003CiconEditorTab type:\"\">>\n\u003C/$linkcatcher>\n\u003C/div>\n\u003C/$reveal>\n\u003C/div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n\u003C$reveal stateTitle=\u003C\u003C__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n\u003C$button setTitle=\u003C\u003C__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n\u003C/$button>\n\u003C/$reveal>\n\u003C$reveal stateTitle=\u003C\u003C__state__>> type=\"match\" text=\"open\" default=\"closed\">\n\u003C$button setTitle=\u003C\u003C__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n\u003C/$button>\n\u003C/$reveal>\n\\end\n\\whitespace trim\n\u003Ctable class=\"tc-tag-manager-table\">\n\u003Ctbody>\n\u003Ctr>\n\u003Cth>\u003C\u003Clingo Colour/Heading>>\u003C/th>\n\u003Cth class=\"tc-tag-manager-tag\">\u003C\u003Clingo Tag/Heading>>\u003C/th>\n\u003Cth>\u003C\u003Clingo Count/Heading>>\u003C/th>\n\u003Cth>\u003C\u003Clingo Icon/Heading>>\u003C/th>\n\u003Cth>\u003C\u003Clingo Info/Heading>>\u003C/th>\n\u003C/tr>\n\u003C$list filter=\"[tags[shadows+tiddlers]is[]sort[title]]\">\n\u003Ctr>\n\u003Ctd>\u003C$edit-text field=\"color\" tag=\"input\" type=\"color\"/>\u003C/td>\n\u003Ctd>{{||$:/core/ui/TagTemplate}}\u003C/td>\n\u003Ctd>\u003C$count filter=\"[all[current]tagging[]]\"/>\u003C/td>\n\u003Ctd>\n\u003C$macrocall $name=\"iconEditor\" title={{!!title}}/>\n\u003C/td>\n\u003Ctd>\n\u003C$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix\u003CcurrentTiddler>] }}} /> \n\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003C/td>\n\u003Ctd colspan=\"4\">\n\u003C$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix\u003CcurrentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n\u003Ctable>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003C\u003Clingo Colour/Heading>>\u003C/td>\u003Ctd>\u003C$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\u003C/td>\u003C/tr>\n\u003Ctr>\u003Ctd>\u003C\u003Clingo Icon/Heading>>\u003C/td>\u003Ctd>\u003C$edit-text field=\"icon\" tag=\"input\" size=\"45\"/>\u003C/td>\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n\u003C/$reveal>\n\u003C/td>\n\u003C/tr>\n\u003C/$list>\n\u003Ctr>\n\u003Ctd>\u003C/td>\n\u003Ctd style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n\u003C/td>\n\u003Ctd>\n\u003Csmall class=\"tc-menu-list-count\">\u003C$count filter=\"[untagged[]!is[system]] -[tags[]]\"/>\u003C/small>\n\u003C/td>\n\u003Ctd>\u003C/td>\n\u003Ctd>\u003C/td>\n\u003C/tr>\n\u003C/tbody>\n\u003C/table>\n","title":"$:/TagManager","icon":"$:/core/images/tag-button","color":"#bbb","modified":"20220626022021986","modifier":"Takoyaki Umaaaaaa","tags":"Tools"},
{"created":"20220212020712364","creator":"Takoyaki Umaaaaaa","text":"; $:/tags/AboveStory tag\n: {{!!description}}","title":"$:/tags/AboveStory","modified":"20220729132833734","modifier":"Takoyaki Umaaaaaa","tags":"","description":"\u003C\u003Chtip m 0 ao {{TiddlyWikiGlossary##StoryRiver}} \"StoryRiver\">>の上端に tiddler内容を表示"},
{"created":"20220604090445616","creator":"Takoyaki Umaaaaaa","title":"$:/tags/AdvancedSearch","list":"$:/core/ui/AdvancedSearch/Standard $:/core/ui/AdvancedSearch/System $:/core/ui/AdvancedSearch/Shadows $:/core/ui/AdvancedSearch/Filter","color":"","modified":"20220718110748143","modifier":"Takoyaki Umaaaaaa"},