1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-27 03:57:21 +00:00
Ensure we don’t generate permalinks with a target that is not in the
current story
This commit is contained in:
Jermolene 2014-05-05 21:23:29 +01:00
parent f368175cb0
commit 56251dc1f8

View File

@ -97,12 +97,19 @@ function openStartupTiddlers(options) {
} }
function updateLocationHash() { function updateLocationHash() {
// Get the story and the history stack
var storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE), var storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),
historyList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]); historyList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]);
var targetTiddler = ""; var targetTiddler = "";
// The target tiddler is the one at the top of the stack
if(historyList.length > 0) { if(historyList.length > 0) {
targetTiddler = historyList[historyList.length-1].title; targetTiddler = historyList[historyList.length-1].title;
} }
// Blank the target tiddler if it isn't present in the story
if(storyList.indexOf(targetTiddler) === -1) {
targetTiddler = "";
}
// Assemble the location hash
$tw.locationHash = "#" + encodeURIComponent(targetTiddler) + ":" + encodeURIComponent($tw.utils.stringifyList(storyList)); $tw.locationHash = "#" + encodeURIComponent(targetTiddler) + ":" + encodeURIComponent($tw.utils.stringifyList(storyList));
// Only change the location hash if we must, thus avoiding unnecessary onhashchange events // Only change the location hash if we must, thus avoiding unnecessary onhashchange events
if($tw.utils.getLocationHash() !== $tw.locationHash) { if($tw.utils.getLocationHash() !== $tw.locationHash) {