From 2cdae5375c3cc7524597b761107eaa932890786b Mon Sep 17 00:00:00 2001 From: kebi <49175327+kebifurai@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:28:49 +0900 Subject: [PATCH] v1.2 --- index.html | 132 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 76 insertions(+), 56 deletions(-) diff --git a/index.html b/index.html index 375b7fc..03f9700 100644 --- a/index.html +++ b/index.html @@ -290,7 +290,15 @@
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
hide
[[Tiddly Research]]
no
{ "tiddlers": { "$:/plugins/danielo515/ContextPlugin/Stylesheet/results": { @@ -10345,15 +10353,15 @@ "text": "!Usage\n\nAfter installing the plugin you will have a new tab in [[$:/AdvancedSearch]] called [[Context Search]]. If you want this functionality in other places you will have to edit the desired tiddler yourself adding the ''context widget''. For more details about using the widget see the section below.\n\n!!Using the widget\n\nThe very basic usage of the widget is the following:\n\n```\r\n<$context term=\"lorem\"/>\r\n```\r\nWhich will render as:\r\n<$context term=\"lorem\"/>\n\nThe widgets will search inside the current tiddler by default. Because that you see the same content twice here. This example is not very useful. Other more meaningful would be:\n\n```\r\n<$list filter=\"[search{$:/temp/advancedsearch}sort[title]limit[250]]\">\r\n{{!!title||$:/core/ui/ListItemTemplate}}\r\n<$context term={{$:/temp/advancedsearch}}/>\r\n</$list>\r\n```\n\nThat will search for tiddlers containing the text specified in [[$:/temp/advancedsearch]] and will display a link to the matching tiddlers plus a preview of the matching content. Something very similar is used in [[Context Search]]. Below you can find a complete list of parameters and their default values.\n\n|! parameter |! description | !default |\r\n| term | The term you want to search ||\r\n| searchTerm | An alias for the previous one ||\r\n| tiddler | The tiddler's name to look into | current tiddler |\r\n| length | Number of context characters to show | 50 |\r\n| before | Number of characters before the matched term to show | the value of the length parameter |\r\n| after | Number of characters after the matched term to show | the value of the length parameter |\r\n| maxMatches | maximun number of matched elements to show. Incrementing this can cause several performance issues | 10 |\r\n| element | Node element to create. This element will contain the results of the search. If you want to style it its class is `tw-context` | `<pre>` |\r\n| matchClass | The css class to assign to the matched terms in the results. This is used to highlight the results | matched |\n\n!Customizing the output\r\nThere are not many ways to customize the output of this widget. You can specify ''what type of node you want to create'' to wrap the results (div,span...). The default is `<pre>`. This container is created with the class `tw-context` so you can easily apply styles to it. Something similar happens to the ''highlighted'' words. You can specify the name of the class to assign to it and also you can apply styles to that class.\n\nA very basic example of customization could be:\n\n# Create a tiddler, for example [[$/plugins/danielo515/context/css]]\r\n# Paste the following text or any css rule you want: \"\"\"\n\n<pre>\r\n.matched{background-color:yellow}\r\n.tw-context {\r\n border:1px solid blue;\r\n word-break: break-all; word-wrap: break-word;}\r\n</pre>\r\n\"\"\"\r\n# Tag it with `$:/tags/stylesheet`\r\n# Save the tiddler" }, "$:/plugins/danielo515/ContextPlugin/widgets/context.js": { - "text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function() {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var contextWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n\n /*\n Inherit from the base widget class\n */\n contextWidget.prototype = new Widget();\n\n /*\n Render this widget into the DOM\n */\n contextWidget.prototype.render = function(parent, nextSibling) {\n // Save the parent dom node\n this.parentDomNode = parent;\n // Compute our attributes\n this.computeAttributes();\n // Execute our logic\n this.execute();\n\n if (this.term) {\n this.createRegexp();\n var matches = this.executeRegexp();\n if (matches.length > 0) {\n this.domNode = this.document.createElement(this.element);\n this.domNode.className = \"tw-context\";\n this.composeResults(matches); //this appends to domNode \n // Insert element\n parent.insertBefore(this.domNode, nextSibling);\n this.renderChildren(this.domNode, null);\n this.domNodes.push(this.domNode);\n }\n }\n\n };\n\n /*\n Compute the internal state of the widget\n */\n contextWidget.prototype.execute = function() {\n // Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\", \"matched\");\n this.tiddler = this.getAttribute(\"tiddler\", this.getVariable(\"currentTiddler\"));\n this.term = this.getAttribute(\"term\", this.getAttribute(\"searchTerm\"));\n this.contextLength = this.getAttribute(\"length\", 50);\n this.before = this.getAttribute(\"before\", this.contextLength);\n this.after = this.getAttribute(\"after\", this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\", 10);\n this.element = this.getAttribute(\"element\", \"pre\");\n this.makeChildWidgets();\n };\n\n /*Create the regular expression*/\n contextWidget.prototype.createRegexp = function() {\n /* removed \\\\w+ for asian languages */\n var regString = \"([\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#})?\";\n var regString = regString.replace(\"#before#\", this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term)).replace(\"#after#\", this.after);\n this.regexp = new RegExp(regString, \"ig\");\n //console.log(regString);\n };\n /*\n execute the regular expresion\n */\n contextWidget.prototype.executeRegexp = function() {\n var text = this.wiki.getTiddlerText(this.tiddler),\n match, results = new Array();\n while ((match = this.regexp.exec(text)) && (results.length < this.maxMatches)) {\n results.push(match)\n }\n console.log(\"matches\", results);\n return results;\n };\n\n /*\n compose the results\n matches : array of match objects from regular expression execute\n */\n contextWidget.prototype.composeResults = function(matches) {\n var result = [],\n self = this,\n node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode(this.term);\n\n for (var i = 0; i < matches.length; i++) {\n processMatch(matches[i]);\n }\n\n function processMatch(match) {\n if (match.index !== 0) node.appendChild(dots.cloneNode(true));\n for (var i = 1; i < match.length; i++) { //match[0] full matched text (all groups together)\n if (match[i]) {\n if (match[i].toLowerCase() == self.term.toLowerCase())\n node.appendChild(match[i] == self.term ? span.cloneNode(true) : matchedNode(match[i]))\n else\n node.appendChild(textNode(match[i]))\n }\n }\n if (match.index + match[0].length < match.input.length) node.appendChild(dots.cloneNode(true));\n }\n\n function textNode(text) {\n return self.document.createTextNode(text)\n }\n\n function matchedNode(text) {\n var node = self.document.createElement(\"span\");\n node.appendChild(textNode(text));\n node.className = self.matchedClass;\n return node;\n }\n\n };\n /*\n Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n */\n contextWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n if (changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n this.refreshSelf();\n return true;\n }\n return this.refreshChildren(changedTiddlers);\n };\n\n exports.context = contextWidget;\n\n})();", + "created": "20140418153435777", + "text": "/*\\\\\ntitle: $:/core/modules/widgets/danielo/context-widget.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function() {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var contextWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n\n /*\n Inherit from the base widget class\n */\n contextWidget.prototype = new Widget();\n\n /*\n Render this widget into the DOM\n */\n contextWidget.prototype.render = function(parent, nextSibling) {\n // Save the parent dom node\n this.parentDomNode = parent;\n // Compute our attributes\n this.computeAttributes();\n // Execute our logic\n this.execute();\n\n if (this.term) {\n this.createRegexp();\n var matches = this.executeRegexp();\n if (matches.length > 0) {\n this.domNode = this.document.createElement(this.element);\n this.domNode.className = \"tw-context\";\n this.composeResults(matches); //this appends to domNode \n // Insert element\n parent.insertBefore(this.domNode, nextSibling);\n this.renderChildren(this.domNode, null);\n this.domNodes.push(this.domNode);\n }\n }\n\n };\n\n /*\n Compute the internal state of the widget\n */\n contextWidget.prototype.execute = function() {\n // Get the parameters from the attributes\n this.matchedClass = this.getAttribute(\"matchClass\", \"matched\");\n this.tiddler = this.getAttribute(\"tiddler\", this.getVariable(\"currentTiddler\"));\n this.term = this.getAttribute(\"term\", this.getAttribute(\"searchTerm\"));\n this.contextLength = this.getAttribute(\"length\", 50);\n this.before = this.getAttribute(\"before\", this.contextLength);\n this.after = this.getAttribute(\"after\", this.contextLength);\n this.maxMatches = this.getAttribute(\"maxMatches\", 10);\n this.element = this.getAttribute(\"element\", \"pre\");\n this.makeChildWidgets();\n };\n\n /*Create the regular expression*/\n contextWidget.prototype.createRegexp = function() {\n /* removed \\\\w+ for asian languages */\n var regString = \"([\\\\s\\\\S]{0,#before#})?(#term#)([\\\\s\\\\S]{0,#after#})?\";\n var regString = regString.replace(\"#before#\", this.before).replace(\"#term#\", $tw.utils.escapeRegExp(this.term)).replace(\"#after#\", this.after);\n this.regexp = new RegExp(regString, \"ig\");\n //console.log(regString);\n };\n /*\n execute the regular expresion\n */\n contextWidget.prototype.executeRegexp = function() {\n var text = this.wiki.getTiddlerText(this.tiddler),\n match, results = new Array();\n while ((match = this.regexp.exec(text)) && (results.length < this.maxMatches)) {\n results.push(match)\n }\n //console.log(\"matches\", results);\n return results;\n };\n\n /*\n compose the results\n matches : array of match objects from regular expression execute\n */\n contextWidget.prototype.composeResults = function(matches) {\n var result = [],\n self = this,\n node = this.domNode,\n dots = textNode(\"...\\n\"),\n span = matchedNode(this.term);\n\n for (var i = 0; i < matches.length; i++) {\n processMatch(matches[i]);\n }\n\n function processMatch(match) {\n if (match.index !== 0) node.appendChild(dots.cloneNode(true));\n for (var i = 1; i < match.length; i++) { //match[0] full matched text (all groups together)\n if (match[i]) {\n if (match[i].toLowerCase() == self.term.toLowerCase())\n node.appendChild(match[i] == self.term ? span.cloneNode(true) : matchedNode(match[i]))\n else\n node.appendChild(textNode(match[i]))\n }\n }\n if (match.index + match[0].length < match.input.length) node.appendChild(dots.cloneNode(true));\n }\n\n function textNode(text) {\n return self.document.createTextNode(text)\n }\n\n function matchedNode(text) {\n var node = self.document.createElement(\"span\");\n node.appendChild(textNode(text));\n node.className = self.matchedClass;\n return node;\n }\n\n };\n /*\n Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n */\n contextWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n if (changedAttributes.tiddler || changedAttributes.term || changedAttributes.length || changedAttributes.matchedClass) {\n this.refreshSelf();\n return true;\n }\n return this.refreshChildren(changedTiddlers);\n };\n\n exports.context = contextWidget;\n\n})();", "type": "application/javascript", "title": "$:/plugins/danielo515/ContextPlugin/widgets/context.js", "tags": "tiddlyresearch", "module-type": "widget", "modifier": "danielo", - "modified": "20200913121708764", - "creator": "danielo", - "created": "20140418153435777" + "modified": "20200914102601389", + "creator": "danielo" }, "$:/plugins/danielo515/ContextPlugin/visualizer": { "text": "\\define search-text()\n$(pattern)$(?i)\n\\end\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results search-title\">\n<$set name=\"pattern\" value={{$:/temp/advancedsearch}}>\n<$list filter=\"[regexp:title<search-text>limit[250]] -[is[system]] -[all[shadows]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n</$list>\n</$set>\n</div>\n</$reveal>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<div class=\"tw-search-results search-node\">\n<$set name=\"pattern\" value={{$:/temp/advancedsearch}}>\n<$list filter=\"[regexp:text<search-text>!sort[created]limit[250]] -[is[system]] -[all[shadows]] -[is[image]]\">\n{{!!title||$:/core/ui/ListItemTemplate}}\n<$context term=<<pattern>>/>\n</$list>\n</$set>\n</div>\n</$reveal>", @@ -11459,7 +11467,7 @@ } }
{ "tiddlers": { "$:/plugins/kebi/tiddlyresearch-references/macros": { @@ -11478,10 +11486,10 @@ }, "$:/plugins/kebi/tiddlyresearch-references/css": { "created": "20200827004041319", - "text": "/* FOOTER */\n.footer {\n\tdisplay: -webkit-box;\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-ms-flex-wrap: wrap;\n\tflex-wrap: wrap;\n\tpadding: 0;\n}\n\n/* FILTER TAG */\n.filtertag {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: <<colour tag-background>>;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertag:hover {\n\topacity: 0.8;\n}\n.filtertag a,\n.filtertag a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #444444 !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TITLE */\n.filtertitle{\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #ff6363;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertitle:hover {\n\topacity: 0.8;\n}\n.filtertitle a,\n.filtertitle a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #ffffff !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER BACKLINK */\n.filterbacklink {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #137CBD;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filterbacklink:hover {\n\topacity: 0.8;\n}\n.filterbacklink a,\n.filterbacklink a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #ffffff !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TRANSCLUDE */\n.filtertransclude {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #eaeaea;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertransclude:hover {\n\topacity: 0.8;\n}\n.filtertransclude a,\n.filtertransclude a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #444444 !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TEXT */\n.filtertext {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: rgba(92, 112, 128, 0.9);\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertext:hover {\n\topacity: 0.8;\n}\n.filtertext a,\n.filtertext a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #f5f8fa !important;\n\tborder: none;\n\tpadding: 0;\n}", + "text": "/* FOOTER */\n.footer {\n\tdisplay: -webkit-box;\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-ms-flex-wrap: wrap;\n\tflex-wrap: wrap;\n\tpadding: 0;\n}\n\n/* FILTER TRANSCLUDE */\n.filtertransclude {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #eaeaea;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertransclude:hover {\n\topacity: 0.8;\n}\n.filtertransclude a,\n.filtertransclude a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #444444 !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TAG */\n.filtertag {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: <<colour tag-background>>;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertag:hover {\n\topacity: 0.8;\n}\n.filtertag a,\n.filtertag a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #444444 !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER BACKLINK */\n.filterbacklink {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #137CBD;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filterbacklink:hover {\n\topacity: 0.8;\n}\n.filterbacklink a,\n.filterbacklink a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #ffffff !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TITLE */\n.filtertitle{\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: #E8554E;\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertitle:hover {\n\topacity: 0.8;\n}\n.filtertitle a,\n.filtertitle a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #ffffff !important;\n\tborder: none;\n\tpadding: 0;\n}\n\n/* FILTER TEXT */\n.filtertext {\n\tdisplay: -webkit-inline-box;\n\tdisplay: -ms-inline-flexbox;\n\tdisplay: inline-flex;\n\t-webkit-box-orient: horizontal;\n\t-webkit-box-direction: normal;\n\t-ms-flex-direction: row;\n\tflex-direction: row;\n\t-webkit-box-align: center;\n\t-ms-flex-align: center;\n\talign-items: center;\n\tposition: relative;\n\tborder: none;\n\tborder-radius: 3px;\n\t-webkit-box-shadow: none;\n\tbox-shadow: none;\n\tbackground-color: rgba(92, 112, 128, 0.9);\n\tmin-width: 20px;\n\tmax-width: 100%;\n\tmin-height: 20px;\n\tline-height: 16px;\n\tfont-size: 12px;\n\tmargin: 2px;\n\tpadding: 2px 6px;\n}\n.filtertext:hover {\n\topacity: 0.8;\n}\n.filtertext a,\n.filtertext a:hover {\n\topacity: 1 !important;\n\ttext-decoration: none !important;\n\tline-height: unset;\n\tbackground-color: unset;\n\tcolor: #f5f8fa !important;\n\tborder: none;\n\tpadding: 0;\n}", "title": "$:/plugins/kebi/tiddlyresearch-references/css", "tags": "$:/tags/Stylesheet", - "modified": "20200913085326192" + "modified": "20200914111911019" } } }@@ -13472,25 +13480,37 @@ } }
no
$:/plugins/kebi/tiddlyresearch-sidebar/folders+
show+
hide+
hide+
hide+
hide
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/Toolbars/EditToolbar
no