mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-13 05:19:58 +00:00
Merge branch 'master' into multi-wiki-support
This commit is contained in:
commit
6e7efeb126
@ -96,6 +96,10 @@ Plugins/PluginWillRequireReload: (requires reload)
|
||||
Plugins/Plugins/Caption: Plugins
|
||||
Plugins/Plugins/Hint: Plugins
|
||||
Plugins/Reinstall/Caption: reinstall
|
||||
Plugins/Stability/Deprecated: DEPRECATED
|
||||
Plugins/Stability/Experimental: EXPERIMENTAL
|
||||
Plugins/Stability/Legacy: LEGACY
|
||||
Plugins/Stability/Stable: STABLE
|
||||
Plugins/Themes/Caption: Themes
|
||||
Plugins/Themes/Hint: Theme plugins
|
||||
Plugins/Update/Caption: update
|
||||
|
@ -26,6 +26,7 @@ Tags/ClearInput/Caption: clear input
|
||||
Tags/ClearInput/Hint: Clear tag input
|
||||
Tags/Dropdown/Caption: tag list
|
||||
Tags/Dropdown/Hint: Show tag list
|
||||
Tags/EmptyMessage: (no search result)
|
||||
Title/BadCharacterWarning: Warning: avoid using any of the characters <<bad-chars>> in tiddler titles
|
||||
Title/Exists/Prompt: Target tiddler already exists
|
||||
Title/Relink/Prompt: Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers
|
||||
|
@ -42,7 +42,7 @@ Error/RetrievingSkinny: Error retrieving skinny tiddler list
|
||||
Error/SavingToTWEdit: Error saving to TWEdit
|
||||
Error/WhileSaving: Error while saving
|
||||
Error/XMLHttpRequest: XMLHttpRequest error code
|
||||
Error/ZoominTextNode: Story View Error: It appears you tried to interact with a tiddler that displays in a custom container. This is most likely caused by using `$:/tags/StoryTiddlerTemplateFilter` with a template that contains text or whitespace at the start. Please use the pragma `\whitespace trim` and ensure the whole contents of the tiddler is wrapped in a single HTML element. The text that caused this issue:
|
||||
Error/ZoominTextNode: Błąd Widoku: Wykryto błędną interakcję z tiddlerem, który wyświetlany jest w niestandardowym kontenerze. Jest to najprawdopodobniej spowodowane użyciem `$:/tags/StoryTiddlerTemplateFilter` z motywem, który ma tekst lub białe znaki na początku. Użyj pragmy `\whitespace trim` i upewnij się, że cała treść tiddlera opakowana jest w jeden element HTML. Tekst, który spowodał problem:
|
||||
InternalJavaScriptError/Title: Internal JavaScript Error
|
||||
InternalJavaScriptError/Hint: Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser
|
||||
LayoutSwitcher/Description: Open the layout switcher
|
||||
|
@ -6,6 +6,8 @@ Filter/Hint: Search via a [[filter expression|https://tiddlywiki.com/static/Filt
|
||||
Filter/Matches: //<small><<resultCount>> matches</small>//
|
||||
Matches: //<small><<resultCount>> matches</small>//
|
||||
Matches/All: All matches:
|
||||
Matches/NoMatch: //No match//
|
||||
Matches/NoResult: //No search result//
|
||||
Matches/Title: Title matches:
|
||||
Search: Search
|
||||
Search/TooShort: Search text too short
|
||||
|
@ -12,9 +12,14 @@ Text editor operation to excise the selection to a new tiddler
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
function isMarkdown(mediaType) {
|
||||
return mediaType === 'text/markdown' || mediatype === 'text/x-markdown';
|
||||
}
|
||||
|
||||
exports["excise"] = function(event,operation) {
|
||||
var editTiddler = this.wiki.getTiddler(this.editTitle),
|
||||
editTiddlerTitle = this.editTitle,
|
||||
wikiLinks = !isMarkdown(editTiddler.fields.type),
|
||||
excisionBaseTitle = $tw.language.getString("Buttons/Excise/DefaultTitle");
|
||||
if(editTiddler && editTiddler.fields["draft.of"]) {
|
||||
editTiddlerTitle = editTiddler.fields["draft.of"];
|
||||
@ -26,7 +31,8 @@ exports["excise"] = function(event,operation) {
|
||||
{
|
||||
title: excisionTitle,
|
||||
text: operation.selection,
|
||||
tags: event.paramObject.tagnew === "yes" ? [editTiddlerTitle] : []
|
||||
tags: event.paramObject.tagnew === "yes" ? [editTiddlerTitle] : [],
|
||||
type: editTiddler.fields.type
|
||||
}
|
||||
));
|
||||
operation.replacement = excisionTitle;
|
||||
@ -35,7 +41,8 @@ exports["excise"] = function(event,operation) {
|
||||
operation.replacement = "{{" + operation.replacement+ "}}";
|
||||
break;
|
||||
case "link":
|
||||
operation.replacement = "[[" + operation.replacement+ "]]";
|
||||
operation.replacement = wikiLinks ? "[[" + operation.replacement+ "]]"
|
||||
: ("[" + operation.replacement + "](<#" + operation.replacement + ">)");
|
||||
break;
|
||||
case "macro":
|
||||
operation.replacement = "<<" + (event.paramObject.macro || "translink") + " \"\"\"" + operation.replacement + "\"\"\">>";
|
||||
|
@ -13,37 +13,125 @@ Text editor operation to wrap the selection with the specified prefix and suffix
|
||||
"use strict";
|
||||
|
||||
exports["wrap-selection"] = function(event,operation) {
|
||||
if(operation.selStart === operation.selEnd) {
|
||||
// No selection; check if we're within the prefix/suffix
|
||||
if(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {
|
||||
var o = operation,
|
||||
prefix = event.paramObject.prefix,
|
||||
suffix = event.paramObject.suffix,
|
||||
trimSelection = event.paramObject.trimSelection || "no",
|
||||
selLength = o.selEnd - o.selStart;
|
||||
|
||||
// This function detects, if trailing spaces are part of the selection __and__ if the user wants to handle them
|
||||
// Returns "yes", "start", "end", "no" (default)
|
||||
// yes .. there are trailing spaces at both ends
|
||||
// start .. there are trailing spaces at the start
|
||||
// end .. there are trailing spaces at the end
|
||||
// no .. no trailing spaces are taken into account
|
||||
var trailingSpaceAt = function(sel) {
|
||||
var _start,
|
||||
_end,
|
||||
result;
|
||||
// trimSelection is a user parameter, which this evaluations takes into account
|
||||
switch(trimSelection) {
|
||||
case "end":
|
||||
result = (sel.trimEnd().length !== selLength) ? "end" : "no";
|
||||
break;
|
||||
case "yes":
|
||||
_start = sel.trimStart().length !== selLength;
|
||||
_end = sel.trimEnd().length !== selLength;
|
||||
result = (_start && _end) ? "yes" : (_start) ? "start" : (_end) ? "end" : "no";
|
||||
break;
|
||||
case "start":
|
||||
result = (sel.trimStart().length !== selLength) ? "start" : "no";
|
||||
break;
|
||||
default:
|
||||
result = "no";
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function togglePrefixSuffix() {
|
||||
if(o.text.substring(o.selStart - prefix.length, o.selStart + suffix.length) === prefix + suffix) {
|
||||
// Remove the prefix and suffix
|
||||
operation.cutStart = operation.selStart - event.paramObject.prefix.length;
|
||||
operation.cutEnd = operation.selEnd + event.paramObject.suffix.length;
|
||||
operation.replacement = "";
|
||||
operation.newSelStart = operation.cutStart;
|
||||
operation.newSelEnd = operation.newSelStart;
|
||||
o.cutStart = o.selStart - prefix.length;
|
||||
o.cutEnd = o.selEnd + suffix.length;
|
||||
o.replacement = "";
|
||||
o.newSelStart = o.cutStart;
|
||||
o.newSelEnd = o.newSelStart;
|
||||
} else {
|
||||
// Wrap the cursor instead
|
||||
operation.cutStart = operation.selStart;
|
||||
operation.cutEnd = operation.selEnd;
|
||||
operation.replacement = event.paramObject.prefix + event.paramObject.suffix;
|
||||
operation.newSelStart = operation.selStart + event.paramObject.prefix.length;
|
||||
operation.newSelEnd = operation.newSelStart;
|
||||
o.cutStart = o.selStart;
|
||||
o.cutEnd = o.selEnd;
|
||||
o.replacement = prefix + suffix;
|
||||
o.newSelStart = o.selStart + prefix.length;
|
||||
o.newSelEnd = o.newSelStart;
|
||||
}
|
||||
} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {
|
||||
}
|
||||
|
||||
// options: lenPrefix, lenSuffix
|
||||
function removePrefixSuffix(options) {
|
||||
options = options || {};
|
||||
var _lenPrefix = options.lenPrefix || 0;
|
||||
var _lenSuffix = options.lenSuffix || 0;
|
||||
|
||||
o.cutStart = o.selStart - _lenPrefix;
|
||||
o.cutEnd = o.selEnd + _lenSuffix;
|
||||
o.replacement = (_lenPrefix || _lenSuffix) ? o.selection : o.selection.substring(prefix.length, o.selection.length - suffix.length);
|
||||
o.newSelStart = o.cutStart;
|
||||
o.newSelEnd = o.cutStart + o.replacement.length;
|
||||
}
|
||||
|
||||
function addPrefixSuffix() {
|
||||
// remove trailing space if requested
|
||||
switch(trailingSpaceAt(o.selection)) {
|
||||
case "no":
|
||||
// has no trailing spaces
|
||||
o.cutStart = o.selStart;
|
||||
o.cutEnd = o.selEnd;
|
||||
o.replacement = prefix + o.selection + suffix;
|
||||
o.newSelStart = o.selStart;
|
||||
o.newSelEnd = o.selStart + o.replacement.length;
|
||||
break;
|
||||
case "yes":
|
||||
// handle both ends
|
||||
o.cutStart = o.selEnd - (o.selection.trimStart().length);
|
||||
o.cutEnd = o.selection.trimEnd().length + o.selStart;
|
||||
o.replacement = prefix + o.selection.trim() + suffix;
|
||||
o.newSelStart = o.cutStart;
|
||||
o.newSelEnd = o.cutStart + o.replacement.length;
|
||||
break;
|
||||
case "start":
|
||||
// handle leading
|
||||
o.cutStart = o.selEnd - (o.selection.trimStart().length);
|
||||
o.cutEnd = o.selEnd;
|
||||
o.replacement = prefix + o.selection.trimStart() + suffix;
|
||||
o.newSelStart = o.cutStart;
|
||||
o.newSelEnd = o.cutStart + o.replacement.length;
|
||||
break;
|
||||
case "end":
|
||||
// handle trailing
|
||||
o.cutStart = o.selStart;
|
||||
o.cutEnd = o.selection.trimEnd().length + o.selStart;
|
||||
o.replacement = prefix + o.selection.trimEnd() + suffix;
|
||||
o.newSelStart = o.selStart;
|
||||
o.newSelEnd = o.selStart + o.replacement.length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(o.selStart === o.selEnd) {
|
||||
// No selection; Create prefix and suffix. Set cursor in between them: ""|""
|
||||
togglePrefixSuffix();
|
||||
} else if(o.text.substring(o.selStart, o.selStart + prefix.length) === prefix &&
|
||||
o.text.substring(o.selEnd - suffix.length,o.selEnd) === suffix) {
|
||||
// Prefix and suffix are already present, so remove them
|
||||
operation.cutStart = operation.selStart;
|
||||
operation.cutEnd = operation.selEnd;
|
||||
operation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);
|
||||
operation.newSelStart = operation.selStart;
|
||||
operation.newSelEnd = operation.selStart + operation.replacement.length;
|
||||
removePrefixSuffix();
|
||||
} else if(o.text.substring(o.selStart - prefix.length, o.selStart) === prefix &&
|
||||
o.text.substring(o.selEnd, o.selEnd + suffix.length) === suffix) {
|
||||
// Prefix and suffix are present BUT not selected -> remove them
|
||||
removePrefixSuffix({"lenPrefix": prefix.length, "lenSuffix": suffix.length});
|
||||
} else {
|
||||
// Add the prefix and suffix
|
||||
operation.cutStart = operation.selStart;
|
||||
operation.cutEnd = operation.selEnd;
|
||||
operation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;
|
||||
operation.newSelStart = operation.selStart;
|
||||
operation.newSelEnd = operation.selStart + operation.replacement.length;
|
||||
addPrefixSuffix();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -18,8 +18,8 @@ Export our filter functions
|
||||
|
||||
exports.decodebase64 = function(source,operator,options) {
|
||||
var results = [];
|
||||
var binary = operator.suffixes && operator.suffixes.indexOf("binary") !== -1;
|
||||
var urlsafe = operator.suffixes && operator.suffixes.indexOf("urlsafe") !== -1;
|
||||
var binary = operator.suffixes && operator.suffixes[0].indexOf("binary") !== -1;
|
||||
var urlsafe = operator.suffixes && operator.suffixes[0].indexOf("urlsafe") !== -1;
|
||||
source(function(tiddler,title) {
|
||||
results.push($tw.utils.base64Decode(title,binary,urlsafe));
|
||||
});
|
||||
@ -28,8 +28,8 @@ exports.decodebase64 = function(source,operator,options) {
|
||||
|
||||
exports.encodebase64 = function(source,operator,options) {
|
||||
var results = [];
|
||||
var binary = operator.suffixes && operator.suffixes.indexOf("binary") !== -1;
|
||||
var urlsafe = operator.suffixes && operator.suffixes.indexOf("urlsafe") !== -1;
|
||||
var binary = operator.suffixes && operator.suffixes[0].indexOf("binary") !== -1;
|
||||
var urlsafe = operator.suffixes && operator.suffixes[0].indexOf("urlsafe") !== -1;
|
||||
source(function(tiddler,title) {
|
||||
results.push($tw.utils.base64Encode(title,binary,urlsafe));
|
||||
});
|
||||
|
@ -16,20 +16,22 @@ exports.name = "unusedtitle";
|
||||
exports.params = [
|
||||
{name: "baseName"},
|
||||
{name: "separator"},
|
||||
{name: "template"}
|
||||
{name: "template"},
|
||||
{name: "startCount"}
|
||||
];
|
||||
|
||||
/*
|
||||
Run the macro
|
||||
*/
|
||||
exports.run = function(baseName,separator,template) {
|
||||
exports.run = function(baseName,separator,template,startCount) {
|
||||
separator = separator || " ";
|
||||
startCount = startCount || 0;
|
||||
if(!baseName) {
|
||||
baseName = $tw.language.getString("DefaultNewTiddlerTitle");
|
||||
}
|
||||
// $tw.wiki.generateNewTitle = function(baseTitle,options)
|
||||
// options.prefix must be a string!
|
||||
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template});
|
||||
// options.prefix must be a string!
|
||||
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template, "startCount": startCount});
|
||||
};
|
||||
|
||||
})();
|
||||
|
@ -6,7 +6,7 @@ module-type: wikirule
|
||||
Conditional shortcut syntax
|
||||
|
||||
```
|
||||
This is a <% if [{something}] %>Elephant<% elseif [{else}] %>Pelican<% else %>Crocodile<% endif %>
|
||||
This is a <%if [{something}] %>Elephant<%elseif [{else}] %>Pelican<%else%>Crocodile<%endif%>
|
||||
```
|
||||
|
||||
\*/
|
||||
@ -27,7 +27,7 @@ exports.init = function(parser) {
|
||||
};
|
||||
|
||||
exports.findNextMatch = function(startPos) {
|
||||
// Look for the next <% if shortcut
|
||||
// Look for the next <%if shortcut
|
||||
this.matchRegExp.lastIndex = startPos;
|
||||
this.match = this.matchRegExp.exec(this.parser.source);
|
||||
// If not found then return no match
|
||||
|
@ -20,7 +20,7 @@ Retrieve ETag if available
|
||||
*/
|
||||
var retrieveETag = function(self) {
|
||||
var headers = {
|
||||
Accept: "*/*;charset=UTF-8"
|
||||
Accept: "*/*"
|
||||
};
|
||||
$tw.utils.httpRequest({
|
||||
url: self.uri(),
|
||||
|
@ -330,16 +330,18 @@ exports.formatTitleString = function(template,options) {
|
||||
}]
|
||||
];
|
||||
while(t.length){
|
||||
var matchString = "";
|
||||
var matchString = "",
|
||||
found = false;
|
||||
$tw.utils.each(matches, function(m) {
|
||||
var match = m[0].exec(t);
|
||||
if(match) {
|
||||
found = true;
|
||||
matchString = m[1].call(null,match);
|
||||
t = t.substr(match[0].length);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(matchString) {
|
||||
if(found) {
|
||||
result += matchString;
|
||||
} else {
|
||||
result += t.charAt(0);
|
||||
|
@ -96,13 +96,15 @@ KeyboardWidget.prototype.execute = function() {
|
||||
this.param = this.getAttribute("param","");
|
||||
this.key = this.getAttribute("key","");
|
||||
this.tag = this.getAttribute("tag","");
|
||||
this.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);
|
||||
if(this.key.substr(0,2) === "((" && this.key.substr(-2,2) === "))") {
|
||||
this.shortcutTiddlers = [];
|
||||
var name = this.key.substring(2,this.key.length -2);
|
||||
$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {
|
||||
self.shortcutTiddlers.push("$:/config/" + platformDescriptor + "/" + name);
|
||||
});
|
||||
if($tw.keyboardManager) {
|
||||
this.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);
|
||||
if(this.key.substr(0,2) === "((" && this.key.substr(-2,2) === "))") {
|
||||
this.shortcutTiddlers = [];
|
||||
var name = this.key.substring(2,this.key.length -2);
|
||||
$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {
|
||||
self.shortcutTiddlers.push("$:/config/" + platformDescriptor + "/" + name);
|
||||
});
|
||||
}
|
||||
}
|
||||
// Make child widgets
|
||||
this.makeChildWidgets();
|
||||
@ -126,7 +128,7 @@ KeyboardWidget.prototype.refresh = function(changedTiddlers) {
|
||||
this.assignDomNodeClasses();
|
||||
}
|
||||
// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed
|
||||
if(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {
|
||||
if(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) && $tw.keyboardManager) {
|
||||
this.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);
|
||||
}
|
||||
return this.refreshChildren(changedTiddlers);
|
||||
|
@ -184,7 +184,7 @@ NavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {
|
||||
// Place a tiddler in edit mode
|
||||
NavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {
|
||||
var editTiddler = $tw.hooks.invokeHook("th-editing-tiddler",event),
|
||||
win = event.event && event.event.view ? event.event.view : window;
|
||||
win = event.event && event.event.view ? event.event.view : window;
|
||||
if(!editTiddler) {
|
||||
return false;
|
||||
}
|
||||
@ -306,7 +306,7 @@ NavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {
|
||||
var title = event.param || event.tiddlerTitle,
|
||||
tiddler = this.wiki.getTiddler(title),
|
||||
storyList = this.getStoryList(),
|
||||
win = event.event && event.event.view ? event.event.view : window;
|
||||
win = event.event && event.event.view ? event.event.view : window;
|
||||
// Replace the original tiddler with the draft
|
||||
if(tiddler) {
|
||||
var draftTitle = (tiddler.fields["draft.title"] || "").trim(),
|
||||
@ -412,7 +412,8 @@ NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
|
||||
event = $tw.hooks.invokeHook("th-new-tiddler", event);
|
||||
// Get the story details
|
||||
var storyList = this.getStoryList(),
|
||||
templateTiddler, additionalFields, title, draftTitle, existingTiddler;
|
||||
templateTiddler, additionalFields, title, draftTitle, existingTiddler,
|
||||
templateHasTags = false;
|
||||
// Get the template tiddler (if any)
|
||||
if(typeof event.param === "string") {
|
||||
// Get the template tiddler
|
||||
@ -457,8 +458,10 @@ NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
|
||||
// Merge tags
|
||||
mergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));
|
||||
}
|
||||
var additionalFieldsHasTags = !!(additionalFields && (additionalFields.tags === ""));
|
||||
if(templateTiddler && templateTiddler.fields.tags) {
|
||||
// Merge tags
|
||||
templateHasTags = true;
|
||||
mergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);
|
||||
}
|
||||
// Save the draft tiddler
|
||||
@ -474,7 +477,8 @@ NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
|
||||
{
|
||||
title: draftTitle,
|
||||
"draft.of": title,
|
||||
tags: mergedTags
|
||||
// If template or additionalFields have "tags" even if empty a tags field will be created.
|
||||
tags: ((mergedTags.length > 0) || templateHasTags || additionalFieldsHasTags) ? mergedTags : undefined
|
||||
},this.wiki.getModificationFields());
|
||||
this.wiki.addTiddler(draftTiddler);
|
||||
// Update the story to insert the new draft at the top and remove any existing tiddler
|
||||
@ -526,7 +530,7 @@ NavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {
|
||||
var systemMessage = $tw.language.getString("Import/Upgrader/Tiddler/Unselected");
|
||||
$tw.utils.each(messages,function(message,title) {
|
||||
newFields["message-" + title] = message;
|
||||
if (message.indexOf(systemMessage) !== -1) {
|
||||
if(message.indexOf(systemMessage) !== -1) {
|
||||
newFields["selection-" + title] = "unchecked";
|
||||
}
|
||||
});
|
||||
|
@ -18,6 +18,89 @@ var ViewWidget = function(parseTreeNode,options) {
|
||||
this.initialise(parseTreeNode,options);
|
||||
};
|
||||
|
||||
var ViewHandler = function(widget) {
|
||||
this.wiki = widget.wiki;
|
||||
this.widget = widget;
|
||||
this.document = widget.document;
|
||||
};
|
||||
|
||||
/*
|
||||
Base ViewHandler render method
|
||||
*/
|
||||
ViewHandler.prototype.render = function(parent,nextSibling) {
|
||||
this.text = this.getValue();
|
||||
this.createTextNode(parent,nextSibling);
|
||||
};
|
||||
|
||||
/*
|
||||
Base ViewHandler render method for wikified views
|
||||
*/
|
||||
ViewHandler.prototype.renderWikified = function(parent,nextSibling) {
|
||||
this.createFakeWidget();
|
||||
this.text = this.getValue();
|
||||
this.createWikifiedTextNode(parent,nextSibling);
|
||||
};
|
||||
|
||||
/*
|
||||
ViewHandler method to create a simple text node
|
||||
*/
|
||||
ViewHandler.prototype.createTextNode = function(parent,nextSibling) {
|
||||
if(this.text) {
|
||||
var textNode = this.document.createTextNode(this.text);
|
||||
parent.insertBefore(textNode,nextSibling);
|
||||
this.widget.domNodes.push(textNode);
|
||||
} else {
|
||||
this.widget.makeChildWidgets();
|
||||
this.widget.renderChildren(parent,nextSibling);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
ViewHandler method to always create a text node, even if there's no text
|
||||
*/
|
||||
ViewHandler.prototype.createWikifiedTextNode = function(parent,nextSibling) {
|
||||
var textNode = this.document.createTextNode(this.text || "");
|
||||
parent.insertBefore(textNode,nextSibling);
|
||||
this.widget.domNodes.push(textNode);
|
||||
};
|
||||
|
||||
/*
|
||||
ViewHandler method to create a fake widget used by wikified views
|
||||
*/
|
||||
ViewHandler.prototype.createFakeWidget = function() {
|
||||
this.fakeWidget = this.wiki.makeTranscludeWidget(this.widget.viewTitle,{
|
||||
document: $tw.fakeDocument,
|
||||
field: this.widget.viewField,
|
||||
index: this.widget.viewIndex,
|
||||
parseAsInline: this.widget.viewMode !== "block",
|
||||
mode: this.widget.viewMode === "block" ? "block" : "inline",
|
||||
parentWidget: this.widget,
|
||||
subTiddler: this.widget.viewSubTiddler
|
||||
});
|
||||
this.fakeNode = $tw.fakeDocument.createElement("div");
|
||||
this.fakeWidget.makeChildWidgets();
|
||||
this.fakeWidget.render(this.fakeNode,null);
|
||||
};
|
||||
|
||||
ViewHandler.prototype.refreshWikified = function(changedTiddlers) {
|
||||
var refreshed = this.fakeWidget.refresh(changedTiddlers);
|
||||
if(refreshed) {
|
||||
var newText = this.getValue();
|
||||
if(newText !== this.text) {
|
||||
this.widget.domNodes[0].textContent = newText;
|
||||
this.text = newText;
|
||||
}
|
||||
}
|
||||
return refreshed;
|
||||
};
|
||||
|
||||
/*
|
||||
Base ViewHandler refresh method
|
||||
*/
|
||||
ViewHandler.prototype.refresh = function(changedTiddlers) {
|
||||
return false;
|
||||
};
|
||||
|
||||
/*
|
||||
Inherit from the base widget class
|
||||
*/
|
||||
@ -30,14 +113,8 @@ ViewWidget.prototype.render = function(parent,nextSibling) {
|
||||
this.parentDomNode = parent;
|
||||
this.computeAttributes();
|
||||
this.execute();
|
||||
if(this.text) {
|
||||
var textNode = this.document.createTextNode(this.text);
|
||||
parent.insertBefore(textNode,nextSibling);
|
||||
this.domNodes.push(textNode);
|
||||
} else {
|
||||
this.makeChildWidgets();
|
||||
this.renderChildren(parent,nextSibling);
|
||||
}
|
||||
this.view = this.getView(this.viewFormat);
|
||||
this.view.render(parent,nextSibling);
|
||||
};
|
||||
|
||||
/*
|
||||
@ -52,49 +129,238 @@ ViewWidget.prototype.execute = function() {
|
||||
this.viewFormat = this.getAttribute("format","text");
|
||||
this.viewTemplate = this.getAttribute("template","");
|
||||
this.viewMode = this.getAttribute("mode","block");
|
||||
switch(this.viewFormat) {
|
||||
case "htmlwikified":
|
||||
this.text = this.getValueAsHtmlWikified(this.viewMode);
|
||||
break;
|
||||
case "plainwikified":
|
||||
this.text = this.getValueAsPlainWikified(this.viewMode);
|
||||
break;
|
||||
case "htmlencodedplainwikified":
|
||||
this.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);
|
||||
break;
|
||||
case "htmlencoded":
|
||||
this.text = this.getValueAsHtmlEncoded();
|
||||
break;
|
||||
case "htmltextencoded":
|
||||
this.text = this.getValueAsHtmlTextEncoded();
|
||||
break;
|
||||
case "urlencoded":
|
||||
this.text = this.getValueAsUrlEncoded();
|
||||
break;
|
||||
case "doubleurlencoded":
|
||||
this.text = this.getValueAsDoubleUrlEncoded();
|
||||
break;
|
||||
case "date":
|
||||
this.text = this.getValueAsDate(this.viewTemplate);
|
||||
break;
|
||||
case "relativedate":
|
||||
this.text = this.getValueAsRelativeDate();
|
||||
break;
|
||||
case "stripcomments":
|
||||
this.text = this.getValueAsStrippedComments();
|
||||
break;
|
||||
case "jsencoded":
|
||||
this.text = this.getValueAsJsEncoded();
|
||||
break;
|
||||
default: // "text"
|
||||
this.text = this.getValueAsText();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
The various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions
|
||||
Initialise the view subclasses
|
||||
*/
|
||||
ViewWidget.prototype.getView = function(format) {
|
||||
var View = this.initialiseView();
|
||||
View.prototype = Object.create(ViewHandler.prototype);
|
||||
switch(format) {
|
||||
case "htmlwikified":
|
||||
View = this.initialiseHTMLWikifiedView(View);
|
||||
break;
|
||||
case "plainwikified":
|
||||
View = this.initialisePlainWikifiedView(View);
|
||||
break;
|
||||
case "htmlencodedplainwikified":
|
||||
View = this.initialiseHTMLEncodedPlainWikifiedView(View);
|
||||
break;
|
||||
case "htmlencoded":
|
||||
View = this.initialiseHTMLEncodedView(View);
|
||||
break;
|
||||
case "htmltextencoded":
|
||||
View = this.initialiseHTMLTextEncodedView(View);
|
||||
break;
|
||||
case "urlencoded":
|
||||
View = this.initialiseURLEncodedView(View);
|
||||
break;
|
||||
case "doubleurlencoded":
|
||||
View = this.initialiseDoubleURLEncodedView(View);
|
||||
break;
|
||||
case "date":
|
||||
View = this.initialiseDateView(View);
|
||||
break;
|
||||
case "relativedate":
|
||||
View = this.initialiseRelativeDateView(View);
|
||||
break;
|
||||
case "stripcomments":
|
||||
View = this.initialiseStripCommentsView(View);
|
||||
break;
|
||||
case "jsencoded":
|
||||
View = this.initialiseJSEncodedView(View);
|
||||
break;
|
||||
default: // "text"
|
||||
View = this.initialiseTextView(View);
|
||||
break;
|
||||
};
|
||||
return new View(this);
|
||||
};
|
||||
|
||||
/*
|
||||
Return the function to intitialise the view subclass
|
||||
*/
|
||||
ViewWidget.prototype.initialiseView = function() {
|
||||
return function(widget) {
|
||||
ViewHandler.call(this,widget);
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise HTML wikified view methods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseHTMLWikifiedView = function(View) {
|
||||
|
||||
View.prototype.render = function(parent,nextSibling) {
|
||||
this.renderWikified(parent,nextSibling);
|
||||
};
|
||||
|
||||
View.prototype.getValue = function() {
|
||||
return this.fakeNode.innerHTML;
|
||||
};
|
||||
|
||||
View.prototype.refresh = function(changedTiddlers) {
|
||||
return this.refreshWikified(changedTiddlers);
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise plain wikified view methods
|
||||
*/
|
||||
ViewWidget.prototype.initialisePlainWikifiedView = function(View) {
|
||||
|
||||
View.prototype.render = function(parent,nextSibling) {
|
||||
this.renderWikified(parent,nextSibling);
|
||||
};
|
||||
|
||||
View.prototype.getValue = function() {
|
||||
return this.fakeNode.textContent;
|
||||
};
|
||||
|
||||
View.prototype.refresh = function(changedTiddlers) {
|
||||
return this.refreshWikified(changedTiddlers);
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise HTML encoded plain wikified methods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseHTMLEncodedPlainWikifiedView = function(View) {
|
||||
|
||||
View.prototype.render = function(parent,nextSibling) {
|
||||
this.renderWikified(parent,nextSibling);
|
||||
};
|
||||
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.htmlEncode(this.fakeNode.textContent);
|
||||
};
|
||||
|
||||
View.prototype.refresh = function(changedTiddlers) {
|
||||
return this.refreshWikified(changedTiddlers);
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise HTML encoded mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseHTMLEncodedView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.htmlEncode(self.getValueAsText());
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise HTML text encoded mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseHTMLTextEncodedView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.htmlTextEncode(self.getValueAsText());
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise URL encoded mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseURLEncodedView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.encodeURIComponentExtended(self.getValueAsText());
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise double URL encoded mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseDoubleURLEncodedView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.encodeURIComponentExtended($tw.utils.encodeURIComponentExtended(self.getValueAsText()));
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise date mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseDateView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function(format) {
|
||||
format = format || "YYYY MM DD 0hh:0mm";
|
||||
var value = $tw.utils.parseDate(self.getValue());
|
||||
if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") {
|
||||
return $tw.utils.formatDateString(value,format);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise relative date mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseRelativeDateView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function(format) {
|
||||
var value = $tw.utils.parseDate(self.getValue());
|
||||
if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") {
|
||||
return $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise stripcomments mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseStripCommentsView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
var lines = self.getValueAsText().split("\n"),
|
||||
out = [];
|
||||
for(var line=0; line<lines.length; line++) {
|
||||
var text = lines[line];
|
||||
if(!/^\s*\/\/#/.test(text)) {
|
||||
out.push(text);
|
||||
}
|
||||
}
|
||||
return out.join("\n");
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise JS encoded mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseJSEncodedView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return $tw.utils.stringify(self.getValueAsText());
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Initialise text mehods
|
||||
*/
|
||||
ViewWidget.prototype.initialiseTextView = function(View) {
|
||||
var self = this;
|
||||
View.prototype.getValue = function() {
|
||||
return self.getValueAsText();
|
||||
};
|
||||
return View;
|
||||
};
|
||||
|
||||
/*
|
||||
Retrieve the value of the widget. Options are:
|
||||
@ -138,78 +404,6 @@ ViewWidget.prototype.getValueAsText = function() {
|
||||
return this.getValue({asString: true});
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsHtmlWikified = function(mode) {
|
||||
return this.wiki.renderText("text/html","text/vnd.tiddlywiki",this.getValueAsText(),{
|
||||
parseAsInline: mode !== "block",
|
||||
parentWidget: this
|
||||
});
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsPlainWikified = function(mode) {
|
||||
return this.wiki.renderText("text/plain","text/vnd.tiddlywiki",this.getValueAsText(),{
|
||||
parseAsInline: mode !== "block",
|
||||
parentWidget: this
|
||||
});
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {
|
||||
return $tw.utils.htmlEncode(this.wiki.renderText("text/plain","text/vnd.tiddlywiki",this.getValueAsText(),{
|
||||
parseAsInline: mode !== "block",
|
||||
parentWidget: this
|
||||
}));
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsHtmlEncoded = function() {
|
||||
return $tw.utils.htmlEncode(this.getValueAsText());
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsHtmlTextEncoded = function() {
|
||||
return $tw.utils.htmlTextEncode(this.getValueAsText());
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsUrlEncoded = function() {
|
||||
return $tw.utils.encodeURIComponentExtended(this.getValueAsText());
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {
|
||||
return $tw.utils.encodeURIComponentExtended($tw.utils.encodeURIComponentExtended(this.getValueAsText()));
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsDate = function(format) {
|
||||
format = format || "YYYY MM DD 0hh:0mm";
|
||||
var value = $tw.utils.parseDate(this.getValue());
|
||||
if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") {
|
||||
return $tw.utils.formatDateString(value,format);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsRelativeDate = function(format) {
|
||||
var value = $tw.utils.parseDate(this.getValue());
|
||||
if(value && $tw.utils.isDate(value) && value.toString() !== "Invalid Date") {
|
||||
return $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsStrippedComments = function() {
|
||||
var lines = this.getValueAsText().split("\n"),
|
||||
out = [];
|
||||
for(var line=0; line<lines.length; line++) {
|
||||
var text = lines[line];
|
||||
if(!/^\s*\/\/#/.test(text)) {
|
||||
out.push(text);
|
||||
}
|
||||
}
|
||||
return out.join("\n");
|
||||
};
|
||||
|
||||
ViewWidget.prototype.getValueAsJsEncoded = function() {
|
||||
return $tw.utils.stringify(this.getValueAsText());
|
||||
};
|
||||
|
||||
/*
|
||||
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
|
||||
*/
|
||||
@ -219,7 +413,7 @@ ViewWidget.prototype.refresh = function(changedTiddlers) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
return this.view.refresh(changedTiddlers);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -194,18 +194,24 @@ options.prefix must be a string
|
||||
*/
|
||||
exports.generateNewTitle = function(baseTitle,options) {
|
||||
options = options || {};
|
||||
var c = 0,
|
||||
title = baseTitle,
|
||||
template = options.template,
|
||||
var title = baseTitle,
|
||||
template = options.template || "",
|
||||
// test if .startCount is a positive integer. If not set to 0
|
||||
c = (parseInt(options.startCount,10) > 0) ? parseInt(options.startCount,10) : 0,
|
||||
prefix = (typeof(options.prefix) === "string") ? options.prefix : " ";
|
||||
|
||||
if (template) {
|
||||
// "count" is important to avoid an endless loop in while(...)!!
|
||||
template = (/\$count:?(\d+)?\$/i.test(template)) ? template : template + "$count$";
|
||||
title = $tw.utils.formatTitleString(template,{"base":baseTitle,"separator":prefix,"counter":c});
|
||||
// .formatTitleString() expects strings as input
|
||||
title = $tw.utils.formatTitleString(template,{"base":baseTitle,"separator":prefix,"counter":c+""});
|
||||
while(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {
|
||||
title = $tw.utils.formatTitleString(template,{"base":baseTitle,"separator":prefix,"counter":(++c)});
|
||||
title = $tw.utils.formatTitleString(template,{"base":baseTitle,"separator":prefix,"counter":(++c)+""});
|
||||
}
|
||||
} else {
|
||||
if (c > 0) {
|
||||
title = baseTitle + prefix + c;
|
||||
}
|
||||
while(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {
|
||||
title = baseTitle + prefix + (++c);
|
||||
}
|
||||
|
@ -1,23 +1,23 @@
|
||||
title: $:/core/templates/server/static.tiddler.wikitext
|
||||
|
||||
\whitespace trim
|
||||
<div class="tc-tiddler-title">
|
||||
<div class="tc-tiddler-title tc-clearfix">
|
||||
<div class="tc-titlebar">
|
||||
<h2><$text text=<<currentTiddler>>/></h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tc-subtitle">
|
||||
<div class="tc-subtitle tc-clearfix">
|
||||
<$link to={{!!modifier}}>
|
||||
<$view field="modifier"/>
|
||||
</$link> <$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/>
|
||||
</div>
|
||||
<div class="tc-tags-wrapper">
|
||||
<div class="tc-tags-wrapper" tc-clearfix>
|
||||
<$list filter="[all[current]tags[]sort[title]]">
|
||||
<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>
|
||||
<$macrocall $name="tag-pill" tag=<<currentTiddler>>/>
|
||||
</a>
|
||||
</$list>
|
||||
</div>
|
||||
<div class="tc-tiddler-body">
|
||||
<div class="tc-tiddler-body tc-clearfix">
|
||||
<$transclude mode="block"/>
|
||||
</div>
|
||||
|
@ -4,7 +4,7 @@ tags: $:/tags/RawMarkupWikified
|
||||
\procedure meta-plain(name,source,name-attribute:"name")
|
||||
\whitespace trim
|
||||
<%if [<source>has[text]] %>
|
||||
<meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<source>get[text]encodehtml[]] }}}/>">
|
||||
<meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<source>get[text]encodehtml[]] }}}/>">
|
||||
<$text text={{{ [charcode[10]] }}}/>
|
||||
<%endif%>
|
||||
\end meta-plain
|
||||
@ -13,7 +13,7 @@ tags: $:/tags/RawMarkupWikified
|
||||
\whitespace trim
|
||||
<%if [<source>has[text]] %>
|
||||
<$wikify name="html" text={{{ [<source>get[text]] }}} output="text">
|
||||
<meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<html>encodehtml[]] }}}/>">
|
||||
<meta <$text text=<<name-attribute>>/>="<$text text=<<name>>/>" content="<$text text={{{ [<html>encodehtml[]] }}}/>">
|
||||
<$text text={{{ [charcode[10]] }}}/>
|
||||
</$wikify>
|
||||
<%endif%>
|
||||
|
@ -57,3 +57,4 @@ title: $:/core/templates/tiddlywiki5.html
|
||||
`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`
|
||||
</body>
|
||||
</html>`
|
||||
</$set>
|
||||
|
@ -2,10 +2,10 @@ title: $:/core/ui/Actions/new-journal
|
||||
tags: $:/tags/Actions
|
||||
description: create a new journal tiddler
|
||||
|
||||
\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$
|
||||
\whitespace trim
|
||||
<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>
|
||||
<$wikify name="journalTitle" text="<$macrocall $name='now' format=<<journalTitleTemplate>>/>">
|
||||
\function get-tags() [<textFieldTags>] [<tagsFieldTags>] +[join[ ]]
|
||||
<$let journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>
|
||||
<$wikify name="journalTitle" text="<$transclude $variable='now' format=<<journalTitleTemplate>>/>">
|
||||
<$reveal type="nomatch" state=<<journalTitle>> text="">
|
||||
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>
|
||||
</$reveal>
|
||||
@ -13,4 +13,4 @@ description: create a new journal tiddler
|
||||
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>
|
||||
</$reveal>
|
||||
</$wikify>
|
||||
</$vars>
|
||||
</$let>
|
||||
|
@ -2,8 +2,8 @@ title: $:/core/ui/Actions/new-tiddler
|
||||
tags: $:/tags/Actions
|
||||
description: create a new empty tiddler
|
||||
|
||||
\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$
|
||||
\whitespace trim
|
||||
<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>
|
||||
\function get-tags() [<textFieldTags>] [<tagsFieldTags>] +[join[ ]]
|
||||
<$let textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>
|
||||
<$action-sendmessage $message="tm-new-tiddler" tags=<<get-tags>>/>
|
||||
</$vars>
|
||||
</$let>
|
||||
|
@ -9,14 +9,16 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
tag="$:/tags/AdvancedSearch"
|
||||
beforeafter="$beforeafter$"
|
||||
defaultState="$:/core/ui/AdvancedSearch/System"
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"/>
|
||||
actions="<$action-setfield $tiddler='$:/state/advancedsearch/currentTab' text=<<nextTab>>/>"
|
||||
/>
|
||||
\end
|
||||
|
||||
\define cancel-search-actions()
|
||||
\whitespace trim
|
||||
<$list
|
||||
filter="[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]"
|
||||
emptyMessage="<$action-deletetiddler $filter='[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]' />">
|
||||
<$list filter="[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]">
|
||||
<$list-empty>
|
||||
<$action-deletetiddler $filter="[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]"/>
|
||||
</$list-empty>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/input" text={{$:/temp/advancedsearch}}/>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/>
|
||||
</$list>
|
||||
@ -24,54 +26,67 @@ caption: {{$:/language/Search/Filter/Caption}}
|
||||
|
||||
\define 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>">
|
||||
<$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>
|
||||
<$/list-empty>
|
||||
<$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\define 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="[{$:/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]minlength[1]]">
|
||||
<$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></$list>
|
||||
\end
|
||||
\whitespace trim
|
||||
<<lingo Filter/Hint>>
|
||||
<div class="tc-search tc-advanced-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"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
selectionStateTitle="$:/temp/advancedsearch/selected-item"
|
||||
type="search"
|
||||
tag="input"
|
||||
focus={{$:/config/Search/AutoFocus}}
|
||||
configTiddlerFilter="[[$:/temp/advancedsearch]]"
|
||||
firstSearchFilterField="text"
|
||||
inputAcceptActions=<<input-accept-actions>>
|
||||
inputAcceptVariantActions=<<input-accept-variant-actions>>
|
||||
inputCancelActions=<<cancel-search-actions>>/>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
 
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]"><$transclude/></$list>
|
||||
</div>
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
|
||||
<$set name="resultCount" value="<$count filter={{$:/temp/advancedsearch}}/>">
|
||||
<div class="tc-search-results">
|
||||
<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]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
</$list>
|
||||
\end
|
||||
|
||||
\whitespace trim
|
||||
|
||||
<<lingo Filter/Hint>>
|
||||
|
||||
<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"
|
||||
tiddler="$:/temp/advancedsearch/input"
|
||||
storeTitle="$:/temp/advancedsearch"
|
||||
refreshTitle="$:/temp/advancedsearch/refresh"
|
||||
selectionStateTitle="$:/temp/advancedsearch/selected-item"
|
||||
type="search"
|
||||
tag="input"
|
||||
focus={{$:/config/Search/AutoFocus}}
|
||||
configTiddlerFilter="[[$:/temp/advancedsearch]]"
|
||||
firstSearchFilterField="text"
|
||||
inputAcceptActions=<<input-accept-actions>>
|
||||
inputAcceptVariantActions=<<input-accept-variant-actions>>
|
||||
inputCancelActions=<<cancel-search-actions>>
|
||||
/>
|
||||
</$keyboard>
|
||||
</$keyboard>
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]">
|
||||
<$transclude/>
|
||||
</$list>
|
||||
</div>
|
||||
</$set>
|
||||
|
||||
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="" tag="div" class="tc-search-results">
|
||||
<$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]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
</$list>
|
||||
</$set>
|
||||
</$reveal>
|
||||
|
@ -79,11 +79,15 @@ 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="<$count filter='[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]'/>">
|
||||
<$set name="resultCount" value={{{ [all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] +[count[]]}}}>
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<<lingo Shadows/Matches>>
|
||||
<%if [<resultCount>match[0]] %>
|
||||
{{$:/language/Search/Matches/NoMatch}}
|
||||
<%else%>
|
||||
<<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]] }}}>
|
||||
|
@ -78,11 +78,15 @@ 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="<$count filter='[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]'/>">
|
||||
<$set name="resultCount" value={{{ [is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]] +[count[]] }}}>
|
||||
|
||||
<div class="tc-search-results">
|
||||
|
||||
<<lingo System/Matches>>
|
||||
<%if [<resultCount>match[0]] %>
|
||||
{{$:/language/Search/Matches/NoMatch}}
|
||||
<%else%>
|
||||
<<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]] }}}>
|
||||
|
@ -47,13 +47,13 @@ $:/config/Plugins/Disabled/$(currentTiddler)$
|
||||
<h2>
|
||||
<div>
|
||||
<%if [<currentTiddler>get[stability]match[STABILITY_0_DEPRECATED]] %>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-deprecated">DEPRECATED</span>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-deprecated"><<lingo "Stability/Deprecated">></span>
|
||||
<%elseif [<currentTiddler>get[stability]match[STABILITY_1_EXPERIMENTAL]] %>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-experimental">EXPERIMENTAL</span>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-experimental"><<lingo "Stability/Experimental">></span>
|
||||
<%elseif [<currentTiddler>get[stability]match[STABILITY_2_STABLE]] %>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-stable">STABLE</span>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-stable"><<lingo "Stability/Stable">></span>
|
||||
<%elseif [<currentTiddler>get[stability]match[STABILITY_3_LEGACY]] %>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-legacy">LEGACY</span>
|
||||
<span class="tc-plugin-info-stability tc-plugin-info-stability-legacy"><<lingo "Stability/Legacy">></span>
|
||||
<%endif%>
|
||||
<em><$view field="version"/></em></div>
|
||||
</h2>
|
||||
|
@ -2,22 +2,7 @@ title: $:/core/ui/ControlPanel/Basics
|
||||
tags: $:/tags/ControlPanel/Info
|
||||
caption: {{$:/language/ControlPanel/Basics/Caption}}
|
||||
|
||||
\define lingo-base() $:/language/ControlPanel/Basics/
|
||||
|
||||
\define show-filter-count(filter)
|
||||
\whitespace trim
|
||||
<$button class="tc-btn-invisible">
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch" $value="""$filter$"""/>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/input" $value="""$filter$"""/>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/>
|
||||
<$action-setfield $tiddler="$:/state/tab--1498284803" $value="$:/core/ui/AdvancedSearch/Filter"/>
|
||||
<$action-navigate $to="$:/AdvancedSearch"/>
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
''<$count filter="""$filter$"""/>''
|
||||
 
|
||||
{{$:/core/images/advanced-search-button}}
|
||||
</$button>
|
||||
\end
|
||||
\procedure lingo-base() $:/language/ControlPanel/Basics/
|
||||
\whitespace trim
|
||||
|
||||
|tc-max-width tc-edit-max-width|k
|
||||
|
@ -9,7 +9,7 @@ second-search-filter: [!is[system]search<userInput>sort[title]limit[250]]
|
||||
//<small>{{$:/language/Search/Matches/Title}}</small>//
|
||||
|
||||
<$list filter="[<userInput>minlength[1]]" variable="ignore">
|
||||
<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>
|
||||
<$list filter={{{ [<configTiddler>get[first-search-filter]] }}} emptyMessage={{$:/language/Search/Matches/NoResult}}>
|
||||
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
@ -19,7 +19,7 @@ second-search-filter: [!is[system]search<userInput>sort[title]limit[250]]
|
||||
//<small>{{$:/language/Search/Matches/All}}</small>//
|
||||
|
||||
<$list filter="[<userInput>minlength[1]]" variable="ignore">
|
||||
<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>
|
||||
<$list filter={{{ [<configTiddler>get[second-search-filter]] }}} emptyMessage={{$:/language/Search/Matches/NoResult}}>
|
||||
<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>
|
||||
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
|
||||
</span>
|
||||
|
@ -3,7 +3,7 @@ tags: $:/tags/EditTemplate
|
||||
|
||||
\define config-title() $:/config/EditToolbarButtons/Visibility/$(listItem)$
|
||||
\whitespace trim
|
||||
<div class="tc-tiddler-title tc-tiddler-edit-title">
|
||||
<div class="tc-tiddler-title tc-tiddler-edit-title tc-clearfix">
|
||||
<$view field="title"/>
|
||||
<span class="tc-tiddler-controls tc-titlebar">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]" variable="listItem">
|
||||
@ -14,5 +14,4 @@ tags: $:/tags/EditTemplate
|
||||
</$let>
|
||||
</$list>
|
||||
</span>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
|
@ -4,11 +4,15 @@ caption: {{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}
|
||||
description: {{$:/language/Buttons/Cancel/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button actions=<<cancel-delete-tiddler-actions "cancel">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/cancel-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>
|
||||
</$list>
|
||||
<$button actions=<<cancel-delete-tiddler-actions "cancel">>
|
||||
tooltip={{$:/language/Buttons/Cancel/Hint}}
|
||||
aria-label={{$:/language/Buttons/Cancel/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/cancel-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -4,11 +4,15 @@ caption: {{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}
|
||||
description: {{$:/language/Buttons/Delete/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button actions=<<cancel-delete-tiddler-actions "delete">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/delete-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>
|
||||
</$list>
|
||||
<$button actions=<<cancel-delete-tiddler-actions "delete">>
|
||||
tooltip={{$:/language/Buttons/Delete/Hint}}
|
||||
aria-label={{$:/language/Buttons/Delete/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/delete-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -4,21 +4,20 @@ caption: {{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}
|
||||
description: {{$:/language/Buttons/Save/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define save-tiddler-button()
|
||||
\whitespace trim
|
||||
\procedure save-tiddler-button()
|
||||
<$fieldmangler>
|
||||
<$button
|
||||
tooltip={{$:/language/Buttons/Save/Hint}}
|
||||
aria-label={{$:/language/Buttons/Save/Caption}}
|
||||
aria-label={{$:/language/Buttons/Save/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<<save-tiddler-actions>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/done-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Save/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$fieldmangler>
|
||||
\end
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((bold))
|
||||
$param="wrap-selection"
|
||||
prefix="''"
|
||||
suffix="''"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -3,7 +3,7 @@ tags: $:/tags/EditorToolbar
|
||||
icon: $:/core/images/excise
|
||||
caption: {{$:/language/Buttons/Excise/Caption}}
|
||||
description: {{$:/language/Buttons/Excise/Hint}}
|
||||
condition: [<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/vnd.tiddlywiki]] +[first[]]
|
||||
condition: [<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] [<targetTiddler>type[text/markdown]] [<targetTiddler>type[text/x-markdown]] +[first[]]
|
||||
shortcuts: ((excise))
|
||||
dropdown: $:/core/ui/EditorToolbar/excise-dropdown
|
||||
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((italic))
|
||||
$param="wrap-selection"
|
||||
prefix="//"
|
||||
suffix="//"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -12,4 +12,5 @@ tags: $:/tags/EditorToolbar
|
||||
$param="wrap-selection"
|
||||
prefix="[["
|
||||
suffix="]]"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((mono-line))
|
||||
$param="wrap-selection"
|
||||
prefix="`"
|
||||
suffix="`"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -21,7 +21,7 @@ title: $:/core/ui/EditorToolbar/StampDropdown/ItemTemplate
|
||||
$message="tm-edit-text-operation"
|
||||
$param="wrap-selection"
|
||||
prefix={{{ [<currentTiddler>addsuffix[/prefix]get[text]] }}}
|
||||
suffix={{{ [<currentTiddler>addsuffix[/suffix]get[text]] }}}
|
||||
suffix={{{ [<currentTiddler>addsuffix[/suffix]get[text]] }}}
|
||||
/>
|
||||
|
||||
</$list>
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((strikethrough))
|
||||
$param="wrap-selection"
|
||||
prefix="~~"
|
||||
suffix="~~"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((subscript))
|
||||
$param="wrap-selection"
|
||||
prefix=",,"
|
||||
suffix=",,"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((superscript))
|
||||
$param="wrap-selection"
|
||||
prefix="^^"
|
||||
suffix="^^"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -12,4 +12,5 @@ tags: $:/tags/EditorToolbar
|
||||
$param="wrap-selection"
|
||||
prefix="{{"
|
||||
suffix="}}"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -11,4 +11,5 @@ shortcuts: ((underline))
|
||||
$param="wrap-selection"
|
||||
prefix="__"
|
||||
suffix="__"
|
||||
trimSelection="yes"
|
||||
/>
|
||||
|
@ -4,15 +4,14 @@ caption: {{$:/core/images/advanced-search-button}} {{$:/language/Buttons/Advance
|
||||
description: {{$:/language/Buttons/AdvancedSearch/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define advanced-search-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
\procedure advanced-search-button(class)
|
||||
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/advanced-search-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/CloseAll/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-close-all-tiddlers" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/close-all-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/CloseAll/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -4,15 +4,14 @@ caption: {{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Ca
|
||||
description: {{$:/language/Buttons/ControlPanel/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define control-panel-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
\procedure control-panel-button(class)
|
||||
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/options-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
|
||||
|
@ -6,25 +6,25 @@ description: {{$:/language/Buttons/Encryption/Hint}}
|
||||
\whitespace trim
|
||||
<$reveal type="match" state="$:/isEncrypted" text="yes">
|
||||
<$button message="tm-clear-password" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/locked-padlock}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal type="nomatch" state="$:/isEncrypted" text="yes">
|
||||
<$button message="tm-set-password" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/unlocked-padlock}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
|
@ -3,4 +3,4 @@ tags: $:/tags/PageControls
|
||||
caption: {{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}
|
||||
description: {{$:/language/Buttons/ExportPage/Hint}}
|
||||
|
||||
<$macrocall $name="exportButton" exportFilter="[!is[system]sort[title]]" lingoBase="$:/language/Buttons/ExportPage/"/>
|
||||
<$transclude $variable="exportButton" exportFilter="[!is[system]sort[title]]" lingoBase="$:/language/Buttons/ExportPage/"/>
|
@ -6,12 +6,12 @@ description: {{$:/language/Buttons/FoldAll/Hint}}
|
||||
\whitespace trim
|
||||
<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-fold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/fold-all-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/FoldAll/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/FullScreen/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-full-screen" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/full-screen-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/FullScreen/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/Home/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-home" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/home-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Home/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -6,14 +6,14 @@ description: {{$:/language/Buttons/Import/Hint}}
|
||||
\whitespace trim
|
||||
<div class="tc-file-input-wrapper">
|
||||
<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/import-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Import/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,21 +4,18 @@ caption: {{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}
|
||||
description: {{$:/language/Buttons/Language/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define flag-title()
|
||||
$(languagePluginTitle)$/icon
|
||||
\end
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/language">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<span class="tc-image-button">
|
||||
<$set name="languagePluginTitle" value={{$:/language}}>
|
||||
<$image source=<<flag-title>>/>
|
||||
</$set>
|
||||
</span>
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
<span class="tc-image-button">
|
||||
<$set name="languagePluginTitle" value={{$:/language}}>
|
||||
<$image source=`$(languagePluginTitle)$/icon`/>
|
||||
</$set>
|
||||
</span>
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</span>
|
||||
<$reveal state=<<qualify "$:/state/popup/language">> type="popup" position="below" animate="yes">
|
||||
|
@ -6,10 +6,10 @@ description: {{$:/language/LayoutSwitcher/Description}}
|
||||
\whitespace trim
|
||||
<$button tooltip={{$:/language/Buttons/LayoutSwitcher/Hint}} aria-label={{$:/language/Buttons/LayoutSwitcher/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-show-switcher" switch="layout"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/layout-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/LayoutSwitcher/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -4,17 +4,16 @@ caption: {{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}
|
||||
description: {{$:/language/Buttons/Manager/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define manager-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
\procedure manager-button(class)
|
||||
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/list}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Manager/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
|
||||
|
@ -12,33 +12,29 @@ description: {{$:/language/Buttons/More/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
selectedClass="tc-selected"
|
||||
>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/down-arrow}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/More/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
<$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="below" animate="yes">
|
||||
<div class="tc-drop-down">
|
||||
<$set name="tv-config-toolbar-icons" value="yes">
|
||||
<$set name="tv-config-toolbar-text" value="yes">
|
||||
<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]"
|
||||
variable="listItem"
|
||||
<$let tv-config-toolbar-icons="yes" tv-config-toolbar-text="yes" tv-config-toolbar-class="tc-btn-invisible">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]"
|
||||
variable="listItem"
|
||||
>
|
||||
<$reveal type="match" state=<<config-title>> text="hide">
|
||||
<$set name="tv-config-toolbar-class"
|
||||
filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"
|
||||
>
|
||||
<$reveal type="match" state=<<config-title>> text="hide">
|
||||
<$set name="tv-config-toolbar-class"
|
||||
filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"
|
||||
>
|
||||
<$transclude tiddler=<<listItem>> mode="inline"/>
|
||||
</$set>
|
||||
</$reveal>
|
||||
</$list>
|
||||
</$set>
|
||||
</$set>
|
||||
</$set>
|
||||
<$transclude tiddler=<<listItem>> mode="inline"/>
|
||||
</$set>
|
||||
</$reveal>
|
||||
</$list>
|
||||
</$let>
|
||||
</div>
|
||||
</$reveal>
|
||||
</$reveal>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/NetworkActivity/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-http-cancel-all-requests" tooltip={{$:/language/Buttons/NetworkActivity/Hint}} aria-label={{$:/language/Buttons/NetworkActivity/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/network-activity}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NetworkActivity/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/NewImage/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/new-image-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NewImage/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -4,17 +4,16 @@ caption: {{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/
|
||||
description: {{$:/language/Buttons/NewJournal/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define journalButton()
|
||||
\whitespace trim
|
||||
\procedure journalButton()
|
||||
<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/new-journal-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NewJournal/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
<<journalButton>>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/NewTiddler/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/new-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NewTiddler/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -6,12 +6,12 @@ description: {{$:/language/Buttons/Palette/Hint}}
|
||||
\whitespace trim
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/palette">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/palette}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</span>
|
||||
<$reveal state=<<qualify "$:/state/popup/palette">> type="popup" position="below" animate="yes">
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/Print/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-print" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/print-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Print/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/Refresh/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-browser-refresh" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/refresh-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Refresh/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -9,13 +9,13 @@ description: {{$:/language/Buttons/SaveWiki/Hint}}
|
||||
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
|
||||
</$wikify>
|
||||
<span class="tc-dirty-indicator">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/save-button-dynamic}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/SaveWiki/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</span>
|
||||
</$button>
|
||||
</$button>
|
||||
|
@ -4,19 +4,16 @@ caption: {{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Ca
|
||||
description: {{$:/language/Buttons/StoryView/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define icon()
|
||||
$:/core/images/storyview-$(storyview)$
|
||||
\end
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/storyview">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
<$set name="storyview" value={{$:/view}}>
|
||||
<$transclude tiddler=<<icon>>/>
|
||||
<$transclude tiddler=`$:/core/images/storyview-$(storyview)$`/>
|
||||
</$set>
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</span>
|
||||
<$reveal state=<<qualify "$:/state/popup/storyview">> type="popup" position="below" animate="yes">
|
||||
|
@ -4,17 +4,16 @@ caption: {{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}
|
||||
description: {{$:/language/Buttons/TagManager/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define control-panel-button(class)
|
||||
\whitespace trim
|
||||
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class="""$(tv-config-toolbar-class)$ $class$""">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
\procedure control-panel-button(class)
|
||||
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/tag-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/TagManager/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
|
||||
|
@ -6,12 +6,12 @@ description: {{$:/language/Buttons/Theme/Hint}}
|
||||
\whitespace trim
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/theme">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/theme-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</span>
|
||||
<$reveal state=<<qualify "$:/state/popup/theme">> type="popup" position="below" animate="yes">
|
||||
|
@ -7,26 +7,26 @@ description: {{$:/language/Buttons/Timestamp/Hint}}
|
||||
<$reveal type="nomatch" state="$:/config/TimestampDisable" text="yes">
|
||||
<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-setfield $tiddler="$:/config/TimestampDisable" $value="yes"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/timestamp-on}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Timestamp/On/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal type="match" state="$:/config/TimestampDisable" text="yes">
|
||||
<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-setfield $tiddler="$:/config/TimestampDisable" $value="no"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/timestamp-off}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
|
@ -6,12 +6,12 @@ description: {{$:/language/Buttons/UnfoldAll/Hint}}
|
||||
\whitespace trim
|
||||
<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-unfold-all-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/unfold-all-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/UnfoldAll/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
</$button>
|
||||
<%endif%>
|
||||
</$button>
|
||||
|
@ -46,6 +46,21 @@ color: #bbb
|
||||
</$reveal>
|
||||
\end
|
||||
|
||||
\procedure color-picker-actions()
|
||||
\whitespace trim
|
||||
<$action-setfield $tiddler=<<currentTiddler>> color=<<colour-picker-value>>/>
|
||||
\end
|
||||
|
||||
\procedure color-picker-button()
|
||||
\whitespace trim
|
||||
<div class="tc-drop-down-wrapper">
|
||||
<$button class="tc-btn-invisible" popup={{{ [[$:/state/tag-manager/color/]addsuffix<currentTiddler>] }}}>{{$:/core/images/palette}}</$button>
|
||||
<$reveal type="popup" tag="div" class="tc-drop-down tc-popup-keep" state={{{ [[$:/state/tag-manager/color/]addsuffix<currentTiddler>] }}}>
|
||||
<$transclude $variable="colour-picker" actions=<<color-picker-actions>>/>
|
||||
</$reveal>
|
||||
</div>
|
||||
\end
|
||||
|
||||
\whitespace trim
|
||||
<table class="tc-tag-manager-table">
|
||||
<tbody>
|
||||
@ -58,7 +73,7 @@ color: #bbb
|
||||
</tr>
|
||||
<$list filter="[tags[]!is[system]sort[title]]">
|
||||
<tr>
|
||||
<td><$edit-text field="color" tag="input" type="color"/></td>
|
||||
<td><$transclude $variable="color-picker-button"/></td>
|
||||
<td>{{||$:/core/ui/TagTemplate}}</td>
|
||||
<td><$count filter="[all[current]tagging[]]"/></td>
|
||||
<td>
|
||||
|
@ -13,6 +13,7 @@ title: $:/core/ui/TestCaseTemplate
|
||||
testActions="Actions"
|
||||
testHideIfPass=<<hideIfPass>>
|
||||
>
|
||||
<$data $filter={{!!import}}/>
|
||||
<$data $compound-filter={{!!import-compound}}/>
|
||||
<$data $compound-tiddler=<<currentTiddler>>/>
|
||||
<%if [{!!description}!is[blank]] %><$data title="Description" text={{!!description}}/><%endif%>
|
||||
|
@ -3,7 +3,7 @@ tags: $:/tags/ViewTemplate
|
||||
|
||||
\import [all[shadows+tiddlers]tag[$:/tags/Macro/View/Body]!is[draft]] [all[shadows+tiddlers]tag[$:/tags/Global/View/Body]!is[draft]]
|
||||
|
||||
<$reveal tag="div" class="tc-tiddler-body" type="nomatch" stateTitle=<<folded-state>> text="hide" retain="yes" animate="yes">
|
||||
<$reveal tag="div" class="tc-tiddler-body tc-clearfix" type="nomatch" stateTitle=<<folded-state>> text="hide" retain="yes" animate="yes">
|
||||
|
||||
<$transclude tiddler={{{ [<currentTiddler>] :cascade[all[shadows+tiddlers]tag[$:/tags/ViewTemplateBodyFilter]!is[draft]get[text]] :and[!is[blank]else[$:/core/ui/ViewTemplate/body/default]] }}} />
|
||||
|
||||
|
@ -1,4 +1,8 @@
|
||||
title: $:/core/ui/ViewTemplate/body/code
|
||||
|
||||
<%if [<currentTiddler>is[missing]] :and[!is[shadow]] %>
|
||||
<$transclude tiddler="$:/language/MissingTiddler/Hint"/>
|
||||
<%else%>
|
||||
<$transclude $variable="copy-to-clipboard-above-right" src={{{ [<currentTiddler>get[text]] }}} />
|
||||
<$codeblock code={{{ [<currentTiddler>get[text]] }}} language={{{ [<currentTiddler>get[type]else[text/vnd.tiddlywiki]] }}}/>
|
||||
<%endif%>
|
@ -2,7 +2,7 @@ title: $:/core/ui/ViewTemplate/subtitle/default
|
||||
|
||||
\whitespace trim
|
||||
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
|
||||
<div class="tc-subtitle">
|
||||
<div class="tc-subtitle tc-clearfix">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate/Subtitle]!has[draft.of]]" variable="subtitleTiddler">
|
||||
<$transclude tiddler=<<subtitleTiddler>> mode="inline"/><$list-join> </$list-join>
|
||||
</$list>
|
||||
|
@ -4,7 +4,7 @@ tags: $:/tags/ViewTemplate
|
||||
\whitespace trim
|
||||
\define title-styles() fill:$(foregroundColor)$;
|
||||
|
||||
<div class="tc-tiddler-title">
|
||||
<div class="tc-tiddler-title tc-clearfix">
|
||||
<div class="tc-titlebar">
|
||||
<span class="tc-tiddler-controls">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] :filter[lookup[$:/config/ViewToolbarButtons/Visibility/]!match[hide]]"
|
||||
|
@ -4,13 +4,18 @@ caption: {{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}
|
||||
description: {{$:/language/Buttons/Clone/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-new-tiddler" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/clone-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Clone/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<$button message="tm-new-tiddler"
|
||||
param=<<currentTiddler>>
|
||||
tooltip={{$:/language/Buttons/Clone/Hint}}
|
||||
aria-label={{$:/language/Buttons/Clone/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/clone-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Clone/Caption}}/>
|
||||
</span>
|
||||
<%endif%>
|
||||
</$button>
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/CloseOthers/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-close-other-tiddlers" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/close-others-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
@ -4,13 +4,17 @@ caption: {{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}
|
||||
description: {{$:/language/Buttons/Close/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-close-tiddler" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/close-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Close/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<$button message="tm-close-tiddler"
|
||||
tooltip={{$:/language/Buttons/Close/Hint}}
|
||||
aria-label={{$:/language/Buttons/Close/Caption}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/close-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Close/Caption}}/>
|
||||
</span>
|
||||
<%endif%>
|
||||
</$button>
|
@ -4,13 +4,17 @@ caption: {{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}
|
||||
description: {{$:/language/Buttons/Edit/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-edit-tiddler" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/edit-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Edit/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<$button message="tm-edit-tiddler"
|
||||
tooltip={{$:/language/Buttons/Edit/Hint}}
|
||||
aria-label={{$:/language/Buttons/Edit/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/edit-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Edit/Caption}}/>
|
||||
</span>
|
||||
<%endif%>
|
||||
</$button>
|
@ -3,7 +3,4 @@ tags: $:/tags/ViewToolbar
|
||||
caption: {{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}
|
||||
description: {{$:/language/Buttons/ExportTiddler/Hint}}
|
||||
|
||||
\define makeExportFilter()
|
||||
[[$(currentTiddler)$]]
|
||||
\end
|
||||
<$macrocall $name="exportButton" exportFilter=<<makeExportFilter>> lingoBase="$:/language/Buttons/ExportTiddler/" baseFilename=<<currentTiddler>>/>
|
||||
<$transclude $variable="exportButton" exportFilter=`[[$(currentTiddler)$]]` lingoBase="$:/language/Buttons/ExportTiddler/" baseFilename=<<currentTiddler>>/>
|
@ -6,12 +6,12 @@ description: {{$:/language/Buttons/FoldOthers/Hint}}
|
||||
\whitespace trim
|
||||
<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-fold-other-tiddlers" $param=<<currentTiddler>> foldedStatePrefix="$:/state/folded/"/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/fold-others-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
@ -7,26 +7,26 @@ description: {{$:/language/Buttons/Fold/Hint}}
|
||||
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" default="show">
|
||||
<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/fold-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Fold/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal type="match" stateTitle=<<folded-state>> text="hide" default="show">
|
||||
<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$action-sendmessage $message="tm-fold-tiddler" $param=<<currentTiddler>> foldedState=<<folded-state>>/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]" variable="listItem">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/unfold-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Unfold/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</$reveal>
|
||||
|
@ -4,31 +4,30 @@ caption: {{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}
|
||||
description: {{$:/language/Buttons/Info/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define button-content()
|
||||
\whitespace trim
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
\procedure button-content()
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/info-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Info/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
\end
|
||||
<$reveal state="$:/config/TiddlerInfo/Mode" type="match" text="popup">
|
||||
<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$macrocall $name="button-content" mode="inline"/>
|
||||
<$transclude $variable="button-content" $mode="inline"/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal state="$:/config/TiddlerInfo/Mode" type="match" text="sticky">
|
||||
<$reveal state=<<tiddlerInfoState>> type="match" text="" default="">
|
||||
<$button set=<<tiddlerInfoState>> setTo="yes" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$macrocall $name="button-content" mode="inline"/>
|
||||
<$transclude $variable="button-content" $mode="inline"/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal state=<<tiddlerInfoState>> type="nomatch" text="" default="">
|
||||
<$button set=<<tiddlerInfoState>> setTo="" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$macrocall $name="button-content" mode="inline"/>
|
||||
<$transclude $variable="button-content" $mode="inline"/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
</$reveal>
|
@ -4,7 +4,6 @@ caption: {{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}
|
||||
description: {{$:/language/Buttons/More/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$
|
||||
|
||||
<$button popup=<<qualify "$:/state/popup/more">>
|
||||
tooltip={{$:/language/Buttons/More/Hint}}
|
||||
@ -12,33 +11,29 @@ description: {{$:/language/Buttons/More/Hint}}
|
||||
class=<<tv-config-toolbar-class>>
|
||||
selectedClass="tc-selected"
|
||||
>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/down-arrow}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/More/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
<$reveal state=<<qualify "$:/state/popup/more">> type="popup" position="belowleft" animate="yes">
|
||||
<div class="tc-drop-down">
|
||||
<$set name="tv-config-toolbar-icons" value="yes">
|
||||
<$set name="tv-config-toolbar-text" value="yes">
|
||||
<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]"
|
||||
variable="listItem"
|
||||
<$let tv-config-toolbar-icons="yes" tv-config-toolbar-text="yes" tv-config-toolbar-class="tc-btn-invisible">
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]"
|
||||
variable="listItem"
|
||||
>
|
||||
<$reveal type="match" state=`$:/config/ViewToolbarButtons/Visibility/$(listItem)$` text="hide">
|
||||
<$set name="tv-config-toolbar-class"
|
||||
filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"
|
||||
>
|
||||
<$reveal type="match" state=<<config-title>> text="hide">
|
||||
<$set name="tv-config-toolbar-class"
|
||||
filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"
|
||||
>
|
||||
<$transclude tiddler=<<listItem>> mode="inline"/>
|
||||
</$set>
|
||||
</$reveal>
|
||||
</$list>
|
||||
</$set>
|
||||
</$set>
|
||||
</$set>
|
||||
<$transclude tiddler=<<listItem>> mode="inline"/>
|
||||
</$set>
|
||||
</$reveal>
|
||||
</$list>
|
||||
</$let>
|
||||
</div>
|
||||
</$reveal>
|
@ -4,23 +4,21 @@ caption: {{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Captio
|
||||
description: {{$:/language/Buttons/NewHere/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define newHereActions()
|
||||
\whitespace trim
|
||||
\procedure newHereActions()
|
||||
<$set name="tags" filter="[<currentTiddler>] [enlist{$:/config/NewTiddler/Tags}]">
|
||||
<$action-sendmessage $message="tm-new-tiddler" tags=<<tags>>/>
|
||||
</$set>
|
||||
\end
|
||||
\define newHereButton()
|
||||
\whitespace trim
|
||||
\procedure newHereButton()
|
||||
<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/new-here-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NewHere/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
||||
\end
|
||||
<<newHereButton>>
|
||||
|
@ -4,29 +4,21 @@ caption: {{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalH
|
||||
description: {{$:/language/Buttons/NewJournalHere/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
\define journalButtonTags()
|
||||
[[$(currentTiddlerTag)$]] $(journalTags)$
|
||||
\end
|
||||
\define journalButton()
|
||||
\whitespace trim
|
||||
\procedure journalButton()
|
||||
<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$wikify name="journalTitle" text="""<$macrocall $name="now" format=<<journalTitleTemplate>>/>""">
|
||||
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=<<journalButtonTags>>/>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<$wikify name="journalTitle" text="""<$transclude $variable="now" format=<<journalTitleTemplate>>/>""">
|
||||
<$action-sendmessage $message="tm-new-tiddler" title=<<journalTitle>> tags=`[[$(currentTiddlerTag)$]] $(journalTags)$`/>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/new-journal-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$wikify>
|
||||
</$button>
|
||||
\end
|
||||
<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
|
||||
<$set name="journalTags" value={{$:/config/NewJournal/Tags}}>
|
||||
<$set name="currentTiddlerTag" value=<<currentTiddler>>>
|
||||
<$let journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags}} currentTiddlerTag=<<currentTiddler>>>
|
||||
<<journalButton>>
|
||||
</$set>
|
||||
</$set>
|
||||
</$set>
|
||||
</$let>
|
||||
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/OpenWindow/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-open-window" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/open-window}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/Permalink/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-permalink" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/permalink-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Permalink/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
@ -5,12 +5,12 @@ description: {{$:/language/Buttons/Permaview/Hint}}
|
||||
|
||||
\whitespace trim
|
||||
<$button message="tm-permaview" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/permaview-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text">
|
||||
<$text text={{$:/language/Buttons/Permaview/Caption}}/>
|
||||
</span>
|
||||
</$list>
|
||||
<%endif%>
|
||||
</$button>
|
@ -1,13 +1,30 @@
|
||||
title: $:/snippets/allfields
|
||||
|
||||
\define renderfield(title)
|
||||
<tr class="tc-view-field"><td class="tc-view-field-name">''<$text text=<<__title__>>/>'':</td><td class="tc-view-field-value">//{{$:/language/Docs/Fields/$title$}}//</td></tr>
|
||||
\end
|
||||
\whitespace trim
|
||||
|
||||
\procedure lingo-base() $:/language/Docs/Fields/
|
||||
|
||||
\function tf.getLingoText() [<lingo-base>] [<title>] +[join[]get[text]]
|
||||
|
||||
\procedure renderfield(title)
|
||||
<tr class="tc-view-field">
|
||||
<td class="tc-view-field-name">
|
||||
''<$text text=<<title>>/>'':
|
||||
</td>
|
||||
<td class="tc-view-field-value">
|
||||
//<<tf.getLingoText>>//
|
||||
</td>
|
||||
<td class="tc-view-field-list">
|
||||
<$macrocall $name="show-filter-count" filter=`[has[$(title)$]sort[]]`>>
|
||||
</td>
|
||||
</tr>
|
||||
\end
|
||||
|
||||
<table class="tc-view-field-table">
|
||||
<tbody>
|
||||
<$list filter="[fields[]sort[title]]" variable="listItem">
|
||||
<$macrocall $name="renderfield" title=<<listItem>>/>
|
||||
</$list>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<!-- <<renderfieldHeader>> -->
|
||||
<$list filter="[fields[]sort[title]]" variable="listItem">
|
||||
<$macrocall $name="renderfield" title=<<listItem>>/>
|
||||
</$list>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -1,7 +1,7 @@
|
||||
title: $:/config/ViewTemplateBodyFilters/
|
||||
tags: $:/tags/ViewTemplateBodyFilter
|
||||
|
||||
testcase: [tag[$:/tags/wiki-test-spec]type[text/vnd.tiddlywiki-multiple]then[$:/core/ui/TestCaseTemplate]] [tag[$:/tags/wiki-test-spec-failing]type[text/vnd.tiddlywiki-multiple]then[$:/core/ui/TestCaseTemplate]]
|
||||
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]]
|
||||
|
@ -10,9 +10,7 @@ tags: $:/tags/Macro
|
||||
|
||||
\define colour-picker-inner(actions)
|
||||
<$button tag="a" tooltip="""$(colour-picker-value)$""">
|
||||
|
||||
$(colour-picker-update-recent)$
|
||||
|
||||
<$transclude $variable="__actions__"/>
|
||||
|
||||
<span style="display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;"/>
|
||||
|
@ -1,33 +1,51 @@
|
||||
title: $:/core/macros/export
|
||||
tags: $:/tags/Macro
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
|
||||
\define exportButtonFilename(baseFilename)
|
||||
$baseFilename$$(extension)$
|
||||
\function exportButtonFilename(baseFilename)
|
||||
[<baseFilename>] [<extension>] +[join[]]
|
||||
\end
|
||||
|
||||
\define exportButton(exportFilter:"[!is[system]sort[title]]",lingoBase,baseFilename:"tiddlers")
|
||||
\procedure exportButton(exportFilter:"[!is[system]sort[title]]",lingoBase,baseFilename:"tiddlers")
|
||||
\whitespace trim
|
||||
<$vars hint={{{ [<__lingoBase__>addsuffix[Hint]get[text]] }}} caption={{{ [<__lingoBase__>addsuffix[Caption]get[text]] }}}>
|
||||
<span class="tc-popup-keep"><$button popup=<<qualify "$:/state/popup/export">> tooltip=<<hint>> aria-label=<<caption>> class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
|
||||
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
|
||||
{{$:/core/images/export-button}}
|
||||
</$list>
|
||||
<$list filter="[<tv-config-toolbar-text>match[yes]]">
|
||||
<span class="tc-btn-text"><$text text=<<caption>>/></span>
|
||||
</$list>
|
||||
</$button></span></$vars><$reveal state=<<qualify "$:/state/popup/export">> type="popup" position="below" animate="yes">
|
||||
<div class="tc-drop-down">
|
||||
<$set name="count" value={{{ [subfilter<__exportFilter__>count[]] }}}>
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Exporter]]">
|
||||
<$list filter="[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]" variable="ignore">
|
||||
<$button class="tc-btn-invisible">
|
||||
<$action-sendmessage $message="tm-download-file" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename={{{ [<__baseFilename__>addsuffix{!!extension}] }}}/>
|
||||
<$action-deletetiddler $tiddler=<<qualify "$:/state/popup/export">>/>
|
||||
<$transclude field="description"/>
|
||||
</$button>
|
||||
</$list>
|
||||
</$list>
|
||||
</$set>
|
||||
</div>
|
||||
<$let hint={{{ [<lingoBase>addsuffix[Hint]get[text]] }}}
|
||||
caption={{{ [<lingoBase>addsuffix[Caption]get[text]] }}}
|
||||
>
|
||||
<span class="tc-popup-keep">
|
||||
<$button popup=<<qualify "$:/state/popup/export">>
|
||||
tooltip=<<hint>>
|
||||
aria-label=<<caption>>
|
||||
class=<<tv-config-toolbar-class>>
|
||||
selectedClass="tc-selected"
|
||||
dragFilter=<<exportFilter>>
|
||||
>
|
||||
<%if [<tv-config-toolbar-icons>match[yes]] %>
|
||||
{{$:/core/images/export-button}}
|
||||
<%endif%>
|
||||
<%if [<tv-config-toolbar-text>match[yes]] %>
|
||||
<span class="tc-btn-text"><$text text=<<caption>>/></span>
|
||||
<%endif%>
|
||||
</$button>
|
||||
</span>
|
||||
</$let>
|
||||
<$reveal state=<<qualify "$:/state/popup/export">> type="popup" position="below" animate="yes">
|
||||
<div class="tc-drop-down">
|
||||
<$set name="count" value={{{ [subfilter<exportFilter>count[]] }}}>
|
||||
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Exporter]]">
|
||||
<$list filter="[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]"
|
||||
variable="ignore"
|
||||
>
|
||||
<$button class="tc-btn-invisible">
|
||||
<$action-sendmessage $message="tm-download-file"
|
||||
$param=<<currentTiddler>>
|
||||
exportFilter=<<exportFilter>>
|
||||
filename={{{ [<baseFilename>addsuffix{!!extension}] }}}
|
||||
/>
|
||||
<$action-deletetiddler $tiddler=<<qualify "$:/state/popup/export">>/>
|
||||
<$transclude field="description"/>
|
||||
</$button>
|
||||
</$list>
|
||||
</$list>
|
||||
</$set>
|
||||
</div>
|
||||
</$reveal>
|
||||
\end
|
||||
|
17
core/wiki/macros/show-filter-count.tid
Normal file
17
core/wiki/macros/show-filter-count.tid
Normal file
@ -0,0 +1,17 @@
|
||||
title: $:/core/macros/show-filter-count
|
||||
tags: $:/tags/Macro $:/tags/Global
|
||||
|
||||
\whitespace trim
|
||||
|
||||
\procedure show-filter-count(filter)
|
||||
<$button class="tc-btn-invisible">
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch" $value=<<filter>>/>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/input" $value=<<filter>>/>
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch/refresh" text="yes"/>
|
||||
<$action-setfield $tiddler="$:/state/tab--1498284803" $value="$:/core/ui/AdvancedSearch/Filter"/>
|
||||
<$action-navigate $to="$:/AdvancedSearch"/>
|
||||
<$action-sendmessage $message="tm-focus-selector" $param=".tc-advanced-search input"/>
|
||||
<span class="tc-small-gap-right">''<$count filter=<<filter>>/>''</span>
|
||||
{{$:/core/images/advanced-search-button}}
|
||||
</$button>
|
||||
\end
|
@ -31,11 +31,11 @@ second-search-filter: [subfilter<tagListFilter>is[system]search:title<userInput>
|
||||
\procedure add-tag-actions()
|
||||
<$let tag=<<_tf.getTag>> >
|
||||
<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter='+[toggle<tag>trim[]]'/>
|
||||
<% if [<tag>] :intersection[<saveTiddler>get<tagField>enlist-input[]] %>
|
||||
<%if [<tag>] :intersection[<saveTiddler>get<tagField>enlist-input[]] %>
|
||||
<!-- tag has been removed - do nothing -->
|
||||
<% else %>
|
||||
<%else%>
|
||||
<<actions>>
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
<<delete-tag-state-tiddlers>>
|
||||
<$action-setfield $tiddler=<<refreshTitle>> text="yes"/>
|
||||
</$let>
|
||||
@ -46,11 +46,11 @@ 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]] ~[<newTagNameTiddler>has[text]] %>
|
||||
<<delete-tag-state-tiddlers>>
|
||||
<% else %>
|
||||
<%else%>
|
||||
<<cancel-delete-tiddler-actions "cancel">>
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
\end
|
||||
|
||||
<!-- triggered by keyboard only -->
|
||||
@ -83,6 +83,9 @@ The second ESC tries to close the "draft tiddler"
|
||||
emptyMessage="<div class='tc-search-results'>{{$:/language/Search/Search/TooShort}}</div>" variable="listItem"
|
||||
>
|
||||
<$list filter=<<filter>> variable="tag">
|
||||
<$list-empty>
|
||||
<span class="tc-small-gap-left">{{$:/language/EditTemplate/Tags/EmptyMessage}}</span>
|
||||
</$list-empty>
|
||||
<!-- The buttonClasses filter is used to define tc-tag-button-selected state -->
|
||||
<!-- tf.get-tagpicker-focus-selector has to be resolved for $:/core/ui/TagPickerTagTemplate,
|
||||
othwerwise qualify in tf.tagpicker-dropdown-id causes problems -->
|
||||
@ -125,13 +128,13 @@ The second ESC tries to close the "draft tiddler"
|
||||
>
|
||||
{{$:/core/images/down-arrow}}
|
||||
</$button>
|
||||
<% if [<storeTitle>has[text]] %>
|
||||
<%if [<storeTitle>has[text]] %>
|
||||
<$button actions=<<delete-tag-state-tiddlers>> class="tc-btn-invisible tc-small-gap tc-btn-dropdown"
|
||||
tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}
|
||||
>
|
||||
{{$:/core/images/close-button}}
|
||||
</$button>
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
<span class="tc-add-tag-button tc-small-gap-left">
|
||||
<$let tag=<<_tf.getTag>>>
|
||||
<$button set=<<newTagNameTiddler>> actions=<<add-button-actions>> >
|
||||
@ -141,13 +144,13 @@ The second ESC tries to close the "draft tiddler"
|
||||
</span>
|
||||
</div>
|
||||
<div class="tc-block-dropdown-wrapper">
|
||||
<% if [<tf.tagpicker-dropdown-id>has[text]] %>
|
||||
<%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" />
|
||||
<hr>
|
||||
<$macrocall $name="tag-picker-listTags" filter=<<systemTagsFilter>> suffix="-secondaryList" />
|
||||
</div>
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
|
@ -7,7 +7,7 @@ fill:$(foregroundColor)$;
|
||||
color:$(foregroundColor)$;
|
||||
\end
|
||||
|
||||
<!-- This has no whitespace trim to avoid modifying $actions$. Closing tags omitted for brevity. -->
|
||||
<!-- This has no whitespace trim to avoid modifying $actions$ -->
|
||||
\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)
|
||||
\whitespace trim
|
||||
<$let
|
||||
|
@ -1,6 +1,6 @@
|
||||
caption: 5.3.6
|
||||
created: 20240810120027897
|
||||
modified: 20240810120027897
|
||||
created: 20240830144941926
|
||||
modified: 20240830144941926
|
||||
tags: ReleaseNotes
|
||||
title: Release 5.3.6
|
||||
type: text/vnd.tiddlywiki
|
||||
@ -12,20 +12,40 @@ description: Under development
|
||||
|
||||
! Translation improvements
|
||||
|
||||
<<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8531">> support for new language "Chinese (Hong Kong)"
|
||||
|
||||
This release includes improvements to the following translations:
|
||||
|
||||
*
|
||||
* Chinese
|
||||
|
||||
! Plugin Improvements
|
||||
|
||||
!! Geospatial Plugin
|
||||
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8404">> support for custom wikitext popups to be attached to map features
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8437">> ordering of latitude and longitude in geospatial operators
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8484">> crash when geomap contains an empty geolayer widget
|
||||
|
||||
!! Markdown Plugin
|
||||
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8395">> strikethrough, superscript and subscript editor toolbar buttons
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8402">> readability of Markdown links to other tiddlers
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8459">> image toolbar dropdown to editor toolbar
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8492">> colour for target footnote background
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8585">> settings tab
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8498">> support for the excision tool
|
||||
|
||||
! TestCaseWidget and Related Improvements
|
||||
|
||||
This release includes several fixes and improvements to the TestCaseWidget, its default template, and the related DataWidget and CompoundTiddlers format. These features were first introduced in [[Release 5.3.4]] and are undergoing continuous improvement as we work on integrating them more widely across the system.
|
||||
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8447">> new `$compound-filter` attribute for the DataWidget that allows other compound tiddlers to be imported. There is also a companion ''import-compound'' field for the TestCaseWidget template
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8514">> the TestCaseWidget default template to make it more modular
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8499">> support for an ''import'' field in TestCaseTiddlers, allowing additional tiddlers to be imported
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8416">> [[TestCaseWidget]] default template to allow wikitext within the test case narrative
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8449">> WikiText formatting buttons when editing CompoundTiddlers
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8450">> CompoundTiddlers type `text/vnd.tiddlywiki-multiple` to the editor type dropdown
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8409">> filesystem handling so that CompoundTiddlers are saved as .tid files
|
||||
|
||||
! Widget Improvements
|
||||
|
||||
@ -37,11 +57,28 @@ This release includes improvements to the following translations:
|
||||
|
||||
! Usability Improvements
|
||||
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8530">> language descriptions by localising them
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8407">> the contrast of plugin stability badges on hover
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8430">> a "copy to clipboard" button to the view template body template used for code tiddlers
|
||||
* <<.link-badge-added "github.com/TiddlyWiki/TiddlyWiki5/pull/8441">> support for social media cards to be added to TiddlyWiki
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8518">> type attribute to input fields in control panel, allowing virtual keyboards to switch to the proper one when editing settings
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8558">> empty message to tag picker, search dropdown and advanced search
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8157">> a search button to the control panel tiddler fields tab
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8323">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8324">>) the view and edit toolbars with more descriptive Aria labels
|
||||
|
||||
! Hackability Improvements
|
||||
|
||||
*
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8431">> support for the HTML entity `⁠` which can be useful for joining HTML elements without an unwanted linebreak
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8439">> a keyboard shortcut for opening the control panel (by default it is <kbd>ctrl</kbd>-<kbd>alt</kbd>-<kbd>C</kbd>)
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8182">> new [[Hidden Setting: Tag Pill Drag Filter]] that allows configuration of the tiddlers that are transferred when dragging a tag pill
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8384">> tests to ensure that the syntax elements `{% %}` and `{= =}` are reserved for external tooling, and will never be recognised by TiddlyWiki itself
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8462">> new cascades for the view template subtitle and tags
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8500">> excision tool implementation to make the excision tiddler title translatable
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8584">> editor toolbar buttons to use the new [[Conditional Shortcut Syntax]]
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8579">> page control toolbar buttons to use the new [[Conditional Shortcut Syntax]]
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8559">> [[WidgetMessage: tm-new-tiddler]] to allow tiddlers to be created with no tags field
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/7941">> ''startCount'' parameter to [[unusedtitle Macro]]
|
||||
* <<.link-badge-added "https://github.com/TiddlyWiki/TiddlyWiki5/pull/7944">> trimSelection parameter to [[WidgetMessage: tm-edit-text-operation]]
|
||||
|
||||
! Bug Fixes
|
||||
|
||||
@ -49,28 +86,55 @@ This release includes improvements to the following translations:
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8393">> crash when [[WidgetMessage: tm-copy-to-clipboard]] is passed an empty string
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8399">> disengage "select all" when cancelling an import
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8382">> [[transcludes Operator]] and [[backtranscludes Operator]] minor issue with transclusions made via a filtered attribute
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8416">> [[TestCaseWidget]] default template to allow wikitext within the test case narrative
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/discussions/8428">> scroll top position when animation duration is zero
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8476">> importing $:/build tiddler when upgrading to avoid overwriting it
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/d9ac4a823fe0f91c615ed33fa890069f88cc8ab9">> crash with RenderCommand when filename filter returns empty result
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8355">> display of language plugins
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8540">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8546">>) display of non-square plugin icons
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8517">> appearance of input elements other than type `text` and `search`
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/38081b86c97a795420515156fcd52177574be516">> crash with filesystem adaptor if the wiki folder is missing
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8413">> unwrapped oveflowed code blocks not showing scroll bars when setting "Wrap long lines in code blocks" to "No" in "Theme tweaks"
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/7317">> (and <<.link-badge-here "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8552">>) search input box outline in Chrome-like browsers
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8578">> problem with rapid typing in the advanced search filter tab
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8535">> crash with EditionsCommand if an edition directory does not have a [[tiddlywiki.info file|tiddlywiki.info Files]]
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/b8fb9e6b21319e790e9aa7453ca265b0ed4898db">> DataWidget to allow title fields to be overwritten
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/fa423e508ff5012423a1904bb17c9d61848732ee">> "Put Saver" to correctly interpret HTTP response codes
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8547">> invalid accept header in "Put Saver"
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8485">> duplicated search results in advanced search when more than one tiddlers are tagged with [[SystemTag: $:/tags/SearchResults]]
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/commit/7dfdbae812306875bac2445ca4ee505b406e3be1">> crash if the KeyboardWidget is used within a [[startup action|StartupActions]]
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8574">> suffix in the [[encodebase64 Operator]] and [[decodebase64 Operator]]
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8557">> overflow of floated elements
|
||||
|
||||
! Node.js Improvements
|
||||
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8409">> filesystem handling so that [[Compound Tiddlers]] are saved as .tid files
|
||||
* <<.link-badge-fixed "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8339">> server crash when authenticating if newlines are contained in the site title
|
||||
|
||||
! Developer Improvements
|
||||
|
||||
*
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8423">> the browser checks used in $:/boot/bootprefix.js
|
||||
* <<.link-badge-extended "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8494">> parse tree format to add `start`/`end` properties to table row and cell elements
|
||||
* <<.link-badge-improved "https://github.com/TiddlyWiki/TiddlyWiki5/pull/8265">> and simplified plugin library edition usage
|
||||
|
||||
! Acknowledgements
|
||||
|
||||
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
|
||||
|
||||
<<.contributors """
|
||||
BramChen
|
||||
btheado
|
||||
flibbles
|
||||
hoelzro
|
||||
kookma
|
||||
Leilei332
|
||||
linonetwo
|
||||
michaeljmcd
|
||||
pmario
|
||||
PotOfCoffee2Go
|
||||
saqimtiaz
|
||||
simonbaird
|
||||
springerspandrel
|
||||
twMat
|
||||
valpackett
|
||||
webplusai
|
||||
wolfsprite
|
||||
""">>
|
||||
|
@ -5,7 +5,7 @@ tags: [[$:/tags/wiki-test-spec]]
|
||||
|
||||
title: Text
|
||||
|
||||
This is a <% if [<something>match[one]] %>Elephant<% endif %>, I think.
|
||||
This is a <%if [<something>match[one]] %>Elephant<%endif%>, I think.
|
||||
+
|
||||
title: Output
|
||||
|
||||
|
@ -6,23 +6,23 @@ tags: [[$:/tags/wiki-test-spec]]
|
||||
title: Output
|
||||
|
||||
\procedure test(animal)
|
||||
<% if [<animal>match[Elephant]] %>
|
||||
<%if [<animal>match[Elephant]] %>
|
||||
|
||||
! It is an elephant
|
||||
|
||||
<% else %>
|
||||
<%else%>
|
||||
|
||||
<% if [<animal>match[Giraffe]] %>
|
||||
<%if [<animal>match[Giraffe]] %>
|
||||
|
||||
! It is a giraffe
|
||||
|
||||
<% else %>
|
||||
<%else%>
|
||||
|
||||
! It is completely unknown
|
||||
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
|
||||
<% endif %>
|
||||
<%endif%>
|
||||
|
||||
\end
|
||||
|
||||
|
@ -5,7 +5,7 @@ tags: [[$:/tags/wiki-test-spec]]
|
||||
|
||||
title: Text
|
||||
|
||||
This is a <% if [<something>match[one]] %>Elephant<% else %>Crocodile<% endif %>, I think.
|
||||
This is a <%if [<something>match[one]] %>Elephant<%else%>Crocodile<%endif%>, I think.
|
||||
+
|
||||
title: Output
|
||||
|
||||
|
@ -5,7 +5,7 @@ tags: [[$:/tags/wiki-test-spec]]
|
||||
|
||||
title: Text
|
||||
|
||||
This is a <% if [<something>match[one]] %>Elephant<% elseif [<something>match[two]] %>Antelope<% else %>Crocodile<% endif %>, I think.
|
||||
This is a <%if [<something>match[one]] %>Elephant<%elseif [<something>match[two]] %>Antelope<%else%>Crocodile<%endif%>, I think.
|
||||
+
|
||||
title: Output
|
||||
|
||||
|
@ -5,7 +5,7 @@ tags: [[$:/tags/wiki-test-spec]]
|
||||
|
||||
title: Text
|
||||
|
||||
This is a <% if [<something>match[one]] %>Elephant
|
||||
This is a <%if [<something>match[one]] %>Elephant
|
||||
+
|
||||
title: Output
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user