mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-09-13 00:06:04 +00:00
@@ -6,13 +6,13 @@ description: Render tiddlers matching a filter to a specified ContentType
|
||||
Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).
|
||||
|
||||
```
|
||||
--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
|
||||
--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain
|
||||
```
|
||||
|
||||
By default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.
|
||||
|
@@ -71,7 +71,7 @@ Command.prototype.fetchFiles = function(options) {
|
||||
if(options.url) {
|
||||
urls = [options.url]
|
||||
} else if(options.urlFilter) {
|
||||
urls = $tw.wiki.filterTiddlers(options.urlFilter);
|
||||
urls = this.commander.wiki.filterTiddlers(options.urlFilter);
|
||||
} else {
|
||||
return "Missing URL";
|
||||
}
|
||||
|
@@ -69,7 +69,7 @@ Command.prototype.execute = function() {
|
||||
// Collect the skinny list data
|
||||
var pluginTiddlers = JSON.parse(tiddler.text),
|
||||
readmeContent = (pluginTiddlers.tiddlers[title + "/readme"] || {}).text,
|
||||
doesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),
|
||||
doesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers),
|
||||
iconTiddler = pluginTiddlers.tiddlers[title + "/icon"] || {},
|
||||
iconType = iconTiddler.type,
|
||||
iconText = iconTiddler.text,
|
||||
|
@@ -80,7 +80,8 @@ function FramedEngine(options) {
|
||||
$tw.utils.addEventListeners(this.domNode,[
|
||||
{name: "click",handlerObject: this,handlerMethod: "handleClickEvent"},
|
||||
{name: "input",handlerObject: this,handlerMethod: "handleInputEvent"},
|
||||
{name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"}
|
||||
{name: "keydown",handlerObject: this.widget,handlerMethod: "handleKeydownEvent"},
|
||||
{name: "focus",handlerObject: this,handlerMethod: "handleFocusEvent"},
|
||||
]);
|
||||
// Insert the element into the DOM
|
||||
this.iframeDoc.body.appendChild(this.domNode);
|
||||
@@ -153,6 +154,15 @@ FramedEngine.prototype.focus = function() {
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Handle a focus event
|
||||
*/
|
||||
FramedEngine.prototype.handleFocusEvent = function(event) {
|
||||
if(this.widget.editCancelPopups) {
|
||||
$tw.popup.cancel(0);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Handle a click
|
||||
*/
|
||||
|
@@ -122,6 +122,9 @@ SimpleEngine.prototype.handleInputEvent = function(event) {
|
||||
Handle a dom "focus" event
|
||||
*/
|
||||
SimpleEngine.prototype.handleFocusEvent = function(event) {
|
||||
if(this.widget.editCancelPopups) {
|
||||
$tw.popup.cancel(0);
|
||||
}
|
||||
if(this.widget.editFocusPopup) {
|
||||
$tw.popup.triggerPopup({
|
||||
domNode: this.domNode,
|
||||
|
@@ -177,6 +177,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
||||
this.editFocusPopup = this.getAttribute("focusPopup");
|
||||
this.editFocus = this.getAttribute("focus");
|
||||
this.editTabIndex = this.getAttribute("tabindex");
|
||||
this.editCancelPopups = this.getAttribute("cancelPopups","") === "yes";
|
||||
// Get the default editor element tag and type
|
||||
var tag,type;
|
||||
if(this.editField === "text") {
|
||||
@@ -208,7 +209,7 @@ function editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {
|
||||
EditTextWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
// Completely rerender if any of our attributes have changed
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedAttributes.cancelPopups || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else if(changedTiddlers[this.editTitle]) {
|
||||
|
36
core/modules/filters/duplicateslugs.js
Normal file
36
core/modules/filters/duplicateslugs.js
Normal file
@@ -0,0 +1,36 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/duplicateslugs.js
|
||||
type: application/javascript
|
||||
module-type: filteroperator
|
||||
|
||||
Filter function for [duplicateslugs[]]
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
*/
|
||||
exports.duplicateslugs = function(source,operator,options) {
|
||||
var slugs = Object.create(null), // Hashmap by slug of title, replaced with "true" if the duplicate title has already been output
|
||||
results = [];
|
||||
source(function(tiddler,title) {
|
||||
var slug = options.wiki.slugify(title);
|
||||
if(slug in slugs) {
|
||||
if(slugs[slug] !== true) {
|
||||
results.push(slugs[slug]);
|
||||
slugs[slug] = true;
|
||||
}
|
||||
results.push(title);
|
||||
} else {
|
||||
slugs[slug] = title;
|
||||
}
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
})();
|
@@ -37,13 +37,13 @@ exports.has = function(source,operator,options) {
|
||||
else if(operator.suffix === "index") {
|
||||
if(invert) {
|
||||
source(function(tiddler,title) {
|
||||
if(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {
|
||||
if(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {
|
||||
results.push(title);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
source(function(tiddler,title) {
|
||||
if(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {
|
||||
if(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {
|
||||
results.push(title);
|
||||
}
|
||||
});
|
||||
@@ -52,13 +52,13 @@ exports.has = function(source,operator,options) {
|
||||
else {
|
||||
if(invert) {
|
||||
source(function(tiddler,title) {
|
||||
if(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === "")) {
|
||||
if(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) {
|
||||
results.push(title);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
source(function(tiddler,title) {
|
||||
if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === "" || tiddler.fields[operator.operand].length === 0)) {
|
||||
if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) {
|
||||
results.push(title);
|
||||
}
|
||||
});
|
||||
|
23
core/modules/filters/slugify.js
Normal file
23
core/modules/filters/slugify.js
Normal file
@@ -0,0 +1,23 @@
|
||||
/*\
|
||||
title: $:/core/modules/filters/slugify.js
|
||||
type: application/javascript
|
||||
module-type: filteroperator
|
||||
|
||||
Filter operator for slugifying a tiddler title
|
||||
|
||||
\*/
|
||||
(function(){
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
|
||||
exports.slugify = function(source,operator,options) {
|
||||
var results = [];
|
||||
source(function(tiddler,title) {
|
||||
results.push(options.wiki.slugify(title));
|
||||
});
|
||||
return results;
|
||||
};
|
||||
|
||||
})();
|
@@ -18,6 +18,7 @@ exports.getInfoTiddlerFields = function() {
|
||||
// Basics
|
||||
infoTiddlerFields.push({title: "$:/info/browser", text: mapBoolean(!!$tw.browser)});
|
||||
infoTiddlerFields.push({title: "$:/info/node", text: mapBoolean(!!$tw.node)});
|
||||
infoTiddlerFields.push({title: "$:/info/startup-timestamp", text: $tw.utils.stringifyDate(new Date())});
|
||||
if($tw.browser) {
|
||||
// Document location
|
||||
var setLocationProperty = function(name,value) {
|
||||
|
@@ -31,7 +31,7 @@ BasicAuthenticator.prototype.init = function() {
|
||||
// Read the credentials data
|
||||
this.credentialsFilepath = this.server.get("credentials");
|
||||
if(this.credentialsFilepath) {
|
||||
var resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);
|
||||
var resolveCredentialsFilepath = path.resolve(this.server.boot.wikiPath,this.credentialsFilepath);
|
||||
if(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {
|
||||
var credentialsText = fs.readFileSync(resolveCredentialsFilepath,"utf8"),
|
||||
credentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);
|
||||
|
@@ -21,7 +21,7 @@ exports.handler = function(request,response,state) {
|
||||
fs = require("fs"),
|
||||
util = require("util"),
|
||||
suppliedFilename = decodeURIComponent(state.params[0]),
|
||||
filename = path.resolve($tw.boot.wikiPath,"files",suppliedFilename),
|
||||
filename = path.resolve(state.boot.wikiPath,"files",suppliedFilename),
|
||||
extension = path.extname(filename);
|
||||
fs.readFile(filename,function(err,content) {
|
||||
var status,content,type = "text/plain";
|
||||
|
@@ -20,8 +20,8 @@ exports.path = /^\/recipes\/default\/tiddlers.json$/;
|
||||
|
||||
exports.handler = function(request,response,state) {
|
||||
var filter = state.queryParameters.filter || DEFAULT_FILTER;
|
||||
if($tw.wiki.getTiddlerText("$:/config/Server/AllowAllExternalFilters") !== "yes") {
|
||||
if($tw.wiki.getTiddlerText("$:/config/Server/ExternalFilters/" + filter) !== "yes") {
|
||||
if(state.wiki.getTiddlerText("$:/config/Server/AllowAllExternalFilters") !== "yes") {
|
||||
if(state.wiki.getTiddlerText("$:/config/Server/ExternalFilters/" + filter) !== "yes") {
|
||||
console.log("Blocked attempt to GET /recipes/default/tiddlers.json with filter: " + filter);
|
||||
response.writeHead(403);
|
||||
response.end();
|
||||
|
@@ -31,6 +31,7 @@ function Server(options) {
|
||||
this.routes = options.routes || [];
|
||||
this.authenticators = options.authenticators || [];
|
||||
this.wiki = options.wiki;
|
||||
this.boot = options.boot || $tw.boot;
|
||||
this.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText("$:/SiteTitle") || "TiddlyWiki5");
|
||||
// Initialise the variables
|
||||
this.variables = $tw.utils.extend({},this.defaultVariables);
|
||||
@@ -69,8 +70,8 @@ function Server(options) {
|
||||
tlsCertFilepath = this.get("tls-cert");
|
||||
if(tlsCertFilepath && tlsKeyFilepath) {
|
||||
this.listenOptions = {
|
||||
key: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),"utf8"),
|
||||
cert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),"utf8")
|
||||
key: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsKeyFilepath),"utf8"),
|
||||
cert: fs.readFileSync(path.resolve(this.boot.wikiPath,tlsCertFilepath),"utf8")
|
||||
};
|
||||
this.protocol = "https";
|
||||
}
|
||||
@@ -112,15 +113,14 @@ Server.prototype.addAuthenticator = function(AuthenticatorClass) {
|
||||
};
|
||||
|
||||
Server.prototype.findMatchingRoute = function(request,state) {
|
||||
var pathprefix = this.get("path-prefix") || "";
|
||||
for(var t=0; t<this.routes.length; t++) {
|
||||
var potentialRoute = this.routes[t],
|
||||
pathRegExp = potentialRoute.path,
|
||||
pathname = state.urlInfo.pathname,
|
||||
match;
|
||||
if(pathprefix) {
|
||||
if(pathname.substr(0,pathprefix.length) === pathprefix) {
|
||||
pathname = pathname.substr(pathprefix.length) || "/";
|
||||
if(state.pathPrefix) {
|
||||
if(pathname.substr(0,state.pathPrefix.length) === state.pathPrefix) {
|
||||
pathname = pathname.substr(state.pathPrefix.length) || "/";
|
||||
match = potentialRoute.path.exec(pathname);
|
||||
} else {
|
||||
match = false;
|
||||
@@ -156,14 +156,17 @@ Server.prototype.isAuthorized = function(authorizationType,username) {
|
||||
return principals.indexOf("(anon)") !== -1 || (username && (principals.indexOf("(authenticated)") !== -1 || principals.indexOf(username) !== -1));
|
||||
}
|
||||
|
||||
Server.prototype.requestHandler = function(request,response) {
|
||||
Server.prototype.requestHandler = function(request,response,options) {
|
||||
options = options || {};
|
||||
// Compose the state object
|
||||
var self = this;
|
||||
var state = {};
|
||||
state.wiki = self.wiki;
|
||||
state.wiki = options.wiki || self.wiki;
|
||||
state.boot = options.boot || self.boot;
|
||||
state.server = self;
|
||||
state.urlInfo = url.parse(request.url);
|
||||
state.queryParameters = querystring.parse(state.urlInfo.query);
|
||||
state.pathPrefix = options.pathPrefix || this.get("path-prefix") || "";
|
||||
// Get the principals authorized to access this resource
|
||||
var authorizationType = this.methodMappings[request.method] || "readers";
|
||||
// Check for the CSRF header if this is a write
|
||||
@@ -248,7 +251,7 @@ Server.prototype.listen = function(port,host,prefix) {
|
||||
port = process.env[port] || 8080;
|
||||
}
|
||||
// Warn if required plugins are missing
|
||||
if(!$tw.wiki.getTiddler("$:/plugins/tiddlywiki/tiddlyweb") || !$tw.wiki.getTiddler("$:/plugins/tiddlywiki/filesystem")) {
|
||||
if(!this.wiki.getTiddler("$:/plugins/tiddlywiki/tiddlyweb") || !this.wiki.getTiddler("$:/plugins/tiddlywiki/filesystem")) {
|
||||
$tw.utils.warning("Warning: Plugins required for client-server operation (\"tiddlywiki/filesystem\" and \"tiddlywiki/tiddlyweb\") are missing from tiddlywiki.info file");
|
||||
}
|
||||
// Create the server
|
||||
|
@@ -36,11 +36,7 @@ function setFavicon() {
|
||||
var tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);
|
||||
if(tiddler) {
|
||||
var faviconLink = document.getElementById("faviconLink");
|
||||
if(tiddler.fields._canonical_uri) {
|
||||
faviconLink.setAttribute("href",tiddler.fields._canonical_uri);
|
||||
} else {
|
||||
faviconLink.setAttribute("href","data:" + tiddler.fields.type + ";base64," + tiddler.fields.text);
|
||||
}
|
||||
faviconLink.setAttribute("href",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -127,7 +127,7 @@ function Syncer(options) {
|
||||
});
|
||||
}
|
||||
// Listen out for lazyLoad events
|
||||
if(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== "yes") {
|
||||
if(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== "yes") {
|
||||
this.wiki.addEventListener("lazyLoad",function(title) {
|
||||
self.handleLazyLoadEvent(title);
|
||||
});
|
||||
@@ -204,7 +204,7 @@ Syncer.prototype.isDirty = function() {
|
||||
if(this.wiki.tiddlerExists(title)) {
|
||||
if(tiddlerInfo) {
|
||||
// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server
|
||||
if($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {
|
||||
if(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
@@ -526,7 +526,7 @@ Syncer.prototype.chooseNextTask = function() {
|
||||
tiddlerInfo = this.tiddlerInfo[title];
|
||||
if(tiddler) {
|
||||
// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server
|
||||
var hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,
|
||||
var hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount,
|
||||
isReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;
|
||||
if(hasChanged) {
|
||||
if(isReadyToSave) {
|
||||
|
@@ -41,7 +41,7 @@ exports.upgrade = function(wiki,titles,tiddlers) {
|
||||
// Check if we're dealing with a plugin
|
||||
if(incomingTiddler && incomingTiddler["plugin-type"]) {
|
||||
// Check whether the plugin contains JS modules
|
||||
var requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText("$:/language/ControlPanel/Plugins/PluginWillRequireReload") + " ") : "";
|
||||
var requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText("$:/language/ControlPanel/Plugins/PluginWillRequireReload") + " ") : "";
|
||||
messages[title] = requiresReload;
|
||||
if(incomingTiddler.version) {
|
||||
// Upgrade the incoming plugin if it is in the upgrade library
|
||||
|
@@ -39,7 +39,7 @@ DroppableWidget.prototype.render = function(parent,nextSibling) {
|
||||
}
|
||||
// Create element and assign classes
|
||||
var domNode = this.document.createElement(tag),
|
||||
classes = (this["class"] || "").split(" ");
|
||||
classes = (this.droppableClass || "").split(" ");
|
||||
classes.push("tc-droppable");
|
||||
domNode.className = classes.join(" ");
|
||||
// Add event handlers
|
||||
@@ -75,7 +75,9 @@ DroppableWidget.prototype.leaveDrag = function(event) {
|
||||
// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone
|
||||
if(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {
|
||||
this.currentlyEntered = [];
|
||||
$tw.utils.removeClass(this.domNodes[0],"tc-dragover");
|
||||
if(this.domNodes[0]) {
|
||||
$tw.utils.removeClass(this.domNodes[0],"tc-dragover");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -48,6 +48,7 @@ EditWidget.prototype.execute = function() {
|
||||
this.editPlaceholder = this.getAttribute("placeholder");
|
||||
this.editTabIndex = this.getAttribute("tabindex");
|
||||
this.editFocus = this.getAttribute("focus","");
|
||||
this.editCancelPopups = this.getAttribute("cancelPopups","");
|
||||
// Choose the appropriate edit widget
|
||||
this.editorType = this.getEditorType();
|
||||
// Make the child widgets
|
||||
@@ -60,7 +61,8 @@ EditWidget.prototype.execute = function() {
|
||||
"class": {type: "string", value: this.editClass},
|
||||
"placeholder": {type: "string", value: this.editPlaceholder},
|
||||
"tabindex": {type: "string", value: this.editTabIndex},
|
||||
"focus": {type: "string", value: this.editFocus}
|
||||
"focus": {type: "string", value: this.editFocus},
|
||||
"cancelPopups": {type: "string", value: this.editCancelPopups}
|
||||
},
|
||||
children: this.parseTreeNode.children
|
||||
}]);
|
||||
@@ -94,7 +96,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
||||
EditWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
// Refresh if an attribute has changed, or the type associated with the target tiddler has changed
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {
|
||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
} else {
|
||||
|
@@ -66,7 +66,8 @@ ScrollableWidget.prototype.handleScrollEvent = function(event) {
|
||||
Scroll an element into view
|
||||
*/
|
||||
ScrollableWidget.prototype.scrollIntoView = function(element) {
|
||||
var duration = $tw.utils.getAnimationDuration();
|
||||
var duration = $tw.utils.getAnimationDuration(),
|
||||
srcWindow = element ? element.ownerDocument.defaultView : window;
|
||||
this.cancelScroll();
|
||||
this.startTime = Date.now();
|
||||
var scrollPosition = {
|
||||
@@ -122,7 +123,7 @@ ScrollableWidget.prototype.scrollIntoView = function(element) {
|
||||
self.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;
|
||||
self.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;
|
||||
if(t < 1) {
|
||||
self.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);
|
||||
self.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);
|
||||
}
|
||||
};
|
||||
drawFrame();
|
||||
|
@@ -421,6 +421,7 @@ Widget.prototype.addEventListener = function(type,handler) {
|
||||
Dispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget
|
||||
*/
|
||||
Widget.prototype.dispatchEvent = function(event) {
|
||||
event.widget = event.widget || this;
|
||||
// Dispatch the event if this widget handles it
|
||||
var listener = this.eventListeners[event.type];
|
||||
if(listener) {
|
||||
|
@@ -1052,7 +1052,7 @@ exports.makeTranscludeWidget = function(title,options) {
|
||||
if(options.children) {
|
||||
parseTreeTransclude.children = options.children;
|
||||
}
|
||||
return $tw.wiki.makeWidget(parseTreeDiv,options);
|
||||
return this.makeWidget(parseTreeDiv,options);
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1503,5 +1503,30 @@ exports.doesPluginInfoRequireReload = function(pluginInfo) {
|
||||
}
|
||||
};
|
||||
|
||||
exports.slugify = function(title,options) {
|
||||
var tiddler = this.getTiddler(title),
|
||||
slug;
|
||||
if(tiddler && tiddler.fields.slug) {
|
||||
slug = tiddler.fields.slug;
|
||||
} else {
|
||||
slug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII
|
||||
.replace(/\s+/g,"-") // Replace spaces with -
|
||||
.replace(/[^\w\-\.]+/g,"") // Remove all non-word chars except dash and dot
|
||||
.replace(/\-\-+/g,"-") // Replace multiple - with single -
|
||||
.replace(/^-+/,"") // Trim - from start of text
|
||||
.replace(/-+$/,""); // Trim - from end of text
|
||||
}
|
||||
// If the resulting slug is blank (eg because the title is just punctuation characters)
|
||||
if(!slug) {
|
||||
// ...then just use the character codes of the title
|
||||
var result = [];
|
||||
$tw.utils.each(title.split(""),function(char) {
|
||||
result.push(char.charCodeAt(0).toString());
|
||||
});
|
||||
slug = result.join("-");
|
||||
}
|
||||
return slug;
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
|
@@ -7,6 +7,7 @@ title: $:/core/ui/EditTemplate/body/editor
|
||||
placeholder={{$:/language/EditTemplate/Body/Placeholder}}
|
||||
tabindex={{$:/config/EditTabIndex}}
|
||||
focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}
|
||||
cancelPopups="yes"
|
||||
|
||||
><$set
|
||||
|
||||
|
@@ -13,7 +13,7 @@ $:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$
|
||||
|
||||
<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>
|
||||
|
||||
<$edit-text field="_canonical_uri" class="tc-edit-fields" tabindex={{$:/config/EditTabIndex}}></$edit-text>
|
||||
<$edit-text field="_canonical_uri" class="tc-edit-fields" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"></$edit-text>
|
||||
|
||||
</div>
|
||||
|
||||
|
@@ -51,7 +51,7 @@ $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
|
||||
<td class="tc-edit-field-name">
|
||||
<$text text=<<currentField>>/>:</td>
|
||||
<td class="tc-edit-field-value">
|
||||
<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>
|
||||
<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/>
|
||||
</td>
|
||||
<td class="tc-edit-field-remove">
|
||||
<$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>
|
||||
@@ -71,9 +71,9 @@ $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
|
||||
<em class="tc-edit">
|
||||
<<lingo Fields/Add/Prompt>>
|
||||
</em>
|
||||
<span class="tc-edit-field-add-name">
|
||||
<$edit-text tiddler=<<newFieldNameTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>
|
||||
</span>
|
||||
<div class="tc-edit-field-add-name-wrapper">
|
||||
<$edit-text tiddler=<<newFieldNameTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups="yes"/>
|
||||
|
||||
<$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>
|
||||
<$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default="">
|
||||
<div class="tc-block-dropdown tc-edit-type-dropdown">
|
||||
@@ -101,10 +101,11 @@ $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
|
||||
</$set>
|
||||
</div>
|
||||
</$reveal>
|
||||
</div>
|
||||
<span class="tc-edit-field-add-value">
|
||||
<$set name="currentTiddlerCSSescaped" value={{{ [<currentTiddler>escapecss[]] }}}>
|
||||
<$keyboard key="((add-field))" actions=<<new-field-actions>>>
|
||||
<$edit-text tiddler=<<newFieldValueTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor" tabindex={{$:/config/EditTabIndex}}/>
|
||||
<$edit-text tiddler=<<newFieldValueTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/>
|
||||
</$keyboard>
|
||||
</$set>
|
||||
</span>
|
||||
|
@@ -30,8 +30,8 @@ color:$(foregroundColor)$;
|
||||
<$list filter="[all[current]tags[]sort[title]]" storyview="pop">
|
||||
<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>
|
||||
</$list>
|
||||
<$set name="tabIndex" value={{$:/config/EditTabIndex}}>
|
||||
<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups="yes">
|
||||
<$macrocall $name="tag-picker"/>
|
||||
</$set>
|
||||
</$vars>
|
||||
</$fieldmangler>
|
||||
</div>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
title: $:/core/ui/EditTemplate/title
|
||||
tags: $:/tags/EditTemplate
|
||||
|
||||
<$edit-text field="draft.title" class="tc-titlebar tc-edit-texteditor" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>
|
||||
<$edit-text field="draft.title" class="tc-titlebar tc-edit-texteditor" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/>
|
||||
|
||||
<$vars pattern="""[\|\[\]{}]""" bad-chars="""`| [ ] { }`""">
|
||||
|
||||
|
@@ -3,8 +3,10 @@ tags: $:/tags/EditTemplate
|
||||
|
||||
\define lingo-base() $:/language/EditTemplate/
|
||||
\whitespace trim
|
||||
<em class="tc-edit"><<lingo Type/Prompt>></em>
|
||||
<div class="tc-type-selector-wrapper">
|
||||
<div class="tc-type-selector"><$fieldmangler>
|
||||
<em class="tc-edit"><<lingo Type/Prompt>></em> <$edit-text field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>
|
||||
<$edit-text field="type" tag="input" default="" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify "$:/state/popup/type-dropdown">> class="tc-edit-typeeditor tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups="yes"/> <$button popup=<<qualify "$:/state/popup/type-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message="tm-remove-field" param="type" class="tc-btn-invisible tc-btn-icon" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>
|
||||
</$fieldmangler></div>
|
||||
|
||||
<div class="tc-block-dropdown-wrapper">
|
||||
@@ -24,3 +26,4 @@ tags: $:/tags/EditTemplate
|
||||
</$reveal>
|
||||
</$set>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -41,13 +41,13 @@ $(currentTiddler)$!!popup-$(payloadTiddler)$
|
||||
<$checkbox field=<<selectionField>> checked="checked" unchecked="unchecked" default="checked"/>
|
||||
</td>
|
||||
<td>
|
||||
<$reveal type="nomatch" stateTitle=<<previewPopupState>> text="yes" tag="div">
|
||||
<$button class="tc-btn-invisible tc-btn-dropdown" setTitle=<<previewPopupState>> setTo="yes">
|
||||
<$reveal type="nomatch" state=<<previewPopupState>> text="yes" tag="div">
|
||||
<$button class="tc-btn-invisible tc-btn-dropdown" set=<<previewPopupState>> setTo="yes">
|
||||
{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
<$reveal type="match" stateTitle=<<previewPopupState>> text="yes" tag="div">
|
||||
<$button class="tc-btn-invisible tc-btn-dropdown" setTitle=<<previewPopupState>> setTo="no">
|
||||
<$reveal type="match" state=<<previewPopupState>> text="yes" tag="div">
|
||||
<$button class="tc-btn-invisible tc-btn-dropdown" set=<<previewPopupState>> setTo="no">
|
||||
{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>
|
||||
</$button>
|
||||
</$reveal>
|
||||
@@ -58,7 +58,7 @@ $(currentTiddler)$!!popup-$(payloadTiddler)$
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<$reveal type="match" text="yes" stateTitle=<<previewPopupState>> tag="div">
|
||||
<$reveal type="match" text="yes" state=<<previewPopupState>> tag="div">
|
||||
<$list filter="[{$:/state/importpreviewtype}has[text]]" variable="listItem" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>
|
||||
<$transclude tiddler={{$:/state/importpreviewtype}}/>
|
||||
</$list>
|
||||
|
@@ -11,11 +11,6 @@ caption: {{$:/language/Manager/Item/Tags}}
|
||||
|
||||
\define tag-picker-actions()
|
||||
<<tag-checkbox-actions>>
|
||||
<$action-listops
|
||||
$tiddler=<<currentTiddler>>
|
||||
$field="tags"
|
||||
$subfilter="[<tag>] [all[current]tags[]]"
|
||||
/>
|
||||
\end
|
||||
|
||||
<p>
|
||||
@@ -28,5 +23,7 @@ caption: {{$:/language/Manager/Item/Tags}}
|
||||
</$list>
|
||||
</p>
|
||||
<p>
|
||||
<$fieldmangler>
|
||||
<$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/>
|
||||
</$fieldmangler>
|
||||
</p>
|
||||
|
@@ -6,7 +6,7 @@ tags: $:/tags/SideBarSegment
|
||||
|
||||
<$set name="searchTiddler" value="$:/temp/search">
|
||||
<div class="tc-search">
|
||||
<$edit-text tiddler="$:/temp/search" type="search" tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">> class="tc-popup-handle"/>
|
||||
<$edit-text tiddler="$:/temp/search" type="search" tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">> class="tc-popup-handle" cancelPopups="yes"/>
|
||||
<$reveal state="$:/temp/search" type="nomatch" text="">
|
||||
<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible">
|
||||
<$action-setfield $tiddler="$:/temp/advancedsearch" text={{$:/temp/search}}/>
|
||||
|
@@ -13,6 +13,7 @@ heading-5: {{$:/language/Buttons/Heading5/Hint}}
|
||||
heading-6: {{$:/language/Buttons/Heading6/Hint}}
|
||||
italic: {{$:/language/Buttons/Italic/Hint}}
|
||||
link: {{$:/language/Buttons/Link/Hint}}
|
||||
linkify: {{$:/language/Buttons/Linkify/Hint}}
|
||||
list-bullet: {{$:/language/Buttons/ListBullet/Hint}}
|
||||
list-number: {{$:/language/Buttons/ListNumber/Hint}}
|
||||
mono-block: {{$:/language/Buttons/MonoBlock/Hint}}
|
||||
@@ -30,4 +31,5 @@ strikethrough: {{$:/language/Buttons/Strikethrough/Hint}}
|
||||
subscript: {{$:/language/Buttons/Subscript/Hint}}
|
||||
superscript: {{$:/language/Buttons/Superscript/Hint}}
|
||||
toggle-sidebar: {{$:/language/Buttons/ToggleSidebar/Hint}}
|
||||
transcludify: {{$:/language/Buttons/Transcludify/Hint}}
|
||||
underline: {{$:/language/Buttons/Underline/Hint}}
|
||||
|
@@ -1,30 +1,35 @@
|
||||
title: $:/core/macros/tag-picker
|
||||
tags: $:/tags/Macro
|
||||
|
||||
\define add-tag-actions()
|
||||
<$action-sendmessage $message="tm-add-tag" $param={{{ [<newTagNameTiddler>get[text]] }}}/>
|
||||
\define add-tag-actions(actions)
|
||||
<$set name="tag" value={{{ [<newTagNameTiddler>get[text]] }}}>
|
||||
<$action-sendmessage $message="tm-add-tag" $param=<<tag>>/>
|
||||
<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>
|
||||
$actions$
|
||||
</$set>
|
||||
\end
|
||||
|
||||
\define tag-button()
|
||||
\define tag-button(actions)
|
||||
<$button class="tc-btn-invisible" tag="a" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>
|
||||
<$action-sendmessage $message="tm-add-tag" $param=<<tag>>/>
|
||||
<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>
|
||||
$actions$
|
||||
<$macrocall $name="tag-pill" tag=<<tag>>/>
|
||||
</$button>
|
||||
\end
|
||||
|
||||
\define tag-picker-inner()
|
||||
\define tag-picker-inner(actions)
|
||||
\whitespace trim
|
||||
<div class="tc-edit-add-tag">
|
||||
<div>
|
||||
<span class="tc-add-tag-name">
|
||||
<$keyboard key="ENTER" actions=<<add-tag-actions>>>
|
||||
<$edit-text tiddler=<<newTagNameTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-edit-texteditor tc-popup-handle" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>
|
||||
<$keyboard key="ENTER" actions="""<$macrocall $name="add-tag-actions" actions=<<__actions__>>/>""">
|
||||
<$edit-text tiddler=<<newTagNameTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-edit-texteditor tc-popup-handle" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} cancelPopups="yes"/>
|
||||
</$keyboard>
|
||||
</span> <$button popup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class="tc-add-tag-button">
|
||||
</span> <$button popup=<<qualify "$:/state/popup/tags-auto-complete">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class="tc-add-tag-button">
|
||||
<$set name="tag" value={{{ [<newTagNameTiddler>get[text]] }}}>
|
||||
<$button set="$:/temp/NewTagName" setTo="" class="">
|
||||
<<add-tag-actions>>
|
||||
<$macrocall $name="add-tag-actions" actions=<<__actions__>>/>
|
||||
<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>
|
||||
{{$:/language/EditTemplate/Tags/Add/Button}}
|
||||
</$button>
|
||||
@@ -37,23 +42,24 @@ tags: $:/tags/Macro
|
||||
<$set name="newTagName" value={{{ [<newTagNameTiddler>get[text]] }}}>
|
||||
<$list filter="[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem">
|
||||
<$list filter="[tags[]!is[system]search:title<newTagName>sort[]]" variable="tag">
|
||||
<<tag-button>>
|
||||
<$macrocall $name="tag-button" actions=<<__actions__>>/>
|
||||
</$list></$list>
|
||||
<hr>
|
||||
<$list filter="[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem">
|
||||
<$list filter="[tags[]is[system]search:title<newTagName>sort[]]" variable="tag">
|
||||
<<tag-button>>
|
||||
<$macrocall $name="tag-button" actions=<<__actions__>>/>
|
||||
</$list></$list>
|
||||
</$set>
|
||||
</div>
|
||||
</$reveal>
|
||||
</div>
|
||||
</div>
|
||||
\end
|
||||
\define tag-picker()
|
||||
\define tag-picker(actions)
|
||||
\whitespace trim
|
||||
<$list filter="[<newTagNameTiddler>match[]]" emptyMessage=<<tag-picker-inner>>>
|
||||
<$list filter="[<newTagNameTiddler>match[]]" emptyMessage="""<$macrocall $name="tag-picker-inner" actions=<<__actions__>>/>""">
|
||||
<$set name="newTagNameTiddler" value=<<qualify "$:/temp/NewTagName">>>
|
||||
<<tag-picker-inner>>
|
||||
<$macrocall $name="tag-picker-inner" actions=<<__actions__>>/>
|
||||
</$set>
|
||||
</$list>
|
||||
\end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
caption: 5.1.23
|
||||
created: 20200422173236649
|
||||
modified: 20200422173236649
|
||||
created: 2020061111252696
|
||||
modified: 2020061111252696
|
||||
tags: ReleaseNotes
|
||||
title: Release 5.1.23
|
||||
type: text/vnd.tiddlywiki
|
||||
@@ -12,14 +12,19 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
! Translation Improvements
|
||||
|
||||
*
|
||||
* Catalan
|
||||
|
||||
! Plugin Improvements
|
||||
|
||||
* JSZip Plugin
|
||||
** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/6a0ff7db1807f45b73061ced82f5a85f1a529bbf]] ability to dynamically create Zip files, giving TiddlyWiki the ability to build static sites within the browser
|
||||
* Freelinks Plugin
|
||||
** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f354a972e0217e034d1f59d31577c1fd6b186f3]] (and [[here|https://gitxhub.com/Jermolene/TiddlyWiki5/commit/c9692d7a508cfdb0446e67061201961dca64d8dd]]) support for ignoring case when matching titles
|
||||
** [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/05e6c1bf62cd51df6aa025d0ad07f7959cde6fa0]] bug with autolinking within HTML `<a>` elements
|
||||
* Twitter Plugin
|
||||
** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/3a20fb1e3a41a032574d227a8c770a11ae0a5d58]] warning if wiki needs to be saved and reloaded
|
||||
* [[Dynaview Plugin]]
|
||||
** [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/b0e40e86413c1769c8be8a84652b66ef6ac8b997]] examples
|
||||
|
||||
! Performance Improvements
|
||||
|
||||
@@ -30,27 +35,44 @@ type: text/vnd.tiddlywiki
|
||||
* [[Updated|https://github.com/Jermolene/TiddlyWiki5/pull/4590]] Vanilla theme to use palette colours for the [[browser selection outline|https://developer.mozilla.org/en-US/docs/Web/CSS/::selection]]
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1546a4a1895b93a47b79c9d37b94be039604443a]] warning message about using the online plugin library with the client-server configuration
|
||||
* [[Improved|https://github.com/Jermolene/TiddlyWiki5/pull/4585]] Gruvbox palette readability of toolbar buttons
|
||||
* [[Changed|https://github.com/Jermolene/TiddlyWiki5/commit/9cd5415dfe54b47819920aa3cf6ac2d5e3a9188e]] favicon for the prerelease edition
|
||||
|
||||
|
||||
! Hackability Improvements
|
||||
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/4966f6ab625c8ce2c9f0812a726ba928d68ea00b]] new [[slugify Operator]] and [[duplicateslugs Operator]] for generating human readable filenames/URLs
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/619c0752bd3c6e71d1fcdb74daa03cfe8257afe4]] new [[sortsub Operator]] for sorting by a user defined subfilter
|
||||
* [[Updated|https://github.com/Jermolene/TiddlyWiki5/commit/e71a27ac2d71f2e48f9e4e9156b59bb3ecc2a105]] LinkWidget to work within SVG elements
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/c86a621d5d205e1ae0ce999b90ebe09addc45a9f]] ''accept'' attribute to the BrowseWidget
|
||||
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/77a929faa3a33768e52cf2a34ecbef9c554a6a7b]] ActionPopupWidget to allow popups to be dismissed
|
||||
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/2a8f7a9c503c9a6e4ea1bcd116be31ab6e90cf52]] [[favicon mechanism|Setting a favicon]] to support ''_canonical_uri'' images
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/48dfadd85b8ebd788b44ed2c46108720742546df]] support for recording the startup timestamp in $:/info/startup-timestamp (see [[InfoMechanism]])
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/bf6735420d2f8191f658c556910e7d73c681d5fe]] support for SVG favicons
|
||||
|
||||
! Bug Fixes
|
||||
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4632]] hover effect for search dropdown items
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4584]] restored missing parameter to `saveTiddler()` method sync adaptors
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/678e25f510786fbc38f505f8b594f57f39e33a04]] MakeLibraryCommand to skip non-directories
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4601]] erroneous use of `$tw.wiki`
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4647]] ''class'' attribute of DroppableWidget
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/6570561d4ec31d9e64c3021bb69c20daec8c9eac]] [[has Operator]] when used with the ''tags'' field
|
||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4634]] high CPU usage with animated syncing icon introduced in v5.1.22
|
||||
|
||||
! Contributors
|
||||
|
||||
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
|
||||
|
||||
* [[@Arlen22|https://github.com/Arlen22]]
|
||||
* [[@bimlas|https://github.com/bimlas]]
|
||||
* [[@BramChen|https://github.com/BramChen]]
|
||||
* [[@BurningTreeC|https://github.com/BurningTreeC]]
|
||||
* [[@danielo515|https://github.com/danielo515]]
|
||||
* [[@flibbles|https://github.com/flibbles]]
|
||||
* [[@ibnishak|https://github.com/ibnishak]]
|
||||
* [[@idotobi|https://github.com/idotobi]]
|
||||
* [[@Marxsal|https://github.com/Marxsal]]
|
||||
* [[@mocsa|https://github.com/mocsa]]
|
||||
* [[@NicolasPeton|https://github.com/NicolasPeton]]
|
||||
* [[@passuf|https://github.com/passuf]]
|
||||
* [[@pmario|https://github.com/pmario]]
|
||||
|
BIN
editions/prerelease/tiddlers/system/favicon.ico
Normal file
BIN
editions/prerelease/tiddlers/system/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 118 KiB |
2
editions/prerelease/tiddlers/system/favicon.ico.meta
Normal file
2
editions/prerelease/tiddlers/system/favicon.ico.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
title: $:/favicon.ico
|
||||
type: image/x-icon
|
@@ -15,7 +15,8 @@
|
||||
"tiddlywiki/dynannotate",
|
||||
"tiddlywiki/codemirror",
|
||||
"tiddlywiki/comments",
|
||||
"tiddlywiki/menubar"
|
||||
"tiddlywiki/menubar",
|
||||
"tiddlywiki/jszip"
|
||||
],
|
||||
"themes": [
|
||||
"tiddlywiki/vanilla",
|
||||
|
@@ -18,4 +18,4 @@
|
||||
"--rendertiddlers","[!is[system]]","$:/core/templates/static.tiddler.html","static","text/plain",
|
||||
"--rendertiddler","$:/core/templates/static.template.css","static/static.css","text/plain"]
|
||||
}
|
||||
}
|
||||
}
|
@@ -11,4 +11,4 @@
|
||||
"share": [
|
||||
"--rendertiddler","$:/core/save/all","share.html","text/plain"]
|
||||
}
|
||||
}
|
||||
}
|
@@ -94,6 +94,7 @@ function setupWiki(wikiOptions) {
|
||||
tags: ["one"],
|
||||
cost: "123",
|
||||
value: "120",
|
||||
slug: "tiddler-one",
|
||||
authors: "Joe Bloggs",
|
||||
modifier: "JoeBloggs",
|
||||
modified: "201304152222"});
|
||||
@@ -103,6 +104,7 @@ function setupWiki(wikiOptions) {
|
||||
tags: ["two"],
|
||||
cost: "42",
|
||||
value: "190",
|
||||
slug: "tiddler-two",
|
||||
authors: "[[John Doe]]",
|
||||
modifier: "John",
|
||||
modified: "201304152211"});
|
||||
@@ -315,6 +317,8 @@ function runTests(wiki) {
|
||||
it("should handle the has operator", function() {
|
||||
expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
||||
expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
||||
expect(wiki.filterTiddlers("[has[tags]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne");
|
||||
expect(wiki.filterTiddlers("[!has[tags]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one");
|
||||
});
|
||||
|
||||
it("should handle the has:field operator", function() {
|
||||
@@ -669,6 +673,14 @@ function runTests(wiki) {
|
||||
expect(wiki.filterTiddlers("b a b c +[sortby[b a c b]]").join(",")).toBe("b,a,c");
|
||||
});
|
||||
|
||||
it("should handle the slugify operator", function() {
|
||||
expect(wiki.filterTiddlers("[[Joe Bloggs]slugify[]]").join(",")).toBe("joe-bloggs");
|
||||
expect(wiki.filterTiddlers("[[Joe Bloggs2]slugify[]]").join(",")).toBe("joe-bloggs2");
|
||||
expect(wiki.filterTiddlers("[[@£$%^&*((]slugify[]]").join(",")).toBe("64-163-36-37-94-38-42-40-40");
|
||||
expect(wiki.filterTiddlers("One one ONE O!N!E +[slugify[]]").join(",")).toBe("one,one,one,one");
|
||||
expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo +[slugify[]]").join(",")).toBe("tiddler-one,tiddler-two");
|
||||
});
|
||||
|
||||
it("should handle the sortsub operator", function() {
|
||||
var widget = require("$:/core/modules/widgets/widget.js");
|
||||
var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] },
|
||||
|
@@ -1,5 +0,0 @@
|
||||
created: 20191004112211823
|
||||
list: [[WidgetMessage: tm-unload-plugin-library]] [[WidgetMessage: tm-load-plugin-library]] [[WidgetMessage: tm-load-plugin-from-library]] HelloThere GettingStarted Community
|
||||
modified: 20191004113621710
|
||||
title: $:/StoryList
|
||||
type: text/vnd.tiddlywiki
|
@@ -7,5 +7,5 @@ type: text/vnd.tiddlywiki
|
||||
There are several resources for developers to learn more about TiddlyWiki and to discuss and contribute to its development.
|
||||
|
||||
* [[tiddlywiki.com/dev|https://tiddlywiki.com/dev]] is the official developer documentation
|
||||
* [[TiddlyWikiDev group|http://groups.google.com/group/TiddlyWikiDev]] for discussions about TiddlyWiki development
|
||||
* [[TiddlyWikiDev group|https://groups.google.com/group/TiddlyWikiDev]] for discussions about TiddlyWiki development
|
||||
* https://github.com/Jermolene/TiddlyWiki5 for the source code and development activity
|
||||
|
@@ -8,8 +8,8 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.
|
||||
|
||||
* The main ~TiddlyWiki group: http://groups.google.com/group/TiddlyWiki
|
||||
*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com.
|
||||
* The main ~TiddlyWiki group: https://groups.google.com/group/TiddlyWiki
|
||||
*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com.
|
||||
** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywiki@googlegroups.com/]]
|
||||
* Watch recordings of our regular [[TiddlyWiki Hangouts]]
|
||||
* Follow [[@TiddlyWiki on Twitter|http://twitter.com/TiddlyWiki]] for the latest news
|
||||
@@ -19,8 +19,8 @@ The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWik
|
||||
|
||||
! Developers
|
||||
|
||||
* The TiddlyWikiDev group for developers: http://groups.google.com/group/TiddlyWikiDev
|
||||
*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com.
|
||||
* The TiddlyWikiDev group for developers: https://groups.google.com/group/TiddlyWikiDev
|
||||
*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywikidev+subscribe@googlegroups.com.
|
||||
** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywikidev@googlegroups.com/]]
|
||||
* Follow [[@TiddlyWiki on Twitter|http://twitter.com/#!/TiddlyWiki]] for the latest news
|
||||
* Get involved in the [[development on GitHub|https://github.com/Jermolene/TiddlyWiki5]]
|
||||
@@ -30,4 +30,4 @@ New releases of TiddlyWiki, TiddlyDesktop and TiddlyFox are announced via the di
|
||||
|
||||
! Documentation
|
||||
|
||||
There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: http://groups.google.com/group/tiddlywikidocs
|
||||
There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: https://groups.google.com/group/tiddlywikidocs
|
||||
|
@@ -5,7 +5,7 @@ title: "PETTIL - Forth for the Commodore PET" by Charlie Hitselberger
|
||||
type: text/vnd.tiddlywiki
|
||||
url: http://chitselb.com/files/tiddlypettil.html
|
||||
|
||||
A fast Forth interpreter for the [[Commodore PET|http://en.wikipedia.org/wiki/Commodore_PET]], written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil.
|
||||
A fast Forth interpreter for the [[Commodore PET|https://en.wikipedia.org/wiki/Commodore_PET]], written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil.
|
||||
|
||||
{{!!url}}
|
||||
|
||||
|
@@ -3,7 +3,7 @@ modified: 20180309164105386
|
||||
tags: Resources
|
||||
title: Widdly by Opennota
|
||||
type: text/vnd.tiddlywiki
|
||||
url: https://github.com/opennota/widdly
|
||||
url: https://gitlab.com/opennota/widdly
|
||||
|
||||
A cross platform server application that can save tiddlers to a local database
|
||||
|
||||
|
@@ -3,7 +3,7 @@ modified: 20161224181607230
|
||||
tags: Resources
|
||||
title: "Lucky Sushi" online shop by sini-Kit
|
||||
type: text/vnd.tiddlywiki
|
||||
url: http://luckysushi.ru/habarovsk/heeg35.html#index
|
||||
url: http://luckysushi.ru/habarovsk/heeg.html#index
|
||||
|
||||
A complete online shop made in ~TiddlyWiki!
|
||||
|
||||
|
@@ -1,16 +1,30 @@
|
||||
caption: Timimi
|
||||
created: 20180830194141190
|
||||
delivery: Browser Extension & Executable
|
||||
description: Browser extension & executable for desktops
|
||||
delivery: Browser Extension & Native host
|
||||
description: Browser extension & native host for desktops
|
||||
method: save
|
||||
modified: 20181012165153986
|
||||
tags: Windows Linux Chrome Firefox Saving Resources plugins
|
||||
title: "Timimi" Extension and executable by Riz
|
||||
modified: 20200501092235061
|
||||
tags: Windows Linux Chrome Firefox Saving Resources plugins Mac Opera
|
||||
title: Timimi: WebExtension and Native Host by Riz
|
||||
type: text/vnd.tiddlywiki
|
||||
url: https://github.com/ibnishak/Timimi
|
||||
url: https://ibnishak.github.io/Timimi/
|
||||
|
||||
`Timimi` is a Web Extension and executable for Firefox, Chrome and Chromium that allows it to save standalone ~TiddlyWiki files.
|
||||
Timimi is a web-extension accompanied by a native host that allows you to save and backup your standalone HTML tiddlywiki files ''anywhere in your hard-drive''. Once installed, you can save the tiddlywiki files without any extra steps, like the original Tiddlyfox addon.
|
||||
|
||||
{{!!url}}
|
||||
|
||||
This is an addon using native messaging, essentially handing over the contents to a webextension host (executable) which does the actual saving. Once installed, you can save the standalone TW from anywhere in your hard drive without any more interactions, like the original Tiddlyfox addon.
|
||||
As of version 2.1, Timimi supports the following browsers
|
||||
|
||||
* Chrome/Chromium
|
||||
* Firefox
|
||||
* Opera
|
||||
* Microsoft Edge (Chromium)
|
||||
|
||||
It is also reported to work seamlessly in chrome based browsers like Brave and Vivaldi.
|
||||
|
||||
Timimi also provides users with 4 backup strategies, viz:
|
||||
|
||||
* Create a backup Every n^^th^^ save
|
||||
* Create a backup every n^^th^^ minute
|
||||
* Customised Tower of Hanoi
|
||||
* First in First Out
|
@@ -18,7 +18,7 @@ Values of date fields are 17-character strings:
|
||||
* 2 digits for the second
|
||||
* 3 digits for the millisecond
|
||||
|
||||
To avoid problems arising from differences of time zone, TiddlyWiki always uses [[UTC|http://en.wikipedia.org/wiki/Coordinated_Universal_Time]].
|
||||
To avoid problems arising from differences of time zone, TiddlyWiki always uses [[UTC|https://en.wikipedia.org/wiki/Coordinated_Universal_Time]].
|
||||
|
||||
As an example, the <<.field created>> field of this tiddler has the value <<.value """<$view field="created"/>""">>.
|
||||
|
||||
|
@@ -3,7 +3,7 @@ modified: 20141130195444237
|
||||
tags: Concepts
|
||||
title: Transclusion
|
||||
|
||||
[[Transclusion|http://en.wikipedia.org/wiki/Transclusion]] is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B".
|
||||
[[Transclusion|https://en.wikipedia.org/wiki/Transclusion]] is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B".
|
||||
|
||||
Copying and pasting content creates multiple copies of the same content in several different places. With transclusion, there can be a single copy and a special instruction in "B" which indicates the point at which content should be inserted from tiddler "A".
|
||||
|
||||
|
@@ -4,4 +4,4 @@ tags: Definitions
|
||||
title: Base64
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex Base64 "http://en.wikipedia.org/wiki/Base64">> is a way of representing binary data, such an image, as a string of text.
|
||||
<<.dlink-ex Base64 "https://en.wikipedia.org/wiki/Base64">> is a way of representing binary data, such an image, as a string of text.
|
||||
|
@@ -4,4 +4,4 @@ tags: Definitions
|
||||
title: Cascading Style Sheets
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex CSS "http://en.wikipedia.org/wiki/Cascading_Style_Sheets">> is a standard plain-text format used for defining the presentational style of the various elements on a web page.
|
||||
<<.dlink-ex CSS "https://en.wikipedia.org/wiki/Cascading_Style_Sheets">> is a standard plain-text format used for defining the presentational style of the various elements on a web page.
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: Comma-Separated Values
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex CSV "http://en.wikipedia.org/wiki/Comma-separated_values">> is a standard plain-text format for storing a table of data.
|
||||
<<.dlink-ex CSV "https://en.wikipedia.org/wiki/Comma-separated_values">> is a standard plain-text format for storing a table of data.
|
||||
|
||||
Each row of the table is called a <<.def record>> and occupies one line.
|
||||
|
||||
|
@@ -4,6 +4,6 @@ tags: Definitions
|
||||
title: Data URI
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
A <<.dlink-ex "data URI" "http://en.wikipedia.org/wiki/Data_URI_scheme">> is a way of storing data (such as an image) in a way that is compatible with the addresses used by web pages and [[stylesheets|Cascading Style Sheets]] to access external resources.
|
||||
A <<.dlink-ex "data URI" "https://en.wikipedia.org/wiki/Data_URI_scheme">> is a way of storing data (such as an image) in a way that is compatible with the addresses used by web pages and [[stylesheets|Cascading Style Sheets]] to access external resources.
|
||||
|
||||
The <<.mlink datauri>> macro can be used to generate data URIs within ~TiddlyWiki.
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: Document Object Model
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
The <<.dlink-ex DOM "http://en.wikipedia.org/wiki/Document_Object_Model">> of a web page is a tree-shaped model of its content, maintained internally by the web browser as the user interacts with that content. Each point in the tree is called a <<.def node>>.
|
||||
The <<.dlink-ex DOM "https://en.wikipedia.org/wiki/Document_Object_Model">> of a web page is a tree-shaped model of its content, maintained internally by the web browser as the user interacts with that content. Each point in the tree is called a <<.def node>>.
|
||||
|
||||
When ~TiddlyWiki is running in a web browser, its [[widgets|Widgets]] are rendered into DOM nodes for display.
|
||||
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: HyperText Markup Language
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex HTML "http://en.wikipedia.org/wiki/HTML">> is a standard plain-text format used for defining the content of a web page.
|
||||
<<.dlink-ex HTML "https://en.wikipedia.org/wiki/HTML">> is a standard plain-text format used for defining the content of a web page.
|
||||
|
||||
It consists of a tree of elements expressed using a system of special <<.def tags>> enclosed in angle brackets.
|
||||
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: JavaScript Object Notation
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex JSON "http://en.wikipedia.org/wiki/JSON">> is a standard plain-text format used for modelling hierarchical structures of objects that contain named fields.
|
||||
<<.dlink-ex JSON "https://en.wikipedia.org/wiki/JSON">> is a standard plain-text format used for modelling hierarchical structures of objects that contain named fields.
|
||||
|
||||
DataTiddlers can have JSON content.
|
||||
|
||||
|
@@ -3,5 +3,5 @@ modified: 201308251307
|
||||
tags: Definitions
|
||||
title: OpenSource
|
||||
|
||||
OpenSource is [[defined by Wikipedia|http://en.wikipedia.org/wiki/Open_source]] as //a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details//.
|
||||
OpenSource is [[defined by Wikipedia|https://en.wikipedia.org/wiki/Open_source]] as //a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details//.
|
||||
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: Percent Encoding
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.dlink-ex "Percent encoding" "http://en.wikipedia.org/wiki/Percent-encoding">> is a notation that allows otherwise invalid characters to be included in a [[URI]].
|
||||
<<.dlink-ex "Percent encoding" "https://en.wikipedia.org/wiki/Percent-encoding">> is a notation that allows otherwise invalid characters to be included in a [[URI]].
|
||||
|
||||
Such characters are represented as a percent sign `%` followed by two additional characters.
|
||||
|
||||
|
@@ -4,7 +4,7 @@ tags: Definitions
|
||||
title: Quine
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
Wikipedia [[defines a Quine|http://en.wikipedia.org/wiki/Quine_(computing)]] as //a computer program which takes no input and produces a copy of its own source code as its only output//.
|
||||
Wikipedia [[defines a Quine|https://en.wikipedia.org/wiki/Quine_(computing)]] as //a computer program which takes no input and produces a copy of its own source code as its only output//.
|
||||
|
||||
TiddlyWiki is an unusual example of a practical quine: it is this ability to produce a copy of its own source code that lies at the heart of TiddlyWiki's ability to independently save changes to itself.
|
||||
|
||||
|
@@ -4,4 +4,4 @@ tags: Definitions
|
||||
title: URI
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
A <<.dlink-ex "URI" "http://en.wikipedia.org/wiki/Uniform_resource_identifier">> (also often known as a <<.def URL>>) is a string of characters used to specify the location of a resource such as a web page.
|
||||
A <<.dlink-ex "URI" "https://en.wikipedia.org/wiki/Uniform_resource_identifier">> (also often known as a <<.def URL>>) is a string of characters used to specify the location of a resource such as a web page.
|
||||
|
@@ -72,13 +72,13 @@ In a similar way, we can use a `-` sign to <<.em remove>> a run's tiddlers from
|
||||
|
||||
!Special parameters
|
||||
|
||||
The parameter of each step we've seen so far has been in square brackets, meaning that ~TiddlyWiki treats it literally. But two other kinds of bracket are possible:
|
||||
The parameter of each step we've seen so far has been in square brackets. It means that ~TiddlyWiki will filter for the exact string found between the brackets. But two other kinds of bracket are possible:
|
||||
|
||||
<<.def "Curly brackets">> `{}` mean that the parameter is a TextReference, and that its value is to be looked up in a specified tiddler. For example, if we have a tiddler called <<.tid Preference>> whose text happens to be the word <<.value Vegetarian>>, we can say
|
||||
<<.def "Curly brackets">> `{}` mean that the parameter is a TextReference, and it will be replaced with content from another tiddler. For example, if we have a tiddler with the title <<.tid Preference>> whose content is the single word <<.value Vegetarian>>, we can say
|
||||
|
||||
> `[tag{Preference}]`
|
||||
|
||||
as an alternative to `[tag[Vegetarian]]`. This allows the preference to change over time.
|
||||
In this simplest form the TextReference will take the full content of the tiddler (in technical terms, the text field of the tiddler) and substitute it in place of the TextReference. This way the tiddler's content will become the filter parameter, just like if you have written `[tag[Vegetarian]]`. But it gives you the added flexibility to change the parameter by changing the content of the Preference tiddler.
|
||||
|
||||
<<.def "Angle brackets">> `<>` mean that the parameter is the name of a [[variable|Variables]] whose value is to be used instead. Here we use the built-in <<.vlink currentTiddler>> variable in a filter that selects any tiddlers whose text contains the title of the current one:
|
||||
|
||||
|
@@ -0,0 +1,22 @@
|
||||
caption: duplicateslugs
|
||||
created: 20200509141702846
|
||||
modified: 20200509141702846
|
||||
op-input: a [[selection of titles|Title Selection]]
|
||||
op-output: the input titles transformed so that they only contain lower case letters, numbers, periods, dashes and underscores
|
||||
op-purpose: returns each item in the list in a human-readable form for use in URLs or filenames
|
||||
tags: [[Filter Operators]]
|
||||
title: duplicateslugs Operator
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.from-version "5.1.23">> The <<.olink slugify>> can be used to transform arbitrary tiddler titles into human readable strings suitable for use in URLs or filenames. However, itis possible for multiple different titles to slugify to the same string. The <<.olink duplicateslugs>> operator can be used to display a warning. For example:
|
||||
|
||||
<$macrocall $name='wikitext-example-without-html'
|
||||
src='<$list filter="[!is[system]duplicateslugs[]limit[1]]" emptyMessage="There are no duplicate slugs">
|
||||
The following tiddlers have duplicate slugs:
|
||||
|
||||
<ul>
|
||||
<$list filter="[!is[system]duplicateslugs[]]">
|
||||
<li><$link><$text text=<<currentTiddler>>/></$link></li>
|
||||
</$list>
|
||||
</ul>
|
||||
</$list>'/>
|
24
editions/tw5.com/tiddlers/filters/slugify Operator.tid
Normal file
24
editions/tw5.com/tiddlers/filters/slugify Operator.tid
Normal file
@@ -0,0 +1,24 @@
|
||||
caption: slugify
|
||||
created: 20200509141702846
|
||||
modified: 20200509141702846
|
||||
op-input: a [[selection of titles|Title Selection]]
|
||||
op-output: the input titles transformed so that they only contain lower case letters, numbers, periods, dashes and underscores
|
||||
op-purpose: returns each item in the list in a human-readable form for use in URLs or filenames
|
||||
tags: [[Filter Operators]]
|
||||
title: slugify Operator
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
<<.from-version "5.1.23">> The transformation applied by the slugify operator follows these steps:
|
||||
|
||||
* If there is a tiddler with the same title that has a ''slug'' field, then return that field instead of running the following steps
|
||||
* Replace uppercase letters with lowercase equivalents
|
||||
* Transliterate diacritics to their basic lowercase ASCII equivalents (for example, "Æ" is transliterated to "AE")
|
||||
* Replace spaces with dashes
|
||||
* Remove all non-word characters except dashes and periods
|
||||
* Replace multiple sequential dashes with a single dash
|
||||
* Trim dashes from start and end
|
||||
* If the result is the empty string then character codes are used instead (eg. "&£@" transforms to "38-163-64")
|
||||
|
||||
Note that it is possible for more than one title to slugify to the same string. The <<.olink duplicateslugs>> can be used to alert authors to any clashes.
|
||||
|
||||
<<.operator-examples "slugify">>
|
@@ -18,7 +18,7 @@ Use it to keep your [[to-do list|TaskManagementExample]], to plan an [[essay or
|
||||
Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will [[still be able to use|Future Proof]] the notes you take today.
|
||||
|
||||
<div style="font-size:0.7em;text-align:center;margin:3em auto;">
|
||||
<a href="http://groups.google.com/group/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#FF8C19;" target="_blank" rel="noopener noreferrer">
|
||||
<a href="https://groups.google.com/group/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#FF8C19;" target="_blank" rel="noopener noreferrer">
|
||||
{{$:/core/images/help}} Forum
|
||||
</a>
|
||||
<a href="https://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="border-radius:4px;background-color:#e52d27;" target="_blank" rel="noopener noreferrer">
|
||||
@@ -46,3 +46,7 @@ It's well worth spending an hour or so playing with it to see how it can help yo
|
||||
|
||||
Finding code that works flawlessly after just two or three years is magical enough but after seven years?!
|
||||
<<< [[Mark Gibbs, Network World|http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html]]
|
||||
|
||||
<div style="font-size:0.7em;text-align:center;margin:3em auto;">
|
||||
<a href="https://www.producthunt.com/posts/tiddlywiki-2?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-tiddlywiki-2" target="_blank" rel="noopener noreferrer"><img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=193414&theme=dark&period=daily" alt="TiddlyWiki - The open source non-linear notebook | Product Hunt Embed" style="width: 250px; height: 54px;" width="250px" height="54px" /></a>
|
||||
</div>
|
@@ -1,23 +1,25 @@
|
||||
created: 20130828190200000
|
||||
modified: 20160622111343603
|
||||
modified: 20200421003440463
|
||||
tags: [[TiddlyWiki on Node.js]]
|
||||
title: Generating Static Sites with TiddlyWiki
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
TiddlyWiki5 can be used to generate static HTML representations of a TiddlyWiki that doesn't need JavaScript.
|
||||
This process requires that TiddlyWiki be installed on Node.js on your local system. See [[Installing TiddlyWiki on Node.js]] for
|
||||
details.
|
||||
|
||||
There is much flexibility in how the static HTML is generated. The following scenarios are all illustrated on https://tiddlywiki.com.
|
||||
|
||||
! Wiki Snapshots and Tiddler Snapshots
|
||||
|
||||
You can explore a static representation of this TiddlyWiki at [ext[static.html]]. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to static snapshots of individual tiddlers. The tiddler HTML files reference a `static.css` stylesheet file.
|
||||
You can explore a static representation of the main TiddlyWiki site at https://tiddlywiki.com/static.html. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to static snapshots of individual tiddlers. The tiddler HTML files reference a `static.css` stylesheet file.
|
||||
|
||||
The following commands are used to generate the sample static version of the TiddlyWiki5 site:
|
||||
|
||||
```
|
||||
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain
|
||||
--rendertiddler $:/core/templates/static.template.html static.html text/plain
|
||||
--rendertiddler $:/core/templates/static.template.css static/static.css text/plain
|
||||
tiddlywiki wikipath --rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html static text/plain
|
||||
tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.html static.html text/plain
|
||||
tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.css static/static.css text/plain
|
||||
```
|
||||
|
||||
The first RenderTiddlersCommand generates the HTML representations of individual tiddlers, the second RenderTiddlerCommand saves the static version of the DefaultTiddlers, and the final RenderTiddlerCommand saves the stylesheet. (All the files are placed in the `output` folder of the wiki folder).
|
||||
@@ -26,7 +28,7 @@ The first RenderTiddlersCommand generates the HTML representations of individual
|
||||
|
||||
It is also possible to produce a single HTML file that contains static representations of tiddlers, and uses standard HTML anchor links to jump between them.
|
||||
|
||||
For example: [ext[alltiddlers.html]]
|
||||
For example: https://tiddlywiki.com/alltiddlers.html
|
||||
|
||||
The example is built by the following commands:
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
created: 20131224074240979
|
||||
modified: 20200422163752597
|
||||
modified: 20200510115704738
|
||||
tags: [[Customise TiddlyWiki]]
|
||||
title: Setting a favicon
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
"favicons" are small icons that most browsers display to help users identify websites.
|
||||
"favicons" are small icons that most browsers display to help users identify websites. Note that all browsers support bitmap images, but only certain modern browsers support SVG format icons.
|
||||
|
||||
! favicons in the Browser
|
||||
|
||||
|
@@ -12,4 +12,4 @@ Under Windows it is possible to convert TiddlyWiki into a true local application
|
||||
|
||||
Note that one disadvantage of this approach is that the TiddlyWiki file is saved in UTF-16 format, making it up to twice as large as it would be with the usual UTF-8 encoding. However, opening and saving the file via another saving method will re-encode the file to UTF-8.
|
||||
|
||||
See Wikipedia for more details: http://en.wikipedia.org/wiki/HTML_Application
|
||||
See Wikipedia for more details: https://en.wikipedia.org/wiki/HTML_Application
|
||||
|
@@ -1,5 +1,5 @@
|
||||
created: 20140720164948099
|
||||
modified: 20190307175403915
|
||||
modified: 20200506110435897
|
||||
tags: Mechanisms
|
||||
title: InfoMechanism
|
||||
type: text/vnd.tiddlywiki
|
||||
@@ -13,6 +13,7 @@ System tiddlers in the namespace `$:/info/` are used to expose information about
|
||||
! Information Tiddlers
|
||||
|
||||
|!Title |!Description |
|
||||
|[[$:/info/startup-timestamp]] |<<.from-version "5.1.23">> Startup timestamp in TiddlyWiki date format |
|
||||
|[[$:/info/browser]] |Running in the browser? ("yes" or "no") |
|
||||
|[[$:/info/browser/language]] |<<.from-version "5.1.20">> Language as reported by browser (note that some browsers report two character codes such as `en` while others report full codes such as `en-GB`) |
|
||||
|[[$:/info/browser/screen/width]] |Screen width in pixels |
|
||||
|
@@ -7,10 +7,10 @@ type: text/vnd.tiddlywiki
|
||||
|
||||
<<.from-version "5.1.14">>
|
||||
|
||||
The `tm-open-external-window` message opens an external link eg: "http://tiddlywiki.com" in a new //browser// window. If no parameters are specified, it opens the help tiddler. Any additional parameters passed via the <<.param "paramObject">> are being provided as variables to the new window.
|
||||
The `tm-open-external-window` message opens an external link eg: "https://tiddlywiki.com" in a new //browser// window. If no parameters are specified, it opens the help tiddler. Any additional parameters passed via the <<.param "paramObject">> are being provided as variables to the new window.
|
||||
|
||||
|!Name |!Description |
|
||||
|param |URL of the tiddler to be opened in a new browser window, defaults to the [[TiddlyWiki help|http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window if empty]] |
|
||||
|param |URL of the tiddler to be opened in a new browser window, defaults to the [[TiddlyWiki help|https://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window if empty]] |
|
||||
|paramObject |Optional: Hashmap of variables that will be provided to the window. see below |
|
||||
|
||||
''parmObject''
|
||||
@@ -25,7 +25,7 @@ The `tm-open-external-window` message is usually generated with the ButtonWidget
|
||||
|
||||
<$macrocall $name='wikitext-example-without-html'
|
||||
src='<$button>
|
||||
<$action-sendmessage $message="tm-open-external-window" $param="http://tiddlywiki.com" windowName="_tiddlywiki" windowFeatures="height=500, width=900"/>
|
||||
<$action-sendmessage $message="tm-open-external-window" $param="https://tiddlywiki.com" windowName="_tiddlywiki" windowFeatures="height=500, width=900"/>
|
||||
Open ~TiddlyWiki - Action
|
||||
</$button>
|
||||
|
||||
@@ -34,6 +34,6 @@ Open ~TiddlyWiki - Action
|
||||
Open Mozilla Help - Action
|
||||
</$button>
|
||||
|
||||
<$button message="tm-open-external-window" param="http://tiddlywiki.com" >
|
||||
<$button message="tm-open-external-window" param="https://tiddlywiki.com" >
|
||||
Open ~TiddlyWiki - Button
|
||||
</$button>'/>
|
@@ -1,13 +1,46 @@
|
||||
created: 20160602043529506
|
||||
modified: 20160602043531313
|
||||
tags: [[TiddlyWiki on Node.js]]
|
||||
caption: Node.js on Termux
|
||||
created: 20200501120322327
|
||||
delivery: App with DIY steps
|
||||
description: Using Node.js to serve/create flatfile wikis
|
||||
method: sync
|
||||
modified: 20200501120801899
|
||||
tags: Saving [[TiddlyWiki on Node.js]] Android
|
||||
title: Serving TW5 from Android
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
[[Termux|https://termux.com/]] is an open source Android application that combines a Linux system and a terminal.
|
||||
[[Termux|https://termux.com/]] is and open source android application providing limited Unix environment enabling users to install [[Node.js]] and npm modules in android. Users can install and run [[TiddlyWiki on Node.js]] using [[Termux|https://termux.com/]].
|
||||
|
||||
Once you open //Termux// on your Android system, it is straightforward to [[install|Installing TiddlyWiki on Node.js]] and [[run|Using TiddlyWiki on Node.js]] the [[Node.js flavour of TiddlyWiki|TiddlyWiki on Node.js]] from the command line.
|
||||
!! Instructions
|
||||
|
||||
From then on, as long as //Termux// is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port.
|
||||
* Download and install Termux from [[Google Play Store|https://play.google.com/store/apps/details?id=com.termux]] or [[Fdroid|https://f-droid.org/en/packages/com.termux/]]
|
||||
* Open termux and run the following commands one by one
|
||||
|
||||
> __note to contributors__: in //Termux//, you may as well install //git//, //emacs// or //vi//, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the [[Hacker's Keyboard|https://github.com/klausw/hackerskeyboard/]] application or a Bluetooth external device.
|
||||
```bash
|
||||
apt update
|
||||
apt upgrade
|
||||
apt install nodejs
|
||||
npm install -g tiddlywiki
|
||||
```
|
||||
|
||||
* If you need to create/serve ''~TiddlyWiki on Node.js'' from the internal storage, you need to give termux storage permission by running the following command in termux
|
||||
|
||||
```
|
||||
termux-setup-storage
|
||||
```
|
||||
|
||||
* Now you can create and serve ''~TiddlyWiki on Node.js'' from internal storage. In the example given below, user is creating a new wiki called "mynewwiki" in his internal folder.
|
||||
|
||||
```
|
||||
cd storage/shared
|
||||
tiddlywiki mynewwiki --init server
|
||||
tiddlywiki mynewwiki --listen
|
||||
```
|
||||
* Visit http://127.0.0.1:8080/ in your browser
|
||||
* From then on, as long as //Termux// is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port.
|
||||
|
||||
---
|
||||
|
||||
* For more information regarding ~TiddlyWiki on Node.js, please see [[Installing TiddlyWiki on Node.js]]
|
||||
* For more information and tips regarding termux, please refer to [[Termux wiki|https://wiki.termux.com/wiki/Main_Page]]
|
||||
|
||||
<<.tip "In //Termux//, you may as well install //git//, //emacs// or //vi//, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the [[Hacker's Keyboard|https://github.com/klausw/hackerskeyboard/]] application or a Bluetooth external device.">>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
created: 20131219100520659
|
||||
modified: $tw.loadPluginFolder(name.substring(1));
|
||||
modified: 20200523092939199
|
||||
tags: [[TiddlyWiki on Node.js]]
|
||||
title: Using TiddlyWiki on Node.js
|
||||
type: text/vnd.tiddlywiki
|
||||
|
@@ -15,7 +15,7 @@ This release includes many improvements to the documentation for TiddlyWiki. Man
|
||||
* Improvements to French, Danish, Chinese and Japanese translations
|
||||
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/cb8caf6a01aeeac480bf28661888961657b0dbd8]] Czech translation
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d6918d737f5d1b663346ad9a35421a5ae0ffb9a7]] [[Interlingua|http://en.wikipedia.org/wiki/Interlingua]] translation
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d6918d737f5d1b663346ad9a35421a5ae0ffb9a7]] [[Interlingua|https://en.wikipedia.org/wiki/Interlingua]] translation
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/6721a5eb1b77935226ccc8559008af3a0a05d0cb]] Portuguese translation
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/b845751d3c549366adb2f6e5c58b0114fa95ba30]] Punjabi and Hindu translations
|
||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/49a9a2c44ca3a71fff3062709f06940aaca4a574]] Slovak translation
|
||||
|
@@ -1,17 +1,10 @@
|
||||
created: 20130823203800000
|
||||
modified: 20160418123722695
|
||||
modified: 2020051619421803
|
||||
tags: About
|
||||
title: RoadMap
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
There are still some areas of TiddlyWiki that have not been fully developed beyond the experimental stage:
|
||||
TiddlyWiki 5 is now a mature, stable project that is relied upon by many people. Simultaneously, it is rapidly evolving in many directions thanks to the broad community of developers and users. This paradoxical situation is possible because the project strictly maintains backwards compatibility, adding new features alongside the existing ones.
|
||||
|
||||
* Multiple users with the client-server configuration
|
||||
* Smartphone user experience
|
||||
* New tiddler manager, including bulk operations like search and replace
|
||||
* Federation that can run in the browser or under Node.js
|
||||
* Improved editions
|
||||
* Improved support for third party plugin libraries
|
||||
|
||||
Also see the issues list on GitHub: https://github.com/Jermolene/TiddlyWiki5
|
||||
There is no formal roadmap, but quite a few areas that have yet to be fully implemented, such as search and replace, and rich text editing. Current work can be found on ~GitHub at https://github.com/Jermolene/TiddlyWiki5/
|
||||
|
||||
|
@@ -3,25 +3,30 @@ created: 20130825161400000
|
||||
delivery: App
|
||||
description: Android app for saving changes locally to device storage
|
||||
method: save
|
||||
modified: 20191013145728306
|
||||
modified: 20200501103500478
|
||||
tags: Saving Android
|
||||
title: Saving on Android
|
||||
type: text/vnd.tiddlywiki
|
||||
url: https://github.com/donmor/Tiddloid
|
||||
|
||||
The Tiddloid or Tiddloid Lite app for Android devices makes it possible to edit and save changes to TiddlyWiki. Get it from GitHub: [[Tiddloid|https://github.com/donmor/Tiddloid]] [[Tiddloid Lite|https://github.com/donmor/TiddloidLite]].
|
||||
The Tiddloid and Tiddloid Lite app are Android apps that makes it possible to edit and save changes to TiddlyWiki HTML files.
|
||||
|
||||
''Instructions for use:''
|
||||
* For more information: [[Tiddloid|https://github.com/donmor/Tiddloid]] [[Tiddloid Lite|https://github.com/donmor/TiddloidLite]].
|
||||
* Download apks: [[Tiddloid|https://github.com/donmor/Tiddloid/releases]], [[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]]
|
||||
|
||||
# [[Download]] an empty TiddlyWiki on another web browser
|
||||
# Move the file you just downloaded to the directory `/sdcard/andtidwiki`
|
||||
#* You may rename it, but be sure to keep the `.html` or `.htm` extension
|
||||
# Open AndTidWiki
|
||||
#* Don't use ''Menu''/''new ~TiddlyWiki'' menu option (it only supports the older TiddlyWikiClassic)
|
||||
# Open the file by touching its filename
|
||||
# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar. Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button
|
||||
#* The wiki will be saved, and a confirmation message should appear at the top right of the window
|
||||
|
||||
''Note:'' You can save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar even if you have not clicked the <<.icon $:/core/images/done-button>> ''ok'' button to complete editing a tiddler
|
||||
!!! Features
|
||||
|
||||
* Tiddloid Lite supports new devices better. It also supports files on clouds like GDrive and ~OneDrive, while Tiddloid keeps the compatibility to TiddlyWikiClassic. For more difference between Tiddloid and Tiddloid Lite, please visit [[Tiddloid's homepage|https://github.com/donmor/Tiddloid]].
|
||||
* You should keep the `.html` or `.htm` extension of the files to be imported.
|
||||
* Create new ~TiddlyWiki importing latest edition from internet
|
||||
* Import existing ~TiddlyWikis stored on device/internal storage. ([[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]] supports external SD card too)
|
||||
* Fork interesting ~Tiddlywikis from internet (Supports TW5 only)
|
||||
* TiddlyWiki detection
|
||||
* Locally stored ~Tiddlywikis are updated simultaneously on saving changes to ~TiddlyWikis imported to the app
|
||||
* Backup system that is compatible with TiddlyDesktop, the desktop TiddlyWiki saver
|
||||
* Creating shortcuts to existing ~TiddlyWiki on Android Homepage
|
||||
* [[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]] supports cloud storages like GDrive and ~OneDrive
|
||||
|
||||
!!! Please note
|
||||
|
||||
* Tiddloid Lite feature better support for devices running Android Q or later. It also supports cloud storages like GDrive and ~OneDrive, while Tiddloid keeps the compatibility to TiddlyWikiClassic. To know more about differences between Tiddloid and Tiddloid Lite, please visit [[Tiddloid's homepage|https://github.com/donmor/Tiddloid]].
|
||||
* You should keep the `.html` or `.htm` extension of the files to be imported.
|
@@ -10,11 +10,11 @@ description: Free online service for hosting TiddlyWiki files
|
||||
|
||||
[[TiddlySpot|http://tiddlyspot.com]] is a free hosting service for TiddlyWiki documents from Simon Baird and Daniel Baird.
|
||||
|
||||
! Setting up a TiddlyWiki on TiddlySpot
|
||||
! Setting up a TiddlyWiki on ~TiddlySpot
|
||||
To set up a [[TiddlyWiki Classic|TiddlyWikiClassic]], you merely create a new wiki at http://tiddlyspot.com
|
||||
|
||||
!!TiddlyWiki5 on TiddlySpot
|
||||
~TiddlyWiki5 also functions well on ~TiddlySpot but this version is not offered directly in the TiddlySpot set-up.
|
||||
!!TiddlyWiki5 on ~TiddlySpot
|
||||
~TiddlyWiki5 also functions well on ~TiddlySpot but this version is not offered directly in the ~TiddlySpot set-up.
|
||||
|
||||
The simplest way to create a new ~TiddlySpot with ~TiddlyWiki5 is probably through the community created site http://tiddlywiki5.tiddlyspot.com
|
||||
|
||||
@@ -22,11 +22,11 @@ Alternatively, you can upload an existing ~TiddlyWiki5 document from your local
|
||||
|
||||
# Sign up for a new wiki at http://tiddlyspot.com/, and remember the wiki name and password
|
||||
# Open your locally stored TiddlyWiki document in your browser
|
||||
# Fill in the TiddlySpot wikiname and password in ''Saving'' tab of the ''control panel'' <<.icon $:/core/images/options-button>>
|
||||
# Fill in the ~TiddlySpot wikiname and password in ''Saving'' tab of the ''control panel'' <<.icon $:/core/images/options-button>>
|
||||
# Click the <<.icon $:/core/images/save-button>> ''save changes'' button. You should get a confirmation notification at the top right saying ''Saved wiki''. Saving can take several seconds if you're on a slow connection or working with a large wiki.
|
||||
# Navigate to your TiddlySpot URL at http://{wikiname}.tiddlyspot.com/
|
||||
# Navigate to your ~TiddlySpot URL at http://{wikiname}.tiddlyspot.com/
|
||||
|
||||
Note that your password is sent unencrypted when using TiddlySpot. From http://faq.tiddlyspot.com/:
|
||||
Note that your password is sent unencrypted when using ~TiddlySpot. From http://faq.tiddlyspot.com/:
|
||||
|
||||
<<<
|
||||
''Is Tiddlyspot secure?''
|
||||
@@ -34,9 +34,9 @@ Note that your password is sent unencrypted when using TiddlySpot. From http://f
|
||||
No. Tiddlyspot does not use SSL/https. Your password is sent in clear text when uploading and when authenticating to access a private site. This means that your Tiddlyspot is vulnerable to packet sniffing and your password could be discovered by a malicious third party. Also your data is transmitted unencrypted when you view your site, even if it is a private site. For this reason please don't put sensitive information such as banking details in your Tiddlyspot and don't use a password that you use for other high security sites.
|
||||
<<<
|
||||
|
||||
! Problems with saving on TiddlySpot
|
||||
! Problems with saving on ~TiddlySpot
|
||||
|
||||
In case you run into this error when uploading a new or freshly upgraded local TiddlyWiki to TiddlySpot :
|
||||
In case you run into this error when uploading a new or freshly upgraded local TiddlyWiki to ~TiddlySpot :
|
||||
|
||||
<<<
|
||||
Error while saving:
|
||||
@@ -46,9 +46,9 @@ Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied
|
||||
|
||||
The upgrade operation falls foul of a security restriction in Firefox. Until this can be resolved, we suggest using Chrome.
|
||||
|
||||
*# Use Chrome to open the local TiddlyWiki document you want to upload to TiddlySpot and follow the steps 1 through 5 described above
|
||||
*# Once you've checked the TiddlySpot-hosted TiddlyWiki loads properly in Chrome, you should be able to access, edit and [[save using TiddlyFox|Saving with TiddlyFox]] again
|
||||
* After you've uploaded your local document once, further editing and saving of the online version hosted on TiddlySpot should work with any modern browser of your choice.
|
||||
** Don't forget to fill in the TiddlySpot wikiname and password in your TiddlySpot TiddlyWiki control panel for any new browser you want to use for saving changes
|
||||
*# Use Chrome to open the local TiddlyWiki document you want to upload to ~TiddlySpot and follow the steps 1 through 5 described above
|
||||
*# Once you've checked the ~TiddlySpot-hosted TiddlyWiki loads properly in Chrome, you should be able to access, edit and [[save using TiddlyFox|Saving with TiddlyFox]] again
|
||||
* After you've uploaded your local document once, further editing and saving of the online version hosted on ~TiddlySpot should work with any modern browser of your choice.
|
||||
** Don't forget to fill in the ~TiddlySpot wikiname and password in your ~TiddlySpot TiddlyWiki control panel for any new browser you want to use for saving changes
|
||||
|
||||
* //See also : [[Upgrading]]//
|
||||
|
@@ -3,28 +3,25 @@ created: 20131129101027725
|
||||
delivery: App
|
||||
description: iPad/iPhone app for working with TiddlyWiki
|
||||
method: save
|
||||
modified: 20171113105954683
|
||||
modified: 20200428224059031
|
||||
tags: Saving iOS
|
||||
title: Saving on iPad/iPhone
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
The iPad/iPhone app ''Quine'' makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. [[Download it here|https://itunes.apple.com/us/app/quine/id1228682923?mt=8]].
|
||||
The iPad/iPhone app ''Quine 2'' makes it possible to view, edit and then save changes to TiddlyWiki5 on iOS. [[Download it here|https://itunes.apple.com/us/app/quine/id1228682923?mt=8]].
|
||||
|
||||
Instructions for use:
|
||||
|
||||
# Open Quine
|
||||
# On iPad
|
||||
#* Touch the file button (<) or swipe from the left of the screen to open the file list
|
||||
# On iPhone
|
||||
#* The file list will show automatically unless a wiki is already open
|
||||
# Touch the new file button (+) in the file list window to create a new TiddlyWiki5 file
|
||||
# Swipe any file item from the right to see a list of additional "actions" possible for that file
|
||||
# Touch any listed file item or folder to open it - wikis will open in Quine's custom browser
|
||||
# When you have an open TiddlyWiki5:
|
||||
# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar
|
||||
# Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button
|
||||
# Save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar
|
||||
#* A confirmation message should appear at the top right of the window
|
||||
# Touch "Done" when done editing a wiki
|
||||
# Open Quine 2
|
||||
# Tap the + toolbar button to create and open a new TiddlyWiki
|
||||
# From the file list tap an existing TiddlyWiki file to open it
|
||||
# Edit the TiddlyWiki as normal, and save as normal using either Autosave or the TiddlyWiki save button <<.icon $:/core/images/save-button>>
|
||||
# Tap the left hand "Documents" toolbar button to close an open TiddlyWiki
|
||||
|
||||
*Quine 2 works natively in iOS with the local file system and the iCloud file system
|
||||
*Quine 2 also allows you to open, edit and save TiddlyWiki files stored with cloud file providers
|
||||
*Quine 2 allows you to follow embedded WikiText links and canonical links to external files for cloud-like file providers which support "folder level sharing".
|
||||
**This includes the apps "Secure Shellfish" and "Working Copy". Most providers, though, do not allow apps like Quine 2 to access linked files this way.
|
||||
** If you wish to enable such links for "well behaved" file providers, toggle "on" the "Enable folder selection for out-of-sandbox links" setting in iOS Settings for Quine 2
|
||||
|
||||
//Note that Quine is published independently of TiddlyWiki//
|
||||
|
@@ -3,7 +3,7 @@ modified: 20150117152553000
|
||||
title: Spelling
|
||||
tags: [[Improving TiddlyWiki Documentation]]
|
||||
|
||||
Because ~TiddlyWiki is of British origin, its English documentation uses [[British spelling in preference to US spelling|http://en.wikipedia.org/wiki/American_and_British_English_spelling_differences]].
|
||||
Because ~TiddlyWiki is of British origin, its English documentation uses [[British spelling in preference to US spelling|https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences]].
|
||||
|
||||
Words like <<.word customise>> are spelled <<.word -ise>>, not <<.word -ize>>. Words like <<.word colour>> will also be spelled using UK English unless they are being used for reserved words in code, such as in CSS or JavaScript.
|
||||
|
||||
|
@@ -31,6 +31,7 @@ The content of the `<$edit-text>` widget is ignored.
|
||||
|autoHeight |Either "yes" or "no" to specify whether to automatically resize `textarea` editors to fit their content (defaults to "yes") |
|
||||
|minHeight |Minimum height for automatically resized `textarea` editors, specified in CSS length units such as "px", "em" or "%" |
|
||||
|rows|Sets the rows attribute of a generated textarea |
|
||||
|cancelPopups |<<.from-version "5.1.23">> if set to "yes", cancels all popups when the input gets focus |
|
||||
|
||||
! Notes
|
||||
|
||||
|
@@ -18,3 +18,4 @@ The content of the `<$edit>` widget is ignored.
|
||||
|index |The index to edit |
|
||||
|class |A CSS class to be added the generated editing widget |
|
||||
|tabindex |Sets the `tabindex` attribute of the input or textarea to the given value |
|
||||
|cancelPopups |<<.from-version "5.1.23">> if set to "yes", cancels all popups when the input gets focus |
|
||||
|
@@ -40,5 +40,5 @@ This will be monospaced
|
||||
```
|
||||
</pre>
|
||||
|
||||
Note that some keyboard layouts treat the backtick as a [[dead key|http://en.wikipedia.org/wiki/Dead_key]], making it hard to type. The trick is to type three backticks followed by a space. Alternatively, type all six backticks in one go, then a space, and then move the cursor back three characters to type or paste the content.
|
||||
Note that some keyboard layouts treat the backtick as a [[dead key|https://en.wikipedia.org/wiki/Dead_key]], making it hard to type. The trick is to type three backticks followed by a space. Alternatively, type all six backticks in one go, then a space, and then move the cursor back three characters to type or paste the content.
|
||||
|
||||
|
@@ -85,7 +85,7 @@ Info/Hint: Mostra la informació d'aquest tiddler
|
||||
Italic/Caption: cursiva
|
||||
Italic/Hint: Aplica el format de cursiva a la selecció
|
||||
Language/Caption: idioma
|
||||
Language/Hint: Trieu l'idioma de la interfície
|
||||
Language/Hint: Trieu l'idioma
|
||||
LineWidth/Caption: amplada de la línia
|
||||
LineWidth/Hint: Trieu l'amplada de la línia per pintar
|
||||
Link/Caption: enllaç
|
||||
@@ -127,7 +127,7 @@ Palette/Hint: Trieu el color de la paleta
|
||||
Permalink/Caption: enllaç permanent
|
||||
Permalink/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap aquest tiddler
|
||||
Permaview/Caption: vista permanent
|
||||
Permaview/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap a tots els tiddlers d'aquesta història
|
||||
Permaview/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap a tots els tiddlers de la cronologia
|
||||
Picture/Caption: imatge
|
||||
Picture/Hint: Inserta una imatge
|
||||
Preview/Caption: previsualització
|
||||
@@ -154,11 +154,11 @@ Size/Caption/Height: Alçada:
|
||||
Size/Caption/Resize: Mida de la imatge
|
||||
Size/Caption/Width: Amplada:
|
||||
Size/Hint: Trieu la mida de la imatge
|
||||
Stamp/Caption: marca
|
||||
Stamp/Caption/New: Afegiu la vostra pròpia
|
||||
Stamp/Hint: Inserta un fragment de text
|
||||
Stamp/New/Text: Fragment de text. (Recordeu afegir un títol descriptiu al camp de la llegenda).
|
||||
Stamp/New/Title: Es mostra el nom al menú
|
||||
Stamp/Caption: Plantilla
|
||||
Stamp/Caption/New: Afegeix una nova plantilla
|
||||
Stamp/Hint: Inserta una plantilla de text
|
||||
Stamp/New/Text: Plantilla de text. (Recordeu afegir un text descriptiu al camp //caption//).
|
||||
Stamp/New/Title: Nom que es mostrarà al menú d'afegir una plantilla
|
||||
StoryView/Caption: visualització de la cronologia
|
||||
StoryView/Hint: Trieu la visualització de la cronologia
|
||||
Strikethrough/Caption: ratllat
|
||||
|
@@ -9,10 +9,11 @@ Basics/Caption: Bàsic
|
||||
Basics/DefaultTiddlers/BottomHint: Useu [[claudàtors dobles]] per als títols amb espais. O podeu triar <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">mantenir l'ordre de la cronologia</$button>
|
||||
Basics/DefaultTiddlers/Prompt: Tiddlers per omissió:
|
||||
Basics/DefaultTiddlers/TopHint: Trieu quins tiddlers s'han de mostrar a l'inici:
|
||||
Basics/Language/Prompt: Hola! Idioma actual:
|
||||
Basics/Language/Prompt: Bon dia! Trieu l'idioma:
|
||||
Basics/NewJournal/Tags/Prompt: Etiquetes per als nous tiddlers del diari
|
||||
Basics/NewJournal/Text/Prompt: Text dels nous tiddlers del diari
|
||||
Basics/NewJournal/Title/Prompt: Títol dels nous tiddlers del diari
|
||||
Basics/NewTiddler/Tags/Prompt: Etiquetes dels nous tiddlers
|
||||
Basics/NewTiddler/Title/Prompt: Títol dels nous tiddlers
|
||||
Basics/OverriddenShadowTiddlers/Prompt: Número de tiddlers ombra sobreescrits:
|
||||
Basics/ShadowTiddlers/Prompt: Número de tiddlers ombra:
|
||||
@@ -45,7 +46,7 @@ KeyboardShortcuts/Remove/Hint: suprimeix la drecera del teclat
|
||||
LoadedModules/Caption: Mòduls carregats
|
||||
LoadedModules/Hint: Aquests són els mòduls tiddlers enllaçats als seus tiddlers font. Els mòduls indicats en cursiva no disposen de tiddler font, sovint per que s'han configurat a l'arrencada.
|
||||
Palette/Caption: Paleta
|
||||
Palette/Editor/Clone/Caption: clona paquets de connectors
|
||||
Palette/Editor/Clone/Caption: clona
|
||||
Palette/Editor/Clone/Prompt: Es recomana que cloneu aquesta paleta ombra abans d'editar-la
|
||||
Palette/Editor/Delete/Hint: suprimeix aquesta entrada de la paleta actual
|
||||
Palette/Editor/Names/External/Show: Mostra el noms dels colors que no formen part de la paleta actual
|
||||
@@ -63,11 +64,13 @@ Parsing/Pragma/Caption: Regles d'anàlisi Pragma
|
||||
Plugins/Add/Caption: Obtingueu més connectors
|
||||
Plugins/Add/Hint: Instal·leu connectors de la biblioteca oficial
|
||||
Plugins/AlreadyInstalled/Hint: Aquest connector ja té instal·lada la versió <$text text=<<installedVersion>>/>
|
||||
Plugins/AlsoRequires: També necessita:
|
||||
Plugins/Caption: Connectors
|
||||
Plugins/ClosePluginLibrary: tanca la biblioteca de connectors
|
||||
Plugins/Disable/Caption: desactiva
|
||||
Plugins/Disable/Hint: Desactiva aquest connector quan la pàgina es torni a carregar
|
||||
Plugins/Disabled/Status: (desactivat)
|
||||
Plugins/Downgrade/Caption: seactualitza
|
||||
Plugins/Empty/Hint: Cap
|
||||
Plugins/Enable/Caption: activa
|
||||
Plugins/Enable/Hint: Activa aquest connector quan la pàgina es torni a carregar
|
||||
@@ -80,9 +83,15 @@ Plugins/NotInstalled/Hint: Aquest connector no està instal·lat
|
||||
Plugins/OpenPluginLibrary: obre la biblioteca de connectors
|
||||
Plugins/Plugins/Caption: Connectors
|
||||
Plugins/Plugins/Hint: Connectors
|
||||
Plugins/PluginWillRequireReload: (cal tornar-ho a carregar)
|
||||
Plugins/Reinstall/Caption: torna a instal·lar
|
||||
Plugins/SubPluginPrompt: Amb <<count>> sub-connectors disponibles
|
||||
Plugins/Themes/Caption: Temes
|
||||
Plugins/Themes/Hint: Connectors del tema
|
||||
Plugins/Update/Caption: actualització
|
||||
Plugins/Updates/Caption: Actualitzacions
|
||||
Plugins/Updates/Hint: Actualitzacions disponibles dels connectors instal·lats
|
||||
Plugins/Updates/UpdateAll/Caption: Actualitza <<update-count>> connectors
|
||||
Saving/Caption: Desa
|
||||
Saving/DownloadSaver/AutoSave/Description: Permet que el gestor de baixades desi automàticament
|
||||
Saving/DownloadSaver/AutoSave/Hint: Activa el desat automàtic pel gestor de baixades
|
||||
@@ -102,6 +111,8 @@ Saving/GitService/Branch: Branca destinació a on desar
|
||||
Saving/GitService/CommitMessage: Desat per TiddlyWiki
|
||||
Saving/GitService/Description: Aquests paràmetres només s'utilitzen quan es desa a <<service-name>>
|
||||
Saving/GitService/Filename: Nom del fitxer destinació (per exemple `index.html`)
|
||||
Saving/GitService/Gitea/Caption: Gestor de baixades Gitea
|
||||
Saving/GitService/Gitea/Password: Testimoni d'accès personal de l'API (via la interfície web de Gitea: `Paràmetres | Aplicacions | Genera un Nou Testimoni`)
|
||||
Saving/GitService/GitHub/Caption: Gestor de baixades de ~GitHub
|
||||
Saving/GitService/GitHub/Password: Contrasenya, clau OAUTH o clau d'accés personal (veieu els detalls a la [[pàgina d'ajuda del GitHub|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] )
|
||||
Saving/GitService/GitLab/Caption: Gestor de baixades de ~GitLab
|
||||
@@ -128,13 +139,13 @@ Settings/AutoSave/Disabled/Description: No desis els canvis de forma automàtica
|
||||
Settings/AutoSave/Enabled/Description: Desa els canvis de forma automàtica
|
||||
Settings/AutoSave/Hint: Desa els canvis de forma automàtica mentre s'està editant
|
||||
Settings/CamelCase/Caption: Enllaços wiki tipus CamelCase
|
||||
Settings/CamelCase/Description: Activa l'enllaç automàtic de ~CamelCase
|
||||
Settings/CamelCase/Hint: Podeu desactivar l’enllaç automàtic de les frases ~CamelCase globalment. Cal que es torni a carregar per tenir efecte
|
||||
Settings/CamelCase/Description: Activa l'enllaç automàtic tipus ~CamelCase
|
||||
Settings/CamelCase/Hint: Podeu desactivar globalment l’enllaç automàtic de les frases ~CamelCase. Cal que es torni a carregar per tenir efecte
|
||||
Settings/Caption: Paràmetres
|
||||
Settings/DefaultMoreSidebarTab/Caption: Pestanya Més de la barra lateral per omissió
|
||||
Settings/DefaultMoreSidebarTab/Hint: Indiqueu quina pestanya Més de la barra lateral es mostra per omissió
|
||||
Settings/DefaultMoreSidebarTab/Hint: Indiqueu la pestanya Més de la barra lateral que es mostra per omissió
|
||||
Settings/DefaultSidebarTab/Caption: Pestanya de la barra lateral que es mostra per omissió
|
||||
Settings/DefaultSidebarTab/Hint: Indica quina pestanya de la barra lateral es mostra per omissió
|
||||
Settings/DefaultSidebarTab/Hint: Indiqueu la pestanya de la barra lateral que es mostra per omissió
|
||||
Settings/EditorToolbar/Caption: Barra d'eines de l'editor
|
||||
Settings/EditorToolbar/Description: Mostra la barra d'eines de l'editor
|
||||
Settings/EditorToolbar/Hint: Activa o desactiva la barra d'eines de l'editor:
|
||||
@@ -144,12 +155,12 @@ Settings/InfoPanelMode/Hint: Controla quan es tanca el tauler d'informació del
|
||||
Settings/InfoPanelMode/Popup/Description: El tauler d’informació del Tiddler es tanca automàticament
|
||||
Settings/InfoPanelMode/Sticky/Description: El tauler d’informació del Tiddler roman obert fins que es tanqui explícitament
|
||||
Settings/LinkToBehaviour/Caption: Comportament d'obertura del tiddler
|
||||
Settings/LinkToBehaviour/InsideRiver/Hint: Navegació des de //dins de// la cronologia
|
||||
Settings/LinkToBehaviour/InsideRiver/Hint: Navegació des de //dins// de la cronologia
|
||||
Settings/LinkToBehaviour/OpenAbove: Obre per sobre del tiddler actual
|
||||
Settings/LinkToBehaviour/OpenAtBottom: Obre a la part inferior de la cronologia
|
||||
Settings/LinkToBehaviour/OpenAtTop: Obre a la part superior de la cronologia
|
||||
Settings/LinkToBehaviour/OpenBelow: Obre per sota del tiddler actual
|
||||
Settings/LinkToBehaviour/OutsideRiver/Hint: Navegació des de //fora de//la cronologia
|
||||
Settings/LinkToBehaviour/OutsideRiver/Hint: Navegació des de //fora// de la cronologia
|
||||
Settings/MissingLinks/Caption: Enllaços Wiki
|
||||
Settings/MissingLinks/Description: Activa els enllaços als tiddlers que falten
|
||||
Settings/MissingLinks/Hint: Escolliu si voleu enllaçar els tiddlers que encara no existeixen
|
||||
@@ -157,11 +168,11 @@ Settings/NavigationAddressBar/Caption: Barra d'adreces de navegació
|
||||
Settings/NavigationAddressBar/Hint: Comportament de la barra d'adreces en navegar cap a un tiddler:
|
||||
Settings/NavigationAddressBar/No/Description: No actualitzis la barra d'adreces
|
||||
Settings/NavigationAddressBar/Permalink/Description: Inclou el tiddler destinació
|
||||
Settings/NavigationAddressBar/Permaview/Description: Inclou el tiddler destinació i la seqùència actual
|
||||
Settings/NavigationAddressBar/Permaview/Description: Inclou el tiddler destinació i la cronologia actual
|
||||
Settings/NavigationHistory/Caption: Històrial de navegació
|
||||
Settings/NavigationHistory/Hint: Actualitza l'històrial del navegador en navegar cap a un tiddler:
|
||||
Settings/NavigationHistory/No/Description: No actualitzis la cronologia
|
||||
Settings/NavigationHistory/Yes/Description: Actualitza la cronologia
|
||||
Settings/NavigationHistory/No/Description: No actualitzis l'històrial
|
||||
Settings/NavigationHistory/Yes/Description: Actualitza l'històrial
|
||||
Settings/NavigationPermalinkviewMode/Caption: Mode enllaç permanent/vista permanent
|
||||
Settings/NavigationPermalinkviewMode/CopyToClipboard/Description: Copia l’URL de l'enllaç permanent/vista permanent al portapapers
|
||||
Settings/NavigationPermalinkviewMode/Hint: Trieu com es gestiona l'enllaç permanent/vista permanent
|
||||
|
@@ -1,36 +1,36 @@
|
||||
title: $:/language/
|
||||
|
||||
Date/DaySuffix/1: r
|
||||
Date/DaySuffix/10: é
|
||||
Date/DaySuffix/11: é
|
||||
Date/DaySuffix/12: é
|
||||
Date/DaySuffix/13: é
|
||||
Date/DaySuffix/14: é
|
||||
Date/DaySuffix/15: é
|
||||
Date/DaySuffix/16: é
|
||||
Date/DaySuffix/17: é
|
||||
Date/DaySuffix/18: é
|
||||
Date/DaySuffix/19: é
|
||||
Date/DaySuffix/2: n
|
||||
Date/DaySuffix/20: é
|
||||
Date/DaySuffix/21: é
|
||||
Date/DaySuffix/22: é
|
||||
Date/DaySuffix/23: r
|
||||
Date/DaySuffix/24: é
|
||||
Date/DaySuffix/25: é
|
||||
Date/DaySuffix/26: é
|
||||
Date/DaySuffix/27: é
|
||||
Date/DaySuffix/28: é
|
||||
Date/DaySuffix/29: é
|
||||
Date/DaySuffix/3: r
|
||||
Date/DaySuffix/30: é
|
||||
Date/DaySuffix/31: é
|
||||
Date/DaySuffix/4: t
|
||||
Date/DaySuffix/5: é
|
||||
Date/DaySuffix/6: é
|
||||
Date/DaySuffix/7: é
|
||||
Date/DaySuffix/8: é
|
||||
Date/DaySuffix/9: é
|
||||
Date/DaySuffix/10:
|
||||
Date/DaySuffix/11:
|
||||
Date/DaySuffix/12:
|
||||
Date/DaySuffix/13:
|
||||
Date/DaySuffix/14:
|
||||
Date/DaySuffix/15:
|
||||
Date/DaySuffix/16:
|
||||
Date/DaySuffix/17:
|
||||
Date/DaySuffix/18:
|
||||
Date/DaySuffix/19:
|
||||
Date/DaySuffix/2:
|
||||
Date/DaySuffix/20:
|
||||
Date/DaySuffix/21:
|
||||
Date/DaySuffix/22:
|
||||
Date/DaySuffix/23:
|
||||
Date/DaySuffix/24:
|
||||
Date/DaySuffix/25:
|
||||
Date/DaySuffix/26:
|
||||
Date/DaySuffix/27:
|
||||
Date/DaySuffix/28:
|
||||
Date/DaySuffix/29:
|
||||
Date/DaySuffix/3:
|
||||
Date/DaySuffix/30:
|
||||
Date/DaySuffix/31:
|
||||
Date/DaySuffix/4:
|
||||
Date/DaySuffix/5:
|
||||
Date/DaySuffix/6:
|
||||
Date/DaySuffix/7:
|
||||
Date/DaySuffix/8:
|
||||
Date/DaySuffix/9:
|
||||
Date/Long/Day/0: Diumenge
|
||||
Date/Long/Day/1: Dilluns
|
||||
Date/Long/Day/2: Dimarts
|
||||
@@ -39,16 +39,16 @@ Date/Long/Day/4: Dijous
|
||||
Date/Long/Day/5: Divendres
|
||||
Date/Long/Day/6: Dissabte
|
||||
Date/Long/Month/1: de gener de
|
||||
Date/Long/Month/10: d'octubre de
|
||||
Date/Long/Month/10: octubre de
|
||||
Date/Long/Month/11: de novembre de
|
||||
Date/Long/Month/12: de desembre de
|
||||
Date/Long/Month/2: de febrer de
|
||||
Date/Long/Month/3: de març de
|
||||
Date/Long/Month/4: d'abril de
|
||||
Date/Long/Month/4: abril de
|
||||
Date/Long/Month/5: de maig de
|
||||
Date/Long/Month/6: de juny de
|
||||
Date/Long/Month/7: de juliol de
|
||||
Date/Long/Month/8: d'agost de
|
||||
Date/Long/Month/8: agost de
|
||||
Date/Long/Month/9: de septembre de
|
||||
Date/Short/Day/0: Diu
|
||||
Date/Short/Day/1: Dil
|
||||
@@ -62,8 +62,8 @@ Date/Short/Month/12: Des
|
||||
Date/Short/Month/4: Abr
|
||||
Date/Short/Month/5: Mai
|
||||
Date/Short/Month/8: Ago
|
||||
Date/Period/am: m.
|
||||
Date/Period/pm: t.
|
||||
Date/Period/am: del matí
|
||||
Date/Period/pm: de la tarda
|
||||
RelativeDate/Future/Days: <<period>> dies des d'ara
|
||||
RelativeDate/Future/Hours: <<period>> hores des d'ara
|
||||
RelativeDate/Future/Minutes: <<period>> minuts des d'ara
|
||||
|
@@ -14,7 +14,7 @@ library: Tipus de mòdul genèric per a mòduls JavaScript de propòsit general.
|
||||
macro: Definicions de macros JavaScript.
|
||||
parser: Analitzadors sintàctics per a diferents tipus de continguts.
|
||||
route: Defineix com el servidor HTTP integrat gestiona els patrons d’URL individuals.
|
||||
saver: Gestionen diferents mètodes per a desar fitxers des del navegador.
|
||||
saver: Els gestors de baixades (saver) ofereixen diferents mètodes per a desar fitxers des del navegador.
|
||||
startup: Funcions de l'inici
|
||||
storyview: Les vistes de la cronologia personalitzen l'animació i el comportament dels widgets llista.
|
||||
texteditoroperation: Una operació de la barra d'eines de l'editor de text.
|
||||
|
@@ -29,6 +29,8 @@ external-link-foreground: Primer plà de l'enllaç extern
|
||||
external-link-foreground-hover: Primer plà de la bafarada de l'enllaç extern
|
||||
external-link-foreground-visited: Primer plà de l'enllaç extern visitat
|
||||
foreground: Primer plà general
|
||||
menubar-background: Fons de la barra de menús
|
||||
menubar-foreground: Primer plà de la barra de menús
|
||||
message-background: Fons de la capsa de text
|
||||
message-border: Vora de la capsa de text
|
||||
message-foreground: Primer plà de la capsa de text
|
||||
|
@@ -8,6 +8,7 @@ Field/Dropdown/Hint: Mostra la llista de camps
|
||||
Field/Remove/Caption: suprimeix el camp
|
||||
Field/Remove/Hint: Suprimeix el camp
|
||||
Fields/Add/Button: afegeix
|
||||
Fields/Add/Button/Hint: Afegeix un camp nou al tiddler
|
||||
Fields/Add/Dropdown/System: Camps del sistema
|
||||
Fields/Add/Dropdown/User: Camps de l'usuari
|
||||
Fields/Add/Name/Placeholder: nom del camp
|
||||
@@ -16,6 +17,7 @@ Fields/Add/Value/Placeholder: valors del camp
|
||||
Shadow/OverriddenWarning: Aquest és un tiddler ombra modificat. Podeu restablir la versió per omisió suprimint aquest tiddler
|
||||
Shadow/Warning: Aquest és un tiddler ombra. Qualsevol canvi sobreescriurà la versió per omisió
|
||||
Tags/Add/Button: afegeix
|
||||
Tags/Add/Button/Hint: afegeix una etiqueta
|
||||
Tags/Add/Placeholder: nom de l'etiqueta
|
||||
Tags/Dropdown/Caption: llista d'etiquetes
|
||||
Tags/Dropdown/Hint: Mostra la llista d'etiquetes
|
||||
|
@@ -1,13 +1,14 @@
|
||||
title: $:/language/Docs/Fields/
|
||||
|
||||
_canonical_uri: La URI sencera d'una imatge externa al tiddler
|
||||
_is_skinny: Si està present, indica que el camp de text del tiddler s'ha de carregar des del servidor
|
||||
bag: El nom de la bossa de la que va venir un tiddler
|
||||
caption: El text que es mostrarà en una pestanya o botó
|
||||
color: El valor del color CSS associat amb un tiddler
|
||||
component: El nom del component responsable d'un [[tiddler d'avís|AlertMechanism]]
|
||||
created: La data en que es va generar el tiddler
|
||||
creator: El nom de la persona que va generar el tiddler
|
||||
current-tiddler: Utilitzat per desar la darrera còpia del tiddler a una [[cronologia|HistoryMechanism]]
|
||||
current-tiddler: Utilitzat per desar la darrera còpia del tiddler de l'[[històrial|HistoryMechanism]]
|
||||
dependents: Per a un connector, llista els títols que depenen del connector
|
||||
description: El text que descriu un connector, o un diàleg modal
|
||||
draft.of: Per als tiddlers esborranys, conté el títol del tiddler del qual és un esborrany
|
||||
@@ -15,7 +16,7 @@ draft.title: Per als tiddlers esborranys, conté el títol proposat per al tiddl
|
||||
footer: El text del peu d'un assistent
|
||||
hide-body: El valor de la plantilla de vista amaga el cos dels tiddlers és: ''sí''
|
||||
icon: El títol del tiddler que conté la icona associada amb el tiddler
|
||||
library: Si està a "si" indica que un tiddler s'ha de sar com una biblioteca de JavaScript
|
||||
library: Si està a "si" indica que un tiddler s'ha desar com una biblioteca de JavaScript
|
||||
list: Una llista ordenada de títols de tiddlers associats amb un tiddler
|
||||
list-after: Si està activat, el títol del tiddler després del qual aquest tiddler s'hauria d'afegir a la llista ordenada de títols de tiddler
|
||||
list-before: Si està activat, el títol del tiddler abans del qual aquest tiddler s'hauria d'afegir a la llista ordenada de títols de tiddler, o a l'inici de la llista si aquest camp hi és però està buit
|
||||
@@ -30,7 +31,8 @@ source: La URL orígen associada a un tiddler
|
||||
subtitle: El text del subtítol d'un assistent
|
||||
tags: Una llista d'etiquetes associades a un tiddler
|
||||
text: El text del cos d'un tiddler
|
||||
throttle.refresh: Si està present, l’acceleració actualitza aquest tiddler
|
||||
title: El nom únic d'un tiddler
|
||||
toc-link: El valor de Suprimeix l'enllaç del tiddler a la Taula de Continguts està a: ''no''
|
||||
toc-link: El valor de Suprimeix l'enllaç del tiddler a l'Índex està a: ''no''
|
||||
type: El tipus de contingut d'un tiddler
|
||||
version: Informació de la versió d'un connector
|
||||
|
@@ -10,7 +10,7 @@ RecentSystemTiddlers: Tiddlers que s'han modificat recentment, inclós els tiddl
|
||||
RecentTiddlers: Tiddlers que s'han modificat recentment
|
||||
SessionTiddlers: Tiddlers modificats des que es va carregar el wiki
|
||||
ShadowTiddlers: Tiddlers amb ombra predefinits
|
||||
StoryList: Tiddlers al riu de la història, a excepció de <$text text="$:/AdvancedSearch"/>
|
||||
StoryList: Els tiddlers de la cronologia, a excepció de <$text text="$:/AdvancedSearch"/>
|
||||
SystemTags: Etiquetes del sistema
|
||||
SystemTiddlers: Tiddlers del sistema
|
||||
TypedTiddlers: Tiddlers amb text que no és wiki
|
||||
|
@@ -27,6 +27,7 @@ Error/Filter: S'ha produït un error del filtre
|
||||
Error/FilterSyntax: S'ha produït un error de sintaxi en l'expressió del filtre
|
||||
Error/IsFilterOperator: S'ha produït un error del filtre: operant desconegut per a l’operador de filtre "is"
|
||||
Error/LoadingPluginLibrary: S'ha produït un error en carregar la biblioteca del connector
|
||||
Error/NetworkErrorAlert: `<h2>''Error de la xarxa''</h2>Sembla que s'ha perdut la connexió amb el servidor. Això pot indicar un problema amb la vostra connexió de la xarxa. Intenteu restaurar la connectivitat de xarxa abans de continuar.<br><br>' Qualsevol canvi no guardat es sincronitzarà automàticament quan es restableixi la connectivitat''.'
|
||||
Error/RecursiveTransclusion: S'ha produït un error de transclusió recursiva en el widget de transclusió
|
||||
Error/RetrievingSkinny: S'ha produït un error en recuperar la llista de tiddler parcials
|
||||
Error/SavingToTWEdit: S'ha produït un error en desar a TWEdit
|
||||
@@ -63,8 +64,9 @@ SystemTiddlers/Include/Prompt: Inclou els tiddlers del sistema
|
||||
TagManager/Colour/Heading: Color
|
||||
TagManager/Count/Heading: Compte
|
||||
TagManager/Icon/Heading: Icona
|
||||
TagManager/Icons/None: Cap
|
||||
TagManager/Info/Heading: Informació
|
||||
TagManager/Tag/Heading: Etiqueta
|
||||
Tiddler/DateFormat: DDth de MMM de YYYY a les hh12:0mmam
|
||||
Tiddler/DateFormat: DD MMM YYYY a les hh12:0mm am
|
||||
UnsavedChangesWarning: Teniu canvis sense desar al TiddlyWiki
|
||||
Yes: Sí
|
||||
|
@@ -2,7 +2,7 @@ title: $:/language/Search/
|
||||
|
||||
DefaultResults/Caption: Llista
|
||||
Filter/Caption: Filtre
|
||||
Filter/Hint: Cerca amb una [[filter expression|https://tiddlywiki.com/static/Filters.html]]
|
||||
Filter/Hint: Cerca amb una [[expressió de filtre|https://tiddlywiki.com/static/Filters.html]]
|
||||
Filter/Matches: //<small><<resultCount>> coincidències</small>//
|
||||
Matches: //<small><<resultCount>> coincidències</small>//
|
||||
Matches/All: Totes les coincidències:
|
||||
|
@@ -1,9 +1,9 @@
|
||||
title: $:/language/Snippets/TableOfContents
|
||||
tags: $:/tags/TextEditor/Snippet
|
||||
caption: Taula de continguts
|
||||
caption: Índex
|
||||
|
||||
<div class="tc-table-of-contents">
|
||||
|
||||
<<toc-selective-expandable 'TableOfContents'>>
|
||||
<<toc-selective-expandable 'Índex'>>
|
||||
|
||||
</div>
|
@@ -5,37 +5,37 @@ Metrics/BodyFontSize: Mida del tipus de lletra per al cos de tiddler
|
||||
Metrics/BodyLineHeight: Alçada de la línia per al cos de tiddler
|
||||
Metrics/FontSize: Mida del tipus de lletra
|
||||
Metrics/LineHeight: Alçada de la línia
|
||||
Metrics/SidebarBreakpoint: Punt d’interrupció de la barra lateral
|
||||
Metrics/SidebarBreakpoint/Hint: l’amplada mínima de la pàgina en què apareixeran la cronologia i la barra lateral costat a costat
|
||||
Metrics/SidebarBreakpoint: Punt de baixada de la cronologia
|
||||
Metrics/SidebarBreakpoint/Hint: l’amplada mínima de la pàgina en que la cronologia i la barra lateral es mostren una al costat de l'altre
|
||||
Metrics/SidebarWidth: Amplada de la barra lateral
|
||||
Metrics/SidebarWidth/Hint: l'amplada de la barra lateral amb una disposició fluida fixe
|
||||
Metrics/StoryLeft: Posició esquerra de la cronologia
|
||||
Metrics/StoryLeft/Hint: distància entre el marge esquerre de la cronologia<br>(àrea del tiddler) fins a l’esquerra de la pàgina
|
||||
Metrics/StoryRight: Dreta de la cronologia
|
||||
Metrics/StoryRight/Hint: distància entre el marge esquerre de la barra lateral<br>fins a l’esquerra de la pàgina
|
||||
Metrics/StoryTop: Posició de la cronologia
|
||||
Metrics/StoryTop/Hint: distància del marge superior de la cronologia<br>fins a la part superior de la pàgina
|
||||
Metrics/StoryLeft: Marge esquerra de la cronologia
|
||||
Metrics/StoryLeft/Hint: marge esquerre entre la cronologia<br>(zona dels tiddlers) i la vora esquerra de la pàgina
|
||||
Metrics/StoryRight: Marge dret de la cronologia
|
||||
Metrics/StoryRight/Hint: distància entre el marge esquerre entre la barra lateral<br>i la vora esquerra de la pàgina
|
||||
Metrics/StoryTop: Posició vertical de la cronologia
|
||||
Metrics/StoryTop/Hint: distància del marge superior de la cronologia<br>fins a la vora superior de la pàgina
|
||||
Metrics/StoryWidth: Amplada de la cronologia
|
||||
Metrics/StoryWidth/Hint: l'amplada global de la cronologia
|
||||
Metrics/TiddlerWidth: Amplada del tiddler
|
||||
Metrics/TiddlerWidth/Hint: dins de la cronologia
|
||||
Metrics/TiddlerWidth: Amplada dels tiddlers
|
||||
Metrics/TiddlerWidth/Hint: a la cronologia
|
||||
Options: Opcions
|
||||
Options/CodeWrapping: Enganxa línies llargues en blocs de codi
|
||||
Options/CodeWrapping: Divideix les línies llargues dels blocs de codi
|
||||
Options/SidebarLayout: Disposició de la barra lateral
|
||||
Options/SidebarLayout/Fixed-Fluid: Cronologia fixe, barra lateral fluida
|
||||
Options/SidebarLayout/Fluid-Fixed: Cronologia fluida, barra lateral fixe
|
||||
Options/SidebarLayout/Fixed-Fluid: Cronologia fixa, barra lateral fluida
|
||||
Options/SidebarLayout/Fluid-Fixed: Cronologia fluida, barra lateral fixa
|
||||
Options/StickyTitles: Títols enganxosos
|
||||
Options/StickyTitles/Hint: Fa que els títols del tiddler "s'enganxin" a la part superior de la finestra del navegador
|
||||
Settings: Paràmetres
|
||||
Settings/BackgroundImage: Imatge de fons de la pàgina
|
||||
Settings/BackgroundImageAttachment: Adjunt de la imatge de fons de la pàgina
|
||||
Settings/BackgroundImageAttachment/Fixed: Fixe a la finestra
|
||||
Settings/BackgroundImageAttachment/Fixed: Fixa-ho a la finestra
|
||||
Settings/BackgroundImageAttachment/Scroll: Desplaça-ho amb els tiddlers
|
||||
Settings/BackgroundImageSize: Mida de la imatge de fons de la pàgina
|
||||
Settings/BackgroundImageSize/Contain: Conté
|
||||
Settings/BackgroundImageSize/Cover: Coberta
|
||||
Settings/BackgroundImageSize/Contain: Omple
|
||||
Settings/BackgroundImageSize/Cover: Retalla
|
||||
Settings/CodeFontFamily: Família del tipus de lletra del codi
|
||||
Settings/EditorFontFamily: Família del tipus de lletra de l'editor
|
||||
Settings/FontFamily: Família del tipus de lletra
|
||||
ThemeTweaks: Retocs del tema
|
||||
ThemeTweaks: Personalitza el tema
|
||||
ThemeTweaks/Hint: Podeu modificar alguns aspectes del tema ''Vainilla''.
|
||||
|
@@ -6,13 +6,13 @@ description: 呈现符合筛选条件的条目为指定的内容类型
|
||||
呈现符合筛选条的条目为指定的[[内容类型|ContentType]] (默认为 `text/html`) 与扩展名 (默认为 `.html`).
|
||||
|
||||
```
|
||||
--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
```
|
||||
|
||||
例如:
|
||||
|
||||
```
|
||||
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
|
||||
--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain
|
||||
```
|
||||
|
||||
默认情况下,路径名被解析为相对于版本文件夹的 `output` 子文件夹。 `--output` 命令可以用于将输出指定到一个不同的文件。
|
||||
|
@@ -6,13 +6,13 @@ description: 呈現符合篩選條件的條目為指定的內容類型
|
||||
呈現符合篩選條的條目為指定的[[內容類型|ContentType]] (預設為 `text/html`) 與副檔名 (預設為 `.html`).
|
||||
|
||||
```
|
||||
--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] ["noclean"]
|
||||
```
|
||||
|
||||
例如:
|
||||
|
||||
```
|
||||
--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain
|
||||
--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain
|
||||
```
|
||||
|
||||
預設情況下,路徑名被解析為相對於發行版資料夾的 `output` 子資料夾。 `--output` 命令可以用於將輸出指定到一個不同的資料夾。
|
||||
|
@@ -395,3 +395,11 @@ Matthias Bilger, @m42e, 2020/03/11
|
||||
Mandar Vaze, @mandarvaze, 2020/04/08
|
||||
|
||||
Lin Dongwu, @linonetwo, 2020/04/15
|
||||
|
||||
Tobias Hermann, @idotobi, 2020/04/19
|
||||
|
||||
Nicolas Petton, @NicolasPetton, 2020/04/30
|
||||
|
||||
Csaba Molnar, @mocsa, 2020/04/29
|
||||
|
||||
Jonas Passerini, @passuf, 2020/05/14
|
||||
|
@@ -0,0 +1,4 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: https://codemirror.net/LICENSE
|
||||
|
||||
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var y={},E=/[^\s\u00a0]/,M=e.Pos;function s(e){var n=e.search(E);return-1==n?0:n}function S(e,n){var t=e.getMode();return!1!==t.useInnerComments&&t.innerMode?e.getModeAt(n):t}e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",function(e){e=e||y;for(var n=this,t=1/0,i=this.listSelections(),l=null,o=i.length-1;0<=o;o--){var r=i[o].from(),m=i[o].to();r.line>=t||(m.line>=t&&(m=M(t,0)),t=r.line,null==l?l=n.uncomment(r,m,e)?"un":(n.lineComment(r,m,e),"line"):"un"==l?n.uncomment(r,m,e):n.lineComment(r,m,e))}}),e.defineExtension("lineComment",function(o,e,r){r=r||y;var n,t,m,a,c,g,f=this,i=S(f,o),l=f.getLine(o.line);null!=l&&(n=o,t=l,!/\bstring\b/.test(f.getTokenTypeAt(M(n.line,0)))||/^[\'\"\`]/.test(t))&&((m=r.lineComment||i.lineComment)?(a=Math.min(0!=e.ch||e.line==o.line?e.line+1:e.line,f.lastLine()+1),c=null==r.padding?" ":r.padding,g=r.commentBlankLines||o.line==e.line,f.operation(function(){if(r.indent){for(var e=null,n=o.line;n<a;++n){var t=(i=f.getLine(n)).slice(0,s(i));(null==e||e.length>t.length)&&(e=t)}for(n=o.line;n<a;++n){var i=f.getLine(n),l=e.length;(g||E.test(i))&&(i.slice(0,l)!=e&&(l=s(i)),f.replaceRange(e+m+c,M(n,0),M(n,l)))}}else for(n=o.line;n<a;++n)(g||E.test(f.getLine(n)))&&f.replaceRange(m+c,M(n,0))})):(r.blockCommentStart||i.blockCommentStart)&&(r.fullLines=!0,f.blockComment(o,e,r)))}),e.defineExtension("blockComment",function(i,l,o){o=o||y;var r,m,a=this,c=S(a,i),g=o.blockCommentStart||c.blockCommentStart,f=o.blockCommentEnd||c.blockCommentEnd;g&&f?/\bcomment\b/.test(a.getTokenTypeAt(M(i.line,0)))||((r=Math.min(l.line,a.lastLine()))!=i.line&&0==l.ch&&E.test(a.getLine(r))&&--r,m=null==o.padding?" ":o.padding,i.line>r||a.operation(function(){if(0!=o.fullLines){var e=E.test(a.getLine(r));a.replaceRange(m+f,M(r)),a.replaceRange(g+m,M(i.line,0));var n=o.blockCommentLead||c.blockCommentLead;if(null!=n)for(var t=i.line+1;t<=r;++t)t==r&&!e||a.replaceRange(n+m,M(t,0))}else a.replaceRange(f,l),a.replaceRange(g,i)})):(o.lineComment||c.lineComment)&&0!=o.fullLines&&a.lineComment(i,l,o)}),e.defineExtension("uncomment",function(e,n,t){t=t||y;var l,o=this,i=S(o,e),r=Math.min(0!=n.ch||n.line==e.line?n.line:n.line-1,o.lastLine()),m=Math.min(e.line,r),a=t.lineComment||i.lineComment,c=[],g=null==t.padding?" ":t.padding;e:if(a){for(var f=m;f<=r;++f){var s=o.getLine(f),d=s.indexOf(a);if(-1<d&&!/comment/.test(o.getTokenTypeAt(M(f,d+1)))&&(d=-1),-1==d&&E.test(s))break e;if(-1<d&&E.test(s.slice(0,d)))break e;c.push(s)}if(o.operation(function(){for(var e=m;e<=r;++e){var n=c[e-m],t=n.indexOf(a),i=t+a.length;t<0||(n.slice(i,i+g.length)==g&&(i+=g.length),l=!0,o.replaceRange("",M(e,t),M(e,i)))}}),l)return!0}var u=t.blockCommentStart||i.blockCommentStart,h=t.blockCommentEnd||i.blockCommentEnd;if(!u||!h)return!1;var p=t.blockCommentLead||i.blockCommentLead,C=o.getLine(m),b=C.indexOf(u);if(-1==b)return!1;var v=r==m?C:o.getLine(r),k=v.indexOf(h,r==m?b+u.length:0),L=M(m,b+1),x=M(r,k+1);if(-1==k||!/comment/.test(o.getTokenTypeAt(L))||!/comment/.test(o.getTokenTypeAt(x))||-1<o.getRange(L,x,"\n").indexOf(h))return!1;var R=-1==(T=C.lastIndexOf(u,e.ch))?-1:C.slice(0,e.ch).indexOf(h,T+u.length);if(-1!=T&&-1!=R&&R+h.length!=e.ch)return!1;R=v.indexOf(h,n.ch);var O=v.slice(n.ch).lastIndexOf(u,R-n.ch),T=-1==R||-1==O?-1:n.ch+O;return(-1==R||-1==T||T==n.ch)&&(o.operation(function(){o.replaceRange("",M(r,k-(g&&v.slice(k-g.length,k)==g?g.length:0)),M(r,k+h.length));var e=b+u.length;if(g&&C.slice(e,e+g.length)==g&&(e+=g.length),o.replaceRange("",M(m,b),M(m,e)),p)for(var n=m+1;n<=r;++n){var t,i=o.getLine(n),l=i.indexOf(p);-1==l||E.test(i.slice(0,l))||(t=l+p.length,g&&i.slice(t,t+g.length)==g&&(t+=g.length),o.replaceRange("",M(n,l),M(n,t)))}}),!0)})});
|
@@ -7,6 +7,13 @@
|
||||
"title": "$:/plugins/tiddlywiki/codemirror/keymap/sublime.js",
|
||||
"module-type": "codemirror"
|
||||
}
|
||||
},{
|
||||
"file": "addons/comment/comment.js",
|
||||
"fields": {
|
||||
"type": "application/javascript",
|
||||
"title": "$:/plugins/tiddlywiki/codemirror/addons/comment/comment.js",
|
||||
"module-type": "codemirror"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@@ -128,6 +128,11 @@ function CodeMirrorEngine(options) {
|
||||
this.cm.on("keydown",function(cm,event) {
|
||||
return self.widget.handleKeydownEvent.call(self.widget,event);
|
||||
});
|
||||
this.cm.on("focus",function(cm,event) {
|
||||
if(self.widget.editCancelPopups) {
|
||||
$tw.popup.cancel(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -3,21 +3,21 @@ tags: $:/tags/dynaviewExamples
|
||||
caption: Reveal on Scroll
|
||||
|
||||
\define indicator(index)
|
||||
<$reveal state="$:/state/unreveal-on-scroll/example$index$" type="match" text="yes">
|
||||
<$reveal state="$:/state/unreveal-on-scroll/example$index$" type="nomatch" text="">
|
||||
$index$
|
||||
</$reveal>
|
||||
\end
|
||||
|
||||
\define lorem-ipsum(index)
|
||||
<div class="tc-dynaview-set-tiddler-when-visible" style="min-height: 75px;" data-dynaview-set-tiddler="$:/state/unreveal-on-scroll/example$index$" data-dynaview-set-value="yes">
|
||||
<div class="tc-dynaview-track-tiddler-when-visible" style="min-height: 75px;" data-dynaview-track-tiddler="$:/state/unreveal-on-scroll/example$index$">
|
||||
<h1>Heading $index$</h1>
|
||||
<$reveal state="$:/state/unreveal-on-scroll/example$index$" type="match" text="yes">
|
||||
<$reveal state="$:/state/unreveal-on-scroll/example$index$" type="nomatch" text="">
|
||||
(Rendered at <<now "[UTC]YYYY-0MM-0DD 0hh:0mm:0ss.XXX">>) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
</$reveal>
|
||||
</div>
|
||||
\end
|
||||
|
||||
This example renders tiddlers as they are scrolled into view.
|
||||
This example renders tiddlers as they are scrolled into view, and hides them when they scroll out of view again.
|
||||
|
||||
Visible: <$list filter="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16">
|
||||
<$macrocall $name="indicator" index=<<currentTiddler>>/>
|
||||
|
@@ -1,28 +0,0 @@
|
||||
title: $:/plugins/tiddlywiki/dynaview/examples/unreveal-on-scroll
|
||||
tags: $:/tags/dynaviewExamples
|
||||
caption: Unreveal on Scroll
|
||||
|
||||
\define indicator(index)
|
||||
<$reveal state="$:/state/reveal-on-scroll/example$index$" type="match" text="yes">
|
||||
$index$
|
||||
</$reveal>
|
||||
\end
|
||||
|
||||
\define lorem-ipsum(index)
|
||||
<div class="tc-dynaview-set-tiddler-when-visible" style="min-height: 75px;" data-dynaview-set-tiddler="$:/state/reveal-on-scroll/example$index$" data-dynaview-set-value="yes" data-dynaview-unset-tiddler="$:/state/reveal-on-scroll/example$index$" data-dynaview-unset-value="no">
|
||||
<h1>Heading $index$</h1>
|
||||
<$reveal state="$:/state/reveal-on-scroll/example$index$" type="match" text="yes">
|
||||
(Rendered at <<now "[UTC]YYYY-0MM-0DD 0hh:0mm:0ss.XXX">>) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
</$reveal>
|
||||
</div>
|
||||
\end
|
||||
|
||||
This example renders tiddlers as they are scrolled into view, and hides them when they scroll out of view again.
|
||||
|
||||
Visible: <$list filter="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16">
|
||||
<$macrocall $name="indicator" index=<<currentTiddler>>/>
|
||||
</$list>
|
||||
|
||||
<$list filter="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16">
|
||||
<$macrocall $name="lorem-ipsum" index=<<currentTiddler>>/>
|
||||
</$list>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user