mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-26 19:47:20 +00:00
Merge branch 'master' into multi-wiki-support
This commit is contained in:
commit
ad901a9f50
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -5,7 +5,7 @@ on:
|
||||
- master
|
||||
- tiddlywiki-com
|
||||
env:
|
||||
NODE_VERSION: "18"
|
||||
NODE_VERSION: "22"
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -97,7 +97,6 @@ if [ -n "$TW5_BUILD_ARCHIVE" ]; then
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
$TW5_BUILD_MAIN_EDITION \
|
||||
--verbose \
|
||||
--version \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_ARCHIVE \
|
||||
@ -115,7 +114,6 @@ fi
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
$TW5_BUILD_MAIN_EDITION \
|
||||
--verbose \
|
||||
--version \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
@ -128,7 +126,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /tiddlywikicore-<version>.js Core plugin javascript
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/empty \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build empty emptyexternalcore \
|
||||
|| exit 1
|
||||
@ -137,7 +134,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /test.html Test edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/test \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all test.html text/plain \
|
||||
|| exit 1
|
||||
@ -150,7 +146,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /dev/static/static.css Static stylesheet
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/dev \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/dev \
|
||||
--build index favicon static \
|
||||
@ -159,7 +154,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /tour.html tour edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tour \
|
||||
--verbose \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all tour.html text/plain \
|
||||
|| exit 1
|
||||
@ -167,7 +161,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /share.html Custom edition for sharing via the URL
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/share \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build share \
|
||||
@ -176,7 +169,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /upgrade.html Custom edition for performing upgrades
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/upgrade \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build upgrade \
|
||||
@ -185,7 +177,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /encrypted.html Copy of the main file encrypted with the password "password"
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
$TW5_BUILD_MAIN_EDITION \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--build encrypted \
|
||||
@ -201,7 +192,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/xlsx-utils/index.html xlsx-utils edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/xlsx-utils \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/xlsx-utils/ \
|
||||
--build index \
|
||||
@ -210,7 +200,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/resumebuilder/index.html Resume builder edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/resumebuilder \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/resumebuilder/ \
|
||||
--build index \
|
||||
@ -219,7 +208,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/text-slicer/index.html Text slicer edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/text-slicer \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/text-slicer/ \
|
||||
--build index \
|
||||
@ -228,7 +216,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/translators/index.html Translators edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/translators \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/translators/ \
|
||||
--build index \
|
||||
@ -237,7 +224,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/introduction/index.html Introduction edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/introduction \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/introduction/ \
|
||||
--build index \
|
||||
@ -246,7 +232,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/full/index.html Full edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/full \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/full/ \
|
||||
--build index \
|
||||
@ -255,7 +240,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/tw5.com-docs/index.html tiddlywiki.com docs edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tw5.com-docs \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/tw5.com-docs/ \
|
||||
--build index \
|
||||
@ -264,7 +248,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /editions/twitter-archivist/index.html Twitter Archivist edition
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/twitter-archivist \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/editions/twitter-archivist/ \
|
||||
--build index \
|
||||
@ -280,7 +263,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/innerwikidemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/innerwiki/index.html text/plain \
|
||||
@ -291,7 +273,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/dynaviewdemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/dynaview/index.html text/plain \
|
||||
@ -306,7 +287,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/katexdemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/katex/index.html text/plain \
|
||||
@ -317,7 +297,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/tahoelafs/empty.html Empty wiki with Tahoe-LAFS plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/tahoelafs \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/tahoelafs/index.html text/plain \
|
||||
@ -328,7 +307,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/d3/empty.html Empty wiki with D3 plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/d3demo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/d3/index.html text/plain \
|
||||
@ -339,7 +317,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/codemirror/empty.html Empty wiki with codemirror plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/codemirrordemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/codemirror/index.html text/plain \
|
||||
@ -350,7 +327,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/markdown/empty.html Empty wiki with Markdown plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/markdowndemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/markdown/index.html text/plain \
|
||||
@ -361,7 +337,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/tw2parser/empty.html Empty wiki with tw2parser plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/classicparserdemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/tw2parser/index.html text/plain \
|
||||
@ -372,7 +347,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/highlight/empty.html Empty wiki with highlight plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/highlightdemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/highlight/index.html text/plain \
|
||||
@ -383,7 +357,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /plugins/tiddlywiki/geospatial/empty.html Empty wiki with geospatial plugin
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/geospatialdemo \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT \
|
||||
--rendertiddler $:/core/save/all plugins/tiddlywiki/geospatial/index.html text/plain \
|
||||
@ -411,7 +384,6 @@ rm -rf $TW5_BUILD_OUTPUT/languages/zh-Hant/static/*
|
||||
# /languages/de-AT/empty.html Empty wiki with de-AT language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/de-AT \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-AT \
|
||||
--build favicon empty static index \
|
||||
@ -421,7 +393,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/de-DE/empty.html Empty wiki with de-DE language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/de-DE \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/de-DE \
|
||||
--build favicon empty static index \
|
||||
@ -431,7 +402,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/es-ES/empty.html Empty wiki with es-ES language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/es-ES \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/es-ES \
|
||||
--build favicon empty static index \
|
||||
@ -441,7 +411,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/fr-FR/empty.html Empty wiki with fr-FR language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/fr-FR \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/fr-FR \
|
||||
--build favicon empty static index \
|
||||
@ -451,7 +420,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/ja-JP/empty.html Empty wiki with ja-JP language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/ja-JP \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/ja-JP \
|
||||
--build empty index \
|
||||
@ -461,7 +429,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/ko-KR/empty.html Empty wiki with ko-KR language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/ko-KR \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/ko-KR \
|
||||
--build favicon empty static index \
|
||||
@ -471,7 +438,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/zh-Hans/empty.html Empty wiki with zh-Hans language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/zh-Hans \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/zh-Hans \
|
||||
--build empty index \
|
||||
@ -481,7 +447,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
# /languages/zh-Hant/empty.html Empty wiki with zh-Hant language
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/zh-Hant \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/languages/zh-Hant \
|
||||
--build empty index \
|
||||
@ -495,7 +460,6 @@ node $TW5_BUILD_TIDDLYWIKI \
|
||||
|
||||
node $TW5_BUILD_TIDDLYWIKI \
|
||||
./editions/pluginlibrary \
|
||||
--verbose \
|
||||
--load $TW5_BUILD_OUTPUT/build.tid \
|
||||
--output $TW5_BUILD_OUTPUT/library/$TW5_BUILD_VERSION \
|
||||
--build library\
|
||||
|
@ -175,6 +175,8 @@ Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description: Update addres
|
||||
Settings/PerformanceInstrumentation/Caption: Performance Instrumentation
|
||||
Settings/PerformanceInstrumentation/Hint: Displays performance statistics in the browser developer console. Requires reload to take effect
|
||||
Settings/PerformanceInstrumentation/Description: Enable performance instrumentation
|
||||
Settings/RecentLimit/Caption: Recent Tab Limit
|
||||
Settings/RecentLimit/Hint: Maximum number of tiddlers to be displayed under the sidebar "Recent" tab
|
||||
Settings/ToolbarButtonStyle/Caption: Toolbar Button Style
|
||||
Settings/ToolbarButtonStyle/Hint: Choose the style for toolbar buttons:
|
||||
Settings/ToolbarButtonStyle/Styles/Borderless: Borderless
|
||||
|
@ -24,7 +24,7 @@ var Command = function(params,commander) {
|
||||
|
||||
Command.prototype.execute = function() {
|
||||
// Get the build targets defined in the wiki
|
||||
var buildTargets = $tw.boot.wikiInfo.build;
|
||||
var buildTargets = $tw.boot.wikiInfo && $tw.boot.wikiInfo.build;
|
||||
if(!buildTargets) {
|
||||
return "No build targets defined";
|
||||
}
|
||||
|
@ -56,36 +56,64 @@ Object.defineProperty(TW_TextNode.prototype, "formattedTextContent", {
|
||||
}
|
||||
});
|
||||
|
||||
var TW_Element = function(tag,namespace) {
|
||||
var TW_Style = function(el) {
|
||||
// Define the internal style object
|
||||
var styleObject = {
|
||||
// Method to get the entire style object
|
||||
get: function() {
|
||||
return el._style;
|
||||
},
|
||||
// Method to set styles using a string (e.g. "color:red; background-color:blue;")
|
||||
set: function(str) {
|
||||
var self = this;
|
||||
str = str || "";
|
||||
$tw.utils.each(str.split(";"),function(declaration) {
|
||||
var parts = declaration.split(":"),
|
||||
name = $tw.utils.trim(parts[0]),
|
||||
value = $tw.utils.trim(parts[1]);
|
||||
if(name && value) {
|
||||
el._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;
|
||||
}
|
||||
});
|
||||
},
|
||||
// Method to set a specific property without transforming the property name, such as a custom property
|
||||
setProperty: function(name, value) {
|
||||
el._style[name] = value;
|
||||
}
|
||||
};
|
||||
|
||||
// Return a Proxy to handle direct access to individual style properties
|
||||
return new Proxy(styleObject, {
|
||||
get: function(target, property) {
|
||||
// If the property exists on styleObject, return it (get, set, setProperty methods)
|
||||
if (property in target) {
|
||||
return target[property];
|
||||
}
|
||||
// Otherwise, return the corresponding property from _style
|
||||
return el._style[$tw.utils.convertStyleNameToPropertyName(property)] || "";
|
||||
},
|
||||
set: function(target, property, value) {
|
||||
// Set the property in _style
|
||||
el._style[$tw.utils.convertStyleNameToPropertyName(property)] = value;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var TW_Element = function(tag, namespace) {
|
||||
bumpSequenceNumber(this);
|
||||
this.isTiddlyWikiFakeDom = true;
|
||||
this.tag = tag;
|
||||
this.attributes = {};
|
||||
this.isRaw = false;
|
||||
this.children = [];
|
||||
this._style = {};
|
||||
this._style = {}; // Internal style object
|
||||
this.style = new TW_Style(this); // Proxy for style management
|
||||
this.namespaceURI = namespace || "http://www.w3.org/1999/xhtml";
|
||||
};
|
||||
|
||||
Object.setPrototypeOf(TW_Element.prototype,TW_Node.prototype);
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "style", {
|
||||
get: function() {
|
||||
return this._style;
|
||||
},
|
||||
set: function(str) {
|
||||
var self = this;
|
||||
str = str || "";
|
||||
$tw.utils.each(str.split(";"),function(declaration) {
|
||||
var parts = declaration.split(":"),
|
||||
name = $tw.utils.trim(parts[0]),
|
||||
value = $tw.utils.trim(parts[1]);
|
||||
if(name && value) {
|
||||
self._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
Object.setPrototypeOf(TW_Element.prototype,TW_Node.prototype);
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "nodeType", {
|
||||
get: function() {
|
||||
@ -105,7 +133,7 @@ TW_Element.prototype.setAttribute = function(name,value) {
|
||||
throw "Cannot setAttribute on a raw TW_Element";
|
||||
}
|
||||
if(name === "style") {
|
||||
this.style = value;
|
||||
this.style.set(value);
|
||||
} else {
|
||||
this.attributes[name] = value + "";
|
||||
}
|
||||
|
@ -125,11 +125,23 @@ DroppableWidget.prototype.handleDropEvent = function(event) {
|
||||
// Remove highlighting
|
||||
$tw.utils.removeClass(this.domNodes[0],"tc-dragover");
|
||||
// Try to import the various data types we understand
|
||||
$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {
|
||||
fieldsArray.forEach(function(fields) {
|
||||
self.performActions(fields.title || fields.text,event);
|
||||
if(this.droppableActions) {
|
||||
$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {
|
||||
fieldsArray.forEach(function(fields) {
|
||||
self.performActions(fields.title || fields.text,event);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
// Send a TitleList to performListActions
|
||||
if(this.droppableListActions) {
|
||||
$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {
|
||||
var titleList = [];
|
||||
fieldsArray.forEach(function(fields) {
|
||||
titleList.push(fields.title || fields.text);
|
||||
});
|
||||
self.performListActions($tw.utils.stringifyList(titleList),event);
|
||||
});
|
||||
}
|
||||
// Tell the browser that we handled the drop
|
||||
event.preventDefault();
|
||||
// Stop the drop ripple up to any parent handlers
|
||||
@ -137,6 +149,13 @@ DroppableWidget.prototype.handleDropEvent = function(event) {
|
||||
return false;
|
||||
};
|
||||
|
||||
DroppableWidget.prototype.performListActions = function(titleList,event) {
|
||||
if(this.droppableListActions) {
|
||||
var modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);
|
||||
this.invokeActionString(this.droppableListActions,this,event,{actionTiddlerList: titleList, modifier: modifierKey});
|
||||
}
|
||||
};
|
||||
|
||||
DroppableWidget.prototype.performActions = function(title,event) {
|
||||
if(this.droppableActions) {
|
||||
var modifierKey = $tw.keyboardManager.getEventModifierKeyDescriptor(event);
|
||||
@ -149,6 +168,7 @@ Compute the internal state of the widget
|
||||
*/
|
||||
DroppableWidget.prototype.execute = function() {
|
||||
this.droppableActions = this.getAttribute("actions");
|
||||
this.droppableListActions = this.getAttribute("listActions");
|
||||
this.droppableEffect = this.getAttribute("effect","copy");
|
||||
this.droppableTag = this.getAttribute("tag");
|
||||
this.droppableEnable = (this.getAttribute("enable") || "yes") === "yes";
|
||||
@ -168,7 +188,8 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
||||
*/
|
||||
DroppableWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
if(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass || changedAttributes.actions || changedAttributes.effect) {
|
||||
if(changedAttributes.tag || changedAttributes.enable || changedAttributes.disabledClass ||
|
||||
changedAttributes.actions|| changedAttributes.listActions || changedAttributes.effect) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
|
@ -65,6 +65,16 @@ GenesisWidget.prototype.execute = function() {
|
||||
children: this.parseTreeNode.children || [],
|
||||
isNotRemappable: !this.genesisRemappable
|
||||
}];
|
||||
// Apply attributes in $names/$values
|
||||
this.attributeNames = [];
|
||||
this.attributeValues = [];
|
||||
if(this.genesisNames && this.genesisValues) {
|
||||
this.attributeNames = this.wiki.filterTiddlers(self.genesisNames,this);
|
||||
this.attributeValues = this.wiki.filterTiddlers(self.genesisValues,this);
|
||||
$tw.utils.each(this.attributeNames,function(varname,index) {
|
||||
$tw.utils.addAttributeToParseTreeNode(parseTreeNodes[0],varname,self.attributeValues[index] || "");
|
||||
});
|
||||
}
|
||||
// Apply explicit attributes
|
||||
$tw.utils.each($tw.utils.getOrderedAttributesFromParseTreeNode(this.parseTreeNode),function(attribute) {
|
||||
var name = attribute.name;
|
||||
@ -79,16 +89,6 @@ GenesisWidget.prototype.execute = function() {
|
||||
}
|
||||
$tw.utils.addAttributeToParseTreeNode(parseTreeNodes[0],$tw.utils.extend({},attribute,{name: name}));
|
||||
});
|
||||
// Apply attributes in $names/$values
|
||||
this.attributeNames = [];
|
||||
this.attributeValues = [];
|
||||
if(this.genesisNames && this.genesisValues) {
|
||||
this.attributeNames = this.wiki.filterTiddlers(self.genesisNames,this);
|
||||
this.attributeValues = this.wiki.filterTiddlers(self.genesisValues,this);
|
||||
$tw.utils.each(this.attributeNames,function(varname,index) {
|
||||
$tw.utils.addAttributeToParseTreeNode(parseTreeNodes[0],varname,self.attributeValues[index] || "");
|
||||
});
|
||||
}
|
||||
// Construct the child widgets
|
||||
this.makeChildWidgets(parseTreeNodes);
|
||||
};
|
||||
|
@ -428,6 +428,11 @@ Widget.prototype.assignAttributes = function(domNode,options) {
|
||||
destPrefix = options.destPrefix || "",
|
||||
EVENT_ATTRIBUTE_PREFIX = "on";
|
||||
var assignAttribute = function(name,value) {
|
||||
// Process any CSS custom properties
|
||||
if(name.substr(0,2) === "--" && name.length > 2) {
|
||||
domNode.style.setProperty(name,value);
|
||||
return;
|
||||
}
|
||||
// Process any style attributes before considering sourcePrefix and destPrefix
|
||||
if(name.substr(0,6) === "style." && name.length > 6) {
|
||||
domNode.style[$tw.utils.unHyphenateCss(name.substr(6))] = value;
|
||||
|
212
core/palettes/FlexokiDark.tid
Normal file
212
core/palettes/FlexokiDark.tid
Normal file
@ -0,0 +1,212 @@
|
||||
color-scheme: dark
|
||||
description: An inky color scheme for prose and code
|
||||
name: FlexokiDark
|
||||
tags: $:/tags/Palette
|
||||
title: $:/palettes/FlexokiDark
|
||||
type: application/x-tiddler-dictionary
|
||||
|
||||
flexoki-paper: #FFFCF0
|
||||
flexoki-999: #100F0F
|
||||
flexoki-950: #1C1B1A
|
||||
flexoki-900: #282726
|
||||
flexoki-850: #343331
|
||||
flexoki-800: #403E3C
|
||||
flexoki-700: #575653
|
||||
flexoki-600: #6c6b66
|
||||
flexoki-500: #878580
|
||||
flexoki-300: #B7B5AC
|
||||
flexoki-200: #CECDC3
|
||||
flexoki-150: #DAD8CE
|
||||
flexoki-100: #E6E4D9
|
||||
flexoki-050: #F2F0E5
|
||||
flexoki-red-600: #AF3029
|
||||
flexoki-red-400: #D14D41
|
||||
flexoki-orange-600: #BC5215
|
||||
flexoki-orange-400: #DA702C
|
||||
flexoki-yellow-900: #4D3A0B
|
||||
flexoki-yellow-600: #AD8301
|
||||
flexoki-yellow-400: #D0A215
|
||||
flexoki-yellow-100: #FCEEB8
|
||||
flexoki-green-600: #66800B
|
||||
flexoki-green-400: #879A39
|
||||
flexoki-cyan-950: #142625
|
||||
flexoki-cyan-600: #227d77
|
||||
flexoki-cyan-400: #3AA99F
|
||||
flexoki-cyan-050: #EBF2E7
|
||||
flexoki-blue-600: #205EA6
|
||||
flexoki-blue-400: #4385BE
|
||||
flexoki-purple-600: #5E409D
|
||||
flexoki-purple-400: #8B7EC8
|
||||
flexoki-magenta-600: #A02F6F
|
||||
flexoki-magenta-400: #CE5D97
|
||||
|
||||
flexoki-bg: <<colour flexoki-999>>
|
||||
flexoki-tx-2: <<colour flexoki-500>>
|
||||
flexoki-tx-3: <<colour flexoki-700>>
|
||||
flexoki-ui-3: <<colour flexoki-800>>
|
||||
flexoki-ui-2: <<colour flexoki-850>>
|
||||
flexoki-ui: <<colour flexoki-900>>
|
||||
flexoki-bg-2: <<colour flexoki-950>>
|
||||
flexoki-tx: <<colour flexoki-300>>
|
||||
flexoki-re: <<colour flexoki-red-400>>
|
||||
flexoki-or: <<colour flexoki-orange-400>>
|
||||
flexoki-ye: <<colour flexoki-yellow-400>>
|
||||
flexoki-gr: <<colour flexoki-green-400>>
|
||||
flexoki-cy: <<colour flexoki-cyan-400>>
|
||||
flexoki-bl: <<colour flexoki-blue-400>>
|
||||
flexoki-pu: <<colour flexoki-purple-400>>
|
||||
flexoki-ma: <<colour flexoki-magenta-400>>
|
||||
flexoki-re-2: <<colour flexoki-red-600>>
|
||||
flexoki-or-2: <<colour flexoki-orange-600>>
|
||||
flexoki-ye-2: <<colour flexoki-yellow-600>>
|
||||
flexoki-gr-2: <<colour flexoki-green-600>>
|
||||
flexoki-cy-2: <<colour flexoki-cyan-600>>
|
||||
flexoki-bl-2: <<colour flexoki-blue-600>>
|
||||
flexoki-pu-2: <<colour flexoki-purple-600>>
|
||||
flexoki-ma-2: <<colour flexoki-magenta-600>>
|
||||
|
||||
alert-background: <<colour flexoki-yellow-100>>
|
||||
alert-border: <<colour flexoki-ye-2>>
|
||||
alert-highlight: <<colour flexoki-re>>
|
||||
alert-muted-foreground: <<colour flexoki-ye>>
|
||||
background: #1C1B1A
|
||||
blockquote-bar: <<colour flexoki-ma-2>>
|
||||
button-background: <<colour flexoki-bg-2>>
|
||||
button-foreground: <<colour flexoki-paper>>
|
||||
button-border: <<colour flexoki-600>>
|
||||
code-background: <<colour background>>
|
||||
code-border: <<colour flexoki-tx>>
|
||||
code-foreground: <<colour flexoki-tx>>
|
||||
diff-delete-background: <<colour flexoki-re>>
|
||||
diff-delete-foreground: <<colour flexoki-paper>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: inherit
|
||||
diff-insert-background: <<colour flexoki-gr>>
|
||||
diff-insert-foreground: <<colour flexoki-paper>>
|
||||
diff-invisible-background: <<colour flexoki-ye>>
|
||||
diff-invisible-foreground: <<colour flexoki-paper>>
|
||||
dirty-indicator: <<colour flexoki-re>>
|
||||
download-background: <<colour flexoki-cy-2>>
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour background>>
|
||||
dragger-foreground: <<colour foreground>>
|
||||
dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour flexoki-ui-3>>
|
||||
dropdown-tab-background-selected: <<colour flexoki-ui>>
|
||||
dropdown-tab-background: <<colour flexoki-ui-3>>
|
||||
dropzone-background: <<colour flexoki-gr>>
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-visited: <<colour flexoki-bl>>
|
||||
external-link-foreground: <<colour flexoki-bl>>
|
||||
footnote-target-background: <<colour flexoki-bg-2>>
|
||||
foreground: #B7B5AC
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
menubar-background: <<colour primary>>
|
||||
menubar-foreground: <<colour flexoki-paper>>
|
||||
message-background: <<colour background>>
|
||||
message-border: <<colour foreground>>
|
||||
message-foreground: <<colour foreground>>
|
||||
modal-backdrop: <<colour foreground>>
|
||||
modal-background: <<colour background>>
|
||||
modal-border: <<colour flexoki-ui-3>>
|
||||
modal-footer-background: <<colour flexoki-ui-2>>
|
||||
modal-footer-border: <<colour flexoki-ui-3>>
|
||||
modal-header-border: <<colour flexoki-ui-3>>
|
||||
muted-foreground: <<colour flexoki-tx-2>>
|
||||
network-activity-foreground: <<colour flexoki-cy>>
|
||||
notification-background: <<colour flexoki-ui-3>>
|
||||
notification-border: <<colour flexoki-ui>>
|
||||
page-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-ui-3>>
|
||||
pre-border: <<colour flexoki-ui-2>>
|
||||
primary: <<colour flexoki-cy>>
|
||||
selection-background: #2b7b73
|
||||
selection-foreground: <<colour flexoki-tx>>
|
||||
select-tag-background: <<colour flexoki-bg>>
|
||||
select-tag-foreground: <<colour flexoki-paper>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: <<colour flexoki-tx>>
|
||||
sidebar-controls-foreground: <<colour flexoki-tx-3>>
|
||||
sidebar-foreground-shadow: transparent
|
||||
sidebar-foreground: <<colour flexoki-tx>>
|
||||
sidebar-muted-foreground-hover: <<colour flexoki-tx>>
|
||||
sidebar-muted-foreground: <<colour flexoki-tx-3>>
|
||||
sidebar-tab-background-selected: <<colour flexoki-bg>>
|
||||
sidebar-tab-background: <<colour flexoki-ui-2>>
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: #e4e4e4
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: <<colour flexoki-tx>>
|
||||
sidebar-tiddler-link-foreground: <<colour flexoki-tx-2>>
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-stable: <<colour flexoki-gr>>
|
||||
stability-experimental: <<colour flexoki-ye>>
|
||||
stability-deprecated: <<colour flexoki-re>>
|
||||
stability-legacy: <<colour flexoki-bl>>
|
||||
static-alert-foreground: #aaaaaa
|
||||
tab-background-selected: <<colour background>>
|
||||
tab-background: <<colour flexoki-bg-2>>
|
||||
tab-border-selected: <<colour flexoki-ui-3>>
|
||||
tab-border: <<colour flexoki-ui>>
|
||||
tab-divider: <<colour flexoki-ui-2>>
|
||||
tab-foreground-selected: <<colour tab-foreground>>
|
||||
tab-foreground: <<colour flexoki-tx-2>>
|
||||
table-border: <<colour flexoki-ui>>
|
||||
table-footer-background: <<colour flexoki-ui>>
|
||||
table-header-background: <<colour flexoki-ui>>
|
||||
tag-background: #D0A215
|
||||
tag-foreground: #100F0F
|
||||
testcase-accent-level-1: <<colour flexoki-bl-2>>
|
||||
testcase-accent-level-2: <<colour flexoki-ye-2>>
|
||||
testcase-accent-level-3: <<colour flexoki-gr-2>>
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour flexoki-ui-2>>
|
||||
tiddler-controls-foreground-hover: <<colour flexoki-tx-3>>
|
||||
tiddler-controls-foreground-selected: <<colour flexoki-tx-2>>
|
||||
tiddler-controls-foreground: <<colour flexoki-ui-2>>
|
||||
tiddler-editor-background: <<colour flexoki-bg-2>>
|
||||
tiddler-editor-border-image: #ffffff
|
||||
tiddler-editor-border: <<colour flexoki-ui-2>>
|
||||
tiddler-editor-fields-even: <<colour flexoki-ui-3>>
|
||||
tiddler-editor-fields-odd: <<colour flexoki-ui-2>>
|
||||
tiddler-info-background: <<colour flexoki-ui>>
|
||||
tiddler-info-border: <<colour flexoki-ui>>
|
||||
tiddler-info-tab-background: <<colour flexoki-ui>>
|
||||
tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: <<colour flexoki-tx-3>>
|
||||
tiddler-title-foreground: <<colour flexoki-ma>>
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
toolbar-save-button:
|
||||
toolbar-info-button:
|
||||
toolbar-edit-button:
|
||||
toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: <<colour flexoki-600>>
|
||||
wikilist-background: #e5e5e5
|
||||
wikilist-item: #fff
|
||||
wikilist-info: #000
|
||||
wikilist-title: #666
|
||||
wikilist-title-svg: <<colour wikilist-title>>
|
||||
wikilist-url: #aaa
|
||||
wikilist-button-open: #4fb82b
|
||||
wikilist-button-open-hover: green
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000
|
214
core/palettes/FlexokiLight.tid
Normal file
214
core/palettes/FlexokiLight.tid
Normal file
@ -0,0 +1,214 @@
|
||||
title: $:/palettes/FlexokiLight
|
||||
name: FlexokiLight
|
||||
description: An inky color scheme for prose and code
|
||||
tags: $:/tags/Palette
|
||||
type: application/x-tiddler-dictionary
|
||||
color-scheme: light
|
||||
|
||||
flexoki-black: #100F0F
|
||||
flexoki-paper: #FFFCF0
|
||||
flexoki-950: #1C1B1A
|
||||
flexoki-900: #282726
|
||||
flexoki-850: #343331
|
||||
flexoki-800: #403E3C
|
||||
flexoki-700: #575653
|
||||
flexoki-600: #6F6E69
|
||||
flexoki-500: #878580
|
||||
flexoki-300: #B7B5AC
|
||||
flexoki-200: #CECDC3
|
||||
flexoki-150: #DAD8CE
|
||||
flexoki-100: #E6E4D9
|
||||
flexoki-050: #F2F0E5
|
||||
flexoki-red-600: #AF3029
|
||||
flexoki-red-400: #D14D41
|
||||
flexoki-orange-600: #BC5215
|
||||
flexoki-orange-400: #DA702C
|
||||
flexoki-yellow-900: #4D3A0B
|
||||
flexoki-yellow-600: #AD8301
|
||||
flexoki-yellow-400: #D0A215
|
||||
flexoki-yellow-100: #FCEEB8
|
||||
flexoki-green-600: #66800B
|
||||
flexoki-green-400: #879A39
|
||||
flexoki-cyan-950: #142625
|
||||
flexoki-cyan-600: #24837B
|
||||
flexoki-cyan-400: #3AA99F
|
||||
flexoki-cyan-050: #EBF2E7
|
||||
flexoki-blue-600: #205EA6
|
||||
flexoki-blue-400: #4385BE
|
||||
flexoki-purple-600: #5E409D
|
||||
flexoki-purple-400: #8B7EC8
|
||||
flexoki-magenta-600: #A02F6F
|
||||
flexoki-magenta-400: #CE5D97
|
||||
|
||||
flexoki-tx: <<colour flexoki-black>>
|
||||
flexoki-tx-2: <<colour flexoki-600>>
|
||||
flexoki-tx-3: <<colour flexoki-300>>
|
||||
flexoki-ui-3: <<colour flexoki-200>>
|
||||
flexoki-ui-2: <<colour flexoki-150>>
|
||||
flexoki-ui: <<colour flexoki-100>>
|
||||
flexoki-bg-2: <<colour flexoki-050>>
|
||||
flexoki-bg: <<colour flexoki-paper>>
|
||||
|
||||
flexoki-re: <<colour flexoki-red-400>>
|
||||
flexoki-or: <<colour flexoki-orange-400>>
|
||||
flexoki-ye: <<colour flexoki-yellow-400>>
|
||||
flexoki-gr: <<colour flexoki-green-400>>
|
||||
flexoki-cy: <<colour flexoki-cyan-400>>
|
||||
flexoki-bl: <<colour flexoki-blue-400>>
|
||||
flexoki-pu: <<colour flexoki-purple-400>>
|
||||
flexoki-ma: <<colour flexoki-magenta-400>>
|
||||
|
||||
flexoki-re-2: <<colour flexoki-red-600>>
|
||||
flexoki-or-2: <<colour flexoki-orange-600>>
|
||||
flexoki-ye-2: <<colour flexoki-yellow-600>>
|
||||
flexoki-gr-2: <<colour flexoki-green-600>>
|
||||
flexoki-cy-2: <<colour flexoki-cyan-600>>
|
||||
flexoki-bl-2: <<colour flexoki-blue-600>>
|
||||
flexoki-pu-2: <<colour flexoki-purple-600>>
|
||||
flexoki-ma-2: <<colour flexoki-magenta-600>>
|
||||
|
||||
alert-background: <<colour flexoki-yellow-100>>
|
||||
alert-border: <<colour flexoki-ye-2>>
|
||||
alert-highlight: <<colour flexoki-re-2>>
|
||||
alert-muted-foreground: <<colour flexoki-tx-2>>
|
||||
background: #FFFCF0
|
||||
blockquote-bar: <<colour flexoki-magenta-600>>
|
||||
button-background: <<colour flexoki-bg-2>>
|
||||
button-foreground: <<colour flexoki-black>>
|
||||
button-border: <<colour flexoki-500>>
|
||||
code-background: <<colour flexoki-bg>>
|
||||
code-border: <<colour flexoki-tx>>
|
||||
code-foreground: <<colour flexoki-tx>>
|
||||
diff-delete-background: <<colour flexoki-re-2>>
|
||||
diff-delete-foreground: <<colour flexoki-paper>>
|
||||
diff-equal-background:
|
||||
diff-equal-foreground: <<colour foreground>>
|
||||
diff-insert-background: <<colour flexoki-gr-2>>
|
||||
diff-insert-foreground: <<colour flexoki-paper>>
|
||||
diff-invisible-background: <<colour flexoki-ye-2>>
|
||||
diff-invisible-foreground: <<colour flexoki-paper>>
|
||||
dirty-indicator: <<colour flexoki-red-600>>
|
||||
download-background: <<colour flexoki-gr>>
|
||||
download-foreground: <<colour background>>
|
||||
dragger-background: <<colour foreground>>
|
||||
dragger-foreground: <<colour background>>
|
||||
dropdown-background: <<colour background>>
|
||||
dropdown-border: <<colour muted-foreground>>
|
||||
dropdown-tab-background-selected: #fff
|
||||
dropdown-tab-background: #ececec
|
||||
dropzone-background: <<colour flexoki-gr>>
|
||||
external-link-background-hover: inherit
|
||||
external-link-background-visited: inherit
|
||||
external-link-background: inherit
|
||||
external-link-foreground-hover: inherit
|
||||
external-link-foreground-visited: <<colour flexoki-bl>>
|
||||
external-link-foreground: <<colour flexoki-bl>>
|
||||
footnote-target-background: <<colour flexoki-bg-2>>
|
||||
foreground: #100F0F
|
||||
highlight-background: #ffff00
|
||||
highlight-foreground: #000000
|
||||
menubar-background: <<colour primary>>
|
||||
menubar-foreground: <<colour flexoki-paper>>
|
||||
message-background: <<colour flexoki-bg>>
|
||||
message-border: <<colour flexoki-black>>
|
||||
message-foreground: <<colour flexoki-black>>
|
||||
modal-backdrop: <<colour foreground>>
|
||||
modal-background: <<colour background>>
|
||||
modal-border: #999999
|
||||
modal-footer-background: #f5f5f5
|
||||
modal-footer-border: #dddddd
|
||||
modal-header-border: #eeeeee
|
||||
muted-foreground: <<colour flexoki-500>>
|
||||
network-activity-foreground: <<colour flexoki-cy-2>>
|
||||
notification-background: <<colour flexoki-bg>>
|
||||
notification-border: <<color flexoki-black>>
|
||||
page-background: <<colour flexoki-bg-2>>
|
||||
pre-background: <<colour flexoki-bg>>
|
||||
pre-border: <<colour flexoki-ui-2>>
|
||||
primary: <<colour flexoki-cy>>
|
||||
selection-background:
|
||||
selection-foreground:
|
||||
select-tag-background: <<colour flexoki-bg>>
|
||||
select-tag-foreground: <<color flexoki-black>>
|
||||
sidebar-button-foreground: <<colour foreground>>
|
||||
sidebar-controls-foreground-hover: <<colour flexoki-tx>>
|
||||
sidebar-controls-foreground: <<colour flexoki-tx-3>>
|
||||
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
|
||||
sidebar-foreground: <<colour flexoki-300>>
|
||||
sidebar-muted-foreground-hover: <<colour flexoki-700>>
|
||||
sidebar-muted-foreground: <<colour flexoki-200>>
|
||||
sidebar-tab-background-selected: <<colour flexoki-bg-2>>
|
||||
sidebar-tab-background: <<colour flexoki-ui>>
|
||||
sidebar-tab-border-selected: <<colour tab-border-selected>>
|
||||
sidebar-tab-border: <<colour tab-border>>
|
||||
sidebar-tab-divider: <<colour flexoki-100>>
|
||||
sidebar-tab-foreground-selected:
|
||||
sidebar-tab-foreground: <<colour tab-foreground>>
|
||||
sidebar-tiddler-link-foreground-hover: <<colour flexoki-500>>
|
||||
sidebar-tiddler-link-foreground: <<colour flexoki-700>>
|
||||
site-title-foreground: <<colour tiddler-title-foreground>>
|
||||
stability-stable: <<colour flexoki-green-600>>
|
||||
stability-experimental: <<colour flexoki-yellow-600>>
|
||||
stability-deprecated: <<colour flexoki-red-600>>
|
||||
stability-legacy: <<colour flexoki-blue-600>>
|
||||
static-alert-foreground: <<colour flexoki-tx-3>>
|
||||
tab-background-selected: <<colour background>>
|
||||
tab-background: <<colour flexoki-bg-2>>
|
||||
tab-border-selected: <<colour flexoki-ui-3>>
|
||||
tab-border: <<colour flexoki-ui>>
|
||||
tab-divider: <<colour flexoki-ui-2>>
|
||||
tab-foreground-selected: <<colour tab-foreground>>
|
||||
tab-foreground: <<colour flexoki-tx>>
|
||||
table-border: <<colour flexoki-ui-2>>
|
||||
table-footer-background: <<colour flexoki-tx-3>>
|
||||
table-header-background: <<colour flexoki-bg-2>>
|
||||
tag-background: #AD8301
|
||||
tag-foreground: #FFFCF0
|
||||
testcase-accent-level-1: <<colour flexoki-blue-400>>
|
||||
testcase-accent-level-2: <<colour flexoki-yellow-400>>
|
||||
testcase-accent-level-3: <<colour flexoki-green-400>>
|
||||
tiddler-background: <<colour background>>
|
||||
tiddler-border: <<colour background>>
|
||||
tiddler-controls-foreground-hover: <<colour flexoki-tx-3>>
|
||||
tiddler-controls-foreground-selected: <<colour flexoki-tx-2>>
|
||||
tiddler-controls-foreground: <<colour flexoki-ui-3>>
|
||||
tiddler-editor-background: <<colour flexoki-bg-2>>
|
||||
tiddler-editor-border-image: #ffffff
|
||||
tiddler-editor-border: <<colour flexoki-ui-2>>
|
||||
tiddler-editor-fields-even: <<colour flexoki-ui-3>>
|
||||
tiddler-editor-fields-odd: <<colour flexoki-ui-2>>
|
||||
tiddler-info-background: <<colour flexoki-bg-2>>
|
||||
tiddler-info-border: <<colour flexoki-200>>
|
||||
tiddler-info-tab-background: <<colour flexoki-bg>>
|
||||
tiddler-link-background: <<colour background>>
|
||||
tiddler-link-foreground: <<colour primary>>
|
||||
tiddler-subtitle-foreground: <<colour flexoki-black>>
|
||||
tiddler-title-foreground: <<colour flexoki-magenta-600>>
|
||||
toolbar-new-button:
|
||||
toolbar-options-button:
|
||||
toolbar-save-button:
|
||||
toolbar-info-button:
|
||||
toolbar-edit-button:
|
||||
toolbar-close-button:
|
||||
toolbar-delete-button:
|
||||
toolbar-cancel-button:
|
||||
toolbar-done-button:
|
||||
untagged-background: #999999
|
||||
very-muted-foreground: #888888
|
||||
wikilist-background: <<colour flexoki-ui>>
|
||||
wikilist-item: #fff
|
||||
wikilist-info: #000
|
||||
wikilist-title: #666
|
||||
wikilist-title-svg: <<colour wikilist-title>>
|
||||
wikilist-url: #aaa
|
||||
wikilist-button-open: #4fb82b
|
||||
wikilist-button-open-hover: green
|
||||
wikilist-button-reveal: #5778d8
|
||||
wikilist-button-reveal-hover: blue
|
||||
wikilist-button-remove: #d85778
|
||||
wikilist-button-remove-hover: red
|
||||
wikilist-toolbar-background: #d3d3d3
|
||||
wikilist-toolbar-foreground: #888
|
||||
wikilist-droplink-dragover: rgba(255,192,192,0.5)
|
||||
wikilist-button-background: #acacac
|
||||
wikilist-button-foreground: #000
|
@ -2,18 +2,28 @@ title: $:/core/ui/AdvancedSearch/Filter
|
||||
tags: $:/tags/AdvancedSearch
|
||||
caption: {{$:/language/Search/Filter/Caption}}
|
||||
|
||||
\define lingo-base() $:/language/Search/
|
||||
\define set-next-input-tab(beforeafter:"after")
|
||||
<$macrocall $name="change-input-tab"
|
||||
\procedure lingo-base() $:/language/Search/
|
||||
\procedure set-next-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="$beforeafter$"
|
||||
beforeafter="after"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"
|
||||
/>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions()
|
||||
\procedure set-previous-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="before"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"
|
||||
/>
|
||||
\end
|
||||
|
||||
\procedure cancel-search-actions()
|
||||
\whitespace trim
|
||||
<$list filter="[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]">
|
||||
<$list-empty>
|
||||
@ -24,30 +34,30 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define input-accept-actions()
|
||||
\procedure input-accept-actions()
|
||||
\whitespace trim
|
||||
<$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]">
|
||||
<$list-empty>
|
||||
<$list filter="[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]">
|
||||
<$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/>
|
||||
<$list filter="[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]">
|
||||
<$action-navigate $to={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
<$/list-empty>
|
||||
<$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/>
|
||||
<$action-navigate $to={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define input-accept-variant-actions()
|
||||
\procedure input-accept-variant-actions()
|
||||
\whitespace trim
|
||||
<$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]">
|
||||
<$list-empty>
|
||||
<$list filter="[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]">
|
||||
<$list filter="[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]">
|
||||
<$list filter="[<__tiddler__>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/>
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
</$list>
|
||||
</$list-empty>
|
||||
<$list filter="[<__tiddler__>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/>
|
||||
<$list filter="[<tiddler>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
</$list>
|
||||
\end
|
||||
@ -58,8 +68,8 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
|
||||
<div class="tc-search tc-advanced-search">
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>> class="tc-small-gap-right">
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">>>
|
||||
<$macrocall $name="keyboard-driven-input"
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>>>
|
||||
<$transclude $variable="keyboard-driven-input"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
@ -84,7 +94,7 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
<$set name="resultCount" value="<$count filter={{$:/temp/advancedsearch}}/>">
|
||||
<p><<lingo Filter/Matches>></p>
|
||||
<$list filter={{$:/temp/advancedsearch}}>
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] :and[then[]else[tc-list-item-selected]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
|
@ -3,18 +3,27 @@ tags: $:/tags/AdvancedSearch
|
||||
caption: {{$:/language/Search/Shadows/Caption}}
|
||||
first-search-filter: [all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]
|
||||
|
||||
\define lingo-base() $:/language/Search/
|
||||
\procedure lingo-base() $:/language/Search/
|
||||
|
||||
\define set-next-input-tab(beforeafter:"after")
|
||||
<$macrocall $name="change-input-tab"
|
||||
\procedure set-next-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="$beforeafter$"
|
||||
beforeafter="after"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions()
|
||||
\procedure set-previous-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="before"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
\end
|
||||
|
||||
\procedure cancel-search-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]"
|
||||
@ -25,22 +34,22 @@ first-search-filter: [all[shadows]search<userInput>sort[title]limit[250]] -[[$:/
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
\end
|
||||
|
||||
\define input-accept-actions()
|
||||
\procedure input-accept-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]"
|
||||
emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>">
|
||||
<$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/>
|
||||
emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>">
|
||||
<$action-navigate $to={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define input-accept-variant-actions()
|
||||
\procedure input-accept-variant-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]"
|
||||
emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$list filter='[<__tiddler__>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>">
|
||||
<$list filter="[<__tiddler__>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/>
|
||||
emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$list filter='[<tiddler>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<tiddler>get[text]] }}}/></$list></$list>">
|
||||
<$list filter="[<tiddler>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list></$list>
|
||||
\end
|
||||
|
||||
@ -50,8 +59,8 @@ first-search-filter: [all[shadows]search<userInput>sort[title]limit[250]] -[[$:/
|
||||
|
||||
<div class="tc-search">
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">>>
|
||||
<$macrocall $name="keyboard-driven-input"
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>>>
|
||||
<$transclude $variable="keyboard-driven-input"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
@ -79,7 +88,7 @@ first-search-filter: [all[shadows]search<userInput>sort[title]limit[250]] -[[$:/
|
||||
|
||||
<$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="<div class='tc-search-results'>{{$:/language/Search/Search/TooShort}}</div>" variable="listItem">
|
||||
|
||||
<$set name="resultCount" value={{{ [all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] +[count[]]}}}>
|
||||
<$set name="resultCount" value={{{ [all[shadows]search{$:/temp/advancedsearch}] :except[[$:/temp/advancedsearch]] :except[[$:/temp/advancedsearch/input]] :and[count[]]}}}>
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
@ -89,8 +98,8 @@ first-search-filter: [all[shadows]search<userInput>sort[title]limit[250]] -[[$:/
|
||||
<<lingo Shadows/Matches>>
|
||||
<%endif%>
|
||||
|
||||
<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]">
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>
|
||||
<$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] :except[[$:/temp/advancedsearch]] :except[[$:/temp/advancedsearch/input]]">
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] :except[[$:/temp/advancedsearch/selected-item]get[text]] :and[then[]else[tc-list-item-selected]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
|
@ -2,16 +2,20 @@ title: $:/core/ui/AdvancedSearch/Standard
|
||||
tags: $:/tags/AdvancedSearch
|
||||
caption: {{$:/language/Search/Standard/Caption}}
|
||||
|
||||
\define lingo-base() $:/language/Search/
|
||||
\define set-next-input-tab(beforeafter:"after") <$macrocall $name="change-input-tab" stateTitle="$:/state/tab--1498284803" tag="$:/tags/AdvancedSearch" beforeafter="$beforeafter$" defaultState="$:/core/ui/AdvancedSearch/System" actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
\procedure lingo-base() $:/language/Search/
|
||||
\procedure set-next-input-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab--1498284803" tag="$:/tags/AdvancedSearch" beforeafter="after" defaultState="$:/core/ui/AdvancedSearch/System" actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\define next-search-tab(beforeafter:"after") <$macrocall $name="change-input-tab" stateTitle="$:/state/tab/search-results/advancedsearch" tag="$:/tags/SearchResults" beforeafter="$beforeafter$" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/advancedsearch/standard/currentTab' text=<<nextTab>>/>"/>
|
||||
\procedure set-previous-input-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab--1498284803" tag="$:/tags/AdvancedSearch" beforeafter="before" defaultState="$:/core/ui/AdvancedSearch/System" actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\define cancel-search-actions() <$list filter="[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]" emptyMessage="<$action-deletetiddler $filter='[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]' />"><$action-setfield $tiddler="$:/temp/advancedsearch/input" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/></$list><$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
\procedure next-search-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab/search-results/advancedsearch" tag="$:/tags/SearchResults" beforeafter="after" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/advancedsearch/standard/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\define input-accept-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>
|
||||
\procedure previous-search-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab/search-results/advancedsearch" tag="$:/tags/SearchResults" beforeafter="before" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/advancedsearch/standard/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\define input-accept-variant-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$list filter='[<__tiddler__>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>"><$list filter="[<__tiddler__>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>
|
||||
\procedure cancel-search-actions() <$list filter="[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]" emptyMessage="<$action-deletetiddler $filter='[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]' />"><$action-setfield $tiddler="$:/temp/advancedsearch/input" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/></$list><$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
|
||||
\procedure input-accept-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>"><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>
|
||||
|
||||
\procedure input-accept-variant-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$list filter='[<tiddler>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<tiddler>get[text]] }}}/></$list></$list>"><$list filter="[<tiddler>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/></$list></$list>
|
||||
|
||||
\whitespace trim
|
||||
|
||||
@ -19,10 +23,10 @@ caption: {{$:/language/Search/Standard/Caption}}
|
||||
|
||||
<div class="tc-search">
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>>>
|
||||
<$keyboard key="shift-alt-Right" actions=<<next-search-tab>>>
|
||||
<$keyboard key="shift-alt-Left" actions=<<next-search-tab "before">>>
|
||||
<$macrocall $name="keyboard-driven-input"
|
||||
<$keyboard key="shift-alt-Left" actions=<<previous-search-tab>>>
|
||||
<$transclude $variable="keyboard-driven-input"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
@ -33,7 +37,7 @@ caption: {{$:/language/Search/Standard/Caption}}
|
||||
inputCancelActions=<<cancel-search-actions>>
|
||||
inputAcceptActions=<<input-accept-actions>>
|
||||
inputAcceptVariantActions=<<input-accept-variant-actions>>
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]"
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"
|
||||
filterMinLength={{$:/config/Search/MinLength}}/>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
@ -55,13 +59,13 @@ caption: {{$:/language/Search/Standard/Caption}}
|
||||
variable="listItem">
|
||||
<$vars
|
||||
userInput={{{ [[$:/temp/advancedsearch]get[text]] }}}
|
||||
configTiddler={{{ [[$:/state/advancedsearch/standard/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}
|
||||
configTiddler={{{ [[$:/state/advancedsearch/standard/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}
|
||||
searchListState="$:/temp/advancedsearch/selected-item">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]">
|
||||
<$list-empty>
|
||||
<$list filter='[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]'><$transclude mode="block"/></$list>
|
||||
</$list-empty>
|
||||
<$macrocall $name="tabs"
|
||||
<$transclude $variable="tabs"
|
||||
tabsList="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]"
|
||||
default={{$:/config/SearchResults/Default}}
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/standard/currentTab' text=<<currentTab>>/>"
|
||||
|
@ -1,19 +1,28 @@
|
||||
title: $:/core/ui/AdvancedSearch/System
|
||||
tags: $:/tags/AdvancedSearch
|
||||
caption: {{$:/language/Search/System/Caption}}
|
||||
first-search-filter: [is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]
|
||||
first-search-filter: [is[system]search<userInput>sort[title]limit[250]] :except[[$:/temp/advancedsearch]] :except[[$:/temp/advancedsearch/input]] :except[[$:/temp/advancedsearch/selected-item]]
|
||||
|
||||
\define lingo-base() $:/language/Search/
|
||||
\define set-next-input-tab(beforeafter:"after",stateTitle,tag,defaultState,currentTabTiddler)
|
||||
<$macrocall $name="change-input-tab"
|
||||
\procedure lingo-base() $:/language/Search/
|
||||
\procedure set-next-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="$beforeafter$"
|
||||
beforeafter="after"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions()
|
||||
\procedure set-previous-input-tab()
|
||||
<$transclude $variable="change-input-tab"
|
||||
stateTitle="$:/state/tab--1498284803"
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="before"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
\end
|
||||
|
||||
\procedure cancel-search-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]"
|
||||
@ -24,22 +33,22 @@ first-search-filter: [is[system]search<userInput>sort[title]limit[250]] -[[$:/te
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
\end
|
||||
|
||||
\define input-accept-actions()
|
||||
\procedure input-accept-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]"
|
||||
emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>">
|
||||
<$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/>
|
||||
emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>">
|
||||
<$action-navigate $to={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define input-accept-variant-actions()
|
||||
\procedure input-accept-variant-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]"
|
||||
emptyMessage="<$list filter='[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]'><$list filter='[<__tiddler__>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>">
|
||||
<$list filter="[<__tiddler__>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/>
|
||||
emptyMessage="<$list filter='[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]'><$list filter='[<tiddler>get[text]minlength[1]]'><$action-sendmessage $message='tm-edit-tiddler' $param={{{ [<tiddler>get[text]] }}}/></$list></$list>">
|
||||
<$list filter="[<tiddler>get[text]minlength[1]]">
|
||||
<$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/>
|
||||
</$list></$list>
|
||||
\end
|
||||
|
||||
@ -49,8 +58,8 @@ first-search-filter: [is[system]search<userInput>sort[title]limit[250]] -[[$:/te
|
||||
|
||||
<div class="tc-search">
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">>>
|
||||
<$macrocall $name="keyboard-driven-input"
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>>>
|
||||
<$transclude $variable="keyboard-driven-input"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
@ -78,7 +87,7 @@ first-search-filter: [is[system]search<userInput>sort[title]limit[250]] -[[$:/te
|
||||
|
||||
<$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="<div class='tc-search-results'>{{$:/language/Search/Search/TooShort}}</div>" variable="listItem">
|
||||
|
||||
<$set name="resultCount" value={{{ [is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]] +[count[]] }}}>
|
||||
<$set name="resultCount" value={{{ [is[system]search{$:/temp/advancedsearch}] :except[[$:/temp/advancedsearch]] :except[[$:/temp/advancedsearch/input]] :except[[$:/temp/advancedsearch/selected-item]] +[count[]] }}}>
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
@ -88,8 +97,8 @@ first-search-filter: [is[system]search<userInput>sort[title]limit[250]] -[[$:/te
|
||||
<<lingo System/Matches>>
|
||||
<%endif%>
|
||||
|
||||
<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]">
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>
|
||||
<$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] :except[[$:/temp/advancedsearch]] :except[[$:/temp/advancedsearch/input]] :except[[$:/temp/advancedsearch/selected-item]]">
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] :except[[$:/temp/advancedsearch/selected-item]get[text]] :and[then[]else[tc-list-item-selected]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
|
10
core/ui/ControlPanel/Settings/RecentLimit.tid
Normal file
10
core/ui/ControlPanel/Settings/RecentLimit.tid
Normal file
@ -0,0 +1,10 @@
|
||||
title: $:/core/ui/ControlPanel/Settings/RecentLimit
|
||||
tags: $:/tags/ControlPanel/Settings
|
||||
caption: {{$:/language/ControlPanel/Settings/RecentLimit/Caption}}
|
||||
|
||||
\whitespace trim
|
||||
\procedure lingo-base() $:/language/ControlPanel/Settings/RecentLimit/
|
||||
<<lingo Hint>>
|
||||
|
||||
|tc-table-no-border|k
|
||||
|<$link to="$:/config/RecentLimit"><<lingo Caption>></$link> |<$edit-text tiddler="$:/config/RecentLimit" tag="input" type="number"/> |
|
@ -1,35 +1,32 @@
|
||||
title: $:/core/ui/EditTemplate/fields
|
||||
tags: $:/tags/EditTemplate
|
||||
|
||||
\define lingo-base() $:/language/EditTemplate/
|
||||
\define config-title()
|
||||
$:/config/EditTemplateFields/Visibility/$(currentField)$
|
||||
\end
|
||||
\procedure lingo-base() $:/language/EditTemplate/
|
||||
\function tf.config-title() [[$:/config/EditTemplateFields/Visibility/]addsuffix[$(currentField)$]substitute[]get[text]]
|
||||
|
||||
\define config-filter()
|
||||
[[hide]] -[title{$(config-title)$}]
|
||||
\end
|
||||
\function tf.config-filter() [[hide]] :except[title<tf.config-title>]
|
||||
|
||||
<!-- Beware this is duplicated from EditTemplate.tid. For details see bug #7054 -->
|
||||
\define get-field-value-tiddler-filter() [subfilter<get-field-editor-filter>sha256[16]addprefix[/]addprefix<newFieldValueTiddlerPrefix>]
|
||||
\define get-field-editor-filter() [<newFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}]
|
||||
\procedure get-field-value-tiddler-filter() [subfilter<get-field-editor-filter>sha256[16]addprefix[/]addprefix<newFieldValueTiddlerPrefix>]
|
||||
\procedure get-field-editor-filter() [<newFieldNameTiddler>get[text]else[]] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}]
|
||||
|
||||
\define current-tiddler-new-field-selector()
|
||||
[data-tiddler-title="$(currentTiddlerCSSescaped)$"] .tc-edit-field-add-name-wrapper input
|
||||
\end
|
||||
\procedure prefix.bracket() [
|
||||
\procedure suffix.bracket() ]
|
||||
|
||||
\define new-field-actions()
|
||||
\function tf.current-tiddler-new-field-selector() [[data-tiddler-title=]addprefix[$(prefix.bracket)$]substitute[]addsuffix<currentTiddlerCSSescaped>addsuffix[$(suffix.bracket)$]substitute[]] .tc-edit-field-add-name-wrapper input :and[join[ ]]
|
||||
|
||||
\procedure new-field-actions()
|
||||
\whitespace trim
|
||||
<$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldNameTiddler>get[text]] :map[subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
<$set name="safeNewFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> >
|
||||
<$action-deletetiddler $filter="[<newFieldNameTiddler>] [prefix[$:/temp/NewFieldValue]prefix<safeNewFieldValueTiddlerPrefix>] [<storeTitle>] [<searchListState>]"/>
|
||||
</$set>
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=<<current-tiddler-new-field-selector>>/>
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=<<tf.current-tiddler-new-field-selector>>/>
|
||||
\end
|
||||
|
||||
\define delete-state-tiddlers() <$action-deletetiddler $filter="[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]"/>
|
||||
\procedure delete-state-tiddlers() <$action-deletetiddler $filter="[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]"/>
|
||||
|
||||
\define cancel-search-actions-inner()
|
||||
\procedure cancel-search-actions-inner()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]"
|
||||
@ -39,7 +36,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions()
|
||||
\procedure cancel-search-actions()
|
||||
\whitespace trim
|
||||
<$set name="userInput" value={{{ [<storeTitle>get[text]] }}}>
|
||||
<$list
|
||||
@ -50,7 +47,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$
|
||||
</$set>
|
||||
\end
|
||||
|
||||
\define new-field()
|
||||
\procedure new-field()
|
||||
\whitespace trim
|
||||
<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>
|
||||
<$reveal type="nomatch" text="" default=<<name>>>
|
||||
@ -75,15 +72,15 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
|
||||
<$set name="newFieldValueTiddlerPrefix" value=<<newFieldValueTiddlerPrefix>> emptyValue=<<qualify "$:/temp/NewFieldValue">> >
|
||||
<div class="tc-edit-fields">
|
||||
<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>
|
||||
<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] :and[count[]!match[0]] :and[then[tc-edit-fields]] :else[[tc-edit-fields tc-edit-fields-small]] }}}>
|
||||
<tbody>
|
||||
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField" storyview="pop">
|
||||
<$list filter=<<config-filter>> variable="temp">
|
||||
<$list filter="[all[current]fields[]] :and[sort[title]]" variable="currentField" storyview="pop">
|
||||
<$list filter=<<tf.config-filter>> variable="temp">
|
||||
<tr class="tc-edit-field">
|
||||
<td class="tc-edit-field-name">
|
||||
<$text text=<<currentField>>/>:</td>
|
||||
<td class="tc-edit-field-value">
|
||||
<$keyboard key="((delete-field))" actions="""<$action-deletefield $field=<<currentField>>/><$set name="currentTiddlerCSSescaped" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<current-tiddler-new-field-selector>>/></$set>""">
|
||||
<$keyboard key="((delete-field))" actions="""<$action-deletefield $field=<<currentField>>/><$set name="currentTiddlerCSSescaped" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<tf.current-tiddler-new-field-selector>>/></$set>""">
|
||||
<$transclude tiddler={{{ [<currentField>] :cascade[all[shadows+tiddlers]tag[$:/tags/FieldEditorFilter]!is[draft]get[text]] :and[!is[blank]else{$:/core/ui/EditTemplate/fieldEditor/default}] }}} />
|
||||
</$keyboard>
|
||||
</td>
|
||||
@ -107,10 +104,10 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
</em>
|
||||
<$vars refreshTitle=<<qualify "$:/temp/fieldname/refresh">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>
|
||||
<div class="tc-edit-field-add-name-wrapper">
|
||||
<$macrocall $name="keyboard-driven-input" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>
|
||||
<$transclude $variable="keyboard-driven-input" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>
|
||||
selectionStateTitle=<<searchListState>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}
|
||||
focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}}
|
||||
focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups="yes"
|
||||
focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] :else[[false]] }}} cancelPopups="yes"
|
||||
configTiddlerFilter="[[$:/config/EditMode/fieldname-filter]]" inputCancelActions=<<cancel-search-actions>> />
|
||||
<$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>
|
||||
<$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default="">
|
||||
@ -121,8 +118,8 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
<<lingo Fields/Add/Dropdown/User>>
|
||||
</div>
|
||||
<$set name="newFieldName" value={{{ [<storeTitle>get[text]] }}}>
|
||||
<$list filter="[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type" variable="currentField">
|
||||
<$list filter="[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]" emptyMessage="""<$link to=<<currentField>> class="tc-list-item-selected"><$text text=<<currentField>>/></$link>""">
|
||||
<$list filter="[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] :except[[created]] :except[[creator]] :except[[draft.of]] :except[[draft.title]] :except[[modified]] :except[[modifier]] :except[[tags]] :except[[text]] :except[[title]] :except[[type]]" variable="currentField">
|
||||
<$list filter="[<currentField>addsuffix[-primaryList]] :except[<searchListState>get[text]]" emptyMessage="""<$link to=<<currentField>> class="tc-list-item-selected"><$text text=<<currentField>>/></$link>""">
|
||||
<$link to=<<currentField>>>
|
||||
<$text text=<<currentField>>/>
|
||||
</$link>
|
||||
@ -131,8 +128,8 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
<div class="tc-dropdown-item">
|
||||
<<lingo Fields/Add/Dropdown/System>>
|
||||
</div>
|
||||
<$list filter="[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]" variable="currentField">
|
||||
<$list filter="[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]" emptyMessage="""<$link to=<<currentField>> class="tc-list-item-selected"><$text text=<<currentField>>/></$link>""">
|
||||
<$list filter="[fields[]search:title<newFieldName>sort[]] :except[!is[shadow]!is[system]fields[]]" variable="currentField">
|
||||
<$list filter="[<currentField>addsuffix[-secondaryList]] :except[<searchListState>get[text]]" emptyMessage="""<$link to=<<currentField>> class="tc-list-item-selected"><$text text=<<currentField>>/></$link>""">
|
||||
<$link to=<<currentField>>>
|
||||
<$text text=<<currentField>>/>
|
||||
</$link>
|
||||
@ -151,7 +148,7 @@ $value={{{ [subfilter<get-field-value-tiddler-filter>get[text]] }}}/>
|
||||
</$keyboard>
|
||||
</span>
|
||||
<span class="tc-edit-field-add-button">
|
||||
<$macrocall $name="new-field"/>
|
||||
<$transclude $variable="new-field"/>
|
||||
</span>
|
||||
</$let>
|
||||
</$vars>
|
||||
|
@ -2,15 +2,15 @@ title: $:/core/ui/EditTemplate/type
|
||||
tags: $:/tags/EditTemplate
|
||||
first-search-filter: [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]
|
||||
|
||||
\define lingo-base() $:/language/EditTemplate/
|
||||
\define input-cancel-actions() <$list filter="[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]" emptyMessage="""<<cancel-delete-tiddler-actions "cancel">>"""><$action-sendmessage $message="tm-remove-field" $param="type"/><$action-deletetiddler $filter="[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]"/></$list>
|
||||
\procedure lingo-base() $:/language/EditTemplate/
|
||||
\procedure input-cancel-actions() <$list filter="[<storeTitle>get[text]] [<currentTiddler>get[type]] :and[limit[1]]" emptyMessage="""<<cancel-delete-tiddler-actions "cancel">>"""><$action-sendmessage $message="tm-remove-field" $param="type"/><$action-deletetiddler $filter="[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]"/></$list>
|
||||
\whitespace trim
|
||||
<$set name="refreshTitle" value=<<qualify "$:/temp/type-search/refresh">>>
|
||||
<div class="tc-edit-type-selector-wrapper">
|
||||
<em class="tc-edit tc-small-gap-right"><<lingo Type/Prompt>></em>
|
||||
<div class="tc-type-selector-dropdown-wrapper">
|
||||
<div class="tc-type-selector"><$fieldmangler>
|
||||
<$macrocall $name="keyboard-driven-input" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups="yes" configTiddlerFilter="[[$:/core/ui/EditTemplate/type]]" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter="[<typeInputTiddler>] [<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]"/></$button>
|
||||
<$transclude $variable="keyboard-driven-input" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] :else[[false]] }}} cancelPopups="yes" configTiddlerFilter="[[$:/core/ui/EditTemplate/type]]" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown tc-small-gap" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter="[<typeInputTiddler>] [<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]"/></$button>
|
||||
</$fieldmangler></div>
|
||||
|
||||
<div class="tc-block-dropdown-wrapper">
|
||||
@ -23,7 +23,7 @@ first-search-filter: [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[d
|
||||
<$text text={{!!group}}/>
|
||||
</div>
|
||||
<$set name="userInput" value={{{ [<typeInputTiddler>get[text]] }}}>
|
||||
<$list filter="[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field="description"/><$text text=" "/>(<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field="name"/>)</$link></span>
|
||||
<$list filter="[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] :and[sort[description]] :and[removeprefix[$:/language/Docs/Types/]] :and[search<userInput>]"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] :except[<typeSelectionTiddler>get[text]] :and[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field="description"/><$text text=" "/>(<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field="name"/>)</$link></span>
|
||||
</$list>
|
||||
</$set>
|
||||
</$list>
|
||||
|
@ -1,44 +1,49 @@
|
||||
title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
|
||||
\define lingo-base() $:/language/Buttons/Link/
|
||||
\procedure lingo-base() $:/language/Buttons/Link/
|
||||
|
||||
\define add-link-actions()
|
||||
\procedure add-link-actions()
|
||||
\whitespace trim
|
||||
<$action-sendmessage $message="tm-edit-text-operation" $param="make-link" text={{$(linkTiddler)$}} />
|
||||
<$action-sendmessage $message="tm-edit-text-operation" $param="make-link" text={{{ [<linkTiddler>get[text]] }}} />
|
||||
<$action-deletetiddler $filter="[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]"/>
|
||||
\end
|
||||
|
||||
\define get-focus-selector() [data-tiddler-title="$(cssEscapedTitle)$"] .tc-create-wikitext-link input
|
||||
\procedure prefix.bracket() [
|
||||
\procedure suffix.bracket() ]
|
||||
|
||||
\define cancel-search-actions-inner()
|
||||
\function tf.get-focus-selector() [[data-tiddler-title=]addprefix[$(prefix.bracket)$]substitute[]addsuffix<cssEscapedTitle>addsuffix[$(suffix.bracket)$]substitute[]] .tc-create-wikitext-link input :and[join[ ]]
|
||||
|
||||
\procedure cancel-search-actions-inner()
|
||||
<$set name="userInput" value={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$set>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions() <$list filter="[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]" emptyMessage="<<cancel-search-actions-inner>>"><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list>
|
||||
\procedure cancel-search-actions() <$list filter="[<storeTitle>!has[text]] :and[<searchTiddler>!has[text]]" emptyMessage="<<cancel-search-actions-inner>>"><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list>
|
||||
|
||||
\define external-link()
|
||||
\procedure external-link()
|
||||
\whitespace trim
|
||||
<$button class="tc-btn-invisible tc-btn-mini" style="width: auto; display: inline-block; background-colour: inherit;" actions=<<add-link-actions>>>
|
||||
{{$:/core/images/chevron-right}}
|
||||
</$button>
|
||||
\end
|
||||
|
||||
\define set-next-input-tab(beforeafter:"after") <$macrocall $name="change-input-tab" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" beforeafter="$beforeafter$" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/search/currentTab' text=<<nextTab>>/>"/>
|
||||
\procedure set-next-input-tab() <$transclude $variable="change-input-tab-after" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/search/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\define body(config-title)
|
||||
\procedure set-previous-input-tab() <$transclude $variable="change-input-tab-before" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" defaultState={{$:/config/SearchResults/Default}} actions="<$action-setfield $tiddler='$:/state/search/currentTab' text=<<nextTab>>/>"/>
|
||||
|
||||
\procedure body(config-title)
|
||||
\whitespace trim
|
||||
''<<lingo Hint>>''
|
||||
|
||||
<$vars searchTiddler="""$config-title$/search""" linkTiddler="""$config-title$/link""" linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
|
||||
<$vars searchTiddler={{{ [<config-title>addsuffix[/search]] }}} linkTiddler={{{ [<config-title>addsuffix[/link]] }}} linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
|
||||
|
||||
<$vars linkTiddler=<<searchTiddler>>>
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">> class="tc-create-wikitext-link">
|
||||
<$macrocall $name="keyboard-driven-input" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>> class="tc-create-wikitext-link">
|
||||
<$transclude $variable="keyboard-driven-input" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>
|
||||
selectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type="search" filterMinLength="1"
|
||||
tag="input" focus="true" class="tc-popup-handle" inputCancelActions=<<cancel-search-actions>>
|
||||
inputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=""
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]" />
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]" />
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
 
|
||||
@ -46,7 +51,7 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
<<external-link>>
|
||||
 
|
||||
<$button class="tc-btn-invisible tc-btn-mini" style="width: auto; display: inline-block; background-colour: inherit;">
|
||||
<<cancel-search-actions>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<get-focus-selector>>/></$set>
|
||||
<<cancel-search-actions>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<tf.get-focus-selector>>/></$set>
|
||||
{{$:/core/images/close-button}}
|
||||
</$button>
|
||||
</$reveal>
|
||||
@ -56,7 +61,7 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
|
||||
<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>
|
||||
|
||||
<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>
|
||||
<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
|
||||
|
||||
{{$:/core/ui/SearchResults}}
|
||||
|
||||
@ -70,4 +75,4 @@ title: $:/core/ui/EditorToolbar/link-dropdown
|
||||
|
||||
\end
|
||||
|
||||
<$macrocall $name="body" config-title=<<qualify "$:/state/Link/">>/>
|
||||
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>
|
||||
|
@ -2,4 +2,4 @@ title: $:/core/ui/SideBar/Recent
|
||||
tags: $:/tags/SideBar
|
||||
caption: {{$:/language/SideBar/Recent/Caption}}
|
||||
|
||||
<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>
|
||||
<$transclude $variable="timeline" format={{$:/language/RecentChanges/DateFormat}} limit={{$:/config/RecentLimit}}/>
|
||||
|
@ -3,12 +3,12 @@ tags: $:/tags/SideBarSegment
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\define count-popup-button()
|
||||
\procedure count-popup-button()
|
||||
\whitespace trim
|
||||
<$button popup=<<qualify "$:/state/popup/search-dropdown">> class="tc-btn-invisible">
|
||||
{{$:/core/images/down-arrow}}
|
||||
<$list filter="[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]" variable="listItem">
|
||||
<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp="limit\[\d+\]">
|
||||
<$list filter="[<searchTiddler>get[text]minlength{$:/config/Search/MinLength}limit[1]]" variable="listItem">
|
||||
<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}} replaceRegexp="limit\[\d+\]">
|
||||
<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>
|
||||
<$set name="resultCount" value="""<$count filter="[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]"/>""">
|
||||
{{$:/language/Search/Matches}}
|
||||
@ -19,9 +19,9 @@ tags: $:/tags/SideBarSegment
|
||||
</$button>
|
||||
\end
|
||||
|
||||
\define search-results-list()
|
||||
\procedure search-results-list()
|
||||
\whitespace trim
|
||||
<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>
|
||||
<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
|
||||
<$list filter="[<userInput>minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem">
|
||||
|
||||
<$tiddler tiddler=<<configTiddler>>>
|
||||
@ -34,30 +34,32 @@ tags: $:/tags/SideBarSegment
|
||||
</$vars>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions() <$list filter="[<searchTiddler>get[text]!match{$:/temp/search}]" emptyMessage="""<$action-deletetiddler $filter="[[$:/temp/search]] [<searchTiddler>] [<searchListState>]"/>"""><$action-setfield $tiddler="$:/temp/search" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler="$:/temp/search/refresh" text="yes"/></$list>
|
||||
\procedure cancel-search-actions() <$list filter="[<searchTiddler>get[text]!match{$:/temp/search}]" emptyMessage="""<$action-deletetiddler $filter="[[$:/temp/search]] [<searchTiddler>] [<searchListState>]"/>"""><$action-setfield $tiddler="$:/temp/search" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler="$:/temp/search/refresh" text="yes"/></$list>
|
||||
|
||||
\define input-accept-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="""<$list filter="[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>"""><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>
|
||||
\procedure input-accept-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="""<$list filter="[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]"><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>"""><$action-navigate $to={{{ [<tiddler>get[text]] }}}/></$list>
|
||||
|
||||
\define input-accept-variant-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="""<$list filter="[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]"><$list filter="[<__tiddler__>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>"""><$list filter="[<__tiddler__>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>
|
||||
\procedure input-accept-variant-actions() <$list filter="[{$:/config/Search/NavigateOnEnter/enable}match[yes]]" emptyMessage="""<$list filter="[<tiddler>get[text]!is[missing]] :else[<tiddler>get[text]is[shadow]]"><$list filter="[<tiddler>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/></$list></$list>"""><$list filter="[<tiddler>get[text]minlength[1]]"><$action-sendmessage $message="tm-edit-tiddler" $param={{{ [<tiddler>get[text]] }}}/></$list></$list>
|
||||
|
||||
\define set-next-input-tab(beforeafter:"after") <$macrocall $name="change-input-tab" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" beforeafter="$beforeafter$" defaultState={{$:/config/SearchResults/Default}} actions="""<$action-setfield $tiddler="$:/state/search/currentTab" text=<<nextTab>>/>"""/>
|
||||
\procedure set-next-input-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" beforeafter="after" defaultState={{$:/config/SearchResults/Default}} actions="""<$action-setfield $tiddler="$:/state/search/currentTab" text=<<nextTab>>/>"""/>
|
||||
|
||||
\define advanced-search-actions() <$action-setfield $tiddler="$:/temp/advancedsearch" text={{$:/temp/search/input}}/><$action-setfield $tiddler="$:/temp/advancedsearch/input" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to="$:/AdvancedSearch"/><$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/><$action-sendmessage $message="tm-focus-selector" $param="""[data-tiddler-title="$:/AdvancedSearch"] .tc-search input""" preventScroll="true"/><$action-deletetiddler $filter="$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]"/>
|
||||
\procedure set-previous-input-tab() <$transclude $variable="change-input-tab" stateTitle="$:/state/tab/search-results/sidebar" tag="$:/tags/SearchResults" beforeafter="before" defaultState={{$:/config/SearchResults/Default}} actions="""<$action-setfield $tiddler="$:/state/search/currentTab" text=<<nextTab>>/>"""/>
|
||||
|
||||
\procedure advanced-search-actions() <$action-setfield $tiddler="$:/temp/advancedsearch" text={{$:/temp/search/input}}/><$action-setfield $tiddler="$:/temp/advancedsearch/input" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to="$:/AdvancedSearch"/><$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/><$action-sendmessage $message="tm-focus-selector" $param="""[data-tiddler-title="$:/AdvancedSearch"] .tc-search input""" preventScroll="true"/><$action-deletetiddler $filter="$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]"/>
|
||||
|
||||
<div class="tc-sidebar-lists tc-sidebar-search">
|
||||
|
||||
<$vars editTiddler="$:/temp/search" searchTiddler="$:/temp/search/input" searchListState=<<qualify "$:/state/search-list/selected-item">>>
|
||||
<div class="tc-search">
|
||||
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-next-input-tab "before">>>
|
||||
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>>>
|
||||
<$keyboard key="((advanced-search-sidebar))" actions=<<advanced-search-actions>>>
|
||||
<form class="tc-form-inline">
|
||||
<$macrocall $name="keyboard-driven-input" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>>
|
||||
<$transclude $variable="keyboard-driven-input" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>>
|
||||
selectionStateTitle=<<searchListState>> refreshTitle="$:/temp/search/refresh" type="search"
|
||||
tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">>
|
||||
class="tc-tiny-gap-right tc-popup-handle" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>>
|
||||
inputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups="yes"
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]"/>
|
||||
configTiddlerFilter="[[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}]"/>
|
||||
</form>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
|
@ -62,7 +62,6 @@ color: #bbb
|
||||
\end
|
||||
|
||||
\whitespace trim
|
||||
<div class="tc-table-wrapper">
|
||||
<table class="tc-tag-manager-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -116,5 +115,4 @@ color: #bbb
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</table>
|
3
core/wiki/config/RecentLimit.tid
Normal file
3
core/wiki/config/RecentLimit.tid
Normal file
@ -0,0 +1,3 @@
|
||||
title: $:/config/RecentLimit
|
||||
|
||||
100
|
@ -3,8 +3,8 @@ tags: $:/tags/ViewTemplateBodyFilter
|
||||
|
||||
testcase: [tag[$:/tags/wiki-test-spec]type[text/vnd.tiddlywiki-multiple]] [tag[$:/tags/wiki-test-spec-failing]type[text/vnd.tiddlywiki-multiple]] :then[[$:/core/ui/TestCaseTemplate]]
|
||||
stylesheet: [tag[$:/tags/Stylesheet]then[$:/core/ui/ViewTemplate/body/rendered-plain-text]]
|
||||
core-ui-tags: [tag[$:/tags/PageTemplate]] [tag[$:/tags/EditTemplate]] [tag[$:/tags/ViewTemplate]] [tag[$:/tags/KeyboardShortcut]] [tag[$:/tags/ImportPreview]] [tag[$:/tags/EditPreview]][tag[$:/tags/EditorToolbar]] [tag[$:/tags/Actions]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
system: [prefix[$:/boot/]] [prefix[$:/core/macros]] [prefix[$:/core/save/]] [prefix[$:/core/templates/]] [prefix[$:/config/]] [prefix[$:/info/]] [prefix[$:/language/]] [prefix[$:/languages/]] [prefix[$:/snippets/]] [prefix[$:/info/]] [prefix[$:/state/]] [prefix[$:/status/]] [prefix[$:/temp/]] :and[!is[image]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
core-ui-tags: [tag[$:/tags/PageTemplate]] [tag[$:/tags/EditTemplate]] [tag[$:/tags/ViewTemplate]] [tag[$:/tags/KeyboardShortcut]] [tag[$:/tags/ImportPreview]] [tag[$:/tags/EditPreview]] [tag[$:/tags/EditorToolbar]] [tag[$:/EditorTools]] [tag[$:/tags/Actions]] [tag[$:/tags/ToolbarButtonStyle]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
system: [prefix[$:/boot/]] [prefix[$:/core/macros]] [prefix[$:/core/save/]] [prefix[$:/core/templates/]] [prefix[$:/config/]] [prefix[$:/core/config/]] [prefix[$:/info/]] [prefix[$:/language/]] [prefix[$:/languages/]] [prefix[$:/snippets/]] [prefix[$:/info/]] [prefix[$:/state/]] [prefix[$:/status/]] [prefix[$:/temp/]] :and[!is[image]] :then[[$:/core/ui/ViewTemplate/body/code]]
|
||||
code-body: [field:code-body[yes]then[$:/core/ui/ViewTemplate/body/code]]
|
||||
import: [field:plugin-type[import]then[$:/core/ui/ViewTemplate/body/import]]
|
||||
plugin: [has[plugin-type]then[$:/core/ui/ViewTemplate/body/plugin]]
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/CSS
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
<!-- Needs to stay that way for backwards compatibility. See GH issue: #8326 -->
|
||||
\define colour(name)
|
||||
@ -13,42 +13,54 @@ tags: $:/tags/Macro $:/tags/Global
|
||||
|
||||
\define color(name) <<colour $name$>>
|
||||
|
||||
\function box-shadow(shadow)
|
||||
[[ -webkit-box-shadow: $(shadow)$;
|
||||
-moz-box-shadow: $(shadow)$;
|
||||
box-shadow: $(shadow)$;]substitute[]]
|
||||
\define box-shadow(shadow)
|
||||
``
|
||||
-webkit-box-shadow: $shadow$;
|
||||
-moz-box-shadow: $shadow$;
|
||||
box-shadow: $shadow$;
|
||||
``
|
||||
\end
|
||||
|
||||
\function filter(filter)
|
||||
[[ -webkit-filter: $(filter)$;
|
||||
-moz-filter: $(filter)$;
|
||||
filter: $(filter)$;]substitute[]]
|
||||
\define filter(filter)
|
||||
``
|
||||
-webkit-filter: $filter$;
|
||||
-moz-filter: $filter$;
|
||||
filter: $filter$;
|
||||
``
|
||||
\end
|
||||
|
||||
\function transition(transition)
|
||||
[[ -webkit-transition: $(transition)$;
|
||||
-moz-transition: $(transition)$;
|
||||
transition: $(transition)$;]substitute[]]
|
||||
\define transition(transition)
|
||||
``
|
||||
-webkit-transition: $transition$;
|
||||
-moz-transition: $transition$;
|
||||
transition: $transition$;
|
||||
``
|
||||
\end
|
||||
|
||||
\function transform-origin(origin)
|
||||
[[ -webkit-transform-origin: $(origin)$;
|
||||
-moz-transform-origin: $(origin)$;
|
||||
transform-origin: $(origin)$;]substitute[]]
|
||||
\define transform-origin(origin)
|
||||
``
|
||||
-webkit-transform-origin: $origin$;
|
||||
-moz-transform-origin: $origin$;
|
||||
transform-origin: $origin$;
|
||||
``
|
||||
\end
|
||||
|
||||
\function background-linear-gradient(gradient)
|
||||
[[ background-image: linear-gradient($(gradient)$);
|
||||
background-image: -o-linear-gradient($(gradient)$);
|
||||
background-image: -moz-linear-gradient($(gradient)$);
|
||||
background-image: -webkit-linear-gradient($(gradient)$);
|
||||
background-image: -ms-linear-gradient($(gradient)$);]substitute[]]
|
||||
\define background-linear-gradient(gradient)
|
||||
``
|
||||
background-image: linear-gradient($gradient$);
|
||||
background-image: -o-linear-gradient($gradient$);
|
||||
background-image: -moz-linear-gradient($gradient$);
|
||||
background-image: -webkit-linear-gradient($gradient$);
|
||||
background-image: -ms-linear-gradient($gradient$);
|
||||
``
|
||||
\end
|
||||
|
||||
\function column-count(columns)
|
||||
[[-moz-column-count: $(columns)$;
|
||||
-webkit-column-count: $(columns)$;
|
||||
column-count: $(columns)$;]substitute[]]
|
||||
\define column-count(columns)
|
||||
``
|
||||
-moz-column-count: $columns$;
|
||||
-webkit-column-count: $columns$;
|
||||
column-count: $columns$;
|
||||
``
|
||||
\end
|
||||
|
||||
\procedure datauri(title)
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/copy-to-clipboard
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/diff
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/export
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\function exportButtonFilename(baseFilename)
|
||||
[<baseFilename>] [<extension>] +[join[]]
|
||||
|
@ -1,105 +1,137 @@
|
||||
title: $:/core/macros/keyboard-driven-input
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)
|
||||
\procedure prefix.bracket() [
|
||||
\procedure suffix.bracket() ]
|
||||
|
||||
\function tf.change-input-tab.next-tab() [[all]addprefix<prefix.bracket>addsuffix<prefix.bracket>addsuffix[shadows+tiddlers]addsuffix<suffix.bracket>addsuffix[tag<tag>!has]addsuffix<prefix.bracket>addsuffix[draft.of]addsuffix<suffix.bracket>addsuffix<beforeafter>addsuffix[<currentState>]addsuffix<suffix.bracket>addsuffix[ :else]addsuffix<prefix.bracket>addsuffix<prefix.bracket>addsuffix<beforeafter>addsuffix<suffix.bracket>addsuffix[match]addsuffix<prefix.bracket>addsuffix[after]addsuffix<suffix.bracket>addsuffix[then<firstTab>]addsuffix<suffix.bracket>addsuffix[ :else]addsuffix<prefix.bracket>addsuffix<prefix.bracket>addsuffix<beforeafter>addsuffix<suffix.bracket>addsuffix[match]addsuffix<prefix.bracket>addsuffix[before]addsuffix<suffix.bracket>addsuffix[then<lastTab>]addsuffix<suffix.bracket>]
|
||||
|
||||
\procedure change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)
|
||||
\whitespace trim
|
||||
<$set name="tabsList" filter="[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]">
|
||||
<$set name="tabsList" filter="[<explicitTabList>!is[blank]enlist-input[]] :else[all[shadows+tiddlers]tag<tag>!has[draft.of]]">
|
||||
<$let
|
||||
currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}}
|
||||
currentState={{{ [<stateTitle>!is[missing]get[text]] :else[<defaultState>] }}}
|
||||
firstTab={{{ [enlist<tabsList>nth[1]] }}}
|
||||
lastTab={{{ [enlist<tabsList>last[]] }}}
|
||||
nextTab={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}
|
||||
nextTabSubFilter=<<tf.change-input-tab.next-tab>>
|
||||
nextTab={{{ [subfilter<nextTabSubFilter>] }}}
|
||||
>
|
||||
<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>
|
||||
$actions$
|
||||
<$action-setfield $tiddler=<<stateTitle>> text=<<nextTab>>/>
|
||||
<<actions>>
|
||||
</$let>
|
||||
</$set>
|
||||
\end
|
||||
|
||||
\define keyboard-input-actions()
|
||||
\procedure keyboard-input-actions()
|
||||
\whitespace trim
|
||||
<$list filter="[<__index__>match[]]">
|
||||
<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>
|
||||
</$list>
|
||||
<$list filter="[<__index__>!match[]]">
|
||||
<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>
|
||||
</$list>
|
||||
<%if [<index>match[]] %>
|
||||
<$action-setfield $tiddler=<<storeTitle>> text={{{ [<tiddler>get<field>] }}}/>
|
||||
<% endif %>
|
||||
<%if [<index>!match[]] %>
|
||||
<$action-setfield $tiddler=<<storeTitle>> text={{{ [<tiddler>getindex<index>] }}}/>
|
||||
<% endif %>
|
||||
\end
|
||||
|
||||
\define input-next-actions-inner()
|
||||
\procedure input-next-actions-inner()
|
||||
\whitespace trim
|
||||
<$list filter="[<nextItem>minlength[1]]" variable="ignore">
|
||||
<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>
|
||||
<$list filter="[<__index__>match[]]">
|
||||
<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>
|
||||
</$list>
|
||||
<$list filter="[<__index__>!match[]]">
|
||||
<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>
|
||||
</$list>
|
||||
<$action-setfield $tiddler=<<__refreshTitle__>> text="yes"/>
|
||||
</$list>
|
||||
<%if [<nextItem>minlength[1]] %>
|
||||
<$action-setfield $tiddler=<<selectionStateTitle>> text=<<nextItem>>/>
|
||||
<%if [<index>match[]] %>
|
||||
<$action-setfield $tiddler=<<tiddler>> $field=<<field>> $value={{{ [<nextItem>] :and[splitregexp[(?:.(?!-))+$]] }}}/>
|
||||
<% endif %>
|
||||
<%if [<index>!match[]] %>
|
||||
<$action-setfield $tiddler=<<tiddler>> $index=<<index>> $value={{{ [<nextItem>] :and[splitregexp[(?:.(?!-))+$]] }}}/>
|
||||
<% endif %>
|
||||
<$action-setfield $tiddler=<<refreshTitle>> text="yes"/>
|
||||
<% endif %>
|
||||
\end
|
||||
|
||||
\define input-next-actions(afterOrBefore:"after",reverse:"")
|
||||
\procedure input-next-actions-after()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]"
|
||||
variable="ignore"
|
||||
>
|
||||
<%if [<storeTitle>get[text]minlength<filterMinLength>] [<filterMinLength>match[0]] %>
|
||||
<$let
|
||||
userInput={{{ [<__storeTitle__>get[text]] }}}
|
||||
selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}
|
||||
configTiddler={{{ [subfilter<__configTiddlerFilter__>] }}}
|
||||
primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}}
|
||||
secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}
|
||||
userInput={{{ [<storeTitle>get[text]] }}}
|
||||
selectedItem={{{ [<selectionStateTitle>get[text]] }}}
|
||||
configTiddler={{{ [subfilter<configTiddlerFilter>] }}}
|
||||
primaryListFilter={{{ [<configTiddler>get<firstSearchFilterField>] }}}
|
||||
secondaryListFilter={{{ [<configTiddler>get<secondSearchFilterField>] }}}
|
||||
>
|
||||
<$set
|
||||
name="filteredList"
|
||||
filter="[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]"
|
||||
filter="[subfilter<primaryListFilter>addsuffix[-primaryList]] :all[subfilter<secondaryListFilter>addsuffix[-secondaryList]]"
|
||||
>
|
||||
<$let
|
||||
nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}}
|
||||
nextItem={{{ [enlist<filteredList>after<selectedItem>] :else[enlist<filteredList>nth[1]] }}}
|
||||
firstItem={{{ [enlist<filteredList>nth[1]] }}}
|
||||
lastItem={{{ [enlist<filteredList>last[]] }}}
|
||||
>
|
||||
<$list filter="[<selectedItem>match<firstItem>!match<lastItem>]" variable="ignore">
|
||||
<$set name="nextItem" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
</$list>
|
||||
<$list filter="[<selectedItem>match<lastItem>!match<firstItem>]" variable="ignore">
|
||||
<$set name="nextItem" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
</$list>
|
||||
<$list filter="[<selectedItem>match<firstItem>match<lastItem>]" variable="ignore">
|
||||
<%if [<selectedItem>match<firstItem>!match<lastItem>] [<selectedItem>!match<firstItem>!match<lastItem>] %>
|
||||
<<input-next-actions-inner>>
|
||||
<%elseif [<selectedItem>match<lastItem>!match<firstItem>] %>
|
||||
<$set name="nextItem" value={{{ [<userInput>addsuffix[-userInput]] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
</$list>
|
||||
<$list filter="[<selectedItem>!match<firstItem>!match<lastItem>]" variable="ignore">
|
||||
<<input-next-actions-inner>>
|
||||
</$list>
|
||||
<%elseif [<selectedItem>match<firstItem>match<lastItem>] %>
|
||||
<$set name="nextItem" value={{{ [<userInput>addsuffix[-userInput]] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
<% endif %>
|
||||
</$let>
|
||||
</$set>
|
||||
</$let>
|
||||
</$list>
|
||||
<% endif %>
|
||||
\end
|
||||
|
||||
\define keyboard-driven-input(tiddler,storeTitle,field:"text",index:"",tag:"input",type,focus:"",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:"",default:"",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:"0",refreshTitle,selectionStateTitle,cancelPopups:"",configTiddlerFilter,firstSearchFilterField:"first-search-filter",secondSearchFilterField:"second-search-filter")
|
||||
\procedure input-next-actions-before()
|
||||
\whitespace trim
|
||||
<$keyboard key="((input-accept))" actions=<<__inputAcceptActions__>>>
|
||||
<$keyboard key="((input-accept-variant))" actions=<<__inputAcceptVariantActions__>>>
|
||||
<$keyboard key="((input-up))" actions=<<input-next-actions "before" "reverse[]">>>
|
||||
<$keyboard key="((input-down))" actions=<<input-next-actions>>>
|
||||
<$keyboard key="((input-cancel))" actions=<<__inputCancelActions__>>>
|
||||
<%if [<storeTitle>get[text]minlength<filterMinLength>] [<filterMinLength>match[0]] %>
|
||||
<$let
|
||||
userInput={{{ [<storeTitle>get[text]] }}}
|
||||
selectedItem={{{ [<selectionStateTitle>get[text]] }}}
|
||||
configTiddler={{{ [subfilter<configTiddlerFilter>] }}}
|
||||
primaryListFilter={{{ [<configTiddler>get<firstSearchFilterField>] }}}
|
||||
secondaryListFilter={{{ [<configTiddler>get<secondSearchFilterField>] }}}
|
||||
>
|
||||
<$set
|
||||
name="filteredList"
|
||||
filter="[subfilter<primaryListFilter>addsuffix[-primaryList]] :all[subfilter<secondaryListFilter>addsuffix[-secondaryList]]"
|
||||
>
|
||||
<$let
|
||||
nextItem={{{ [enlist<filteredList>before<selectedItem>] :else[enlist<filteredList>reverse[]nth[1]] }}}
|
||||
firstItem={{{ [enlist<filteredList>nth[1]] }}}
|
||||
lastItem={{{ [enlist<filteredList>last[]] }}}
|
||||
>
|
||||
<%if [<selectedItem>match<firstItem>!match<lastItem>] %>
|
||||
<$set name="nextItem" value={{{ [<userInput>addsuffix[-userInput]] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
<%elseif [<selectedItem>match<lastItem>!match<firstItem>] [<selectedItem>!match<firstItem>!match<lastItem>] %>
|
||||
<<input-next-actions-inner>>
|
||||
<%elseif [<selectedItem>match<firstItem>match<lastItem>] %>
|
||||
<$set name="nextItem" value={{{ [<userInput>addsuffix[-userInput]] }}}>
|
||||
<<input-next-actions-inner>>
|
||||
</$set>
|
||||
<% endif %>
|
||||
</$let>
|
||||
</$set>
|
||||
</$let>
|
||||
<% endif %>
|
||||
\end
|
||||
|
||||
\procedure keyboard-driven-input(tiddler,storeTitle,field:"text",index:"",tag:"input",type,focus:"",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:"",default:"",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:"0",refreshTitle,selectionStateTitle,cancelPopups:"",configTiddlerFilter,firstSearchFilterField:"first-search-filter",secondSearchFilterField:"second-search-filter")
|
||||
\whitespace trim
|
||||
<$keyboard key="((input-accept))" actions=<<inputAcceptActions>>>
|
||||
<$keyboard key="((input-accept-variant))" actions=<<inputAcceptVariantActions>>>
|
||||
<$keyboard key="((input-up))" actions=<<input-next-actions-before>>>
|
||||
<$keyboard key="((input-down))" actions=<<input-next-actions-after>>>
|
||||
<$keyboard key="((input-cancel))" actions=<<inputCancelActions>>>
|
||||
<$edit-text
|
||||
tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>>
|
||||
inputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>>
|
||||
placeholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>>
|
||||
focus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>>
|
||||
tabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>>
|
||||
refreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>
|
||||
tiddler=<<tiddler>> field=<<field>> index=<<index>>
|
||||
inputActions=<<keyboard-input-actions>> tag=<<tag>> class=<<class>>
|
||||
placeholder=<<placeholder>> default=<<default>> focusPopup=<<focusPopup>>
|
||||
focus=<<focus>> type=<<type>> rows=<<rows>> minHeight=<<minHeight>>
|
||||
tabindex=<<tabindex>> size=<<size>> autoHeight=<<autoHeight>>
|
||||
refreshTitle=<<refreshTitle>> cancelPopups=<<cancelPopups>>
|
||||
/>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/show-filter-count
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/tag-picker
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
first-search-filter: [subfilter<tagListFilter>!is[system]search:title<userInput>]
|
||||
second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>]
|
||||
|
||||
@ -13,11 +13,11 @@ second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>
|
||||
<!-- tf.tagpicker-dropdown-id is needed if several tap-pickers are shown in one tiddler -->
|
||||
\function tf.tagpicker-dropdown-id()
|
||||
[<qualify $:/state/popup/tags-auto-complete>]
|
||||
[[$(saveTiddler)$-[$(tagField)$-$(tagListFilter)$]substitute[]sha256[]] +[join[/]]
|
||||
[[$(saveTiddler)$-[$(tagField)$-$(tagListFilter)$]substitute[]sha256[]] :and[join[/]]
|
||||
\end
|
||||
|
||||
\function tf.tagpicker-dropdown-class() [<tf.tagpicker-dropdown-id>sha256[]addprefix[tc-]]
|
||||
\function tf.get-tagpicker-focus-selector() [<tf.tagpicker-dropdown-class>addprefix[.]] .tc-popup-handle +[join[ ]]
|
||||
\function tf.get-tagpicker-focus-selector() [<tf.tagpicker-dropdown-class>addprefix[.]] .tc-popup-handle :and[join[ ]]
|
||||
|
||||
<!-- clean up temporary tiddlers, so the next "pick" starts with a clean input -->
|
||||
<!-- This could probably be optimized / removed if we would use different temp-tiddlers
|
||||
@ -30,7 +30,7 @@ second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>
|
||||
<!-- trigger __toggle tag__ by keyboard -->
|
||||
\procedure add-tag-actions()
|
||||
<$let tag=<<_tf.getTag>> >
|
||||
<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter='+[toggle<tag>trim[]]'/>
|
||||
<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=':and[toggle<tag>trim[]]'/>
|
||||
<%if [<tag>] :intersection[<saveTiddler>get<tagField>enlist-input[]] %>
|
||||
<!-- tag has been removed - do nothing -->
|
||||
<%else%>
|
||||
@ -46,7 +46,7 @@ second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>
|
||||
The second ESC tries to close the "draft tiddler"
|
||||
-->
|
||||
\procedure clear-tags-actions-inner()
|
||||
<%if [<storeTitle>has[text]] ~[<newTagNameTiddler>has[text]] %>
|
||||
<%if [<storeTitle>has[text]] :else[<newTagNameTiddler>has[text]] %>
|
||||
<<delete-tag-state-tiddlers>>
|
||||
<%else%>
|
||||
<<cancel-delete-tiddler-actions "cancel">>
|
||||
@ -90,7 +90,7 @@ The second ESC tries to close the "draft tiddler"
|
||||
<!-- tf.get-tagpicker-focus-selector has to be resolved for $:/core/ui/TagPickerTagTemplate,
|
||||
othwerwise qualify in tf.tagpicker-dropdown-id causes problems -->
|
||||
<$let currentTiddler=<<tag>>
|
||||
button-classes=`tc-btn-invisible ${[<tag>addsuffix<suffix>] -[<tagSelectionState>get[text]] :then[[]] ~tc-tag-button-selected }$`
|
||||
button-classes=`tc-btn-invisible ${[<tag>addsuffix<suffix>] :except[<tagSelectionState>get[text]] :then[[]] ~tc-tag-button-selected }$`
|
||||
get-tagpicker-focus-selector=`${[<tf.get-tagpicker-focus-selector>]}$`
|
||||
>
|
||||
{{||$:/core/ui/TagPickerTagTemplate}}
|
||||
@ -102,10 +102,10 @@ The second ESC tries to close the "draft tiddler"
|
||||
|
||||
<!-- tag-picker-inner is the main function -->
|
||||
\procedure tag-picker-inner()
|
||||
<div class={{{ [[tc-edit-add-tag]] [<tf.tagpicker-dropdown-class>] +[join[ ]] }}}>
|
||||
<div class={{{ [[tc-edit-add-tag]] [<tf.tagpicker-dropdown-class>] :and[join[ ]] }}}>
|
||||
<div class="tc-edit-add-tag-ui">
|
||||
<span class="tc-add-tag-name tc-small-gap-right">
|
||||
<$macrocall $name="keyboard-driven-input"
|
||||
<$transclude $variable="keyboard-driven-input"
|
||||
tiddler=<<newTagNameTiddler>>
|
||||
storeTitle=<<storeTitle>>
|
||||
refreshTitle=<<refreshTitle>>
|
||||
@ -117,7 +117,7 @@ The second ESC tries to close the "draft tiddler"
|
||||
focusPopup=<<tf.tagpicker-dropdown-id>>
|
||||
class="tc-edit-texteditor tc-popup-handle"
|
||||
tabindex=<<tabIndex>>
|
||||
focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}
|
||||
focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] :else[[false]] }}}
|
||||
filterMinLength={{$:/config/Tags/MinLength}}
|
||||
cancelPopups=<<cancelPopups>>
|
||||
configTiddlerFilter="[[$:/core/macros/tag-picker]]"
|
||||
@ -146,9 +146,9 @@ The second ESC tries to close the "draft tiddler"
|
||||
<div class="tc-block-dropdown-wrapper">
|
||||
<%if [<tf.tagpicker-dropdown-id>has[text]] %>
|
||||
<div class="tc-block-dropdown tc-block-tags-dropdown">
|
||||
<$macrocall $name="tag-picker-listTags" filter=<<nonSystemTagsFilter>> suffix="-primaryList" empty={{$:/language/EditTemplate/Tags/EmptyMessage}}/>
|
||||
<$transclude $variable="tag-picker-listTags" filter=<<nonSystemTagsFilter>> suffix="-primaryList" empty={{$:/language/EditTemplate/Tags/EmptyMessage}}/>
|
||||
<hr>
|
||||
<$macrocall $name="tag-picker-listTags" filter=<<systemTagsFilter>> suffix="-secondaryList" empty={{$:/language/EditTemplate/Tags/EmptyMessage/System}}/>
|
||||
<$transclude $variable="tag-picker-listTags" filter=<<systemTagsFilter>> suffix="-secondaryList" empty={{$:/language/EditTemplate/Tags/EmptyMessage/System}}/>
|
||||
</div>
|
||||
<%endif%>
|
||||
</div>
|
||||
@ -161,7 +161,7 @@ The second ESC tries to close the "draft tiddler"
|
||||
\function _tf.getUserInput() [<storeTitle>get[text]]
|
||||
\function _tf.getTag() [<newTagNameTiddler>get[text]]
|
||||
<!-- Use this function if tag-picker is a stand alone macro. Otherwise use "newTagNameTiddler" defined for fieldmangler in EditTemplate -->
|
||||
\function _tf.makeTagNameTiddler() [[$:/temp/NewTagName]] [<tagField>!match[tags]] +[join[/]] [<qualify>] +[join[]]
|
||||
\function _tf.makeTagNameTiddler() [[$:/temp/NewTagName]] [<tagField>!match[tags]] :and[join[/]] [<qualify>] :and[join[]]
|
||||
|
||||
<!-- keep those variables because they may "bleed" into macros using old syntax -->
|
||||
<!-- "nonSystemTagsFilter", "systemTagsFilter" __need to be the same__ as fields: "first-search-filter", "second-search-filter" -->
|
||||
@ -174,10 +174,10 @@ The second ESC tries to close the "draft tiddler"
|
||||
saveTiddler={{{ [<tiddler>is[blank]then<currentTiddler>else<tiddler>] }}}
|
||||
|
||||
newTagNameTiddler={{{ [[newTagNameTiddler]is[variable]then<newTagNameTiddler>] :else[<_tf.makeTagNameTiddler>] }}}
|
||||
storeTitle={{{ [[$:/temp/NewTagName/input]] [<tagField>!match[tags]] +[join[/]] [<qualify>] +[join[]] }}}
|
||||
storeTitle={{{ [[$:/temp/NewTagName/input]] [<tagField>!match[tags]] :and[join[/]] [<qualify>] :and[join[]] }}}
|
||||
|
||||
newTagNameSelectionTiddlerQualified=<<qualify "$:/temp/NewTagName/selected-item">>
|
||||
tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}
|
||||
tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] :else[<newTagNameSelectionTiddlerQualified>] }}}
|
||||
|
||||
refreshTitle=<<qualify "$:/temp/NewTagName/refresh">>
|
||||
|
||||
@ -186,6 +186,6 @@ The second ESC tries to close the "draft tiddler"
|
||||
|
||||
cancelPopups="yes"
|
||||
>
|
||||
<$macrocall $name="tag-picker-inner"/>
|
||||
<$transclude $variable="tag-picker-inner"/>
|
||||
</$let>
|
||||
\end
|
||||
|
@ -1,5 +1,5 @@
|
||||
title: $:/core/macros/testcase
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\whitespace trim
|
||||
|
||||
|
@ -1,25 +1,25 @@
|
||||
created: 20141212105914482
|
||||
modified: 20141212110330815
|
||||
tags: $:/tags/Macro
|
||||
title: $:/core/macros/timeline
|
||||
|
||||
<!-- Override one or both of the following two macros with a global or local macro of the same name
|
||||
if you need to change how titles are displayed on a timeline -->
|
||||
|
||||
\define timeline-title() <$view field="title"/>
|
||||
\define timeline-link() <$link to={{!!title}}><<timeline-title>></$link>
|
||||
\define timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
|
||||
\procedure timeline-title() <$view field="title"/>
|
||||
\procedure timeline-link() <$link to={{!!title}}><<timeline-title>></$link>
|
||||
\procedure timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
|
||||
\whitespace trim
|
||||
<div class="tc-timeline">
|
||||
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
|
||||
<$set name="tv-tids" filter=`[!is[system]$(subfilter)$has<dateField>!sort<dateField>limit<limit>]`>
|
||||
<$list filter="[enlist<tv-tids>eachday<dateField>]">
|
||||
<div class="tc-menu-list-item">
|
||||
<$view field="$dateField$" format="date" template="$format$"/>
|
||||
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
|
||||
<$view field=<<dateField>> format="date" template=<<format>>/>
|
||||
<$list filter=`[enlist<tv-tids>sameday:$(dateField)${!!$(dateField)$}]`>
|
||||
<div class="tc-menu-list-subitem">
|
||||
<<timeline-link>>
|
||||
</div>
|
||||
</$list>
|
||||
</div>
|
||||
</$list>
|
||||
</$set>
|
||||
</div>
|
||||
\end
|
||||
|
@ -37,7 +37,10 @@ tags: $:/tags/Macro
|
||||
\end
|
||||
|
||||
\define toc(tag,sort:"",itemClassFilter:"", exclude)
|
||||
<$macrocall $name="toc-body" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>>/>
|
||||
\whitespace trim
|
||||
<$let __tag__={{{ [<__tag__>is[blank]then<currentTiddler>else<__tag__>] }}} >
|
||||
<$macrocall $name="toc-body" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>>/>
|
||||
</$let>
|
||||
\end
|
||||
|
||||
\define toc-linked-expandable-body(tag,sort:"",itemClassFilter,exclude,path)
|
||||
@ -99,7 +102,7 @@ tags: $:/tags/Macro
|
||||
|
||||
\define toc-expandable(tag,sort:"",itemClassFilter:"",exclude,path)
|
||||
\whitespace trim
|
||||
<$let tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>
|
||||
<$let __tag__={{{ [<__tag__>is[blank]then<currentTiddler>else<__tag__>] }}} tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>
|
||||
<$set name="excluded" filter="[subfilter<__exclude__>] [<__tag__>]">
|
||||
<ol class="tc-toc toc-expandable">
|
||||
<$list filter="""[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[subfilter<__exclude__>]""">
|
||||
@ -173,7 +176,7 @@ tags: $:/tags/Macro
|
||||
|
||||
\define toc-selective-expandable(tag,sort:"",itemClassFilter,exclude,path)
|
||||
\whitespace trim
|
||||
<$let tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>
|
||||
<$let __tag__={{{ [<__tag__>is[blank]then<currentTiddler>else<__tag__>] }}} tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>
|
||||
<$set name="excluded" filter="[subfilter<__exclude__>] [<__tag__>]">
|
||||
<ol class="tc-toc toc-selective-expandable">
|
||||
<$list filter="""[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[subfilter<__exclude__>]""">
|
||||
@ -188,31 +191,35 @@ tags: $:/tags/Macro
|
||||
|
||||
\define toc-tabbed-external-nav(tag,sort:"",selectedTiddler:"$:/temp/toc/selectedTiddler",unselectedText,missingText,template:"",exclude)
|
||||
\whitespace trim
|
||||
<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>
|
||||
<div class="tc-tabbed-table-of-contents">
|
||||
<$linkcatcher to=<<__selectedTiddler__>>>
|
||||
<div class="tc-table-of-contents">
|
||||
<$macrocall $name="toc-selective-expandable" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter="[all[current]] -[<__selectedTiddler__>get[text]]" exclude=<<__exclude__>>/>
|
||||
<$let __tag__={{{ [<__tag__>is[blank]then<currentTiddler>else<__tag__>] }}}>
|
||||
<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>
|
||||
<div class="tc-tabbed-table-of-contents">
|
||||
<$linkcatcher to=<<__selectedTiddler__>>>
|
||||
<div class="tc-table-of-contents">
|
||||
<$macrocall $name="toc-selective-expandable" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter="[all[current]] -[<__selectedTiddler__>get[text]]" exclude=<<__exclude__>>/>
|
||||
</div>
|
||||
</$linkcatcher>
|
||||
<div class="tc-tabbed-table-of-contents-content">
|
||||
<$reveal stateTitle=<<__selectedTiddler__>> type="nomatch" text="">
|
||||
<$transclude mode="block" tiddler=<<__template__>>>
|
||||
<h1><<toc-caption>></h1>
|
||||
<$transclude mode="block">$missingText$</$transclude>
|
||||
</$transclude>
|
||||
</$reveal>
|
||||
<$reveal stateTitle=<<__selectedTiddler__>> type="match" text="">
|
||||
$unselectedText$
|
||||
</$reveal>
|
||||
</div>
|
||||
</$linkcatcher>
|
||||
<div class="tc-tabbed-table-of-contents-content">
|
||||
<$reveal stateTitle=<<__selectedTiddler__>> type="nomatch" text="">
|
||||
<$transclude mode="block" tiddler=<<__template__>>>
|
||||
<h1><<toc-caption>></h1>
|
||||
<$transclude mode="block">$missingText$</$transclude>
|
||||
</$transclude>
|
||||
</$reveal>
|
||||
<$reveal stateTitle=<<__selectedTiddler__>> type="match" text="">
|
||||
$unselectedText$
|
||||
</$reveal>
|
||||
</div>
|
||||
</div>
|
||||
</$tiddler>
|
||||
</$tiddler>
|
||||
</$let>
|
||||
\end
|
||||
|
||||
\define toc-tabbed-internal-nav(tag,sort:"",selectedTiddler:"$:/temp/toc/selectedTiddler",unselectedText,missingText,template:"",exclude)
|
||||
\whitespace trim
|
||||
<$linkcatcher to=<<__selectedTiddler__>>>
|
||||
<$macrocall $name="toc-tabbed-external-nav" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>> exclude=<<__exclude__>> />
|
||||
</$linkcatcher>
|
||||
<$let __tag__={{{ [<__tag__>is[blank]then<currentTiddler>else<__tag__>] }}}>
|
||||
<$linkcatcher to=<<__selectedTiddler__>>>
|
||||
<$macrocall $name="toc-tabbed-external-nav" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>> exclude=<<__exclude__>> />
|
||||
</$linkcatcher>
|
||||
</$let>
|
||||
\end
|
||||
|
13
editions/ja-JP/tiddlers/about/Philosophy of Tiddlers.tid
Normal file
13
editions/ja-JP/tiddlers/about/Philosophy of Tiddlers.tid
Normal file
@ -0,0 +1,13 @@
|
||||
created: 20131128075743966
|
||||
modified: 20241018104722786
|
||||
original-modified: 20140919160655340
|
||||
tags: Learning
|
||||
title: Philosophy of Tiddlers
|
||||
ja-title: Tiddlerの哲学
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
情報を記録して整理する目的は、情報を再利用できるようにすることです。記録された情報の価値は、再利用の容易さに直接比例します
|
||||
|
||||
[[Tiddler|Tiddlers]]の哲学は、情報を意味のある最小単位にスライスし、[[それらの間の関係を豊富にモデリングする|Structuring TiddlyWiki]]ことで、再利用の可能性を最大化することです。次に、集約と合成を使用して断片を織り合わせてストーリーを表現します
|
||||
|
||||
TiddlyWikiは、情報アイテム間の関係を表現し探索する簡潔な方法である、Tiddlerの代数を提供することを目指しています
|
@ -17,7 +17,7 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -16,7 +16,7 @@ caption: エディション
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -16,7 +16,7 @@ caption: パレット
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -16,7 +16,7 @@ caption: プラグイン
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -16,7 +16,7 @@ caption: テーマ
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -17,7 +17,7 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -17,7 +17,7 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
25
editions/ja-JP/tiddlers/community/OXTWIG.tid
Normal file
25
editions/ja-JP/tiddlers/community/OXTWIG.tid
Normal file
@ -0,0 +1,25 @@
|
||||
created: 20140222133223882
|
||||
modified: 20241016110202440
|
||||
original-modified: 20140912150349097
|
||||
tags: Meetups Videos
|
||||
title: OXTWIG
|
||||
ja-title: OXTWIG
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
''Oxford ~TiddlyWiki Interest Group''は毎月ミーティングを開き、TiddlyWikiに関する議論やデモンストレーションを行っています
|
||||
|
||||
次回のミーティングの詳細については、 https://oxtwig.eventbrite.co.uk/ をご覧ください
|
||||
|
||||
ディスカッションメーリングリストもあります: https://groups.google.com/forum/#!members/oxtwig
|
||||
|
||||
! OXTWIG #2
|
||||
|
||||
第2回OXTWIGミーティングは、2014年1月16日(木)に開催されました:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/WOK_nVBf_6U" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
! OXTWIG #1
|
||||
|
||||
最初のOXTWIGミーティングは2013年11月21日(木)に開催されました:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/tpNf_Dms_TE" frameborder="0" allowfullscreen></iframe>
|
@ -16,7 +16,7 @@ caption: その他
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
13
editions/ja-JP/tiddlers/community/TiddlyWiki Hangouts.tid
Normal file
13
editions/ja-JP/tiddlers/community/TiddlyWiki Hangouts.tid
Normal file
@ -0,0 +1,13 @@
|
||||
created: 20130823091700000
|
||||
modified: 20241016110307487
|
||||
original-modified: 20211124214214045
|
||||
tags: Community Videos
|
||||
title: TiddlyWiki Hangouts
|
||||
ja-title: TiddlyWikiハングアウト
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiコミュニティは、長年にわたり多くのGoogleハングアウトを開催してきました。これらは、[[TiddlyWiki Googleグループ|https://groups.google.com/d/forum/tiddlywiki]]、および、[[TiddlyWiki Twitterアカウント|https://twitter.com/TiddlyWiki]]で発表されます。
|
||||
|
||||
過去のハングアウトは以下の~YouTubeプレイリストにアーカイブされています:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLVT_2PPd-1p34gGCQ5qpwC8QdykxVAI3u" frameborder="0" allowfullscreen></iframe>
|
@ -17,7 +17,7 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
! <$link><$view field="title"/></$link>
|
||||
|
||||
<div class="tc-subtitle"> <$view field="modified" format="relativedate"/> の投稿</div>
|
||||
<div class="tc-subtitle"> <$view field="original-modified" format="relativedate"><$view field="modified" format="relativedate"/></$view> の投稿</div>
|
||||
|
||||
<$transclude/>
|
||||
|
||||
|
@ -0,0 +1,123 @@
|
||||
created: 20210222140234737
|
||||
modified: 20241019104919003
|
||||
original-modified: 20211123034501278
|
||||
tags: Learning KeyboardDrivenInput
|
||||
title: Demonstration: keyboard-driven-input Macro
|
||||
ja-title: デモ: キーボード入力マクロ
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\define allshortcuts(descriptor)
|
||||
<$wikify name=scutlist text=<<displayshortcuts (($descriptor$)) '' ' ' ''>> >
|
||||
<$list filter="[<scutlist>split[ ]join[</kbd>や<kbd>]addprefix[<kbd>]addsuffix[</kbd>]]" variable=scts><<scts>></$list>
|
||||
</$wikify>
|
||||
\end
|
||||
|
||||
\define kdi-demo-textmacrocall()
|
||||
```
|
||||
<$macrocall $name=keyboard-driven-input
|
||||
tiddler="$(tiddler)$"
|
||||
storeTitle="$(storeTitle)$"
|
||||
selectionStateTitle="$(selectionStateTitle)$"
|
||||
configTiddlerFilter="$(configTiddlerFilter)$"
|
||||
/>
|
||||
```
|
||||
\end
|
||||
|
||||
<$vars configTiddlerFilter="[[kdi-demo-configtid]]" tiddler="kdi-demo-tiddler" storeTitle="kdi-demo-storeTitle" selectionStateTitle="kdi-demo-selectionStateTitle" >
|
||||
|
||||
[[キーボード入力マクロ|keyboard-driven-input Macro]]は、ユーザーの入力に応じて更新されるフィルターされたリストを作成するために使用されます。また、キーボードを使用してリストをナビゲートしたり、リスト項目を使用してマクロを呼び出したりすることもできます。
|
||||
|
||||
これは、[[キーボードウィジェット|KeyboardWidget]]でラップされた''[[編集テキストウィジェット|EditTextWidget]]''で構成されています。`((input-accept))`、`((input-accept-variant))`、および`((input-cancel))`キーボードショートカットをリッスンする<<.def keyboard>>ウィジェットがありますが、これらのイベントに応答するデフォルトの動作はありません。マクロをユースケースに合わせて記述する必要があります。また、フィルターされたオプションリストのデフォルトの視覚化も定まっていません。
|
||||
|
||||
!!<<.var keyboard-driven-input>>マクロによって処理されるキーボード入力の種類:
|
||||
|
||||
!!!設定不可:
|
||||
|
||||
次のキーボードイベントは、[[$:/core/macros/keyboard-driven-input]]の<<.var keyboard-driven-input>>で定義されているマクロを呼び出します。
|
||||
|
||||
|入力 |目的 |マクロ |h
|
||||
|タイプ入力 |リストフィルター内で使用される文字列を作成する |<<.var keyboard-input-actions>> |
|
||||
|`((input-up))` (<<allshortcuts input-up>>) |フィルタリングされたリスト内の前の項目を一時的に選択する |パタメータ<<.param afterOrBefore>>=`"before"`、<<.param reverse>>=`"reverse[]"`付きの<<.var input-next-actions>> |
|
||||
|`((input-down))` (<<allshortcuts input-down>>) |フィルタリングされたリスト内の次の項目を一時的に選択する |パラメータ<<.param afterOrBefore>>=`"after"`、<<.param reverse>>=`""`付きの<<.var input-next-actions>> |
|
||||
|
||||
上記のすべてのアクションは、<<.var keyboard-driven-input>>がマクロのパラメータを使用して指定されたTiddler内に保持されるデータを生成または変更します。その後、キーボードショートカットによって呼び出されるマクロだけでなく、例えばフィルタリングされたリストを表示するマクロなど、これらの外部もデータにアクセスできます。
|
||||
|
||||
!!!パラメータで設定可能:
|
||||
|
||||
次のキーボードイベントは、<<.var keyboard-driven-input>>にパラメータで名前が指定されているマクロを呼び出します。パラメータ名から目的が推測されますが、[[$:/core/macros/keyboard-driven-input]]内にはデフォルトのマクロは定義されていません。
|
||||
|
||||
|[[キーボードショートカット記述 |Keyboard Shortcut Descriptor]] |キーの組み合わせ |パタメーター |h
|
||||
|`((input-accept))` |<<allshortcuts input-accept>> |<<.param inputAcceptActions>> |
|
||||
|`((input-accept-variant))` |<<allshortcuts input-accept-variant>> |<<.param inputAcceptVariantActions>> |
|
||||
|`((input-cancel))` |<<allshortcuts input-cancel>> |<<.param inputCancelActions>> |
|
||||
|
||||
<<.var keyboard-driven-input>> は、TiddlyWikiのさまざまなコア機能の一部として動作しているのを見ることができます。たとえば、[[検索機能|Searching in TiddlyWiki]]、[[tag-pickerマクロ|tag-picker Macro]]、[[リンクの挿入|Insert link]]のような[[エディターツールバー|Editor toolbar]]のドロップダウンインターフェースなどです。
|
||||
|
||||
!!デモに必要な最小限の材料
|
||||
|
||||
<<.var keyboard-driven-input>>マクロ自体はリストの結果を表示したり、選択されたオプションに対して何かを実行したりしないことを念頭に置いて、<<.var keyboard-driven-input>>マクロの最小限のデモンストレーションには以下が必要です:
|
||||
|
||||
# ユーザーのテキスト入力に応じて結果が変化する''フィルターを含むTiddler''は、ユーザーが選択できるオプションを生成すること
|
||||
# ''いくつかのパラメータ:''
|
||||
#*ステップ1で説明したフィルタが見つかるTiddlerのタイトルを返す''フィルタ''
|
||||
#*入力イベントに応答して状態情報を格納するために使用する''Tiddler タイトル''。これらのTiddlerは既に存在している必要はありません。存在する場合は、<<.var keyboard-driven-input>>マクロによってその内容が変更されます。
|
||||
|
||||
!!検索フィルター
|
||||
|
||||
デフォルトでは、Tiddler(そのタイトルは、以下で説明するパラメータで指定されます)の<<.field first-search-filter>>と<<.field second-search-filter>>フィールドでフィルターを検索します。
|
||||
|
||||
このフィルタは、<<.var userInput>>と呼ばれる変数を参照できます。この変数は、最新の<kbd><<displayshortcuts ((input-up))>></kbd>や<kbd><<displayshortcuts ((input-down))>></kbd>イベントの発生時に、状態Tiddler(後述)に保存されている<<.def edit-text>>ウィジェットの内容を表示します。
|
||||
|
||||
''注:'' このフィルターが<<.var keyboard-driven-input>>マクロ(フィルターされたオプションを表示するポップアップなど)の外のコンテキストで参照される場合は、変数<<.var userInput>>もそれらのコンテキストで定義する必要があります(状態Tiddlerから読み取ることによって)。
|
||||
|
||||
!!最小限のパラメータ
|
||||
|
||||
|Parameter name |Notes |h
|
||||
|<<.param configTiddlerFilter>> |これは、Tiddlerのタイトルではなく、条件付き動作(たとえば、アクティブなタブの確認やフォールバックで存在しないフィルターを選び出すなど)を可能にするフィルターです。<br>返されるタイトルは、<<.var keyboard-driven-input>>が結果リストを生成できる少なくとも1つのフィルターを含む既存のTiddlerに属している必要があります。 |
|
||||
|<<.param tiddler>> |このTiddlerには、最新のイベントに応じて、入力された内容や即時の選択結果が含まれます。これは、''edit-text''ウィジェットでキーが押されるたびに、//また//、ユーザーが<kbd><<displayshortcuts ((input-up))>></kbd>や<kbd><<displayshortcuts ((input-down))>></kbd>キーを使用してフィルタリングされた結果を循環するときにも更新されます。 |
|
||||
|<<.param storeTitle>> |このTiddlerは、常にユーザー入力を反映します(各キーストロークの後にTiddler<<.param tiddler>>から''edit-text''ウィジェットに転送されます)。 |
|
||||
|<<.param selectionStateTitle>> |このTiddlerは、<kbd><<displayshortcuts ((input-up))>></kbd>や<kbd><<displayshortcuts ((input-down))>></kbd>イベントで更新され、最大2つのフィルタのどちらがリストを生成したかに応じて、サフィックス`-userInput`が付いたユーザー入力か、またはサフィックス`-primaryList`か`-secondaryList`が付いた瞬間的な選択のいずれかが含まれます。 |
|
||||
|
||||
!!デモのセットアップ
|
||||
|
||||
私は<$list filter=<<configTiddlerFilter>> />というTiddlerを作成し、その<<.field first-search-filter>>フィールドに次のフィルターを配置しました:
|
||||
|
||||
<code><$list filter=<<configTiddlerFilter>> ><$text text={{!!first-search-filter}}/></$list></code>.
|
||||
|
||||
これは、タイトルにユーザーが入力したテキストが含まれる非システムTiddlerをフィルターします。
|
||||
|
||||
上記の<<.var keyboard-driven-input>>を持つフィルターを使用するには、パラメーター<<.param configTiddlerFilter>>の値が<$list filter=<<configTiddlerFilter>> />を返すフィルターである必要があります。
|
||||
|
||||
<<.param tiddler>>、<<.param storeTitle>>、<<.param selectionStateTitle>>は、かなり任意に選択できます(変更したくないTiddlerのタイトルを使用しないように注意するだけです)。
|
||||
|
||||
このデモは、次のマクロ呼び出しで呼び出すことができます:
|
||||
|
||||
<<kdi-demo-textmacrocall>>
|
||||
|
||||
!!デモ
|
||||
|
||||
ここに入力してみてください: <$macrocall $name=keyboard-driven-input
|
||||
tiddler=<<tiddler>>
|
||||
storeTitle=<<storeTitle>>
|
||||
selectionStateTitle=<<selectionStateTitle>>
|
||||
configTiddlerFilter=<<configTiddlerFilter>>
|
||||
/>
|
||||
|
||||
下の表のさまざまな状態Tiddlerの変化を観察してください。<kbd><<displayshortcuts ((input-up))>></kbd>や<kbd><<displayshortcuts ((input-down))>></kbd>キーを使用して、フィルター結果を移動します。何も変化がない場合は、入力を短くしてフィルターを広げてください。入力の長さが0の場合、リストにはシステム以外のTiddlerがすべて含まれます。
|
||||
|
||||
@@.tablestyle
|
||||
|
||||
|Parameter name |Tiddlerのタイトル |Tiddlerの<<.field text>>フィールドの内容 |h
|
||||
|<<.param tiddler>> |{{{[<tiddler>]}}} |<pre><$text text={{{[<tiddler>get[text]]}}}/></pre>|
|
||||
|<<.param storeTitle>> |{{{[<storeTitle>]}}} |<pre><$text text= {{{[<storeTitle>get[text]]}}}/></pre>|
|
||||
|<<.param selectionStateTitle>> |{{{[<selectionStateTitle>]}}} |<pre><$text text={{{[<selectionStateTitle>get[text]]}}}/></pre>|
|
||||
@@
|
||||
|
||||
<<.var keyboard-driven-input>>マクロには、囲まれた''edit-text''ウィジェットのすべての属性を含む多くのパラメーターが用意されており、その使用方法や結果の表示方法、操作方法が非常に柔軟です。
|
||||
|
||||
参照: [[検索結果のカスタマイズ|Customising search results]]と[[$:/core/ui/DefaultSearchResultList]]
|
||||
|
||||
<style>
|
||||
.tablestyle {width:100%;}
|
||||
.tablestyle td + td + td {width: 50%;}
|
||||
</style>
|
@ -0,0 +1,8 @@
|
||||
created: 20130825143000000
|
||||
modified: 20241017114535878
|
||||
original-modified: 20211115013141494
|
||||
tags: task TaskManagementExample
|
||||
title: Compose ballad
|
||||
ja-title: バラードを作曲する
|
||||
|
||||
//これは、[[タスク管理の例|TaskManagementExample]]のサンプルタスクです//
|
@ -0,0 +1,8 @@
|
||||
created: 20130825143100000
|
||||
modified: 20241017115556461
|
||||
original-modified: 20211115013240401
|
||||
tags: task TaskManagementExample
|
||||
title: Get the Ring
|
||||
ja-title: 指輪を手に入れる
|
||||
|
||||
//これは、[[タスク管理の例|TaskManagementExample]]のサンプルタスクです//
|
@ -0,0 +1,8 @@
|
||||
created: 20130825143100000
|
||||
modified: 20241017115219870
|
||||
original-modified: 20211115181040966
|
||||
tags: task done TaskManagementExample
|
||||
title: Go to Mordor
|
||||
ja-title: モルドールに行く
|
||||
|
||||
//これは、[[タスク管理の例|TaskManagementExample]]のサンプルタスクです//
|
@ -0,0 +1,9 @@
|
||||
created: 20130825143100000
|
||||
list-before: Get the Ring
|
||||
modified: 20241017115431750
|
||||
original-modified: 20211115013217852
|
||||
tags: task TaskManagementExample
|
||||
title: Kill the Dragon
|
||||
ja-title: ドラゴンを倒す
|
||||
|
||||
//これは、[[タスク管理の例|TaskManagementExample]]のサンプルタスクです//
|
@ -0,0 +1,8 @@
|
||||
created: 20130825143100000
|
||||
modified: 20241017115742470
|
||||
original-modified: 20211115013200231
|
||||
tags: task TaskManagementExample
|
||||
title: Make the beds
|
||||
ja-title: ベッドを整える
|
||||
|
||||
//これは、[[タスク管理の例|TaskManagementExample]]のサンプルタスクです//
|
@ -0,0 +1,27 @@
|
||||
created: 20130825213300000
|
||||
modified: 20241017114309207
|
||||
original-modified: 20180307153530187
|
||||
tags: Learning
|
||||
title: TaskManagementExample
|
||||
ja-title: タスク管理の例
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWiki5は、カスタマイズすることなく、シンプルなタスク管理システムとして使用できます。タスクに`task`タグを付け、完了したタスクに`done`タグも付けるというアイデアです。このようにして、タスクリストを簡単に作成できます。
|
||||
|
||||
<<.tip """タスクをドラッグアンドドロップして並べ替える機能が追加された[[このデモの拡張版|TaskManagementExample (Draggable)]]があります""">>
|
||||
|
||||
! 未完了のタスク
|
||||
|
||||
<$list filter="[!has[draft.of]tag[task]!tag[done]sort[created]]">
|
||||
|
||||
<$checkbox tag="done"> <$link/></$checkbox>
|
||||
|
||||
</$list>
|
||||
|
||||
! 完了したタスク
|
||||
|
||||
<$list filter="[!has[draft.of]tag[task]tag[done]sort[created]]">
|
||||
|
||||
<$checkbox tag="done"> ~~<$link/>~~</$checkbox>
|
||||
|
||||
</$list>
|
@ -0,0 +1,25 @@
|
||||
created: 20180307153530187
|
||||
modified: 20241022104926750
|
||||
original-modified: 20180307153530187
|
||||
tags: Learning
|
||||
title: TaskManagementExample (Draggable)
|
||||
ja-title: タスク管理の例(ドラッグ可能)
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
これは[[タスク管理の例|TaskManagementExample]]のタスクリストをドラッグアンドドロップして並べ替える機能を付与した強化バージョンです
|
||||
|
||||
! 未完了のタスク
|
||||
|
||||
//タスクをドラッグして順序を変更できます//
|
||||
|
||||
<<list-tagged-draggable tag:"task" subFilter:"!has[draft.of]!tag[done]" itemTemplate:"TaskManagementExampleDraggableTemplate" emptyMessage:"アクティブなタスクはありません">>
|
||||
|
||||
! 完了したタスク
|
||||
|
||||
//(完了した逆順にリストされています)//
|
||||
|
||||
<$list filter="[!has[draft.of]tag[task]tag[done]sort[modified]]">
|
||||
<div>
|
||||
<$checkbox tag="done"> ~~<$link/>~~</$checkbox>
|
||||
</div>
|
||||
</$list>
|
@ -0,0 +1,9 @@
|
||||
created: 20180307153530187
|
||||
modified: 20241022105026989
|
||||
original-modified: 20180307153530187
|
||||
tags: Learning
|
||||
title: TaskManagementExampleDraggableTemplate
|
||||
ja-title: タスク管理の例(ドラッグ可能)のテンプレート
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<$checkbox tag="done"> <$link/></$checkbox>
|
8
editions/ja-JP/tiddlers/demonstrations/Tasks/done.tid
Normal file
8
editions/ja-JP/tiddlers/demonstrations/Tasks/done.tid
Normal file
@ -0,0 +1,8 @@
|
||||
color: #2dbe37
|
||||
created: 20211115013354157
|
||||
icon: $:/core/images/done-button
|
||||
modified: 20241017115050246
|
||||
original-modified: 20211115013357660
|
||||
tags: TaskManagementExample
|
||||
title: done
|
||||
ja-title: 済み
|
10
editions/ja-JP/tiddlers/demonstrations/Tasks/task.tid
Normal file
10
editions/ja-JP/tiddlers/demonstrations/Tasks/task.tid
Normal file
@ -0,0 +1,10 @@
|
||||
color: #8d9ac3
|
||||
created: 20130825213200000
|
||||
list: [[Make the beds]]
|
||||
modified: 20241017115926413
|
||||
original-modified: 20211115013121643
|
||||
tags: TaskManagementExample
|
||||
title: task
|
||||
ja-title: タスク
|
||||
|
||||
//このタグは、[[タスク管理の例|TaskManagementExample]]のタスクを識別します//
|
@ -0,0 +1,97 @@
|
||||
created: 20140410101941871
|
||||
modified: 20241016110639693
|
||||
original-modified: 20201103111438568
|
||||
tags: Learning Filters
|
||||
title: Introduction to filter notation
|
||||
ja-title: フィルタ表記の紹介
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.preamble """ここでは、Tiddlerのセットを選択する[[フィルタ|Filters]]の書き方の基本を説明しています。より技術的なプレゼンテーションについては、[[フィルタのシンタックス|Filter Syntax]]を参照してください""">>
|
||||
|
||||
<$macrocall $name=".tip" _="""フィルタを単独でTiddlerに入力するだけでは、フィルタは何も行いません。コンテキストが必要です。フィルタを試す簡単な方法は、[[詳細検索|$:/AdvancedSearch]]の<<.advancedsearch-tab Filter>>タブにフィルタを入力することです"""/>
|
||||
|
||||
最も単純なケースは、どのTiddlerが必要かすでに正確にわかっている場合です。各タイトルを二重角括弧で囲み、各タイトルと次のタイトルの間にスペースを入れて入力します:
|
||||
|
||||
> `[[Recipe book]] [[ScrambledEggs]] [[Mom's apple pie]]`
|
||||
|
||||
タイトルにスペースが含まれていない場合は、角括弧を省略できます:
|
||||
|
||||
> `[[Recipe book]] ScrambledEggs [[Mom's apple pie]]`
|
||||
|
||||
二重角括弧は実際には次の表記の短縮形です:
|
||||
|
||||
> `[title[ScrambledEggs]]`
|
||||
|
||||
... 任意のフィルタの<<.def "一般的なモデル">>は次のようになります:
|
||||
|
||||
> `[operator[parameter]]`
|
||||
|
||||
例えば、<<.tag Recipe>>でタグ付けされたすべてのTiddlerを選択する方法は次のとおりです:
|
||||
|
||||
> `[tag[Recipe]]`
|
||||
|
||||
演算子の直前に感嘆符`!`を追加すると、意味を逆にすることができます。例えば、<<.tag Recipe>>タグのない任意のTiddlerを選択できます:
|
||||
|
||||
> `[!tag[Recipe]]`
|
||||
|
||||
Tiddlerは、タイトルとタグ以外の他のフィールドでもフィルタリングできます:
|
||||
|
||||
> `[field:serving[4]]`
|
||||
|
||||
この例では、<<.field serving>>フィールドに、<<.value 4>>を持つすべてのTiddlerを選択します:
|
||||
|
||||
"serving"という単語は標準のフィルタ演算子ではない(また、標準のフィルタ演算子になる可能性も低い)ため、`field:`接頭辞を省略しても安全です:
|
||||
|
||||
> `[serving[4]]`
|
||||
|
||||
!組み合わせ
|
||||
|
||||
これまで見てきたフィルタには、それぞれ1つのステップしか含まれていません。でも、次のように複数のステップを一緒に<<.def ラン>>できます:
|
||||
|
||||
> `[tag[Vegetarian]!tag[soup]serving[4]]`
|
||||
|
||||
1組の角括弧内にラン全体がどのように含まれているかに注目してください
|
||||
|
||||
Tiddlerはランの中で<<.em すべて>>のステップを一致させなければなりません。したがって、上の例では、4人分のベジタリアンレシピ(スープ以外)を取得します
|
||||
|
||||
一連の個別のランにより、<<.em いずれか>>のランに一致するTiddlerが選択されます。これを使用して、3人分、または、4人分、5人分のレシピを見つけることができます:
|
||||
|
||||
> `[serving[3]] [serving[4]] [serving[5]]`
|
||||
|
||||
4人分のベジタリアンレシピを無視したい場合は、次のように言えます:
|
||||
|
||||
> `[serving[3]] [serving[4]!tag[Vegetarian]] [serving[5]]`
|
||||
|
||||
デフォルトでは、各ランではWiki内のすべてのTiddlerが考慮されます。ただし、`+`記号を使用して、前の実行で選択されたTiddlerのみを考慮するようにランを強制することができます:
|
||||
|
||||
> `[serving[3]] [serving[4]] [serving[5]] +[tag[Vegetarian]] +[sort[title]]`
|
||||
|
||||
これにより、3人分、または、4人分、5人分のレシピが選択され、次に<<.em それら>>がフィルタリングされてベジタリアンレシピのみが残り、最後に残ったレシピがタイトルのアルファベット順に並べ替えられます
|
||||
|
||||
同様の方法で、`-`符号を使用して、これまでの結果からランのTiddlerを<<.em 除外>>できます。次の表記では、2つを除くすべてのベジタリアンレシピを選択します:
|
||||
|
||||
> `[tag[Vegetarian]] -[title[ScrambledEggs]] -BeansOnToast`
|
||||
|
||||
!スペシャルパラメータ
|
||||
|
||||
これまで見てきた各ステップのパラメータは角括弧内にあります。これは、~TiddlyWikiが括弧内にある正確な文字列をフィルターすることを意味します。でも、他に2種類の括弧も使用できます:
|
||||
|
||||
<<.def "中括弧">>`{}`はパラメータはTextReferenceであり、別のTiddlerのコンテンツに置き換えられることを意味します。例えば、タイトルが<<.tid Preference>>であり、その内容が1つの単語<<.value Vegetarian>>であるTiddlerの場合、次のように言えます:
|
||||
|
||||
> `[tag{Preference}]`
|
||||
|
||||
この単純な形式では、TextReferenceはTiddlerの完全な内容(技術用語では、Tiddlerのテキストフィールド)を取得し、TextReferenceの代わりにそれを置き換えます。こうすることで、`[tag[Vegetarian]]`を記述した場合と同様に、Tiddlerの内容がフィルタパラメータになります。違いは、Preference Tiddlerの内容を変更することで、パラメータを変更する柔軟性が高まります
|
||||
|
||||
<<.def "山括弧">>`<>`は、パラメータが[[変数|Variables]]の名前であり、その値が代わりに使用されることを意味します。現在のタイトルをテキストに含むTiddlerを選択するフィルターとして、<<.vlink currentTiddler>>組込み変数を使用します:
|
||||
|
||||
山括弧は、パラメータが[[変数|Variables]]の名前であり、その値が代わりに使用されることを意味します。ここでは、テキストに現在のタイトルが含まれるTiddlerを選択するフィルタで、組込み変数<<.vlink currentTiddler>>を使用します:
|
||||
|
||||
> `[search<currentTiddler>]`
|
||||
|
||||
これらの特殊な括弧はネストできないことに注意してください。例えば、`[search{<currentTiddler>}]`と書くことはできません
|
||||
|
||||
!複数のパラメータ
|
||||
|
||||
<<.from-version "5.1.23">>一部のステップは、` , `文字で区切られた複数のパラメータを受け入れます
|
||||
|
||||
> Example: `[param1],[param2]` or `<param1>,{param2}`
|
@ -3,7 +3,8 @@ ja-title: HelloThumbnail - Grok TiddlyWiki
|
||||
tags: HelloThumbnail
|
||||
color: #D5B7EA
|
||||
image: Grok TiddlyWiki Banner
|
||||
caption: Grok ~TiddlyWiki
|
||||
caption: Grok ~TiddlyWiki 2.0
|
||||
link: "Grok TiddlyWiki" by Soren Bjornstad
|
||||
ribbon-text: NEW 2.0
|
||||
|
||||
~TiddlyWikiを最大限に活用するために知っておくべきこと
|
||||
~TiddlyWikiの総合的なインタラクティブガイド。基礎から高度な概念までを網羅し、学習に役立つ演習やヒントも掲載しています
|
@ -0,0 +1,24 @@
|
||||
created: 20140103091348509
|
||||
modified: 20241018104349502
|
||||
original-modified: 20140919161534259
|
||||
tags: Learning
|
||||
title: Adding a Twitter Follow button
|
||||
ja-title: Twitterのフォローボタンを追加する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
|
||||
以下は、特定のユーザー名のTwitterフォローボタンを提供するマクロです:
|
||||
|
||||
```
|
||||
\define twitterFollowButton(username)
|
||||
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/follow_button.html?screen_name=$username$" style="width:300px; height:20px;"></iframe>
|
||||
\end
|
||||
```
|
||||
|
||||
https://dev.twitter.com/docs/follow-button で公開されているバージョンからの唯一の変更点は、新しい行が削除されたことです
|
||||
|
||||
src URLはプロトコル(つまり、"http"または"https")なしで指定されていることに注意してください。このようにして、サイトがHTTPドメインでホストされているかHTTPSドメインでホストされているかに関係なく機能するようにします。TiddlyWikiを"file://" URLでオフライン使用しているときにTwitterボタンを機能させたい場合は、プロトコルを手動で追加する必要があります。例えば:
|
||||
|
||||
```
|
||||
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=jermolene" style="width:300px; height:20px;"></iframe>
|
||||
```
|
16
editions/ja-JP/tiddlers/howtos/Adopt a Titles Policy.tid
Normal file
16
editions/ja-JP/tiddlers/howtos/Adopt a Titles Policy.tid
Normal file
@ -0,0 +1,16 @@
|
||||
created: 20130825103300000
|
||||
modified: 20241018105028003
|
||||
original-modified: 20140912150136251
|
||||
tags: Learning
|
||||
title: Adopt a Titles Policy
|
||||
ja-title: タイトルポリシーを採用する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
|
||||
TiddlyWikiドキュメント内の構造が複雑になるにつれて、Tiddlerのタイトルの一貫性を保つのが難しくなることがあります。例えば、用語は複数形で定義すべきでしょうか、それとも単数形で定義すべきでしょうか?キャメルケースか、スペース区切りか?
|
||||
|
||||
正式にタイトル設定ポリシーを定めると、混乱を減らすことができます。例えば、このWikiのタイトルポリシーは、[[ドキュメントスタイルガイド|Documentation Style Guide]]に記録されています
|
||||
|
||||
! [[システムTiddler|SystemTiddler]] のタイトル
|
||||
|
||||
役にたつ規則は、作成するシステムTiddlerにはプレフィックス`$:/_`を使用することです。そうするとサイドバーのシステムTiddlerリストの先頭付近に表示されるようにできます
|
@ -0,0 +1,61 @@
|
||||
created: 20160424150551727
|
||||
modified: 20241018105413659
|
||||
original-modified: 20230615114519672
|
||||
tags: Learning
|
||||
title: Concatenating text and variables using macro substitution
|
||||
ja-title: マクロ置換を使用してテキストと変数を連結する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
!! 重要
|
||||
|
||||
<<.from-version "5.3.0">> テキストと変数を連結するには、[[置換された属性|Substituted Attribute Values]]や[[置換フィルター演算子|substitute Operator]]を使用することをお勧めします。
|
||||
|
||||
~TiddlyWikiでは、変数の値をさまざまなテキスト文字列と組み合わせることがよくあります。一部のプログラミング言語では、このプロセスはテキストの"連結"と呼ばれることがよくあります。
|
||||
|
||||
---
|
||||
|
||||
!! 何があったのか
|
||||
|
||||
例えば、顧客データベースのテンプレートを設定し、顧客に関する追加の連絡先情報をリンクによって自動的に参照するようにしたいとします。Tiddler内では、次のようなことを試すかもしれません:
|
||||
|
||||
<<.bad-example "`[[Additional Info|<<currentTiddler>>-Contact]]`">>
|
||||
|
||||
しかし、これは正しく機能しません。これを試すと、リンクは文字通りに解釈され、次の場所に移動しようとします:
|
||||
|
||||
```
|
||||
<<currentTiddler>>-Contact
|
||||
```
|
||||
|
||||
解決策は、マクロを使用して、`<<currentTiddler>>`がレンダリングされた値と、追加のテキスト`-Contact`とを組み合わせることです。
|
||||
|
||||
Tiddlerの冒頭で、次のようなマクロを作成します:
|
||||
|
||||
```
|
||||
\define linkup(link) [[Additional Info|$link$-Contact]]
|
||||
```
|
||||
|
||||
新しいマクロを次のように呼び出すること試すかもしれません:
|
||||
|
||||
<<.bad-example "`<<linkup <<currentTiddler>> >>`">>
|
||||
|
||||
しかし、そうすると、`<<currentTiddler>>`はレンダリングされずに、文字通り渡されることがわかります。
|
||||
|
||||
代わりに、次のように[[MacroCallWidget]]ウィジェットを使用できます:
|
||||
|
||||
```
|
||||
<$macrocall $name="linkup" link=<<currentTiddler>> />
|
||||
```
|
||||
|
||||
この場合、変数の値をマクロに直接渡しました。これは、このタスクを実行するための一般的な方法です。他の変数に基づいてさらにリンクを作成したい場合は、それぞれの状況でマクロを再利用できます。
|
||||
|
||||
この場合のように、使用している変数が`currentTiddler`だけであれば、次のように、簡単にマクロを記述できます:
|
||||
|
||||
```
|
||||
\define linkup() [[Additional Info|$(currentTiddler)$-Contact]]
|
||||
```
|
||||
|
||||
この場合、引数を渡さないことに注意してください。代わりに、特別な構文`$(variable)$`を使用して変数を参照します。引数を渡さないため、次のように`<$macrocall>`ウィジェットなしでより簡単に呼び出すことができます:
|
||||
|
||||
```
|
||||
<<linkup>>
|
||||
```
|
@ -0,0 +1,18 @@
|
||||
created: 20220427174702859
|
||||
modified: 20241019104110533
|
||||
original-modified: 20230922122551197
|
||||
tags: [[JSON in TiddlyWiki]] Learning
|
||||
title: Constructing JSON tiddlers
|
||||
ja-title: JSON Tiddlerの構築
|
||||
|
||||
TiddlyWikiでのJSONの使い方の概要については、[[TiddlyWikiでのJSON|JSON in TiddlyWiki]]を参照してください
|
||||
|
||||
JSONデータは単なるプレーンテキストであるため、Wikiテキストで生成するためのさまざまな手法が存在します
|
||||
|
||||
高いレベルでは、TiddlyWiki独自のTiddler形式でJSONデータを生成する方法がいくつかあります:
|
||||
|
||||
* [[JSONTiddlerウィジェット|JSONTiddlerWidget]]
|
||||
* [[jsontiddlerマクロ|jsontiddler Macro]]
|
||||
* [[jsontiddlersマクロ|jsontiddlers Macro]]
|
||||
|
||||
JSONデータを手動で構築する場合、特殊文字が適切にエスケープされていることを確認するために[[jsonstringifyオペレーター|jsonstringify Operator]]が必要です
|
34
editions/ja-JP/tiddlers/howtos/Creating SubStories.tid
Normal file
34
editions/ja-JP/tiddlers/howtos/Creating SubStories.tid
Normal file
@ -0,0 +1,34 @@
|
||||
created: 20140214215718317
|
||||
modified: 20241016112045089
|
||||
original-modified: 20211127032217828
|
||||
tags: Learning
|
||||
title: Creating SubStories
|
||||
ja-title: サブストーリーを作成する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
この例では、メイン[[ストーリー|Story River]]から独立したTiddler内にサブストーリーを作成する方法を示します。NavigatorWidgetとListWidgetを連携します:
|
||||
|
||||
# リンクをクリックすると、[[ストーリー|Story River]]にTiddlerを追加します。リンクのクリックに対応するTiddlerに移動します(NavigatorWidgetの''story''属性)
|
||||
# Tiddlerの閉じるボタンがクリックされたときに、[[ストーリー|Story River]]からTiddlerを削除します(NavigatorWidgetの''story''属性)
|
||||
# Tiddlerの開閉をアニメーションします(ListWidgetの''storyview''属性)
|
||||
# 開いているTiddlerのリストを表示します(ListWidgetの''filter''属性と''template''属性)
|
||||
# Tiddlerを[[ドラフトモード|DraftMechanism]]で表示します(ListWidgetの''editTemplate''属性)
|
||||
# [[ナビゲーション履歴|HistoryMechanism]]を追跡します(NavigatorWidgetとListWidgetの両方の''history''属性)
|
||||
# そのほかいろいろ!
|
||||
|
||||
コード例は次のとおりです(関連する議論については、StateMechanismも参照してください):
|
||||
|
||||
<$macrocall $name='wikitext-example-without-html'
|
||||
src='<$navigator story="$:/temp/DemoStoryList" history="$:/temp/DemoHistoryList">
|
||||
|
||||
{{$:/core/ui/SideBarSegments/search}}
|
||||
|
||||
<$list
|
||||
filter="[list[$:/temp/DemoStoryList]]"
|
||||
history="$:/temp/DemoHistoryList"
|
||||
template={{$:/config/ui/ViewTemplate}}
|
||||
editTemplate={{$:/config/ui/EditTemplate}}
|
||||
storyview="classic"
|
||||
emptyMessage="上の検索ボックスを使用してください。クリックした検索リンクは、メインストーリーではなくここで開きます<p>何を検索すればよいか浮かびませんか?では、このリンクをクリックしてください:[[こんにちは|HelloThere]]</p>"/>
|
||||
|
||||
</$navigator>'>
|
@ -0,0 +1,40 @@
|
||||
created: 20140406210404245
|
||||
modified: 20241017113402647
|
||||
original-modified: 20140919161501896
|
||||
tags: Learning
|
||||
title: Editing Tiddlers with Emacs
|
||||
ja-title: TiddlerをEmacsで編集する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
Michael Foglemanは、TiddlyWikiの.tidファイルを編集するための[[tid-mode|https://github.com/mwfogleman/tid-mode]]と呼ばれる[[Emacs|http://www.gnu.org/software/emacs/]]のメジャーモードを作成しました。これはtext-modeから派生し、便利なマイナーモードorg-structとsubwordを使用し、.tidファイルを保存するときに変更時刻を更新します
|
||||
|
||||
彼はまた、EmacsでTiddlyWikiを使用するための2つのヘルパー関数も作成しました。1つ目は、DiredでTiddlerディレクトリを開きます。2つ目はブラウザでTiddlyWikiを開きます
|
||||
|
||||
```
|
||||
(defun open-wiki ()
|
||||
"Opens a TiddlyWiki directory in Dired."
|
||||
(interactive)
|
||||
(dired "~/Dropbox/wiki/tiddlers/"))
|
||||
```
|
||||
|
||||
```
|
||||
(defun browse-wiki ()
|
||||
"Opens TiddlyWiki in the browser."
|
||||
(interactive)
|
||||
(browse-url "127.0.0.1:8080/"))
|
||||
```
|
||||
|
||||
後者の関数では、ブラウザの指定が必要になる場合があります:
|
||||
|
||||
```
|
||||
(setq browse-url-browser-function 'browse-url-generic
|
||||
browse-url-generic-program "chromium")
|
||||
```
|
||||
|
||||
これらの関数をglobal-set-key関数でバインドできます:
|
||||
|
||||
```
|
||||
(global-set-key (kbd "C-c w") 'open-wiki)
|
||||
```
|
||||
|
||||
現時点では、これらはtid-modeに統合されていません
|
11
editions/ja-JP/tiddlers/howtos/Editing Tiddlers with Vim.tid
Normal file
11
editions/ja-JP/tiddlers/howtos/Editing Tiddlers with Vim.tid
Normal file
@ -0,0 +1,11 @@
|
||||
modified: 20241020104154015
|
||||
original-modified: 20160111190002
|
||||
created: 20140406210404245
|
||||
tags: Learning
|
||||
title: Editing Tiddlers with Vim
|
||||
ja-title: TiddlerをVimで編集する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
Devin Weaverは https://github.com/sukima/vim-tiddlywiki に[[Vim|http://www.vim.org/]]プラグインを作成しました
|
||||
|
||||
TiddlyWikiのシンタックスのほとんどをサポートしており、`modified`フィールドを自動更新するファイルタイププラグインが含まれています
|
@ -0,0 +1,51 @@
|
||||
created: 20161209172820513
|
||||
modified: 20241020104954951
|
||||
original-modified: 20161220161653258
|
||||
tags: Learning
|
||||
title: Formatting List Results as Tables with CSS - Specified Columns Methods
|
||||
ja-title: CSSを使用してリスト結果を表フォーマットで出力する - 固定列メソッド
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
``<$list>``ウィジェットの結果を単純な1つのリストではなく、複数列の形式でフォーマットしたい場合があります。この方法では、~CSSを使用してリストを列として設定し、必要な列の数がわかっていることを前提としています。ここでの方法は、テーブルに含める列の数を反映するスタイルを作成し、そのスタイルを結果のリスト出力に適用することです
|
||||
|
||||
他のテーブル作成テクニックについては、以下も参照してください:
|
||||
|
||||
* [[CSSを使用してリスト結果を表フォーマットで出力する - 可変列メソッド|Formatting List Results as Tables with CSS - Variable Column Method]]
|
||||
* [[リスト結果を表フォーマットで出力する(CSS無し)|Formatting List Results as Tables (no CSS)]]
|
||||
|
||||
|
||||
!!! 1) `$:/tags/Stylesheet`でタグ付けされた列に対して、以下を含むTiddlerを作成します:
|
||||
|
||||
```
|
||||
/* FOUR COLUMN MODE */
|
||||
.fourcolumns {
|
||||
display:block;
|
||||
column-count:4;
|
||||
column-gap:1em;
|
||||
-moz-column-count:4;
|
||||
-moz-column-gap:1em;
|
||||
-webkit-column-count: 4;
|
||||
-webkit-column-gap:1em;
|
||||
}
|
||||
```
|
||||
|
||||
列数を示す値がさまざまな場所に必要なことに注意してください
|
||||
|
||||
!!! 2) 次に、出力を次のようにフォーマットします:
|
||||
|
||||
```
|
||||
@@.fourcolumns
|
||||
<$list filter="[tag[Filter Operators]]" variable="foo">
|
||||
<<foo>><br>
|
||||
</$list>
|
||||
@@
|
||||
```
|
||||
|
||||
!! フィルター演算子の一部のリストを示す例
|
||||
|
||||
@@.fourcolumns
|
||||
<$list filter="[tag[Filter Operators]limit[24]]" variable="foo">
|
||||
<<foo>><br>
|
||||
</$list>
|
||||
@@
|
||||
|
@ -0,0 +1,85 @@
|
||||
created: 20161209172820513
|
||||
modified: 20241020105248614
|
||||
original-modified: 20161220162845058
|
||||
tags: Learning
|
||||
title: Formatting List Results as Tables with CSS - Variable Column Method
|
||||
ja-title: CSSを使用してリスト結果を表フォーマットで出力する - 可変列メソッド
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
``<$list>``ウィジェットの結果を単純な1つのリストではなく、複数列の形式でフォーマットしたい場合があります。この方法では、CSSを使用してリストを列として設定します。応答性が高く、ウィンドウが小さすぎる場合は、表示する列の数を減らすために改行位置を変更します
|
||||
|
||||
固定の列数を直接指定するのではなく、リストの最大幅(Tiddlerの幅をトランスクルージョンする可能性があります)と各項目の幅を指定します。左から右にリストされ、新しい行に折り返されます
|
||||
|
||||
他のテーブル作成テクニックについては、以下も参照してください:
|
||||
|
||||
* [[CSSを使用してリスト結果を表フォーマットで出力する - 固定列メソッド|Formatting List Results as Tables with CSS - Specified Columns Methods]]
|
||||
* [[リスト結果を表フォーマットで出力する(CSS無し)|Formatting List Results as Tables (no CSS)]]
|
||||
|
||||
!! 既存の~TiddlyWikiタグ50個を使用したリストの例
|
||||
|
||||
```
|
||||
<div class="dynamic-table">
|
||||
<$list filter="[has[tags]tags[]sort[title]first[50]]">
|
||||
<span class="item">
|
||||
<$transclude tiddler="$:/core/ui/TagTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
</div>
|
||||
```
|
||||
|
||||
!! リストで使用するスタイルシートの例
|
||||
|
||||
```
|
||||
<style>
|
||||
.dynamic-table {
|
||||
max-width:700px; /* could transclude tiddler width instead */
|
||||
-ms-box-orient: vertical; /* might be unnecessary */
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
display: -moz-flex;
|
||||
display: -webkit-flex;
|
||||
display: inline-flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.item {
|
||||
max-width:160px; min-width:160px;
|
||||
flex: 0 0 2em; /* -grow, -shrink, -basis */
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
!! 結果
|
||||
|
||||
<div class="dynamic-table">
|
||||
<$list filter="[has[tags]tags[]sort[title]first[50]]">
|
||||
<span class="item">
|
||||
<$transclude tiddler="$:/core/ui/TagTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.dynamic-table {
|
||||
max-width:700px; /* could transclude tiddler width instead */
|
||||
-ms-box-orient: vertical;
|
||||
display: -webkit-box;
|
||||
display: -moz-box;
|
||||
display: -ms-flexbox;
|
||||
display: -moz-flex;
|
||||
display: -webkit-flex;
|
||||
display: inline-flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.item {
|
||||
max-width:160px; min-width:160px;
|
||||
flex: 0 0 2em; /* -grow, -shrink, -basis */
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,51 @@
|
||||
created: 20161220154952676
|
||||
modified: 20241020104643991
|
||||
original-modified: 20161220161706470
|
||||
tags: Learning
|
||||
title: Formatting List Results as Tables (no CSS)
|
||||
ja-title: リスト結果を表フォーマットで出力する(CSS無し)
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
``<$list>``ウィジェットの結果を単純な1つのリストではなく、複数列の形式でフォーマットしたい場合があります。次のメソッドでは、実際のテーブル構造を作成し、[[n番目の演算子|nth Operator]]を使用して各行の改行を実現します。この方法では応答性はありません。つまり、ウィンドウが小さすぎる場合、表示する列を減らすための位置変更を行いません
|
||||
|
||||
一番外側のリスト構造では、項目番号に改行が発生することを示すカウントを指定する必要があります。したがって、次の例では、各行は4個の項目の後で区切られるため、順序は1、5、9、・・・になります。これには、存在する項目の最大数を事前に知っておく必要があることに注意してください。n-1個の項目に設定される内部制限もあります(nは必要な列の数です)
|
||||
|
||||
内側の`<$list>`ウィジェット内で駆動フィルター演算子を繰り返す必要があることにも注意してください。明らかに、このテクニックはマクロの実装に役立ちます
|
||||
|
||||
他のテーブル作成テクニックについては、以下も参照してください:
|
||||
|
||||
* [[CSSを使用してリスト結果を表フォーマットで出力する - 可変列メソッド|Formatting List Results as Tables with CSS - Variable Column Method]]
|
||||
* [[CSSを使用してリスト結果を表フォーマットで出力する - 固定列メソッド|Formatting List Results as Tables with CSS - Specified Columns Methods]]
|
||||
|
||||
!! 項目数が70未満の4列テーブルのコード例
|
||||
|
||||
```
|
||||
<table>
|
||||
<$list filter="1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65" variable ="rows">
|
||||
<$list filter="[tag[Filter Operators]limit[50]] +[nth<rows>]" variable="cell">
|
||||
<tr>
|
||||
<td> <<cell>> </td>
|
||||
<$list filter="[tag[Filter Operators]limit[50]] +[allafter<cell>limit[3]]" variable="this">
|
||||
<td> <<this>> </td>
|
||||
</$list>
|
||||
</tr>
|
||||
</$list>
|
||||
</$list>
|
||||
</table>
|
||||
```
|
||||
|
||||
!! 結果
|
||||
|
||||
<table>
|
||||
<$list filter="1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65" variable ="rows">
|
||||
<$list filter="[tag[Filter Operators]limit[50]] +[nth<rows>]" variable="cell">
|
||||
<tr>
|
||||
<td> <<cell>> </td>
|
||||
<$list filter="[tag[Filter Operators]limit[50]] +[allafter<cell>limit[3]]" variable="this">
|
||||
<td> <<this>> </td>
|
||||
</$list>
|
||||
</tr>
|
||||
</$list>
|
||||
</$list>
|
||||
</table>
|
||||
|
@ -0,0 +1,22 @@
|
||||
title: How to add a banner for GitHub contributions
|
||||
ja-title: GitHub投稿のバナーを追加する方法
|
||||
modified: 20241023113051454
|
||||
original-modified: 20141123094403948
|
||||
created: 20141123094403948
|
||||
tags: Learning
|
||||
|
||||
https://tiddlywiki.com でTiddlerを編集すると、GitHubでTiddlerのソースを編集するように促す小さなリボンが表示されます。
|
||||
|
||||
Node.jsを使用している場合は、次のようにして、この機能を独自のTiddlyWikiベースのサイトに複製できます:
|
||||
|
||||
# [[Wikiフォルダー|TiddlyWikiFolders]]の<$link to="tiddlywiki.info Files">`tiddlywiki.info`</$link>ファイルに次の設定が含まれていることを確認してください:
|
||||
#> <pre><code> "config": {
|
||||
"retain-original-tiddler-path": true
|
||||
}</code></pre>
|
||||
# Wikiに[[$:/ContributionBanner]]Tiddlerをコピーします
|
||||
# 次のように編集します:
|
||||
## https://github.com/TiddlyWiki/TiddlyWiki5/edit/master/editions/tw5.com/tiddlers/ から、自分のGitHubリポジトリを指すように、GitHubリンクURLを修正します
|
||||
## "Can you help us improve this documentation?"で始まるテキストの文言が訪問者にとって適切であることを確認してください
|
||||
## [[Improving TiddlyWiki Documentation]]へのリンクを調整して、投稿の手順の説明が記載された独自のTiddlerを指すようにします。
|
||||
|
||||
|
@ -0,0 +1,27 @@
|
||||
created: 20161209172820513
|
||||
modified: 20241020110058381
|
||||
original-modified: 20190220000000000
|
||||
tags: Learning
|
||||
title: How to change the sort order of sub-branches in a TOC macro
|
||||
ja-title: TOCマクロでのサブブランチのソート順を変更する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
次のような[[目次|Table-of-Contents Macros]]マクロを使用していると想定します:
|
||||
|
||||
```
|
||||
<<toc-selective-expandable "TableOfContents" "sort[title]">>
|
||||
```
|
||||
|
||||
多くの場合、並び順は問題ありませんが、`Journal`タグ付けされたアイテムを`created`フィールドの順に並べ替えたいとします。`Journal`タグ付けされたサブ項目だけに別の並べ替え順を適用するにはどうすればよいでしょうか?
|
||||
|
||||
秘訣は、別の並べ替え基準を指すフィールドを、親のタグTiddler(つまり、`Journal`)に追加することです。そのフィールドを`fuzzy`と呼び、値`created`を入力します(`created `はTiddlerの作成日を持つフィールドの名前です)
|
||||
|
||||
次に、[[目次|Table-of-Contents Macros]]を次のように変更します:
|
||||
|
||||
```
|
||||
<<toc-selective-expandable "TableOfContents" "sort{!!fuzzy}">>
|
||||
```
|
||||
|
||||
これで、`created `の日付順に並べ替えられる`Journal`Tiddlerの子を除き、目次はどこでもタイトル順に並べ替えられるようになります
|
||||
|
||||
このトリックの欠点は、1つの特別なフィールドのみに逆順ソートを適用できないことです。並べ替え順序を逆順にすると、どこも逆になります
|
@ -0,0 +1,42 @@
|
||||
created: 20211204120244761
|
||||
modified: 20241024105517309
|
||||
original-modified: 20211206165108185
|
||||
tags: Learning Cascades [[Story Tiddler Template]] [[Story Tiddler Template Cascade]] [[Customise TiddlyWiki]]
|
||||
title: How to create a custom story tiddler template
|
||||
ja-title: カスタムストーリーTiddlerテンプレートを作成する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
ここでは、[[ストーリーTiddlerテンプレートカスケード|Story Tiddler Template Cascade]]にルールを追加して、<<tag "$:/tags/TiddlerList">>タグを付けたTiddlerをリストフィールドに名前が付けられたTiddlerのサムネイルを組み込んだカスタム外観で表示する方法を示します。
|
||||
|
||||
デモを表示するには、[[カスタムストーリーTiddlerテンプレートを含むデモTiddlerリスト|Demo Tiddler List with Custom Story Tiddler Template]]を開きます。
|
||||
|
||||
最初に、ストーリーTiddlerテンプレートカスケードに新しいステップを追加します。新しいフィルターステップは次のとおりです:
|
||||
|
||||
```
|
||||
[tag[$:/tags/TiddlerList]then[$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template]]
|
||||
```
|
||||
|
||||
次のように読むことができます:
|
||||
|
||||
```
|
||||
Tiddlerが$:/tags/TiddlerListタグを持つなら、$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Templateを返します
|
||||
```
|
||||
|
||||
> テンプレート$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Templateも、 [[$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Styles]]で定義したスタイルに依存します。
|
||||
|
||||
ストーリーTiddlerテンプレートカスケードはタグ<<tag "$:/tags/StoryTiddlerTemplateFilter">>によって定義されます。そのため、そのタグを使用してTiddlerを作成する必要があります。
|
||||
|
||||
また、カスケード内の正しいポイントに挿入されていることを確認する必要があります:
|
||||
|
||||
* 新しいルールは、タグ$:/tags/TiddlerListが付いたドラフトTiddlerが編集できるようにするために、"draft"ルールの後に置く必要があります。
|
||||
* 新しいルールは"default"ルールの前になければなりません。そうでないと実行されません。
|
||||
|
||||
コントロールパネルの"カスケード"タブには、`list-before`フィールドを使用してdefaultのステップの直前に新しいステップを挿入できることが示されています。
|
||||
|
||||
構成Tiddlerの完全なフィールドのリストは次のとおりです:
|
||||
|
||||
<<.tiddler-fields "$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Filter">>
|
||||
|
||||
最後に、デモTiddlerを作成する必要があります:
|
||||
|
||||
<<.tiddler-fields "Demo Tiddler List with Custom Story Tiddler Template">>
|
@ -0,0 +1,38 @@
|
||||
created: 20211206114114698
|
||||
modified: 20241020110542022
|
||||
original-modified: 20211206165150302
|
||||
tags: Learning Cascades [[Customise TiddlyWiki]]
|
||||
title: How to create a custom tiddler colour rule
|
||||
ja-title: カスタムのTiddlerカラールールを作成する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
ここでは、[[Tiddlerカラーカスケード|Tiddler Colour Cascade]]に、<<tag "TableOfContents">>タグを持つTiddlerに明るい青色の着色を、<<tag "Working with TiddlyWiki">>タグを持つTiddlerに濃い紫色の着色を、付与するルールの追加方法を示します。
|
||||
|
||||
<<.tip "[[カスタムのTiddlerアイコンルールを作成する方法|How to create a custom tiddler icon rule]]では、同じTiddlerにカスタムアイコンを与える方法について説明します。">>
|
||||
|
||||
まず、Tiddlerカラーカスケードに新しいステップを追加します。新しいフィルターステップは次のとおりです。:
|
||||
|
||||
```
|
||||
[tag[TableOfContents]then[#1e90ff]]
|
||||
[tag[Working with TiddlyWiki]then[darkorchid]]
|
||||
```
|
||||
|
||||
これは次のように読み取れます。:
|
||||
|
||||
```
|
||||
もしTiddlerが"TableOfContents"タグを持つなら、カラー#1e90ffを返します
|
||||
もしTiddlerが"Working with TiddlyWiki"タグを持つなら、カラーdarkorchidを返します
|
||||
```
|
||||
|
||||
Tiddlerカラーカスケードは<<tag "$:/tags/TiddlerColourFilter">>タグによって定義されます。したがって、そのタグを使用して設定Tiddlerを作成する必要があります。
|
||||
|
||||
また、カスケード内の正しい位置に挿入されていることを確認する必要があります。:
|
||||
|
||||
* 新しいルールは、明示的な''color''フィールドを持つTiddlerがそのフィールドの値を確実に尊重するように、"colour-field"ルールの後に置く必要があります。
|
||||
* 新しいルールは"default"カラーの前になければなりません。そうしないと、デフォルトのカラーが指定されていると、着色されることはありません。
|
||||
|
||||
コントロールパネルの"カスケード"タブには、`list-before`フィールドを使用してデフォルトステップの直前に新しいステップを挿入することでこれを実現できることが示されています。
|
||||
|
||||
設定Tiddlerの完全なフィールドリストは次のとおりです。:
|
||||
|
||||
<<.tiddler-fields "$:/_tw5.com/CustomTiddlerColourCascadeDemo">>
|
@ -0,0 +1,38 @@
|
||||
created: 20211204161649863
|
||||
modified: 20241020111248598
|
||||
original-modified: 20211206165129215
|
||||
tags: Learning Cascades [[Tiddler Icon Cascade]] [[Customise TiddlyWiki]]
|
||||
title: How to create a custom tiddler icon rule
|
||||
ja-title: カスタムのTiddlerアイコンルールを作成する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
ここでは、[[Tiddlerアイコンカスケード|Tiddler Icon Cascade]]に、<<tag "TableOfContents">>タグを持つTiddlerに"地球"アイコン<<.icon $:/core/images/globe>>を、<<tag "Working with TiddlyWiki">>タグを持つTiddlerに"ヘルプ"アイコン<<.icon $:/core/images/help>>を、付与するルールの追加方法を示します。
|
||||
|
||||
<<.tip "[[カスタムのTiddlerカラールールを作成する方法|How to create a custom tiddler colour rule]]では、同じTiddlerにカスタムカラーを与える方法について説明します。">>
|
||||
|
||||
まず、Tiddlerアイコンカスケードに新しいステップを追加します。新しいフィルターステップは次のとおりです。:
|
||||
|
||||
```
|
||||
[tag[TableOfContents]then[$:/core/images/globe]]
|
||||
[tag[Working with TiddlyWiki]then[$:/core/images/help]]
|
||||
```
|
||||
|
||||
これは次のように読み取れます。:
|
||||
|
||||
```
|
||||
もしTiddlerが"TableOfContents"タグを持つなら、$:/core/images/globeを返します
|
||||
もしTiddlerが"Working with TiddlyWiki"タグを持つなら、$:/core/images/helpを返します
|
||||
```
|
||||
|
||||
Tiddlerアイコンカスケードは<<tag "$:/tags/TiddlerIconFilter">>タグによって定義されます。したがって、そのタグを使用して設定Tiddlerを作成する必要があります。
|
||||
|
||||
また、カスケード内の正しい位置に挿入されていることを確認する必要があります。:
|
||||
|
||||
* 新しいルールは、明示的な''icon''フィールドを持つTiddlerがそのフィールドの値を確実に尊重するように、"icon-field"ルールの後に置く必要があります。
|
||||
* 新しいルールは"default"アイコンの前になければなりません。そうしないと、デフォルトのアイコンが指定されていると、表示されることはありません。
|
||||
|
||||
コントロールパネルの"カスケード"タブには、`list-before`フィールドを使用してデフォルトステップの直前に新しいステップを挿入することでこれを実現できることが示されています。
|
||||
|
||||
設定Tiddlerの完全なフィールドリストは次のとおりです。:
|
||||
|
||||
<<.tiddler-fields "$:/_tw5.com/CustomTiddlerIconCascadeDemo">>
|
@ -0,0 +1,107 @@
|
||||
tags: [[Customise TiddlyWiki]] Learning
|
||||
title: How to create keyboard shortcuts
|
||||
ja-title: キーボードショートカットを作成する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<br>
|
||||
<<.tip """[[TiddlyWiki]]は2種類のキーボードショートカットを区別します。<$macrocall $name=".tag" _="input"/>フィールド内や<$macrocall $name=".wlink" to="KeyboardWidget"/>ウィジェットによって処理される<$macrocall $name=".tag" _="textareas"/>でのみ機能するものと、またはグローバルに機能する、つまり、アクセスするのにページにフォーカスがあるだけでよいというキーボードショートカットです。後者は、Wikiが読み込まれたときに機能し始めるメカニズムによって処理されます""">>
|
||||
|
||||
!! 設定メカニズムは両方のショートカットタイプで同じです
|
||||
|
||||
<$vars tv-show-missing-links="no">
|
||||
|
||||
<<.def プレフィックス>> `$:/config/ShortcutInfo/`と`my-shortcut`のような''一意のサフィックス''が追加されたTiddlerは、新しいショートカットを$:/ControlPanelの[[キーボードショートカットタブ|$:/core/ui/ControlPanel/KeyboardShortcuts]]に表示します。オプションの説明をテキストフィールドに追加できます
|
||||
|
||||
[[キーボードショートカットタブ|$:/core/ui/ControlPanel/KeyboardShortcuts]]では、ショートカットをトリガーする''キーの組み合わせ''を設定できます:
|
||||
|
||||
> 新しいショートカットに定義された''一意のサフィックス''を探し、''キーの組み合わせ''を検出し、入力フィールドに検出された組み合わせを表示するポップアップを開くボタン<$button class="tc-btn-invisible"><<.icon $:/core/images/edit-button>><$action-sendmessage $message="tm-notify" $param="$:/core/images/edit-button"/></$button>をクリックします
|
||||
|
||||
>''ショートカットの追加''は、ショートカットにキーの組み合わせを割り当てます
|
||||
|
||||
!!! 選択したプラットフォームに応じて、構成メカニズムは特定の命名法を持つTiddlerを作成します
|
||||
|
||||
> $:/config/shortcuts/ + すべてのプラットフォーム(オペレーティングシステム)で機能するショートカットの''ショートカットサフィックス''
|
||||
|
||||
> $:/config/shortcuts-(mac/not-mac/windows/not-windows/linux/not-linux)/ + 選択したプラットフォームでのみ機能するショートカットや除外されたプラットフォームでは機能しないショートカットの''ショートカットサフィックス''
|
||||
|
||||
!!! 例
|
||||
|
||||
* $:/config/shortcuts/`my-shortcut`
|
||||
* $:/config/shortcuts-mac/`my-shortcut`
|
||||
* $:/config/shortcuts-windows/`my-shortcut`
|
||||
* $:/config/shortcuts-linux/`my-shortcut`
|
||||
* $:/config/shortcuts-not-mac/`my-shortcut`
|
||||
* $:/config/shortcuts-not-windows/`my-shortcut`
|
||||
* $:/config/shortcuts-not-linux/`my-shortcut`
|
||||
|
||||
<<.tip """上記の''ShortcutInfo''Tiddlerが最初に作成され、ショートカットが~ControlPanelで構成されている場合には、これらのプラットフォーム固有のTiddlerを手動で作成する必要がないことに注意してください""">>
|
||||
|
||||
<br>
|
||||
|
||||
!! この時点でショートカットが定義され、その''アクション''を設定できます
|
||||
|
||||
!! [[キーボードウィジェット|KeyboardWidget]]の使用
|
||||
|
||||
> <<.wlink "KeyboardWidget">>ウィジェットは、そのスコープ内の<<.tag input>>や<<.tag textarea>>フィールド内で押されたキーの組み合わせを検出します。<<.wlink "KeyboardWidget">>ウィジェットは、<<.tag input>>や<<.tag textarea>>フィールドを"包含"する必要があり、その<<.attr key>>属性は、[[キー記述子|Key Descriptor]]構文を使用して構成Tiddlerを指定するか、キーを明示的に含みます
|
||||
|
||||
```
|
||||
<$keyboard key="((my-shortcut))" actions='<$action-setfield $tiddler="my-tiddler" $field="my-field" $value="my-value"/>'>
|
||||
|
||||
<$edit-text tag="input" tiddler="my-tiddler"/>
|
||||
|
||||
</$keyboard>
|
||||
```
|
||||
|
||||
```
|
||||
<$keyboard key="alt-shift-M" actions='<$action-setfield $tiddler="my-tiddler" $field="my-field" $value="my-value"/>'>
|
||||
|
||||
<$edit-text tag="input" tiddler="my-tiddler"/>
|
||||
|
||||
</$keyboard>
|
||||
```
|
||||
|
||||
> アクションが定義されている場合、<<.wlink KeyboardWidget>>ウィジェットは、その<<.attr key>>属性で定義されたキーの組み合わせがそのスコープ内の
|
||||
<<.tag input>>や<<.tag textarea>>フィールドで押されたことを検出すると、その<<.attr actions>>属性で定義されたアクションを呼び出します
|
||||
|
||||
<br>
|
||||
|
||||
!! グローバルなキーボードショートカットの使用
|
||||
|
||||
> 新しいグローバルキーボードショートカットの作成の詳細については、[[キーボードショートカットTiddler]]を参照してください。
|
||||
|
||||
> ''グローバル''キーボードショートカットのアクションは、<<tag $:/tags/KeyboardShortcut>>タグが付けられたTiddlerの''テキスト''フィールドに保存されます
|
||||
|
||||
> ''キーフィールド''は、[[キーボードショートカット記述子|Keyboard Shortcut Descriptor]]と呼ばれる`((my-shortcut))`構文を通じて、アクションTiddlerと対応するショートカットを結びつけます
|
||||
|
||||
:<h3> 構文: `((` + `選択したサフィックス` + `))` </h3>
|
||||
|
||||
> Tiddlerが<<tag $:/tags/KeyboardShortcut>>タグを持っている場合、''key''フィールドに[[キーボードショートカット記述子|Keyboard Shortcut Descriptor]]を値として設定し、テキストフィールドにアクションを設定すると、メカニズムが設定されたキーの組み合わせを検出するとアクションがトリガーされます
|
||||
|
||||
<br>
|
||||
<$macrocall $name=".tip" _="""グローバルキーボードショートカットの''外部で''定義された''マクロ''(`$:/tags/Global`タグの付いたTiddler経由)は、アクセス可能にするために''インポートする''必要があります。
|
||||
[[インポートプラグマ|Pragma]]は、そのために使用できます"""/>
|
||||
|
||||
<pre>
|
||||
\import [subfilter{$:/core/config/GlobalImportFilter}]
|
||||
</pre>
|
||||
|
||||
マクロ定義を含むTiddlerがわかっていて、例えばタイトルが`my-macro-tiddler`なら、
|
||||
|
||||
<pre>
|
||||
\import [[my-macro-tiddler]]
|
||||
</pre>
|
||||
|
||||
<br>
|
||||
<$macrocall $name=".tip" _="""一部のアクションは<<.wlink NavigatorWidget>>ウィジェット内にラップする必要があります。これは、グローバルなキーボードショートカット内で使用される場合に、次のウィジェットとメッセージのリストが機能するために必要です"""/>
|
||||
|
||||
!!! ウィジェット
|
||||
|
||||
<<.wlink ActionNavigateWidget>> (ActionNavigateWidget)
|
||||
|
||||
!!! メッセージ
|
||||
|
||||
<$list filter="[tag[navigator-message]]">
|
||||
<$link/><br>
|
||||
</$list>
|
||||
|
||||
</$vars>
|
@ -0,0 +1,34 @@
|
||||
created: 20171118194518819
|
||||
modified: 20241026104802213
|
||||
original-modified: 20171118194518819
|
||||
tags: Learning
|
||||
title: How to Customize TiddlyDesktop
|
||||
ja-title: TiddlyDesktopをカスタマイズする方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
!! 前置き/注意:
|
||||
|
||||
TiddlyDesktopの内部実装を実験する前に、“ユーザー構成フォルダ”の場所を見つける必要があります。それには、メインのTiddlyDesktopウィンドウの“Settings”ボタンをクリックし、“Open user config folder”ボタンをクリックします。次に、上へ移動して“TiddlyDesktop”という名前の親フォルダを見つけます。問題が発生した場合は、このフォルダ全体を削除してTiddlyDesktopを初期状態にリセットできます。
|
||||
|
||||
TiddlyDesktopメインウィンドウのBackstageボタンをクリックすると、バックステージWikiが開きます。これは、TiddlyDesktopのUIとロジックを実行する、TiddlyWikiの Node.jsのようなインスタンスです。
|
||||
|
||||
!! "Add a ~TiddlyWiki Folder"ボタンを削除する方法。
|
||||
|
||||
バックステージWiki内で、`WikiListToolbar`Tiddlerを見つけます(HelloThereにリンクがあります)。それをクリックして編集モードにすると、すべてのツールバーボタンのWikiテキストが表示されます。変更を加えて“done”をクリックすると、変更がTiddlyDesktopのメインウィンドウにすぐに反映されます。
|
||||
|
||||
!! "advanced"ボタンを"reveal backups"ボタンに変更する方法。
|
||||
|
||||
`$:/TiddlyDesktop/Settings`Tiddlerから“reveal backups”ボタンのコードをコピーして、`WikiListToolbar`にペーストします。
|
||||
|
||||
!! 色を変える方法。
|
||||
|
||||
TiddlyWikiと同様に、パレットを使用することも、独自のカスタムCSSを定義することもできます。
|
||||
|
||||
!! ティドラーがリストされる順序(アルファベット順)を変更する方法。
|
||||
|
||||
`WikiList`Tiddlerを開いて、編集にし、最後までスクロールします。次に、''wikilist''マクロの中を`<$list>`ウィジェットを変更します:
|
||||
|
||||
```
|
||||
<$list filter="[tag[wikilist]sort[title]!has[draft.of]]" emptyMessage="開始するには、~TiddlyWikiファイルやフォルダーを追加してください。上のボタンをクリックして参照するか、ファイルエクスプローラー/ファインダーからドラッグアンドドロップします" storyview="pop">
|
||||
```
|
||||
|
@ -0,0 +1,37 @@
|
||||
created: 20141117000000000
|
||||
modified: 20241026105359133
|
||||
original-modified: 20230803051806817
|
||||
tags: Learning
|
||||
title: How to embed PDF and other documents
|
||||
ja-title: PDFやその他のドキュメントを埋め込む方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
!!! 埋め込み vs 外部リンクに関する注意
|
||||
|
||||
''注:'' 特定の種類のファイルを埋め込む方法を説明する前に、埋め込まずに、次のように外部リソースにリンクすることを検討してください:
|
||||
|
||||
```
|
||||
[ext[title|path/to/that.file]]
|
||||
```
|
||||
|
||||
次に、ブラウザにリソースの処理方法を決定させます。この方法の利点は、シンプルで迅速であることです。欠点は、ファイルが実際にはTW5ファイルと一緒に移動せず、以下の方法#2でファイルパスをすばやく`node.js`を使用できないことです。
|
||||
|
||||
!! TW5ファイルにPDFを埋め込む2つの方法。
|
||||
|
||||
!!! 1. ドラッグアンドドロップによる埋め込み
|
||||
|
||||
1つは、ファイルをTW5ファイルにドラッグアンドドロップすることです。上部に緑色のバーが表示されるまで待ってからドロップし、インポートTiddlerからインポートします。これにより、インポートしたPDF(またはその他のファイル)の内容がTW5ファイルに実際に埋め込まれます。
|
||||
|
||||
PDFが大きすぎない限り、この方法はOKです。TW5ファイルが大きくなりすぎると問題が生じる可能性があります。
|
||||
|
||||
!!! 2. '_canonical_uri'による埋め込み
|
||||
|
||||
もう1つの方法は、外部ファイルへのTiddlerリンクを作成することです。この方法では、ファイルは実際にはTW5ファイルに組み込まれませんが、埋め込みファイルと同様に、`{{My Image File.jpg}}`トランスクルージョン構文を使用してアクセスできます。ファイルの場所アドレスは、[[Node.js]]で変更することもできます。node.jsで外部画像を使用する方法の詳細については、[[外部画像|ExternalImages]]を参照してください。
|
||||
|
||||
`_canonical_uri`フィールドを持つTiddlerを作成します。外部ファイルへのローカルアドレスを入力します。`type`フィールドに`application/pdf`を設定します。
|
||||
|
||||
どちらの方法でも、適切に設定されたブラウザを使用すれば、埋め込まれたPDFファイルが表示されます。
|
||||
|
||||
!!! 他のファイルの種類
|
||||
|
||||
TW5が認識できるファイル形式は限られています。[[コンテンツタイプ|ContentType]]にリストがあります。ブラウザやTW5が特定のファイル形式をどう処理すればよいか分からない場合は、2番目の方法を使用してファイルを埋め込んでからダウンロードするしかありません。Tiddlerを編集すると、リンクが表示されます。ファイルをダウンロードするには、リンクを右クリックできます。
|
32
editions/ja-JP/tiddlers/howtos/How to export tiddlers.tid
Normal file
32
editions/ja-JP/tiddlers/howtos/How to export tiddlers.tid
Normal file
@ -0,0 +1,32 @@
|
||||
created: 20151006145934884
|
||||
modified: 20241020112248683
|
||||
original-modified: 20160610084018658
|
||||
tags: Learning
|
||||
title: How to export tiddlers
|
||||
ja-title: Tiddlerのエクスポート方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
! すべてのTiddlerをエクスポートする
|
||||
|
||||
''すべて''のTiddlerをエクスポートするには、サイドバーの"ツール"タブをクリックします。<<.icon $:/core/images/export-button>>''すべてエクスポート''ボタンを見つけてクリックします。ポップアップメニューで、Tiddlerをエクスポートする形式の選択がいくつか提供されます
|
||||
|
||||
! Tiddlerのエクスポート
|
||||
|
||||
特定のTiddlerをエクスポートする場合は、まずそのTiddlerに移動します。次に、Tiddler上部に表示される<<.icon $:/core/images/down-arrow>>''その他のコマンド''ボタンをクリックします。表示されるリストから<<.icon $:/core/images/export-button>>''Tiddlerをエクスポート''を選択します。ポップアップメニューでは、Tiddlerをエクスポートする形式を選択できます
|
||||
|
||||
! 条件に一致するTiddlerをエクスポートする(フィルター)
|
||||
|
||||
Tiddlerを選択してエクスポートするには、サイドバーの検索領域の横にある小さな虫眼鏡<<.icon $:/core/images/advanced-search-button>>をクリックします。これにより、[[Advanced Search|$:/AdvancedSearch]]Tiddlerが開きます。Advanced Search Tiddlerの"フィルタ"タブをクリックします。[[フィルタ|Filters]]タブのみで、選択したTiddlerをエクスポートできます。[[フィルタ|Filters]]は特定の構文に従います。フィルタの作成方法については、この[[フィルタ|Filters]]リンクをクリックしてください
|
||||
|
||||
フィルタを入力すると、そのフィルタに一致するTiddlerのリストが表示されます。これで、フィルタ入力フィールドの右側に、<<.icon $:/core/images/export-button>>''Tiddlerをエクスポート''ボタンをクリックできるようになります。ポップアップメニューでは、Tiddlerをエクスポートする形式を選択できます
|
||||
|
||||
! エクスポート形式
|
||||
|
||||
現在、利用可能なエクスポート形式は次のとおりです:
|
||||
|
||||
* CSVファイル形式
|
||||
* JSONファイル形式
|
||||
* 静的HTMLファイル
|
||||
* ".tid"ファイル形式
|
||||
|
||||
この``".tid"``形式は、すべてのTiddlerまたは選択したTiddlerをエクスポートしようとしても、1つのTiddlerだけがエクスポートされるという点で他の形式とは異なります
|
@ -0,0 +1,33 @@
|
||||
created: 20180309232911422
|
||||
modified: 20241020113622005
|
||||
original-modified: 20180310201216266
|
||||
tags: Learning
|
||||
title: How to hide the author's and other fields with CSS
|
||||
ja-title: CSSで作成者やその他フィールドを非表示にする方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
すべてのTiddlerで作成者の名前を非表示にして、画面スペースを節約したい場合があります。簡単な方法は次のとおりです:
|
||||
|
||||
* 任意のタイトルを付けて新しいTiddlerを作成します
|
||||
* Tiddlerにタグ`$:/tags/Stylesheet`を付けます
|
||||
* Tiddlerのテキストフィールドに次のように入力します:
|
||||
|
||||
```
|
||||
.tc-subtitle .tc-tiddlylink {display:none;}
|
||||
```
|
||||
|
||||
* Tiddlerを保存します。作成者名フィールドは表示されなくなります
|
||||
|
||||
同様に、作成者と日付を含むサブタイトルフィールド全体を削除するには:
|
||||
|
||||
```
|
||||
.tc-subtitle {display:none;}
|
||||
```
|
||||
|
||||
残念ながら、CSSを使用して作成者を非表示にせずに日付だけを非表示にすることはできません
|
||||
|
||||
最後に、本当に最小限の外観にするために、タイトルを削除するには:
|
||||
|
||||
```
|
||||
h2.tc-title {display:none;)
|
||||
```
|
@ -0,0 +1,29 @@
|
||||
created: 20141020111002211
|
||||
modified: 20241021111644842
|
||||
original-modified: 20160617125921235
|
||||
tags: Learning
|
||||
title: How to put the last modification date in a banner
|
||||
ja-title: バナーに最終更新日を記載する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
ウィンドウの角のバナーにWikiの最終更新日を表示する方法は次のとおりです
|
||||
|
||||
# ~TiddlyWikiに<<.def "Corner ribbon">>[[プラグインをインストールする|Installing a plugin from the plugin library]]
|
||||
# Wikiを保存(<<.icon $:/core/images/save-button-dynamic>>)し、再読み込み(<<.icon $:/core/images/refresh-button>>)します
|
||||
# [[$:/_MyRibbon]]という名の新しいTiddlerを作成し、[[$:/tags/PageControls]]のタグを付け、次の内容を含めます:<div>
|
||||
|
||||
```
|
||||
<div class="github-fork-ribbon-wrapper right">
|
||||
<div class="github-fork-ribbon" style="background-color:#DF4848;">
|
||||
<$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]">
|
||||
<$link>
|
||||
<$view field="modified" format="date" template="DD mmm YYYY at 0hh:0mm"/>
|
||||
</$link>
|
||||
</$list>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
</div>
|
||||
# 必要に応じて、背景色の値を好みに合わせて変更します
|
||||
# 位置決めクラスを`right`から`right-bottom`に変更することもできます
|
||||
## バナーを左上に表示するには、[[$:/tags/PageControls]]の代わりに、[[$:/tags/PageTemplate]]のタグを付け、位置決めクラスを`left`に変更します
|
@ -0,0 +1,17 @@
|
||||
created: 20161208000000000
|
||||
modified: 20241021113311176
|
||||
original-modified: 20161208000000000
|
||||
tags: Learning [[Customise TiddlyWiki]]
|
||||
title: How to widen tiddlers (aka storyriver)
|
||||
ja-title: Tiddler(別名ストーリーリバー)を広げる方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
次の方法で、Tiddler(ストーリーリバーとも呼ばれる)のメイン列の幅を変更できます:
|
||||
|
||||
* 設定の歯車をクリックしてコントロールパネルを開きます
|
||||
* コントロールパネルで "外観" を選択し、"Theme Tweaks"を選択します
|
||||
* Theme tweaksで、下にスクロールします
|
||||
|
||||
`story right`と`story width`、`tiddler width`の設定が表示されます。これらの数値を、より大きな値に設定すると、Tiddlerの幅 を広げることができます。一般的に、`story right`と`story width`は、同じサイズか、`tiddler width`を少し小さくします。Tiddlerの幅にパーセンテージを使用することもできます。
|
||||
サイドバーがページの上部に表示されても構わない場合を除き、サイドバーのブレークポイントをストーリーリバーよりも大きなものに変更することもできます
|
||||
|
@ -0,0 +1,17 @@
|
||||
created: 20141117000000000
|
||||
modified: 20241020105658198
|
||||
original-modified: 20170204191253218
|
||||
tags: Learning [[Customise TiddlyWiki]]
|
||||
title: How to add a new tab to the sidebar
|
||||
ja-title: サイドバーに新しいタブを追加する方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
サイドバーメニューに新しいタブを作成するには:
|
||||
|
||||
# Tiddlerを作成し、[[システムタグ|SystemTags]]の[[$:/tags/SideBar]]タグでタグ付けします
|
||||
#* 目次を作成するには、[[目次マクロ|Table-of-Contents Macros]]を使用して新しいタブTiddlerを設定します。例えば、ここで使用している[[目次|TableOfContents]]を参照してください
|
||||
# デフォルトでは、Tiddlerタイトルがタブのタイトルとして使用されますが、`caption`フィールドを使用してオーバーライドできます
|
||||
# タブの順序を定義するには、[[タグ付け|Tagging]]で説明したように、`list-after`フィールドや`list-before`フィールドを使用します
|
||||
#* 例: `list-after`に[[$:/core/ui/SideBar/Open]]をセットすると、"表示中"タブの直後にサイドバータブが配置されます
|
||||
|
||||
タグ`$:/tags/MoreSideBar`を使用すると、同様の方法で"詳しく"タブの下に新しいタブを作成できます
|
@ -0,0 +1,27 @@
|
||||
created: 20161209172820513
|
||||
modified: 20241021112200962
|
||||
original-modified: 20240923161828376
|
||||
tags: [[Customise TiddlyWiki]] Learning
|
||||
title: How to turn off camel case linking
|
||||
ja-title: キャメルケースリンクをオフにする方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
[[キャメルケース|CamelCase]]は多くのWikiで使用されていますが、状況によってはテキスト表示に支障をきたす可能性があります。
|
||||
|
||||
!! キャメルケースを局所的にオフにする
|
||||
|
||||
特定の[[キャメルケース|CamelCase]]ワードがリンクされないようにするには、次のようにワードの前にチルダ(~)を書きます:
|
||||
|
||||
```
|
||||
~CamelCase
|
||||
```
|
||||
|
||||
Tiddler全体に対して[[キャメルケース|CamelCase]]を無効にする必要がある場合は、[[\rulesプラグマ|Pragma: \rules]]を使用できます:
|
||||
|
||||
```
|
||||
\rules except wikilink
|
||||
```
|
||||
|
||||
!! キャメルケースをグローバルにオフにする
|
||||
|
||||
すべてのTiddlerで[[キャメルケース|CamelCase]]をオフにするには、[[コントロールパネル|$:/ControlPanel]]に移動します。`設定`タブを選択し、``Camel Case Wiki リンク``セクションまでスクロールするか読み進み、``自動で CamelCase リンクを有効にする``の選択を解除します。
|
@ -0,0 +1,28 @@
|
||||
created: 20140324223413403
|
||||
modified: 20240422111609609
|
||||
original-modified: 20150505063713581
|
||||
tags: Learning
|
||||
title: Making curved text with SVG
|
||||
ja-title: SVGでカーブしたテキストを作成する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\define textOnPath(text)
|
||||
$$$.svg
|
||||
<svg width="100%" height="100%" viewBox="0 0 1000 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="background:white;">
|
||||
<defs>
|
||||
<path id="MyPath" d="M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100"/>
|
||||
</defs>
|
||||
<use xlink:href="#MyPath" fill="none" stroke="#ddd"/>
|
||||
<text font-family="'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif" font-size="42.5">
|
||||
<textPath xlink:href="#MyPath">
|
||||
$text$
|
||||
</textPath>
|
||||
</text>
|
||||
</svg>
|
||||
$$$
|
||||
\end
|
||||
このデモでは、SVGを使用してパスに沿ってトランスクルードされたテキストをレンダリングする方法を示します。下のテキストボックスにテキストを入力して試してください。[[ソースを表示|Making curved text with SVG]]して、それがどのように行われているかを確認してください
|
||||
|
||||
<$edit-text tiddler="$:/CurvedText" tag="input" placeholder="Type text here" default=""/>
|
||||
|
||||
<$macrocall $name="textOnPath" text={{$:/CurvedText}}/>
|
20
editions/ja-JP/tiddlers/howtos/Modifying JSON tiddlers.tid
Normal file
20
editions/ja-JP/tiddlers/howtos/Modifying JSON tiddlers.tid
Normal file
@ -0,0 +1,20 @@
|
||||
created: 20220427174702859
|
||||
modified: 20241021114009394
|
||||
original-modified: 20220427171707459
|
||||
tags: [[JSON in TiddlyWiki]] Learning
|
||||
title: Modifying JSON tiddlers
|
||||
ja-title: JSON Tiddlerの修正
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiでのJSONの扱い方の概要については、[[TiddlyWikiでのJSON|JSON in TiddlyWiki]]を参照してください
|
||||
|
||||
注意
|
||||
|
||||
!! ActionSetFieldWidgetとActionListopsWidgetの使用について
|
||||
|
||||
ウィジェットActionSetFieldWidgetとActionListopsWidgetは、$index属性でプロパティの名前を指定することにより、データTiddlerの名前付きプロパティを操作できます
|
||||
|
||||
* ActionSetFieldWidgetを使用して名前付きプロパティを作成、変更するには、$value属性を指定します
|
||||
* ActionSetFieldWidgetを使用して名前付きプロパティを削除するには、$value属性を省略します
|
||||
|
||||
ActionListopsWidgetは、$filter属性と$subfilter属性を通じて構築されたリストの名前付きプロパティを割り当てます
|
@ -0,0 +1,36 @@
|
||||
created: 20220427174702859
|
||||
modified: 20241022103806366
|
||||
original-modified: 20220611104737314
|
||||
tags: [[JSON in TiddlyWiki]] Learning
|
||||
title: Reading data from JSON tiddlers
|
||||
ja-title: JSON Tiddlerからのデータの読み取り
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiでのJSONの扱い方の概要については、[[TiddlyWikiでのJSON|JSON in TiddlyWiki]]を参照してください
|
||||
|
||||
!! JSONデータにアクセスするためのフィルター演算子
|
||||
|
||||
次のフィルター演算子を使用すると、JSONデータから値を読み取ることができます:
|
||||
|
||||
* <<.olink jsonget>>は、JSONデータ内のプロパティの値を取得します
|
||||
* <<.olink jsontype>>は、JSONの値の型を取得します
|
||||
* <<.olink jsonindexes>>は、JSONオブジェクトのフィールドの名前やJSON配列のインデックスを取得します
|
||||
* <<.olink jsonextract>>は、JSONの値をJSONの文字列として取得します
|
||||
|
||||
!! JSONデータにアクセスするためのテキスト参照
|
||||
|
||||
[[テキスト参照|TextReference]]は、名前付きプロパティの値を検索するための単純なショートカット構文です。例えば、`MonthDays`という[[DictionaryTiddler|DictionaryTiddlers]]に次を含む場合:
|
||||
|
||||
```
|
||||
oct:31
|
||||
nov:30
|
||||
dec:31
|
||||
```
|
||||
|
||||
... `{{MonthDays##nov}}`は、値`30`となります
|
||||
|
||||
`MonthDays`が次の内容を含む[[JSONTiddler|JSONTiddlers]]の場合も同様です:
|
||||
|
||||
```
|
||||
{"oct":31,"nov":30,"dec":31}
|
||||
```
|
@ -0,0 +1,27 @@
|
||||
created: 20140122085818089
|
||||
modified: 20241016110752969
|
||||
original-modified: 20150608032039504
|
||||
tags: Learning
|
||||
title: Sharing a TiddlyWiki on Dropbox
|
||||
ja-title: TiddlyWikiをDropboxで共有する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
DropboxでTiddlyWikiファイルを操作し、誰でもファイルの読み取り専用ビューを表示できるURLを公開できます
|
||||
|
||||
# TiddlyWikiファイルをDropboxのフォルダ内に保存します
|
||||
# Dropboxの"リンクを共有"オプションを選択して、ファイルのパブリックURLを取得します
|
||||
#* Dropbox Webインターフェイスでは、ファイルの上にマウスを置くと表示されるリンクアイコンをクリックします。Dropboxは、OS XのFinderとWindowsのExplorerのファイルコンテキストメニューに"リンクを共有"項目も追加します
|
||||
# Dropboxによって生成されるURLは次の形式になります:
|
||||
#> `https://www.dropbox.com/s/<gobbledegook>/mywiki.html`
|
||||
# gobbledegookを変更しないように注意しながら、URLを次のように変更します
|
||||
#> `https://dl.dropboxusercontent.com/s/<gobbledegook>/mywiki.html`
|
||||
|
||||
その結果、他の人にWikiを表示できるようにするための"秘密"のURLが作成できます
|
||||
|
||||
----
|
||||
|
||||
生成されたURLをここに入力すると、秘密のURLをコピーして貼り付けることができます:
|
||||
|
||||
<$edit-text tiddler="$:/temp/dropboxurl" default="https://www.dropbox.com/s/<gobbledegook>/mywiki.html" tag="input" type="text" size="60"/>
|
||||
|
||||
<$macrocall $name="dropbox-url" url={{$:/temp/dropboxurl}}/>
|
@ -0,0 +1,32 @@
|
||||
created: 20180310002601813
|
||||
modified: 20241022104217783
|
||||
original-modified: 20211106021629911
|
||||
tags: Learning [[How to apply custom styles]]
|
||||
title: Simple ways to write protect tiddlers
|
||||
ja-title: TIddlerの書き込み保護するための簡単な方法
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
自分自身やゲストによるTiddlyWikiファイルへの意図しない変更からTiddlerを保護したい場合があります。ここでは簡単なアプローチをいくつか紹介します。これらは意図的な攻撃に対する強化された保護を提供するものではないことに注意してください
|
||||
|
||||
!! スタイルシートを使用してタグ名指定でTiddlerをロックする
|
||||
|
||||
次の内容でTiddlerを作成し、次のように`$:/tags/Stylesheet`のタグ付けをします:
|
||||
|
||||
```css
|
||||
[data-tags*="Locked"] button[title="このTIddlerを編集します"] {display: none;}
|
||||
```
|
||||
|
||||
TWの言語が英語ではない場合は、'title="...."'内のテキストを編集ボタンの上にカーソルを置いたときに表示されるテキストに変更する必要があります
|
||||
|
||||
これで、"Locked"とタグ付けしたすべてのTiddlerの編集ボタンが非表示になります。これを元に戻すには、スタイルシートTiddlerを開いて、"none"を"inline"に変更します
|
||||
|
||||
!! トランスクルージョンを使用してシステムTiddler内にTiddlerを非表示にする
|
||||
|
||||
* 編集のためにTiddlerを開きます
|
||||
* タイトルを選択してコピーします
|
||||
* すべてのTiddlerテキストを選択します
|
||||
* 切り出しツールをクリックします
|
||||
* タイトル ボックスに、`$:/`を入力し、元のタイトルをペーストします
|
||||
* デフォルトを使用してテキストを新しいTiddlerに切り出し、トランスクルージョンに置き換えます
|
||||
|
||||
これで、元のTiddlerの内容を表示できますが、それらを編集するには、プレフィックス`$:/`が付いたTiddlerを見つける必要があります
|
16
editions/ja-JP/tiddlers/howtos/Visible Transclusions.tid
Normal file
16
editions/ja-JP/tiddlers/howtos/Visible Transclusions.tid
Normal file
@ -0,0 +1,16 @@
|
||||
created: 20220909111836951
|
||||
modified: 20241022105614479
|
||||
original-modified: 20230419103154329
|
||||
tags: Learning
|
||||
title: Visible Transclusions
|
||||
ja-title: トランスクルージョンの可視化
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
!! トランスクルージョンの可視化
|
||||
|
||||
ブロックのトランスクルージョンは赤で表示され、インラインのトランスクルージョンは緑で表示されます
|
||||
|
||||
<$button>
|
||||
<$action-setfield $tiddler="$:/temp/VisibleTransclusions" tags="$:/tags/Macro/View/Body" text={{$:/core/ui/VisibleTransclude}}/>
|
||||
ここをクリックすると、ストーリーリバー内のTiddlerでトランクスージョンが表示されるようになります
|
||||
</$button>
|
16
editions/ja-JP/tiddlers/images/Icon Gallery.tid
Normal file
16
editions/ja-JP/tiddlers/images/Icon Gallery.tid
Normal file
@ -0,0 +1,16 @@
|
||||
created: 20211013132515594
|
||||
modified: 20241021113650824
|
||||
original-modified: 20211018102307833
|
||||
tags: Learning [[Core Icons]]
|
||||
title: Icon Gallery
|
||||
ja-title: アイコンギャラリー
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
\define copyActions() <$action-sendmessage $message="tm-copy-to-clipboard" $param=<<imageTitle>>/>
|
||||
|
||||
<<.tip "アイコンをクリックすると、タイトルをクリップボードにコピーします">>
|
||||
|
||||
<div class="tc-image-chooser">
|
||||
<$macrocall $name="image-picker-list" filter="[all[shadows+tiddlers]tag[$:/tags/Image]]" actions=<<copyActions>> />
|
||||
</div>
|
||||
|
@ -0,0 +1,11 @@
|
||||
created: 20140908131700000
|
||||
modified: 20241016111747713
|
||||
original-modified: 20140919161524603
|
||||
tags: Learning
|
||||
title: Copying tiddlers between TiddlyWiki files
|
||||
ja-title: TiddlyWikiファイル間でTiddlerをコピーする
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
ブラウザウィンドウから別のブラウザウィンドウへTiddlerへのリンクをドラッグすることで、個々のTiddlerを1つのTiddlyWikiファイルから別のTiddlyWikiファイルにコピーできます
|
||||
|
||||
リンクをドラッグする場合は、まず垂直方向に移動します。水平方向の移動はブラウザがテキストの選択として認識するためです
|
59
editions/ja-JP/tiddlers/learning/Introduction to Lists.tid
Normal file
59
editions/ja-JP/tiddlers/learning/Introduction to Lists.tid
Normal file
@ -0,0 +1,59 @@
|
||||
created: 20171212175130471
|
||||
modified: 20241026112227533
|
||||
original-modified: 20171212175139631
|
||||
tags: Learning
|
||||
title: Introduction to Lists
|
||||
ja-title: リストの紹介
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
アイテムのリストを作成することは、TiddlyWikiでの作業において中心的な役割を果たします。以下は、一般的なテクニックのいくつかを簡単に説明したものです。
|
||||
|
||||
~TiddlyWikiは[[内部的に|ListField]]さまざまな目的でリストを[[使用する|Extended Listops Filters]]ため、この単語には複数の意味があります。ここでは、一連の項目を表示することに重点が置かれていますが、必ずしも従来の箇条書きリストとして表示されるわけではありません。
|
||||
|
||||
! 手動で入力したリスト
|
||||
|
||||
!! ~WikiText
|
||||
|
||||
WikiTextリストは、特殊文字を使用してリストの種類と表示方法を指定する、手動で入力されたリストです。
|
||||
|
||||
例としては、アスタリスク(*)で作成された箇条書きリストや番号付きリスト(#)などがあります。内部的には、~WikiTextリストは標準のHTML要素`<ul>`と`<li>`に基づいています。詳細については、[[WikiTextのリスト|Lists in WikiText]]を参照してください。
|
||||
|
||||
WikiTextで入力されたリストの例:
|
||||
|
||||
<<wikitext-example-without-html """* 史上最高の映画
|
||||
** カサブランカ
|
||||
** 高慢と偏見とゾンビ""">>
|
||||
|
||||
! 生成されたリスト
|
||||
|
||||
リストは、[[フィルター演算子|Filter Operators]]が出力したいTiddlerを選択するための基準を指定する[[フィルター|Filters]]を使用して、ListWidgetで自動的に生成できます。いくつかの一般的なリストタイプには、ショートカットマクロが用意されています。
|
||||
|
||||
!! ~ListWidget
|
||||
|
||||
ListWidgetは、リストを作成するための最も強力なツールです。これを使用すると、フィルタリングされた出力を操作して、例えば表や複雑なテキストなど、リストにはまったく似ていないフォームにスタイルを設定できます。詳細については、[[ListWidget]]を参照してください。
|
||||
|
||||
"HelloThere"タグが付いたすべてのTiddlerを表示する例は次のようになります:
|
||||
|
||||
<<wikitext-example-without-html """<$list filter="[tag[HelloThere]]"><$view field="title"/><br/></$list>""">>
|
||||
|
||||
<<.tip """Tiddler自体も~ListWidgetを使用して作成されます。[[ViewTemplate|$:/core/ui/ViewTemplate]]はListWidgetを使用して、Tiddlerのタイトル、タグ、テキストなどを表示するために使用される指定されたすべてのテンプレートを取得します。""">>
|
||||
|
||||
|
||||
!! フィルタリングされたトランスクルージョン
|
||||
|
||||
フィルターされたトランスクルージョンの`{{{...}}}`構文は、入力としてフィルターを受け取り、一致するタイトルのリンクリストを出力します。[[テンプレート|Transclusion with Templates]]を適用することもできます。例:
|
||||
|
||||
<<wikitext-example-without-html """{{{ [tag[HelloThere]] || $:/core/ui/TagTemplate }}}""">>
|
||||
|
||||
!! list-linksマクロ
|
||||
|
||||
[[list-links|list-links Macro]]マクロは、 ListWidgetを使用するよりも簡単な方法で、事前にフォーマットされたリスト(通常は箇条書きリスト)を提供します。内部的には、各リスト項目にデフォルトのテンプレートを適用しているのはListWidgetです。
|
||||
|
||||
<$macrocall $name="wikitext-example-without-html" src="""<<list-links "[tag[HelloThere]]">>"""/>
|
||||
|
||||
!“リスト関連”のその他の機能
|
||||
|
||||
[[list|ListField]]、[[list-before|Order of Tagged Tiddlers]]、[[list-after|Order of Tagged Tiddlers]]はすべて、リスト内のTiddlerの位置を制御するフィールド名です。[[フィールド|TiddlerFields]]は、日付、数量、カテゴリなどの構造化された情報の追加ビットをTiddlerに追加する方法です。
|
||||
|
||||
[[list|list Operator]] and [[listed|listed Operator]] are //filter operators// to, respectively, select and find titles in lists.
|
||||
[[list|list Operator]]と[[listed|listed Operator]]は、それぞれリスト内のタイトルを選択および検索するための//フィルター演算子//です。
|
14
editions/ja-JP/tiddlers/learning/Learning.tid
Normal file
14
editions/ja-JP/tiddlers/learning/Learning.tid
Normal file
@ -0,0 +1,14 @@
|
||||
created: 20140912140047779
|
||||
list: Videos [[Introduction to filter notation]] [[Sharing a TiddlyWiki on Dropbox]] [[Sharing your tiddlers with others]] [[Copying tiddlers between TiddlyWiki files]] [[Creating SubStories]] [[Editing Tiddlers with Emacs]] [[ImageGallery Example]] [[Making curved text with SVG]] TaskManagementExample [[Adding a Twitter Follow button]] [[Philosophy of Tiddlers]] [[Adopt a Titles Policy]]
|
||||
modified: 20241016110508522
|
||||
original-modified: 20140919161721584
|
||||
tags: TableOfContents
|
||||
title: Learning
|
||||
ja-title: 学習
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWikiの使い方について詳しくは、こちらをご覧ください:
|
||||
|
||||
<<list-links "[tag[Learning]]">>
|
||||
|
||||
高度なWikiText、マクロ、ウィジェット、フィルターなどの完全な[[リファレンス|Reference]]も参照してください
|
@ -1,13 +1,13 @@
|
||||
created: 20140104134911101
|
||||
modified: 20241010115857934
|
||||
modified: 20241016105446426
|
||||
original-modified: 20140919161039197
|
||||
tags: Videos [[Working with TiddlyWiki]] [[Quick Start]]
|
||||
title: Getting Started Video
|
||||
ja-title: 入門動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
この簡単なチュートリアルでは、スタンドアロンのTiddlyWikiファイルを使用して変更を保存する基本について説明します。
|
||||
この短いチュートリアルでは、スタンドアロンTiddlyWikiファイルを使用して変更を保存する基本を説明します。
|
||||
|
||||
//このビデオは少し古いものですが、近日中に更新される予定です!//
|
||||
//(注意)この動画は少し古いので、すぐに更新されるでしょう!//
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/1g66s7UbyuU" frameborder="0" allowfullscreen></iframe>
|
@ -0,0 +1,11 @@
|
||||
created: 20140126124827076
|
||||
modified: 20241016105645695
|
||||
original-modified: 20140912150423506
|
||||
tags: Videos TiddlyDesktop
|
||||
title: Introducing TiddlyDesktop Video
|
||||
ja-title: TiddlyDesktopの紹介動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
この簡単な紹介では、TiddlyDesktopをインストールして使用する方法を示します:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/i3Bggkm7paA" frameborder="0" allowfullscreen></iframe>
|
15
editions/ja-JP/tiddlers/videos/Introduction Video.tid
Normal file
15
editions/ja-JP/tiddlers/videos/Introduction Video.tid
Normal file
@ -0,0 +1,15 @@
|
||||
created: 20141126153016142
|
||||
modified: 20241016105546203
|
||||
original-modified: 20141126153016142
|
||||
tags: Videos [[Working with TiddlyWiki]]
|
||||
title: Introduction Video
|
||||
ja-title: 紹介動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
この短いプレゼンテーションでは、TiddlyWikiの基本原則を説明します
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/KtCUr83XgyE" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
動画の作成に使用されたTiddlyWikiは以下にあります:
|
||||
|
||||
https://tiddlywiki.com/editions/introduction/
|
@ -0,0 +1,11 @@
|
||||
created: 20140104134947485
|
||||
modified: 20241016105931213
|
||||
original-modified: 20140912150329611
|
||||
tags: Videos [[Saving with TiddlyFox]]
|
||||
title: TiddlyWiki on Firefox for Android Video
|
||||
ja-title: Android版FirefoxでのTiddlyWiki動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
この簡単なスクリーンキャストは、TiddlyWikiに変更を保存できるようにAndroid版Firefoxをセットアップする方法を示しています:
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/iikkv9orGGI" frameborder="0" allowfullscreen></iframe>
|
13
editions/ja-JP/tiddlers/videos/Videos.tid
Normal file
13
editions/ja-JP/tiddlers/videos/Videos.tid
Normal file
@ -0,0 +1,13 @@
|
||||
created: 20140912150153512
|
||||
modified: 20241016105319031
|
||||
original-modified: 20140919161220608
|
||||
tags: Learning
|
||||
title: Videos
|
||||
ja-title: 動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
次のTiddlyWiki動画が利用可能です
|
||||
|
||||
<<list-links "[tag[Videos]]">>
|
||||
|
||||
目的は、TiddlyWikiを立ち上げて実行する方法を人々にガイドする一連の動画を厳選することです。[[貢献|Contributing]]は大歓迎です
|
@ -0,0 +1,11 @@
|
||||
created: 20140920133836765
|
||||
modified: 20241016110052423
|
||||
original-modified: 20140920134005568
|
||||
tags: [[Working with the TiddlyWiki5 repository]]
|
||||
title: Working with the TiddlyWiki5 repository video
|
||||
ja-title: TiddlyWiki5リポジトリの操作に関する動画
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
Mario Pietschは、[[TiddlyWiki5 GitHubリポジトリの操作|Working with the TiddlyWiki5 repository]]に関する短いチュートリアル動画を作成しました
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/6ElUruH92tc" frameborder="0" allowfullscreen></iframe>
|
@ -0,0 +1,19 @@
|
||||
created: 20140908163900000
|
||||
modified: 20241016111248572
|
||||
original-modified: 20201228143412000
|
||||
tags: Learning
|
||||
title: Sharing your tiddlers with others
|
||||
ja-title: Tiddlerを他の人と共有する
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
[[Tiddler|Tiddlers]]やTiddlyWiki全体を共有するには、いくつかの方法があります:
|
||||
|
||||
* ~TiddlyWikiをeメールに添付できます
|
||||
* ~TiddlyWikiをオンラインで公開し、リンクを取得して他の人に送信、または、伝言できます:
|
||||
** ~TiddlyWikiファイル全体のWebアドレスへのリンク
|
||||
** 特定のTiddlerへの[[パーマリンク|PermaLinks]](<<.icon $:/core/images/permalink-button>>)
|
||||
** 現在開いているすべてのTiddlerの[[パーマビュー|PermaViews]](<<.icon $:/core/images/permaview-button>>)リンク
|
||||
* [[TiddlyWikiへのDropboxリンクを共有|Sharing a TiddlyWiki on Dropbox]]できます
|
||||
* テキスト、静的HTML、カンマ区切り値(つまり、スプレッドシート互換)などのさまざまな形式で[[Tiddlerをエクスポート|How to export tiddlers]](<<.icon $:/core/images/export-button>>)できます
|
||||
* また、~TiddlyWikiを他の人がアクセスできるようにするだけで、例えば、オンラインで公開して、そこから[[Tiddlerをインポート|Importing Tiddlers]]できるようにするだけで、Tiddlerを共有できます
|
||||
* URLロケーションハッシュを介してTiddlerを共有するために使用できる実験的な[[共有プラグイン|Share Plugin]]があります
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user