mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-09-07 21:36:06 +00:00
Changed App.js to be a proper object class
This commit is contained in:
89
js/App.js
89
js/App.js
@@ -18,20 +18,21 @@ var WikiStore = require("./WikiStore.js").WikiStore,
|
|||||||
Navigators = require("./Navigators.js").Navigators,
|
Navigators = require("./Navigators.js").Navigators,
|
||||||
StoryNavigator = require("./StoryNavigator.js").StoryNavigator;
|
StoryNavigator = require("./StoryNavigator.js").StoryNavigator;
|
||||||
|
|
||||||
var store = new WikiStore(),
|
var App = function() {
|
||||||
t;
|
var t;
|
||||||
|
// Check if we're running on the server or the client
|
||||||
// Register the wikitext processor
|
this.isBrowser = typeof window !== "undefined";
|
||||||
store.registerTextProcessor("text/x-tiddlywiki",new WikiTextProcessor({
|
// Create the main store
|
||||||
store: store
|
this.store = new WikiStore();
|
||||||
}));
|
// Register the wikitext processor
|
||||||
|
this.store.registerTextProcessor("text/x-tiddlywiki",new WikiTextProcessor({
|
||||||
// Register the standard tiddler serializers and deserializers
|
store: this.store
|
||||||
tiddlerInput.register(store);
|
}));
|
||||||
tiddlerOutput.register(store);
|
// Register the standard tiddler serializers and deserializers
|
||||||
|
tiddlerInput.register(this.store);
|
||||||
// Add the shadow tiddlers that are built into TiddlyWiki
|
tiddlerOutput.register(this.store);
|
||||||
var shadowShadowStore = new WikiStore({
|
// Add the shadow tiddlers that are built into TiddlyWiki
|
||||||
|
var shadowShadowStore = new WikiStore({
|
||||||
shadowStore: null
|
shadowStore: null
|
||||||
}),
|
}),
|
||||||
shadowShadows = [
|
shadowShadows = [
|
||||||
@@ -47,37 +48,41 @@ var shadowShadowStore = new WikiStore({
|
|||||||
{title: "SiteSubtitle", text: "a reusable non-linear personal web notebook"},
|
{title: "SiteSubtitle", text: "a reusable non-linear personal web notebook"},
|
||||||
{title: "SiteUrl", text: ""}
|
{title: "SiteUrl", text: ""}
|
||||||
];
|
];
|
||||||
store.shadows.shadows = shadowShadowStore;
|
this.store.shadows.shadows = shadowShadowStore;
|
||||||
for(t=0; t<shadowShadows.length; t++) {
|
for(t=0; t<shadowShadows.length; t++) {
|
||||||
shadowShadowStore.addTiddler(new Tiddler(shadowShadows[t]));
|
shadowShadowStore.addTiddler(new Tiddler(shadowShadows[t]));
|
||||||
}
|
}
|
||||||
|
// If in the browser, load the tiddlers built into the TiddlyWiki document
|
||||||
// Load the tiddlers built into the TiddlyWiki document
|
if(this.isBrowser) {
|
||||||
var storeArea = document.getElementById("storeArea"),
|
var storeArea = document.getElementById("storeArea"),
|
||||||
tiddlers = store.deserializeTiddlers("(DOM)",storeArea);
|
tiddlers = this.store.deserializeTiddlers("(DOM)",storeArea);
|
||||||
for(t=0; t<tiddlers.length; t++) {
|
for(t=0; t<tiddlers.length; t++) {
|
||||||
store.addTiddler(new Tiddler(tiddlers[t]));
|
this.store.addTiddler(new Tiddler(tiddlers[t]));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Set up the sandbox for evaluated macro parameters
|
// Set up the sandbox for JavaScript parsing
|
||||||
store.sandbox = new Sandbox(store.getTiddlerText("javascript.pegjs"));
|
if(this.isBrowser) {
|
||||||
|
this.store.sandbox = new Sandbox(this.store.getTiddlerText("javascript.pegjs"));
|
||||||
// Install the standard navigators
|
} else {
|
||||||
var navigators = new Navigators({
|
this.store.sandbox = new Sandbox(require("fs").readFileSync("parsers/javascript.pegjs","utf8"));
|
||||||
|
}
|
||||||
|
// Hack to install standard macros
|
||||||
|
this.store.installMacros();
|
||||||
|
// Set up navigation if we're in the browser
|
||||||
|
if(this.isBrowser) {
|
||||||
|
// Install the standard navigators
|
||||||
|
var navigators = new Navigators({
|
||||||
document: document,
|
document: document,
|
||||||
store: store
|
store: this.store
|
||||||
});
|
});
|
||||||
|
navigators.registerNavigator("StoryNavigator",new StoryNavigator(navigators));
|
||||||
|
// Use the story navigator for all links
|
||||||
|
navigators.install("a","StoryNavigator");
|
||||||
|
// Navigate to HelloThere
|
||||||
|
navigators.navigateTo("HelloThere","StoryNavigator");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
navigators.registerNavigator("StoryNavigator",new StoryNavigator(navigators));
|
exports.App = App;
|
||||||
// Use the story navigator for all links
|
|
||||||
navigators.install("a","StoryNavigator");
|
|
||||||
|
|
||||||
store.installMacros();
|
|
||||||
|
|
||||||
//console.log(JSON.stringify(store.sandbox.parse("store.classesForLink(\"HelloThere\");")));
|
|
||||||
|
|
||||||
// Navigate to HelloThere
|
|
||||||
navigators.navigateTo("HelloThere","StoryNavigator");
|
|
||||||
|
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@@ -62,7 +62,7 @@ function executeModule(modName,modRoot) {
|
|||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
// Execute the main module
|
// Execute the main module
|
||||||
executeModule("js/App.js");
|
var app = new (executeModule("js/App.js").App)();
|
||||||
})
|
})
|
||||||
|
|
||||||
})();
|
})();
|
Reference in New Issue
Block a user