1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-17 23:34:50 +00:00

Hash the state qualifier to make it shorter

We were having problems with TW5 generating filepaths that were longer
than Windows likes.

Fixes #240
This commit is contained in:
Jermolene 2013-11-28 10:53:37 +00:00
parent 1e14ba48f9
commit c0a6e94b21
2 changed files with 13 additions and 2 deletions

View File

@ -402,4 +402,15 @@ exports.getAnimationDuration = function() {
return parseInt($tw.wiki.getTiddlerText("$:/config/AnimationDuration","400"),10); return parseInt($tw.wiki.getTiddlerText("$:/config/AnimationDuration","400"),10);
}; };
/*
Hash a string to a number
Derived from http://stackoverflow.com/a/15710692
*/
exports.hashString = function(str) {
return str.split("").reduce(function(a,b) {
a = ((a << 5) - a) + b.charCodeAt(0);
return a & a;
},0);
};
})(); })();

View File

@ -188,7 +188,7 @@ Widget.prototype.hasVariable = function(name,value) {
}; };
/* /*
Construct a qualifying string based on concatenating the values of a given variable in the parent chain Construct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain
*/ */
Widget.prototype.getStateQualifier = function(name) { Widget.prototype.getStateQualifier = function(name) {
name = name || "transclusion"; name = name || "transclusion";
@ -200,7 +200,7 @@ Widget.prototype.getStateQualifier = function(name) {
} }
node = node.parentWidget; node = node.parentWidget;
} }
return output.join(""); return "{" + $tw.utils.hashString(output.join("")) + "}";
}; };
/* /*