mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-23 10:07:19 +00:00
Obeisance to JSHint for core modules
There are still some warnings about making functions in a loop, but I’ll fix those as a separate pull request because the fixes are more than typographic errors.
This commit is contained in:
parent
2a3e54b064
commit
3a67fdb768
@ -26,7 +26,7 @@ Command.prototype.execute = function() {
|
||||
// Get the build targets defined in the wiki
|
||||
var buildTargets = $tw.boot.wikiInfo.build;
|
||||
if(!buildTargets) {
|
||||
return "No build targets defined"
|
||||
return "No build targets defined";
|
||||
}
|
||||
// Loop through each of the specified targets
|
||||
var targets;
|
||||
|
@ -78,7 +78,7 @@ SimpleServer.prototype.findMatchingRoute = function(request,state) {
|
||||
};
|
||||
|
||||
SimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {
|
||||
var header = request.headers["authorization"] || "",
|
||||
var header = request.headers.authorization || "",
|
||||
token = header.split(/\s+/).pop() || "",
|
||||
auth = $tw.utils.base64Decode(token),
|
||||
parts = auth.split(/:/),
|
||||
@ -89,7 +89,7 @@ SimpleServer.prototype.checkCredentials = function(request,incomingUsername,inco
|
||||
} else {
|
||||
return "DENIED";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
SimpleServer.prototype.listen = function(port,host) {
|
||||
var self = this;
|
||||
@ -167,8 +167,8 @@ var Command = function(params,commander,callback) {
|
||||
delete fields.fields;
|
||||
}
|
||||
// Remove any revision field
|
||||
if(fields["revision"]) {
|
||||
delete fields["revision"];
|
||||
if(fields.revision) {
|
||||
delete fields.revision;
|
||||
}
|
||||
state.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title}));
|
||||
var changeCount = state.wiki.getChangeCount(title).toString();
|
||||
@ -237,7 +237,7 @@ var Command = function(params,commander,callback) {
|
||||
tiddlerFields[name] = tiddler.getFieldString(name);
|
||||
}
|
||||
});
|
||||
tiddlerFields["revision"] = state.wiki.getChangeCount(title);
|
||||
tiddlerFields.revision = state.wiki.getChangeCount(title);
|
||||
tiddlerFields.type = tiddlerFields.type || "text/vnd.tiddlywiki";
|
||||
tiddlers.push(tiddlerFields);
|
||||
});
|
||||
@ -265,7 +265,7 @@ var Command = function(params,commander,callback) {
|
||||
tiddlerFields.fields[name] = value;
|
||||
}
|
||||
});
|
||||
tiddlerFields["revision"] = state.wiki.getChangeCount(title);
|
||||
tiddlerFields.revision = state.wiki.getChangeCount(title);
|
||||
tiddlerFields.type = tiddlerFields.type || "text/vnd.tiddlywiki";
|
||||
response.writeHead(200, {"Content-Type": "application/json"});
|
||||
response.end(JSON.stringify(tiddlerFields),"utf8");
|
||||
|
@ -109,7 +109,7 @@ exports["text/html"] = function(text,fields) {
|
||||
if(sysMatch) {
|
||||
results.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));
|
||||
}
|
||||
return results
|
||||
return results;
|
||||
} else {
|
||||
// Check whether we've got an encrypted file
|
||||
var encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);
|
||||
|
@ -20,7 +20,7 @@ function getIsFilterOperators() {
|
||||
$tw.modules.applyMethods("isfilteroperator",isFilterOperators);
|
||||
}
|
||||
return isFilterOperators;
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
Export our filter function
|
||||
|
@ -18,12 +18,12 @@ Export our filter function
|
||||
exports.plugintiddlers = function(source,operator,options) {
|
||||
var results = [];
|
||||
source(function(tiddler,title) {
|
||||
var pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerData(title,{tiddlers:[]});
|
||||
if(pluginInfo) {
|
||||
$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {
|
||||
results.push(title);
|
||||
});
|
||||
}
|
||||
var pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerData(title,{tiddlers:[]});
|
||||
if(pluginInfo) {
|
||||
$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {
|
||||
results.push(title);
|
||||
});
|
||||
}
|
||||
});
|
||||
results.sort();
|
||||
return results;
|
||||
|
@ -19,9 +19,9 @@ exports.shadowsource = function(source,operator,options) {
|
||||
var results = [];
|
||||
source(function(tiddler,title) {
|
||||
var source = options.wiki.getShadowSource(title);
|
||||
if(source) {
|
||||
if(source) {
|
||||
$tw.utils.pushTop(results,source);
|
||||
}
|
||||
}
|
||||
});
|
||||
results.sort();
|
||||
return results;
|
||||
|
@ -45,6 +45,6 @@ var prepare_results = function (source) {
|
||||
results.push(title);
|
||||
});
|
||||
return results;
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
@ -13,7 +13,7 @@ Initialise basic platform $:/info/ tiddlers
|
||||
"use strict";
|
||||
|
||||
exports.getInfoTiddlerFields = function() {
|
||||
var mapBoolean = function(value) {return value ? "yes" : "no"},
|
||||
var mapBoolean = function(value) {return value ? "yes" : "no";},
|
||||
infoTiddlerFields = [];
|
||||
// Basics
|
||||
infoTiddlerFields.push({title: "$:/info/browser", text: mapBoolean(!!$tw.browser)});
|
||||
|
@ -23,8 +23,8 @@ exports.types = {block: true};
|
||||
|
||||
exports.init = function(parser) {
|
||||
this.parser = parser;
|
||||
this.matchRegExp = /\<!--/mg;
|
||||
this.endMatchRegExp = /--\>/mg;
|
||||
this.matchRegExp = /<!--/mg;
|
||||
this.endMatchRegExp = /-->/mg;
|
||||
};
|
||||
|
||||
exports.findNextMatch = function(startPos) {
|
||||
|
@ -23,8 +23,8 @@ exports.types = {inline: true};
|
||||
|
||||
exports.init = function(parser) {
|
||||
this.parser = parser;
|
||||
this.matchRegExp = /\<!--/mg;
|
||||
this.endMatchRegExp = /--\>/mg;
|
||||
this.matchRegExp = /<!--/mg;
|
||||
this.endMatchRegExp = /-->/mg;
|
||||
};
|
||||
|
||||
exports.findNextMatch = function(startPos) {
|
||||
|
@ -56,7 +56,7 @@ exports.parse = function() {
|
||||
node.attributes.style = {type: "string", value: style};
|
||||
}
|
||||
if(classes) {
|
||||
node.attributes["itemClass"] = {type: "string", value: classes.split(".").join(" ")};
|
||||
node.attributes.itemClass = {type: "string", value: classes.split(".").join(" ")};
|
||||
}
|
||||
return [node];
|
||||
};
|
||||
|
@ -55,7 +55,7 @@ exports.parse = function() {
|
||||
node.attributes.style = {type: "string", value: style};
|
||||
}
|
||||
if(classes) {
|
||||
node.attributes["itemClass"] = {type: "string", value: classes.split(".").join(" ")};
|
||||
node.attributes.itemClass = {type: "string", value: classes.split(".").join(" ")};
|
||||
}
|
||||
return [node];
|
||||
};
|
||||
|
@ -34,7 +34,8 @@ exports.init = function(parser) {
|
||||
|
||||
exports.parse = function() {
|
||||
var reEnd = /(""")|(\r?\n)/mg,
|
||||
tree = [];
|
||||
tree = [],
|
||||
match;
|
||||
// Move past the match
|
||||
this.parser.pos = this.matchRegExp.lastIndex;
|
||||
do {
|
||||
@ -42,7 +43,7 @@ exports.parse = function() {
|
||||
tree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));
|
||||
// Redo the terminator match
|
||||
reEnd.lastIndex = this.parser.pos;
|
||||
var match = reEnd.exec(this.parser.source);
|
||||
match = reEnd.exec(this.parser.source);
|
||||
if(match) {
|
||||
this.parser.pos = reEnd.lastIndex;
|
||||
// Add a line break if the terminator was a line break
|
||||
|
@ -55,7 +55,6 @@ exports.parse = function() {
|
||||
classes.push.apply(classes, this.parser.parseClasses());
|
||||
this.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});
|
||||
var cite = this.parser.parseInlineRun(/(\r?\n)/mg);
|
||||
|
||||
// before handling the cite, parse the body of the quote
|
||||
var tree= this.parser.parseBlocks(reEndString);
|
||||
// If we got a cite, put it before the text
|
||||
@ -66,10 +65,9 @@ exports.parse = function() {
|
||||
children: cite
|
||||
});
|
||||
}
|
||||
|
||||
// Parse any optional cite
|
||||
this.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});
|
||||
var cite = this.parser.parseInlineRun(/(\r?\n)/mg);
|
||||
cite = this.parser.parseInlineRun(/(\r?\n)/mg);
|
||||
// If we got a cite, push it
|
||||
if(cite.length > 0) {
|
||||
tree.push({
|
||||
@ -78,7 +76,6 @@ exports.parse = function() {
|
||||
children: cite
|
||||
});
|
||||
}
|
||||
|
||||
// Return the blockquote element
|
||||
return [{
|
||||
type: "element",
|
||||
|
@ -27,7 +27,8 @@ var processRow = function(prevColumns) {
|
||||
tree = [],
|
||||
col = 0,
|
||||
colSpanCount = 1,
|
||||
prevCell;
|
||||
prevCell,
|
||||
vAlign;
|
||||
// Match a single cell
|
||||
cellRegExp.lastIndex = this.parser.pos;
|
||||
var cellMatch = cellRegExp.exec(this.parser.source);
|
||||
@ -38,7 +39,7 @@ var processRow = function(prevColumns) {
|
||||
if(last) {
|
||||
last.rowSpanCount++;
|
||||
$tw.utils.addAttributeToParseTreeNode(last.element,"rowspan",last.rowSpanCount);
|
||||
var vAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,"valign","center");
|
||||
vAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,"valign","center");
|
||||
$tw.utils.addAttributeToParseTreeNode(last.element,"valign",vAlign);
|
||||
if(colSpanCount > 1) {
|
||||
$tw.utils.addAttributeToParseTreeNode(last.element,"colspan",colSpanCount);
|
||||
@ -74,8 +75,8 @@ var processRow = function(prevColumns) {
|
||||
// For ordinary cells, step beyond the opening `|`
|
||||
this.parser.pos++;
|
||||
// Look for a space at the start of the cell
|
||||
var spaceLeft = false,
|
||||
vAlign = null;
|
||||
var spaceLeft = false;
|
||||
vAlign = null;
|
||||
if(this.parser.source.substr(this.parser.pos).search(/^\^([^\^]|\^\^)/) === 0) {
|
||||
vAlign = "top";
|
||||
} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {
|
||||
|
@ -41,19 +41,20 @@ exports.parse = function() {
|
||||
isBlock: true
|
||||
};
|
||||
// Prepare the tiddler widget
|
||||
var tr, targetTitle, targetField, targetIndex, tiddlerNode;
|
||||
if(textRef) {
|
||||
var tr = $tw.utils.parseTextReference(textRef),
|
||||
targetTitle = tr.title,
|
||||
targetField = tr.field,
|
||||
targetIndex = tr.index,
|
||||
tiddlerNode = {
|
||||
type: "tiddler",
|
||||
attributes: {
|
||||
tiddler: {type: "string", value: targetTitle}
|
||||
},
|
||||
isBlock: true,
|
||||
children: [transcludeNode]
|
||||
};
|
||||
tr = $tw.utils.parseTextReference(textRef);
|
||||
targetTitle = tr.title;
|
||||
targetField = tr.field;
|
||||
targetIndex = tr.index;
|
||||
tiddlerNode = {
|
||||
type: "tiddler",
|
||||
attributes: {
|
||||
tiddler: {type: "string", value: targetTitle}
|
||||
},
|
||||
isBlock: true,
|
||||
children: [transcludeNode]
|
||||
};
|
||||
}
|
||||
if(template) {
|
||||
transcludeNode.attributes.tiddler = {type: "string", value: template};
|
||||
|
@ -38,18 +38,19 @@ exports.parse = function() {
|
||||
attributes: {}
|
||||
};
|
||||
// Prepare the tiddler widget
|
||||
var tr, targetTitle, targetField, targetIndex, tiddlerNode;
|
||||
if(textRef) {
|
||||
var tr = $tw.utils.parseTextReference(textRef),
|
||||
targetTitle = tr.title,
|
||||
targetField = tr.field,
|
||||
targetIndex = tr.index,
|
||||
tiddlerNode = {
|
||||
type: "tiddler",
|
||||
attributes: {
|
||||
tiddler: {type: "string", value: targetTitle}
|
||||
},
|
||||
children: [transcludeNode]
|
||||
};
|
||||
tr = $tw.utils.parseTextReference(textRef);
|
||||
targetTitle = tr.title;
|
||||
targetField = tr.field;
|
||||
targetIndex = tr.index;
|
||||
tiddlerNode = {
|
||||
type: "tiddler",
|
||||
attributes: {
|
||||
tiddler: {type: "string", value: targetTitle}
|
||||
},
|
||||
children: [transcludeNode]
|
||||
};
|
||||
}
|
||||
if(template) {
|
||||
transcludeNode.attributes.tiddler = {type: "string", value: template};
|
||||
|
@ -68,7 +68,7 @@ exports.parse = function() {
|
||||
var widgetNode = this.parser.wiki.makeWidget(parser),
|
||||
container = $tw.fakeDocument.createElement("div");
|
||||
widgetNode.render(container,null);
|
||||
var text = renderType === "text/html" ? container.innerHTML : container.textContent;
|
||||
text = renderType === "text/html" ? container.innerHTML : container.textContent;
|
||||
return [{
|
||||
type: "element",
|
||||
tag: "pre",
|
||||
|
@ -27,7 +27,7 @@ var textPrimitives = {
|
||||
upperLetter: "[A-Z\u00c0-\u00d6\u00d8-\u00de\u0150\u0170]",
|
||||
lowerLetter: "[a-z0-9\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]",
|
||||
anyLetter: "[A-Za-z0-9\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]",
|
||||
blockPrefixLetters: "[A-Za-z0-9\-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]"
|
||||
blockPrefixLetters: "[A-Za-z0-9-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]"
|
||||
};
|
||||
|
||||
textPrimitives.unWikiLink = "~";
|
||||
|
@ -100,7 +100,7 @@ Get the next match out of an array of parse rule instances
|
||||
*/
|
||||
WikiParser.prototype.findNextMatch = function(rules,startPos) {
|
||||
// Find the best matching rule by finding the closest match position
|
||||
var matchingRule = undefined,
|
||||
var matchingRule,
|
||||
matchingRulePos = this.sourceLength;
|
||||
// Step through each rule
|
||||
for(var t=0; t<rules.length; t++) {
|
||||
@ -308,7 +308,7 @@ WikiParser.prototype.parseClasses = function() {
|
||||
while(match && match.index === this.pos) {
|
||||
this.pos = match.index + match[0].length;
|
||||
classNames.push(match[1]);
|
||||
var match = classRegExp.exec(this.source);
|
||||
match = classRegExp.exec(this.source);
|
||||
}
|
||||
return classNames;
|
||||
};
|
||||
@ -345,7 +345,7 @@ WikiParser.prototype.amendRules = function(type,names) {
|
||||
processRuleArray(this.pragmaRules);
|
||||
processRuleArray(this.blockRules);
|
||||
processRuleArray(this.inlineRules);
|
||||
}
|
||||
};
|
||||
|
||||
exports["text/vnd.tiddlywiki"] = WikiParser;
|
||||
|
||||
|
@ -74,7 +74,7 @@ function SaverHandler(options) {
|
||||
});
|
||||
// Set up our beforeunload handler
|
||||
window.addEventListener("beforeunload",function(event) {
|
||||
var confirmationMessage = undefined;
|
||||
var confirmationMessage;
|
||||
if(self.isDirty()) {
|
||||
confirmationMessage = $tw.language.getString("UnsavedChangesWarning");
|
||||
event.returnValue = confirmationMessage; // Gecko
|
||||
|
@ -32,7 +32,7 @@ AndTidWiki.prototype.save = function(text,method,callback) {
|
||||
pathname = pathname.substr(0,p);
|
||||
}
|
||||
// Save the file
|
||||
window.twi.saveFile(pathname,text)
|
||||
window.twi.saveFile(pathname,text);
|
||||
// Call the callback
|
||||
callback(null);
|
||||
return true;
|
||||
|
@ -21,7 +21,7 @@ TiddlyFoxSaver.prototype.save = function(text,method,callback) {
|
||||
// Get the pathname of this document
|
||||
var pathname = document.location.toString().split("#")[0];
|
||||
// Replace file://localhost/ with file:///
|
||||
if(pathname.indexOf("file://localhost/") == 0) {
|
||||
if(pathname.indexOf("file://localhost/") === 0) {
|
||||
pathname = "file://" + pathname.substr(16);
|
||||
}
|
||||
// Windows path file:///x:/blah/blah --> x:\blah\blah
|
||||
@ -32,10 +32,10 @@ TiddlyFoxSaver.prototype.save = function(text,method,callback) {
|
||||
} else if(pathname.indexOf("file://///") === 0) {
|
||||
pathname = "\\\\" + unescape(pathname.substr(10)).replace(/\//g,"\\");
|
||||
// Mac/Unix local path file:///path/path --> /path/path
|
||||
} else if(pathname.indexOf("file:///") == 0) {
|
||||
} else if(pathname.indexOf("file:///") === 0) {
|
||||
pathname = unescape(pathname.substr(7));
|
||||
// Mac/Unix local path file:/path/path --> /path/path
|
||||
} else if(pathname.indexOf("file:/") == 0) {
|
||||
} else if(pathname.indexOf("file:/") === 0) {
|
||||
pathname = unescape(pathname.substr(5));
|
||||
// Otherwise Windows networth path file://server/share/path/path --> \\server\share\path\path
|
||||
} else {
|
||||
|
@ -38,25 +38,25 @@ TWEditSaver.prototype.save = function(text,method,callback) {
|
||||
}
|
||||
// Error handler
|
||||
var errorHandler = function(event) {
|
||||
// Error
|
||||
callback("Error saving to TWEdit: " + event.target.error.code);
|
||||
};
|
||||
// Error
|
||||
callback("Error saving to TWEdit: " + event.target.error.code);
|
||||
};
|
||||
// Get the file system
|
||||
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {
|
||||
// Now we've got the filesystem, get the fileEntry
|
||||
fileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {
|
||||
// Now we've got the fileEntry, create the writer
|
||||
fileEntry.createWriter(function(writer) {
|
||||
writer.onerror = errorHandler;
|
||||
writer.onwrite = function() {
|
||||
callback(null);
|
||||
};
|
||||
writer.position = 0;
|
||||
writer.write(text);
|
||||
},errorHandler);
|
||||
}, errorHandler);
|
||||
}, errorHandler);
|
||||
return true;
|
||||
window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {
|
||||
// Now we've got the filesystem, get the fileEntry
|
||||
fileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {
|
||||
// Now we've got the fileEntry, create the writer
|
||||
fileEntry.createWriter(function(writer) {
|
||||
writer.onerror = errorHandler;
|
||||
writer.onwrite = function() {
|
||||
callback(null);
|
||||
};
|
||||
writer.position = 0;
|
||||
writer.write(text);
|
||||
},errorHandler);
|
||||
}, errorHandler);
|
||||
}, errorHandler);
|
||||
return true;
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -38,6 +38,6 @@ function setFavicon() {
|
||||
var faviconLink = document.getElementById("faviconLink");
|
||||
faviconLink.setAttribute("href","data:" + tiddler.fields.type + ";base64," + tiddler.fields.text);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
})();
|
||||
|
@ -19,7 +19,7 @@ exports.after = ["story"];
|
||||
exports.synchronous = true;
|
||||
|
||||
// Default story and history lists
|
||||
var PAGE_TITLE_TITLE = "$:/core/wiki/title"
|
||||
var PAGE_TITLE_TITLE = "$:/core/wiki/title";
|
||||
var PAGE_STYLESHEET_TITLE = "$:/core/ui/PageStylesheet";
|
||||
var PAGE_TEMPLATE_TITLE = "$:/core/ui/PageTemplate";
|
||||
|
||||
|
@ -48,7 +48,7 @@ exports.startup = function() {
|
||||
$tw.locationHash = hash;
|
||||
openStartupTiddlers({defaultToCurrentStory: true});
|
||||
}
|
||||
},false)
|
||||
},false);
|
||||
// Listen for the tm-browser-refresh message
|
||||
$tw.rootWidget.addEventListener("tm-browser-refresh",function(event) {
|
||||
window.location.reload(true);
|
||||
@ -157,7 +157,7 @@ function updateLocationHash(options) {
|
||||
}
|
||||
// Assemble the location hash
|
||||
if(options.updateAddressBar === "permalink") {
|
||||
$tw.locationHash = "#" + encodeURIComponent(targetTiddler)
|
||||
$tw.locationHash = "#" + encodeURIComponent(targetTiddler);
|
||||
} else {
|
||||
$tw.locationHash = "#" + encodeURIComponent(targetTiddler) + ":" + encodeURIComponent($tw.utils.stringifyList(storyList));
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ var easing = "cubic-bezier(0.645, 0.045, 0.355, 1)"; // From http://easings.net/
|
||||
|
||||
var ClassicStoryView = function(listWidget) {
|
||||
this.listWidget = listWidget;
|
||||
}
|
||||
};
|
||||
|
||||
ClassicStoryView.prototype.navigateTo = function(historyInfo) {
|
||||
var listElementIndex = this.listWidget.findListItem(0,historyInfo.title);
|
||||
|
@ -14,7 +14,7 @@ Animates list insertions and removals
|
||||
|
||||
var PopStoryView = function(listWidget) {
|
||||
this.listWidget = listWidget;
|
||||
}
|
||||
};
|
||||
|
||||
PopStoryView.prototype.navigateTo = function(historyInfo) {
|
||||
var listElementIndex = this.listWidget.findListItem(0,historyInfo.title);
|
||||
|
@ -86,7 +86,7 @@ ZoominListView.prototype.navigateTo = function(historyInfo) {
|
||||
]);
|
||||
// Transform the previous tiddler out of the way and then hide it
|
||||
if(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {
|
||||
var scale = zoomBounds.width / sourceBounds.width;
|
||||
scale = zoomBounds.width / sourceBounds.width;
|
||||
x = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;
|
||||
y = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;
|
||||
$tw.utils.setStyle(prevCurrentTiddler,[
|
||||
|
@ -20,7 +20,7 @@ wiki: wiki to be synced
|
||||
function Syncer(options) {
|
||||
var self = this;
|
||||
this.wiki = options.wiki;
|
||||
this.syncadaptor = options.syncadaptor
|
||||
this.syncadaptor = options.syncadaptor;
|
||||
// Make a logger
|
||||
this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : ""));
|
||||
// Compile the dirty tiddler filter
|
||||
@ -40,7 +40,7 @@ function Syncer(options) {
|
||||
if($tw.browser) {
|
||||
// Set up our beforeunload handler
|
||||
window.addEventListener("beforeunload",function(event) {
|
||||
var confirmationMessage = undefined;
|
||||
var confirmationMessage;
|
||||
if(self.isDirty()) {
|
||||
confirmationMessage = $tw.language.getString("UnsavedChangesWarning");
|
||||
event.returnValue = confirmationMessage; // Gecko
|
||||
@ -94,10 +94,10 @@ Syncer.prototype.readTiddlerInfo = function() {
|
||||
$tw.utils.each(tiddlers,function(title) {
|
||||
var tiddler = self.wiki.getTiddler(title);
|
||||
self.tiddlerInfo[title] = {
|
||||
revision: tiddler.fields["revision"],
|
||||
revision: tiddler.fields.revision,
|
||||
adaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),
|
||||
changeCount: self.wiki.getChangeCount(title)
|
||||
}
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
@ -329,7 +329,7 @@ Syncer.prototype.enqueueSyncTask = function(task) {
|
||||
revision: null,
|
||||
adaptorInfo: {},
|
||||
changeCount: -1
|
||||
}
|
||||
};
|
||||
}
|
||||
// Bail if this is a save and the tiddler is already at the changeCount that the server has
|
||||
if(task.type === "save" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {
|
||||
|
@ -36,10 +36,10 @@ exports.upgrade = function(wiki,titles,tiddlers) {
|
||||
$tw.utils.each(titles,function(title) {
|
||||
var incomingTiddler = tiddlers[title];
|
||||
// Check if we're dealing with a plugin
|
||||
if(incomingTiddler && incomingTiddler["plugin-type"] && incomingTiddler["version"]) {
|
||||
if(incomingTiddler && incomingTiddler["plugin-type"] && incomingTiddler.version) {
|
||||
// Upgrade the incoming plugin if we've got a newer version in the upgrade library
|
||||
var libraryTiddler = getLibraryTiddler(title);
|
||||
if(libraryTiddler && libraryTiddler["plugin-type"] && libraryTiddler["version"]) {
|
||||
if(libraryTiddler && libraryTiddler["plugin-type"] && libraryTiddler.version) {
|
||||
if($tw.utils.checkVersions(libraryTiddler.version,incomingTiddler.version)) {
|
||||
tiddlers[title] = libraryTiddler;
|
||||
messages[title] = $tw.language.getString("Import/Upgrader/Plugins/Upgraded",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});
|
||||
|
@ -51,10 +51,10 @@ exports.upgrade = function(wiki,titles,tiddlers) {
|
||||
tiddlers[mappedTitle] = {
|
||||
title: mappedTitle,
|
||||
text: tiddlerData[index]
|
||||
}
|
||||
};
|
||||
messages[mappedTitle] = $tw.language.getString("Import/Upgrader/ThemeTweaks/Created",{variables: {
|
||||
from: title + "##" + index
|
||||
}})
|
||||
}});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ Modal.prototype.display = function(title,options) {
|
||||
});
|
||||
// Setup the link if present
|
||||
if(options.downloadLink) {
|
||||
modalLink.href = options.downloadLink
|
||||
modalLink.href = options.downloadLink;
|
||||
modalLink.appendChild(document.createTextNode("Right-click to save changes"));
|
||||
modalBody.appendChild(modalLink);
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ var bumpSequenceNumber = function(object) {
|
||||
if(sequenceNumber !== null) {
|
||||
object.sequenceNumber = sequenceNumber++;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var TW_TextNode = function(text) {
|
||||
bumpSequenceNumber(this);
|
||||
@ -79,7 +79,7 @@ TW_Element.prototype.insertBefore = function(node,nextSibling) {
|
||||
} else {
|
||||
this.appendChild(node);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
TW_Element.prototype.removeChild = function(node) {
|
||||
var p = this.children.indexOf(node);
|
||||
@ -93,9 +93,9 @@ TW_Element.prototype.hasChildNodes = function() {
|
||||
};
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "firstChild", {
|
||||
get: function() {
|
||||
return this.children[0];
|
||||
}
|
||||
get: function() {
|
||||
return this.children[0];
|
||||
}
|
||||
});
|
||||
|
||||
TW_Element.prototype.addEventListener = function(type,listener,useCapture) {
|
||||
@ -106,22 +106,22 @@ Object.defineProperty(TW_Element.prototype, "className", {
|
||||
get: function() {
|
||||
return this.attributes["class"] || "";
|
||||
},
|
||||
set: function(value) {
|
||||
this.attributes["class"] = value;
|
||||
}
|
||||
set: function(value) {
|
||||
this.attributes["class"] = value;
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "value", {
|
||||
get: function() {
|
||||
return this.attributes["value"] || "";
|
||||
return this.attributes.value || "";
|
||||
},
|
||||
set: function(value) {
|
||||
this.attributes["value"] = value;
|
||||
}
|
||||
set: function(value) {
|
||||
this.attributes.value = value;
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "outerHTML", {
|
||||
get: function() {
|
||||
get: function() {
|
||||
var output = [],attr,a,v;
|
||||
output.push("<",this.tag);
|
||||
if(this.attributes) {
|
||||
@ -143,7 +143,7 @@ Object.defineProperty(TW_Element.prototype, "outerHTML", {
|
||||
output.push("</",this.tag,">");
|
||||
}
|
||||
return output.join("");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "innerHTML", {
|
||||
@ -162,10 +162,10 @@ Object.defineProperty(TW_Element.prototype, "innerHTML", {
|
||||
return b.join("");
|
||||
}
|
||||
},
|
||||
set: function(value) {
|
||||
this.isRaw = true;
|
||||
this.rawHTML = value;
|
||||
}
|
||||
set: function(value) {
|
||||
this.isRaw = true;
|
||||
this.rawHTML = value;
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(TW_Element.prototype, "textContent", {
|
||||
@ -193,7 +193,7 @@ Object.defineProperty(TW_Element.prototype, "formattedTextContent", {
|
||||
b.push("\n");
|
||||
}
|
||||
if(this.tag === "li") {
|
||||
b.push("* ")
|
||||
b.push("* ");
|
||||
}
|
||||
$tw.utils.each(this.children,function(node) {
|
||||
b.push(node.formattedTextContent);
|
||||
|
@ -41,7 +41,7 @@ exports.copyDirectory = function(srcPath,dstPath) {
|
||||
if(err) {
|
||||
return err;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
copy(srcPath,dstPath);
|
||||
@ -70,7 +70,7 @@ exports.copyFile = function(srcPath,dstPath) {
|
||||
fs.closeSync(srcFile);
|
||||
fs.closeSync(dstFile);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Remove trailing path separator
|
||||
|
@ -41,9 +41,9 @@ exports.addClassToParseTreeNode = function(node,classString) {
|
||||
|
||||
exports.addStyleToParseTreeNode = function(node,name,value) {
|
||||
node.attributes = node.attributes || {};
|
||||
node.attributes["style"] = node.attributes["style"] || {type: "string", value: ""};
|
||||
if(node.attributes["style"].type === "string") {
|
||||
node.attributes["style"].value += name + ":" + value + ";";
|
||||
node.attributes.style = node.attributes.style || {type: "string", value: ""};
|
||||
if(node.attributes.style.type === "string") {
|
||||
node.attributes.style.value += name + ":" + value + ";";
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -24,15 +24,16 @@ exports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {
|
||||
throw "No such tiddler as " + title;
|
||||
}
|
||||
// Extract the JSON
|
||||
var jsonPluginTiddler;
|
||||
try {
|
||||
var jsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);
|
||||
jsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);
|
||||
} catch(e) {
|
||||
throw "Cannot parse plugin tiddler " + title + "\nError: " + e;
|
||||
}
|
||||
// Get the list of tiddlers
|
||||
var tiddlers = Object.keys(jsonPluginTiddler.tiddlers);
|
||||
// Add the additional tiddlers
|
||||
$tw.utils.pushTop(tiddlers,additionalTiddlers)
|
||||
$tw.utils.pushTop(tiddlers,additionalTiddlers);
|
||||
// Remove any excluded tiddlers
|
||||
for(var t=tiddlers.length-1; t>=0; t--) {
|
||||
if(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {
|
||||
@ -75,6 +76,6 @@ exports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {
|
||||
$tw.rootWidget.dispatchEvent({type: "tw-auto-save-wiki"});
|
||||
// Return a heartwarming confirmation
|
||||
return "Plugin " + title + " successfully saved";
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
@ -126,7 +126,7 @@ DropZoneWidget.prototype.importData = function(dataTransfer) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
DropZoneWidget.prototype.importDataTypes = [
|
||||
|
@ -120,7 +120,7 @@ EditBitmapWidget.prototype.loadCanvas = function() {
|
||||
self.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);
|
||||
// Set the width and height input boxes
|
||||
self.updateSize();
|
||||
}
|
||||
};
|
||||
// Get the current bitmap into an image object
|
||||
currImage.src = "data:" + tiddler.fields.type + ";base64," + tiddler.fields.text;
|
||||
};
|
||||
@ -135,7 +135,7 @@ EditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {
|
||||
ctx.fillStyle = "#fff";
|
||||
ctx.fillRect(0,0,canvas.width,canvas.height);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
** Update the input boxes with the actual size of the canvas
|
||||
|
@ -78,7 +78,7 @@ FieldsWidget.prototype.execute = function() {
|
||||
row = row.replace("$name$",fieldName);
|
||||
row = row.replace("$value$",value);
|
||||
row = row.replace("$encoded_value$",$tw.utils.htmlEncode(value));
|
||||
text.push(row)
|
||||
text.push(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ LinkWidget.prototype.render = function(parent,nextSibling) {
|
||||
this.execute();
|
||||
// Get the value of the tv-wikilinks configuration macro
|
||||
var wikiLinksMacro = this.getVariable("tv-wikilinks"),
|
||||
useWikiLinks = wikiLinksMacro ? !(wikiLinksMacro.trim() === "no") : true;
|
||||
useWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== "no") : true;
|
||||
// Render the link if required
|
||||
if(useWikiLinks) {
|
||||
this.renderLink(parent,nextSibling);
|
||||
|
@ -44,7 +44,7 @@ ListWidget.prototype.render = function(parent,nextSibling) {
|
||||
// Construct the storyview
|
||||
var StoryView = this.storyViews[this.storyViewName];
|
||||
if(StoryView && !this.document.isTiddlyWikiFakeDom) {
|
||||
this.storyview = new StoryView(this)
|
||||
this.storyview = new StoryView(this);
|
||||
} else {
|
||||
this.storyview = null;
|
||||
}
|
||||
|
@ -283,9 +283,10 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
|
||||
Generate a title for the draft of a given tiddler
|
||||
*/
|
||||
NavigatorWidget.prototype.generateDraftTitle = function(title) {
|
||||
var c = 0;
|
||||
var c = 0,
|
||||
draftTitle;
|
||||
do {
|
||||
var draftTitle = "Draft " + (c ? (c + 1) + " " : "") + "of '" + title + "'";
|
||||
draftTitle = "Draft " + (c ? (c + 1) + " " : "") + "of '" + title + "'";
|
||||
c++;
|
||||
} while(this.wiki.tiddlerExists(draftTitle));
|
||||
return draftTitle;
|
||||
|
@ -41,7 +41,7 @@ RevealWidget.prototype.render = function(parent,nextSibling) {
|
||||
$tw.utils.addClass(domNode,"tc-popup"); // Make sure that clicks don't dismiss popups within the revealed content
|
||||
}
|
||||
if(!this.isOpen) {
|
||||
domNode.setAttribute("hidden","true")
|
||||
domNode.setAttribute("hidden","true");
|
||||
}
|
||||
this.domNodes.push(domNode);
|
||||
};
|
||||
|
@ -44,7 +44,7 @@ TiddlerWidget.prototype.execute = function() {
|
||||
this.setVariable("missingTiddlerClass",(this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? "tc-tiddler-exists" : "tc-tiddler-missing");
|
||||
this.setVariable("shadowTiddlerClass",this.wiki.isShadowTiddler(this.tiddlerTitle) ? "tc-tiddler-shadow" : "");
|
||||
this.setVariable("systemTiddlerClass",this.wiki.isSystemTiddler(this.tiddlerTitle) ? "tc-tiddler-system" : "");
|
||||
this.setVariable("tiddlerTagClasses",this.getTagClasses())
|
||||
this.setVariable("tiddlerTagClasses",this.getTagClasses());
|
||||
// Construct the child widgets
|
||||
this.makeChildWidgets();
|
||||
};
|
||||
|
@ -171,7 +171,7 @@ Widget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue)
|
||||
else for(var i=0; i<actualParams.length; ++i) {
|
||||
args.push(actualParams[i].value);
|
||||
}
|
||||
return macro.run.apply(this,args)
|
||||
return macro.run.apply(this,args);
|
||||
} else {
|
||||
return defaultValue;
|
||||
}
|
||||
@ -289,7 +289,7 @@ Construct the widget object for a parse tree node
|
||||
Widget.prototype.makeChildWidget = function(parseTreeNode) {
|
||||
var WidgetClass = this.widgetClasses[parseTreeNode.type];
|
||||
if(!WidgetClass) {
|
||||
WidgetClass = this.widgetClasses["text"];
|
||||
WidgetClass = this.widgetClasses.text;
|
||||
parseTreeNode = {type: "text", text: "Undefined widget '" + parseTreeNode.type + "'"};
|
||||
}
|
||||
return new WidgetClass(parseTreeNode,{
|
||||
@ -357,8 +357,7 @@ Widget.prototype.addEventListener = function(type,handler) {
|
||||
} else { // The handler is a function
|
||||
this.eventListeners[type] = function(event) {
|
||||
return handler.call(self,event);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -158,7 +158,7 @@ exports.getSizeOfTiddlerEventQueue = function() {
|
||||
|
||||
exports.clearTiddlerEventQueue = function() {
|
||||
this.changedTiddlers = Object.create(null);
|
||||
this.changeCount = Object.create(null)
|
||||
this.changeCount = Object.create(null);
|
||||
};
|
||||
|
||||
exports.getChangeCount = function(title) {
|
||||
@ -176,12 +176,12 @@ Generate an unused title from the specified base
|
||||
exports.generateNewTitle = function(baseTitle,options) {
|
||||
options = options || {};
|
||||
var c = 0,
|
||||
title = baseTitle;
|
||||
title = baseTitle;
|
||||
while(this.tiddlerExists(title) || this.isShadowTiddler(title)) {
|
||||
title = baseTitle +
|
||||
(options.prefix || " ") +
|
||||
(++c);
|
||||
};
|
||||
}
|
||||
return title;
|
||||
};
|
||||
|
||||
@ -461,7 +461,7 @@ exports.getTagMap = function() {
|
||||
for(var index=0; index<tagArray.length; index++) {
|
||||
var tag = tagArray[index];
|
||||
if($tw.utils.hop(tags,tag)) {
|
||||
tags[tag].push(title)
|
||||
tags[tag].push(title);
|
||||
} else {
|
||||
tags[tag] = [title];
|
||||
}
|
||||
@ -600,7 +600,7 @@ exports.getTiddlerData = function(titleOrTiddler,defaultData) {
|
||||
var tiddler = titleOrTiddler,
|
||||
data;
|
||||
if(!(tiddler instanceof $tw.Tiddler)) {
|
||||
tiddler = this.getTiddler(tiddler)
|
||||
tiddler = this.getTiddler(tiddler);
|
||||
}
|
||||
if(tiddler && tiddler.fields.text) {
|
||||
switch(tiddler.fields.type) {
|
||||
@ -683,7 +683,7 @@ exports.getGlobalCache = function(cacheName,initializer) {
|
||||
|
||||
exports.clearGlobalCache = function() {
|
||||
this.globalCache = Object.create(null);
|
||||
}
|
||||
};
|
||||
|
||||
// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it
|
||||
exports.getCacheForTiddler = function(title,cacheName,initializer) {
|
||||
@ -691,18 +691,18 @@ exports.getCacheForTiddler = function(title,cacheName,initializer) {
|
||||
// Temporarily disable caching so that tweakParseTreeNode() works
|
||||
return initializer();
|
||||
|
||||
this.caches = this.caches || Object.create(null);
|
||||
var caches = this.caches[title];
|
||||
if(caches && caches[cacheName]) {
|
||||
return caches[cacheName];
|
||||
} else {
|
||||
if(!caches) {
|
||||
caches = Object.create(null);
|
||||
this.caches[title] = caches;
|
||||
}
|
||||
caches[cacheName] = initializer();
|
||||
return caches[cacheName];
|
||||
}
|
||||
// this.caches = this.caches || Object.create(null);
|
||||
// var caches = this.caches[title];
|
||||
// if(caches && caches[cacheName]) {
|
||||
// return caches[cacheName];
|
||||
// } else {
|
||||
// if(!caches) {
|
||||
// caches = Object.create(null);
|
||||
// this.caches[title] = caches;
|
||||
// }
|
||||
// caches[cacheName] = initializer();
|
||||
// return caches[cacheName];
|
||||
// }
|
||||
};
|
||||
|
||||
// Clear all caches associated with a particular tiddler
|
||||
@ -793,16 +793,16 @@ var tweakParser = function(parser) {
|
||||
exports.parseText = function(type,text,options) {
|
||||
var parser = this.old_parseText(type,text,options);
|
||||
if(parser) {
|
||||
tweakParser(parser)
|
||||
};
|
||||
tweakParser(parser);
|
||||
}
|
||||
return parser;
|
||||
};
|
||||
|
||||
exports.parseTiddler = function(title,options) {
|
||||
var parser = this.old_parseTiddler(title,options);
|
||||
if(parser) {
|
||||
tweakParser(parser)
|
||||
};
|
||||
tweakParser(parser);
|
||||
}
|
||||
return parser;
|
||||
};
|
||||
|
||||
@ -961,7 +961,9 @@ Options available:
|
||||
*/
|
||||
exports.search = function(text,options) {
|
||||
options = options || {};
|
||||
var self = this,t;
|
||||
var self = this,
|
||||
t,
|
||||
invert = !!options.invert;
|
||||
// Convert the search string into a regexp for each term
|
||||
var terms, searchTermsRegExps,
|
||||
flags = options.caseSensitive ? "" : "i";
|
||||
@ -1011,7 +1013,7 @@ exports.search = function(text,options) {
|
||||
var results = [],
|
||||
source = options.source || this.each;
|
||||
source(function(tiddler,title) {
|
||||
if(!!searchTiddler(title) === !options.invert) {
|
||||
if(searchTiddler(title) !== options.invert) {
|
||||
results.push(title);
|
||||
}
|
||||
});
|
||||
@ -1060,7 +1062,7 @@ exports.readFiles = function(files,callback) {
|
||||
callback(result);
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
return files.length;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user