diff --git a/package.json b/package.json
index 9a7cb185..d96d20c3 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,6 @@
},
"dependencies": {
"express": "3.x",
- "nodetime": "~0.8.13"
},
"devDependencies": {
"grunt": "~0.4.1",
diff --git a/public/cache.manifest b/public/cache.manifest
index e5476104..4729efe7 100644
--- a/public/cache.manifest
+++ b/public/cache.manifest
@@ -1,5 +1,5 @@
CACHE MANIFEST
-#Date Sun Oct 13 2013 00:36:02
+#Date Sun Oct 13 2013 20:59:14
CACHE:
index.html
diff --git a/public/res-min/main.js b/public/res-min/main.js
index 4bf7682b..112ece08 100644
--- a/public/res-min/main.js
+++ b/public/res-min/main.js
@@ -13279,9 +13279,9 @@ printStackTrace.implementation = function() {}, printStackTrace.implementation.p
}
var utils = {};
utils.getURLParameter = function(e) {
- var t = new RegExp(e + "=(.+?)(&|$)");
+ var t = new RegExp("(?:\\?|\\#\\!|&)" + e + "=(.+?)(?:&|\\#|$)");
try {
- return decodeURIComponent(t.exec(location.search)[1]);
+ return decodeURIComponent(t.exec(location.search + location.hash)[1]);
} catch (n) {
return void 0;
}
@@ -13297,7 +13297,7 @@ printStackTrace.implementation = function() {}, printStackTrace.implementation.p
}, utils.getInputIntValue = function(e, t, n, i) {
e = jqElt(e);
var o = utils.getInputTextValue(e, t);
- return void 0 === o ? void 0 : (o = parseInt(o), isNaN(o) || void 0 !== n && n > o || void 0 !== i && o > i ? (inputError(e, t),
+ return void 0 === o ? void 0 : (o = parseInt(o, 10), isNaN(o) || void 0 !== n && n > o || void 0 !== i && o > i ? (inputError(e, t),
void 0) : o);
}, utils.getInputRegExpValue = function(e, t) {
e = jqElt(e);
@@ -13332,8 +13332,10 @@ printStackTrace.implementation = function() {}, printStackTrace.implementation.p
$(".modal input[type=checkbox]").prop("checked", !1).change();
}, utils.trim = function(e) {
return $.trim(e);
- }, utils.slugify = function(e) {
- return e.toLowerCase().replace(/\s/g, "-").replace(XRegExp("[^\\p{L}]", "g"), "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
+ };
+ var nonWordChars = XRegExp("[^\\p{L}-]", "g");
+ utils.slugify = function(e) {
+ return e.toLowerCase().replace(/\s/g, "-").replace(nonWordChars, "").replace(/\-\-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
}, utils.checkUrl = function(e, t) {
return e ? (0 !== e.indexOf("http") && (e = "http://" + e), t && -1 === e.indexOf("/", e.length - 1) && (e += "/"),
e) : e;
@@ -14506,7 +14508,7 @@ define("config", function() {}), define("storage", [ "underscore", "utils" ], fu
n.onFileSelected = function(e) {
o = e;
};
- var r = /^(\s*-{3}\s*\n([\w\W]+?)\n\s*-{3}\s*\n)?([\w\W]*)*/;
+ var r = /^(\s*-{3}\s*\n([\w\W]+?)\n\s*-{3}\s*\n)?([\w\W]*)/;
return n.onPagedownConfigure = function(e) {
var n = e.getConverter();
n.hooks.chain("preConversion", function(e) {
@@ -14594,7 +14596,7 @@ define("config", function() {}), define("storage", [ "underscore", "utils" ], fu
s.onSectionsCreated = function(t) {
var n = [], i = "\n";
m = !1, e.each(t, function(e) {
- e += "\n\n", g && (e = e.replace(/^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/g, function(e, t) {
+ e += "\n\n", g && (e = e.replace(/^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/gm, function(e, t) {
return t ? (m = !0, i += e.replace(/^\s*\n/gm, "") + "\n", "") : e;
})), e = e.replace(/^```.*\n[\s\S]*?\n```|^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm, function(e, t) {
return t ? (i += e.replace(/^\s*\n/gm, "") + "\n", "") : e;
@@ -20082,7 +20084,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
function p(e, t) {
var n = t;
return n = n.replace(/&\#8220;/g, '"'), n = n.replace(/&\#8221;/g, '"'), n = n.replace(/&\#8216;/g, "'"),
- n = n.replace(/&\#8217;/g, "'"), n = n.replace(/&\#8212;/g, "--"), n = n.replace(/&\#8211;/g, "---"),
+ n = n.replace(/&\#8217;/g, "'"), n = n.replace(/&\#8212;/g, "---"), n = n.replace(/&\#8211;/g, "--"),
n = n.replace(/&\#8230;/g, "...");
}
function f(e) {
@@ -20733,7 +20735,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
a = e, h();
}, r.onPublishRemoved = h, r.onNewPublishSuccess = h, r;
}), define("text!html/buttonShare.html", [], function() {
- return '\n \n \n
\n';
+ return '\n \n \n\n';
}), define("text!html/buttonShareLocation.html", [], function() {
return '\n';
}), define("extensions/buttonShare", [ "jquery", "underscore", "classes/Extension", "text!html/buttonShare.html", "text!html/buttonShareLocation.html" ], function(e, t, n, i, o) {
@@ -22362,7 +22364,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
});
}, r;
}), define("text!html/bodyIndex.html", [], function() {
- return '\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n\n\n\n
\n
\n\n \n
\n
\n
\n
\n
The following documents will be\n deleted locally:
\n
Please choose a destination\n folder:
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide the link URL and an optional title:
\n
\n \n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide the image URL and an optional title:
\n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n\n
\n
\n\n \n
\n
\n Are you sure you want to delete " "?\n
\n
\n NOTE: This will not delete the file on synchronized\n locations.\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide a link to a Markdown document.
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please select your Markdown files here:
\n
\n \n
\n
Or drag and drop your Markdown files here:
\n
Drop\n files here
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please select your HTML files here:
\n
\n \n
\n
Or drag and drop your HTML files here:
\n
Drop\n files here
\n
Or insert your HTML code here:
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n This will save " " to your \n Google Drive
\n account and keep it synchronized.\n
\n
\n
\n NOTE: \n \n You can move or rename the file afterwards within Google\n Drive. \n Real time collaborative documents can\'t be open outside\n StackEdit. \n Real time collaborative documents can\'t have multiple\n synchronized locations. \n \n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n This will save " " to your \n Dropbox
\n account and keep it synchronized.\n
\n
\n
\n NOTE: \n \n Dropbox file path does not depend on document title. \n The title of your document will not be synchronized. \n Destination folder must exist. \n Any existing file at this location will be overwritten. \n \n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n " " is synchronized with the\n following location(s):\n
\n
\n
\n NOTE: Removing a synchronized location will not delete any\n file.\n \n
\n " " is not synchronized yet. \n NOTE: You can add synchronized locations by\n exporting your document using \n Google Drive
\n or \n Dropbox
\n sub-menu.\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n
\n NOTE: You can use a\n YAML front matter to specify the title and the tags/labels of your publication.
\n Interpreted variables: title, categories/tags
\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n " " is published on the following\n location(s):\n
\n
\n
\n \n " " is not published yet. \n
\n NOTE: You can add publications using "Publish on" sub-menu.\n \n
\n \n
\n
\n
\n\n\n\n\n\n\n
\n
\n\n \n
\n
StackEdit has stopped because another instance was running in\n the same browser.
\n
If you want to reopen StackEdit, click on\n "Reload". \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
NOTE: You are being redirected to authorization page.\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
This will delete all your local documents.
\n
Are you sure? \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
This will delete all existing local documents.
\n
Are you sure? \n
\n \n
\n
\n
\n\n\n
\n
';
+ return '\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n\n\n\n
\n
\n\n \n
\n
\n
\n
\n
The following documents will be\n deleted locally:
\n
Please choose a destination\n folder:
\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide the link URL and an optional title:
\n
\n \n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide the image URL and an optional title:
\n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n\n
\n
\n\n \n
\n
\n Are you sure you want to delete " "?\n
\n
\n NOTE: This will not delete the file on synchronized\n locations.\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please provide a link to a Markdown document.
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please select your Markdown files here:
\n
\n \n
\n
Or drag and drop your Markdown files here:
\n
Drop\n files here
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
Please select your HTML files here:
\n
\n \n
\n
Or drag and drop your HTML files here:
\n
Drop\n files here
\n
Or insert your HTML code here:
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n This will save " " to your \n Google Drive
\n account and keep it synchronized.\n
\n
\n
\n NOTE: \n \n You can move or rename the file afterwards within Google\n Drive. \n Real time collaborative documents can\'t be open outside\n StackEdit. \n Real time collaborative documents can\'t have multiple\n synchronized locations. \n \n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n This will save " " to your \n Dropbox
\n account and keep it synchronized.\n
\n
\n
\n NOTE: \n \n Dropbox file path does not depend on document title. \n The title of your document will not be synchronized. \n Destination folder must exist. \n Any existing file at this location will be overwritten. \n \n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n " " is synchronized with the\n following location(s):\n
\n
\n
\n NOTE: Removing a synchronized location will not delete any\n file.\n \n
\n " " is not synchronized yet. \n NOTE: You can add synchronized locations by\n exporting your document using \n Google Drive
\n or \n Dropbox
\n sub-menu.\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n
\n NOTE: You can use a\n YAML front matter to specify the title and the tags/labels of your publication.
\n Interpreted variables: title, categories/tags
\n \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
\n " " is published on the following\n location(s):\n
\n
\n
\n \n " " is not published yet. \n
\n NOTE: You can add publications using the Publish on
sub-menu.\n \n
\n \n
\n
\n
\n\n\n\n\n\n\n
\n
\n\n \n
\n
StackEdit has stopped because another instance was running in\n the same browser.
\n
If you want to reopen StackEdit, click on\n "Reload". \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
NOTE: You are being redirected to authorization page.\n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
This will delete all your local documents.
\n
Are you sure? \n
\n \n
\n
\n
\n\n\n\n
\n
\n\n \n
\n
This will delete all existing local documents.
\n
Are you sure? \n
\n \n
\n
\n
\n\n\n
\n
';
}), define("text!html/bodyViewer.html", [], function() {
return '\n\n
\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n
\n
\n
\n
\n
\n\n\n\n\n\n\n
\n
\n\n \n
\n
StackEdit has stopped because another instance was running in\n the same browser.
\n
If you want to reopen StackEdit, click on\n "Reload". \n
\n \n
\n
\n
\n';
}), define("text!html/settingsTemplateTooltip.html", [], function() {
@@ -26072,7 +26074,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
e > T + 1e3 && (T = e, s.onUserActive());
}
function f() {
- return _ === !0 && o.currentTime - T > USER_IDLE_THRESHOLD && (_ = !1), _ && F;
+ return o.currentTime - T > USER_IDLE_THRESHOLD && (_ = !1), _ && F;
}
function g() {
if (k !== !1 && F !== !1) {
@@ -26424,13 +26426,13 @@ if (hljs.LANGUAGES.glsl = function(e) {
}), e(".action-reset-input").click(function() {
o.resetModalInputs();
}), e(".tooltip-lazy-rendering").tooltip({
- container: ".modal-settings .modal-dialog",
+ container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Disable preview rendering while typing in order to offload CPU. Refresh preview after 500 ms of inactivity."
}), e(".tooltip-default-content").tooltip({
html: !0,
- container: ".modal-settings .modal-dialog",
+ container: ".modal-settings",
placement: "right",
trigger: "hover",
title: "Thanks for supporting StackEdit by adding a backlink in your documents!"
@@ -26438,7 +26440,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
var u = !1;
if (e(".tooltip-usercustom-extension").tooltip({
html: !0,
- container: ".modal-settings .modal-dialog",
+ container: ".modal-settings",
placement: "right",
trigger: "manual",
title: h
@@ -26450,7 +26452,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
var n = e(t);
n.tooltip({
html: !0,
- container: n.parents(".modal-dialog"),
+ container: n.parents(".modal"),
placement: "right",
trigger: "manual",
title: d
@@ -26582,20 +26584,18 @@ if (hljs.LANGUAGES.glsl = function(e) {
}
return e;
}), define("classes/AsyncTask", [ "underscore", "utils", "eventMgr", "config" ], function(e, t, n) {
- function i() {
+ function i(e) {
this.finished = !1, this.timeout = ASYNC_TASK_DEFAULT_TIMEOUT, this.retryCounter = 0,
- this.runCallbacks = [], this.successCallbacks = [], this.errorCallbacks = [];
+ this.runCallbacks = [], this.successCallbacks = [], this.errorCallbacks = [], this.force = e;
}
function o() {
- if (d !== !1) {
- if (l === !0) return a + u.timeout < t.currentTime && u.error(new Error("A timeout occurred.")),
- void 0;
- if (void 0 === u) {
- if (0 === s.length) return;
- u = s.shift(), a = t.currentTime, c === !1 && (c = !0, n.onAsyncRunning(!0));
- }
- a <= t.currentTime && (l = !0, u.chain());
+ if (l === !0) return a + u.timeout < t.currentTime && u.error(new Error("A timeout occurred.")),
+ void 0;
+ if (void 0 === u) {
+ if (0 === s.length || !s[0].force && d === !1) return;
+ u = s.shift(), a = t.currentTime, c === !1 && (c = !0, n.onAsyncRunning(!0));
}
+ a <= t.currentTime && (l = !0, u.chain());
}
function r(t, i, r) {
try {
@@ -26671,22 +26671,21 @@ if (hljs.LANGUAGES.glsl = function(e) {
e.onRun(function() {
function t() {
n.oauthRedirect("Dropbox", function() {
- e.chain(o);
+ e.chain(i);
});
}
- function o() {
- r === !1 ? (i.onMessage("Please make sure the Dropbox authorization popup is not blocked by your browser."),
- e.timeout = ASYNC_TASK_LONG_TIMEOUT) : c.reset(), c.authenticate({
- interactive: !r
+ function i() {
+ o === !1 ? e.timeout = ASYNC_TASK_LONG_TIMEOUT : c.reset(), c.authenticate({
+ interactive: !o
}, function(n, i) {
- return i.isAuthenticated() === !0 ? (u = !0, e.chain(), void 0) : r === !0 ? (r = !1,
+ return i.isAuthenticated() === !0 ? (u = !0, e.chain(), void 0) : o === !0 ? (o = !1,
e.chain(t), void 0) : (e.error(new Error("Access to Dropbox account is not authorized.")),
void 0);
});
}
if (u === !0) return e.chain(), void 0;
- var r = !0;
- e.chain(o);
+ var o = !0;
+ e.chain(i);
});
}
function a(e, i) {
@@ -26918,29 +26917,28 @@ if (hljs.LANGUAGES.glsl = function(e) {
}
function l(t, i) {
t.onRun(function() {
- function s() {
+ function r() {
n.oauthRedirect("Google", function() {
- t.chain(a);
+ t.chain(s);
});
}
- function a() {
- c === !1 && (r.onMessage("Please make sure the Google authorization popup is not blocked by your browser."),
- t.timeout = ASYNC_TASK_LONG_TIMEOUT), gapi.auth.authorize({
+ function s() {
+ l === !1 && (t.timeout = ASYNC_TASK_LONG_TIMEOUT), gapi.auth.authorize({
client_id: GOOGLE_CLIENT_ID,
- scope: l,
- immediate: c
+ scope: a,
+ immediate: l
}, function(e) {
gapi.client.load("drive", "v2", function() {
- return !e || e.error ? d === !0 && c === !0 ? (c = !1, t.chain(s), void 0) : (t.error(new Error("Access to Google account is not authorized.")),
+ return !e || e.error ? d === !0 && l === !0 ? (l = !1, t.chain(r), void 0) : (t.error(new Error("Access to Google account is not authorized.")),
void 0) : (h[i] = !0, t.chain(), void 0);
});
});
}
if (e.has(h, i)) return t.chain(), void 0;
- var l = void 0;
- "gdrive" == i && o.gdriveFullAccess === !0 ? l = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive" ] : "gdrive" == i && o.gdriveFullAccess === !1 ? l = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive.file" ] : "blogger" == i ? l = [ "https://www.googleapis.com/auth/blogger" ] : "picasa" == i && (l = [ "https://picasaweb.google.com/data/" ]);
- var c = !0;
- t.chain(a);
+ var a = void 0;
+ "gdrive" == i && o.gdriveFullAccess === !0 ? a = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive" ] : "gdrive" == i && o.gdriveFullAccess === !1 ? a = [ "https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive.file" ] : "blogger" == i ? a = [ "https://www.googleapis.com/auth/blogger" ] : "picasa" == i && (a = [ "https://picasaweb.google.com/data/" ]);
+ var l = !0;
+ t.chain(s);
});
}
function c(e, t) {
@@ -27608,7 +27606,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
}), define("providers/downloadProvider", [ "jquery", "eventMgr", "utils", "fileMgr", "classes/Provider", "classes/AsyncTask" ], function(e, t, n, i, o, r) {
var s = new o("download");
return s.sharingAttributes = [ "url" ], s.importPublic = function(t, n) {
- var i = void 0, o = void 0, s = new r();
+ var i = void 0, o = void 0, s = new r(!0);
s.onRun(function() {
var n = t.url, r = n.lastIndexOf("/");
return -1 === r ? (s.error(new Error("Invalid URL parameter.")), void 0) : (i = n.substring(r + 1),
@@ -27659,45 +27657,44 @@ if (hljs.LANGUAGES.glsl = function(e) {
}), void 0);
});
}
- function s(o) {
- var r = void 0, s = void 0;
- o.onRun(function() {
- function a() {
+ function s(i) {
+ var o = void 0, r = void 0;
+ i.onRun(function() {
+ function s() {
t.oauthRedirect("GitHub", function() {
- o.chain(l);
+ i.chain(a);
});
}
- function l() {
- i.onMessage("Please make sure the Github authorization popup is not blocked by your browser."),
- localStorage.removeItem("githubCode"), r = n.popupWindow("html/github-oauth-client.html?client_id=" + GITHUB_CLIENT_ID, "stackedit-github-oauth", 960, 600),
- r.focus(), s = setInterval(function() {
- if (r.closed === !0) {
- if (clearInterval(s), r = void 0, s = void 0, p = localStorage.githubCode, void 0 === p) return o.error(new Error(h)),
+ function a() {
+ localStorage.removeItem("githubCode"), o = n.popupWindow("html/github-oauth-client.html?client_id=" + GITHUB_CLIENT_ID, "stackedit-github-oauth", 960, 600),
+ o.focus(), r = setInterval(function() {
+ if (o.closed === !0) {
+ if (clearInterval(r), o = void 0, r = void 0, h = localStorage.githubCode, void 0 === h) return i.error(new Error(d)),
void 0;
- localStorage.removeItem("githubCode"), o.chain(u);
+ localStorage.removeItem("githubCode"), i.chain(l);
}
}, 500);
}
- function u() {
- e.getJSON(GATEKEEPER_URL + "authenticate/" + p, function(e) {
- void 0 !== e.token ? (d = e.token, localStorage.githubToken = d, c = new Github({
- token: d,
+ function l() {
+ e.getJSON(GATEKEEPER_URL + "authenticate/" + h, function(e) {
+ void 0 !== e.token ? (u = e.token, localStorage.githubToken = u, c = new Github({
+ token: u,
auth: "oauth"
- }), o.chain()) : o.error(new Error(h));
+ }), i.chain()) : i.error(new Error(d));
});
}
- if (void 0 !== c) return o.chain(), void 0;
- var d = localStorage.githubToken;
- if (void 0 !== d) return c = new Github({
- token: d,
+ if (void 0 !== c) return i.chain(), void 0;
+ var u = localStorage.githubToken;
+ if (void 0 !== u) return c = new Github({
+ token: u,
auth: "oauth"
- }), o.chain(), void 0;
- var h = "Failed to retrieve a token from GitHub.";
- o.timeout = ASYNC_TASK_LONG_TIMEOUT;
- var p = void 0;
- o.chain(a);
- }), o.onError(function() {
- void 0 !== s && clearInterval(s), void 0 !== r && r.close();
+ }), i.chain(), void 0;
+ var d = "Failed to retrieve a token from GitHub.";
+ i.timeout = ASYNC_TASK_LONG_TIMEOUT;
+ var h = void 0;
+ i.chain(s);
+ }), i.onError(function() {
+ void 0 !== r && clearInterval(r), void 0 !== o && o.close();
});
}
function a(e, n) {
@@ -27754,7 +27751,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
u(e);
}), d.enqueue();
}, u.downloadGist = function(e, t, n) {
- var i = new o();
+ var i = new o(!0);
r(i);
var s = void 0, a = void 0;
i.onRun(function() {
@@ -27802,7 +27799,7 @@ if (hljs.LANGUAGES.glsl = function(e) {
var u = new r(), d = void 0;
u.onRun(function() {
if (c === !0) return u.chain(), void 0;
- var o = [ MAIN_URL, "viewer.html?provider=", a.providerId ];
+ var o = [ MAIN_URL, "viewer.html#!provider=", a.providerId ];
t.each(a.sharingAttributes, function(e) {
o.push("&"), o.push(e), o.push("="), o.push(encodeURIComponent(n[e]));
}), o = o.join(""), e.getJSON("https://api-ssl.bitly.com/v3/shorten", {
@@ -27926,45 +27923,44 @@ if (hljs.LANGUAGES.glsl = function(e) {
void 0) : (e.chain(), void 0);
});
}
- function s(o) {
- var r = void 0, s = void 0;
- o.onRun(function() {
- function a() {
+ function s(i) {
+ var o = void 0, r = void 0;
+ i.onRun(function() {
+ function s() {
e.getJSON(TUMBLR_PROXY_URL + "request_token", function(e) {
- void 0 !== e.oauth_token ? (f = e, o.chain(c)) : o.error(new Error(p));
+ void 0 !== e.oauth_token ? (p = e, i.chain(a)) : i.error(new Error(h));
+ });
+ }
+ function a() {
+ t.oauthRedirect("Tumblr", function() {
+ i.chain(c);
});
}
function c() {
- t.oauthRedirect("Tumblr", function() {
- o.chain(u);
- });
- }
- function u() {
- i.onMessage("Please make sure the Tumblr authorization popup is not blocked by your browser."),
- localStorage.removeItem("tumblrVerifier"), r = n.popupWindow("html/tumblr-oauth-client.html?oauth_token=" + f.oauth_token, "stackedit-tumblr-oauth", 800, 600),
- r.focus(), s = setInterval(function() {
- if (r.closed === !0) {
- if (clearInterval(s), r = void 0, s = void 0, f.oauth_verifier = localStorage.tumblrVerifier,
- void 0 === f.oauth_verifier) return o.error(new Error(p)), void 0;
- localStorage.removeItem("tumblrVerifier"), o.chain(d);
+ localStorage.removeItem("tumblrVerifier"), o = n.popupWindow("html/tumblr-oauth-client.html?oauth_token=" + p.oauth_token, "stackedit-tumblr-oauth", 800, 600),
+ o.focus(), r = setInterval(function() {
+ if (o.closed === !0) {
+ if (clearInterval(r), o = void 0, r = void 0, p.oauth_verifier = localStorage.tumblrVerifier,
+ void 0 === p.oauth_verifier) return i.error(new Error(h)), void 0;
+ localStorage.removeItem("tumblrVerifier"), i.chain(u);
}
}, 500);
}
- function d() {
- e.getJSON(TUMBLR_PROXY_URL + "access_token", f, function(e) {
+ function u() {
+ e.getJSON(TUMBLR_PROXY_URL + "access_token", p, function(e) {
void 0 !== e.access_token && void 0 !== e.access_token_secret ? (localStorage.tumblrOauthParams = JSON.stringify(e),
- l = e, o.chain()) : o.error(new Error(p));
+ l = e, i.chain()) : i.error(new Error(h));
});
}
- if (void 0 !== l) return o.chain(), void 0;
- var h = localStorage.tumblrOauthParams;
- if (void 0 !== h) return l = JSON.parse(h), o.chain(), void 0;
- var p = "Failed to retrieve a token from Tumblr.";
- o.timeout = ASYNC_TASK_LONG_TIMEOUT;
- var f = void 0;
- o.chain(a);
- }), o.onError(function() {
- void 0 !== s && clearInterval(s), void 0 !== r && r.close();
+ if (void 0 !== l) return i.chain(), void 0;
+ var d = localStorage.tumblrOauthParams;
+ if (void 0 !== d) return l = JSON.parse(d), i.chain(), void 0;
+ var h = "Failed to retrieve a token from Tumblr.";
+ i.timeout = ASYNC_TASK_LONG_TIMEOUT;
+ var p = void 0;
+ i.chain(s);
+ }), i.onError(function() {
+ void 0 !== r && clearInterval(r), void 0 !== o && o.close();
});
}
function a(e, n) {
@@ -28033,37 +28029,36 @@ if (hljs.LANGUAGES.glsl = function(e) {
void 0) : (e.chain(), void 0);
});
}
- function s(o) {
- var r = void 0, s = void 0;
- o.onRun(function() {
- function a() {
+ function s(i) {
+ var o = void 0, r = void 0;
+ i.onRun(function() {
+ function s() {
t.oauthRedirect("WordPress", function() {
- o.chain(c);
+ i.chain(a);
});
}
- function c() {
- i.onMessage("Please make sure the Wordpress authorization popup is not blocked by your browser."),
- localStorage.removeItem("wordpressCode"), r = n.popupWindow("html/wordpress-oauth-client.html?client_id=" + WORDPRESS_CLIENT_ID, "stackedit-wordpress-oauth", 960, 600),
- r.focus(), s = setInterval(function() {
- if (r.closed === !0) {
- if (clearInterval(s), r = void 0, s = void 0, h = localStorage.wordpressCode, void 0 === h) return o.error(new Error(d)),
+ function a() {
+ localStorage.removeItem("wordpressCode"), o = n.popupWindow("html/wordpress-oauth-client.html?client_id=" + WORDPRESS_CLIENT_ID, "stackedit-wordpress-oauth", 960, 600),
+ o.focus(), r = setInterval(function() {
+ if (o.closed === !0) {
+ if (clearInterval(r), o = void 0, r = void 0, d = localStorage.wordpressCode, void 0 === d) return i.error(new Error(u)),
void 0;
- localStorage.removeItem("wordpressCode"), o.chain(u);
+ localStorage.removeItem("wordpressCode"), i.chain(c);
}
}, 500);
}
- function u() {
- e.getJSON(WORDPRESS_PROXY_URL + "authenticate/" + h, function(e) {
- void 0 !== e.token ? (l = e.token, localStorage.wordpressToken = l, o.chain()) : o.error(new Error(d));
+ function c() {
+ e.getJSON(WORDPRESS_PROXY_URL + "authenticate/" + d, function(e) {
+ void 0 !== e.token ? (l = e.token, localStorage.wordpressToken = l, i.chain()) : i.error(new Error(u));
});
}
- if (l = localStorage.wordpressToken, void 0 !== l) return o.chain(), void 0;
- var d = "Failed to retrieve a token from Wordpress.";
- o.timeout = ASYNC_TASK_LONG_TIMEOUT;
- var h = void 0;
- o.chain(a);
- }), o.onError(function() {
- void 0 !== s && clearInterval(s), void 0 !== r && r.close();
+ if (l = localStorage.wordpressToken, void 0 !== l) return i.chain(), void 0;
+ var u = "Failed to retrieve a token from Wordpress.";
+ i.timeout = ASYNC_TASK_LONG_TIMEOUT;
+ var d = void 0;
+ i.chain(s);
+ }), i.onError(function() {
+ void 0 !== r && clearInterval(r), void 0 !== o && o.close();
});
}
function a(e, n) {
diff --git a/public/res-min/themes/blue-gray.css b/public/res-min/themes/blue-gray.css
index 5010ea71..ce42f953 100644
--- a/public/res-min/themes/blue-gray.css
+++ b/public/res-min/themes/blue-gray.css
@@ -1433,7 +1433,6 @@ body{tab-size:4}
.working{cursor:progress}
.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}
a{-webkit-transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s;transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s}
-.close{-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
.list-group .nav{border-left:10px solid rgba(0,0,0,0.05);margin-left:10px}
.list-group-item{padding:10px 15px}
.list-group .list-group-item{border-radius:0}
@@ -1632,7 +1631,7 @@ ul ul,ol ul,ul ol,ol ol{margin-bottom:15px}
.ace_search .ace_searchbtn.next:before{content:'\e880'}
.ace_search .ace_searchbtn.prev:before{content:'\e87f'}
.ace_search .ace_replacebtn{padding:0 4px}
-.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30);-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
+.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30)}
.ace_search .ace_searchbtn_close:before{content:'\d7'}
.ace_search .ace_searchbtn_close:hover,.ace_search .ace_searchbtn_close:focus{color:#333333;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);background:transparent}
#wmd-input{border-radius:4px;color:#545454;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none !important}
@@ -1674,7 +1673,8 @@ input[type="file"]{line-height:inherit;height:inherit;border:none !important}
.popover .popover-title{font-weight:500;font-size:24px;padding:10px 15px}
.popover .disabled{display:none}
div.jGrowl{z-index:1040;font-size:inherit}
-div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 30px;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
+div.jGrowl.bottom-right{right:30px}
+div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 0;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
div.jGrowl div.jGrowl-notification{min-height:80px}
.viewer .document-panel .search-bar{padding:20px 20px 10px}
.viewer .document-panel .search-bar .input-group-btn{display:none}
diff --git a/public/res-min/themes/default.css b/public/res-min/themes/default.css
index 6791f60d..5122ab98 100644
--- a/public/res-min/themes/default.css
+++ b/public/res-min/themes/default.css
@@ -1433,7 +1433,6 @@ body{tab-size:4}
.working{cursor:progress}
.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}
a{-webkit-transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s;transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s}
-.close{-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
.list-group .nav{border-left:10px solid rgba(0,0,0,0.05);margin-left:10px}
.list-group-item{padding:10px 15px}
.list-group .list-group-item{border-radius:0}
@@ -1632,7 +1631,7 @@ ul ul,ol ul,ul ol,ol ol{margin-bottom:15px}
.ace_search .ace_searchbtn.next:before{content:'\e880'}
.ace_search .ace_searchbtn.prev:before{content:'\e87f'}
.ace_search .ace_replacebtn{padding:0 4px}
-.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30);-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
+.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30)}
.ace_search .ace_searchbtn_close:before{content:'\d7'}
.ace_search .ace_searchbtn_close:hover,.ace_search .ace_searchbtn_close:focus{color:#333333;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);background:transparent}
#wmd-input{border-radius:4px;color:#545454;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none !important}
@@ -1674,7 +1673,8 @@ input[type="file"]{line-height:inherit;height:inherit;border:none !important}
.popover .popover-title{font-weight:500;font-size:24px;padding:10px 15px}
.popover .disabled{display:none}
div.jGrowl{z-index:1040;font-size:inherit}
-div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 30px;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
+div.jGrowl.bottom-right{right:30px}
+div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 0;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
div.jGrowl div.jGrowl-notification{min-height:80px}
.viewer .document-panel .search-bar{padding:20px 20px 10px}
.viewer .document-panel .search-bar .input-group-btn{display:none}
diff --git a/public/res-min/themes/night.css b/public/res-min/themes/night.css
index ae6b9808..13d14683 100644
--- a/public/res-min/themes/night.css
+++ b/public/res-min/themes/night.css
@@ -1433,7 +1433,6 @@ body{tab-size:4}
.working{cursor:progress}
.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}
a{-webkit-transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s;transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s}
-.close{-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
.list-group .nav{border-left:10px solid rgba(255,255,255,0.08);margin-left:10px}
.list-group-item{padding:10px 15px}
.list-group .list-group-item{border-radius:0}
@@ -1632,7 +1631,7 @@ ul ul,ol ul,ul ol,ol ol{margin-bottom:15px}
.ace_search .ace_searchbtn.next:before{content:'\e880'}
.ace_search .ace_searchbtn.prev:before{content:'\e87f'}
.ace_search .ace_replacebtn{padding:0 4px}
-.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30);-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
+.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30)}
.ace_search .ace_searchbtn_close:before{content:'\d7'}
.ace_search .ace_searchbtn_close:hover,.ace_search .ace_searchbtn_close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);background:transparent}
#wmd-input{border-radius:4px;color:#dedede;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none !important}
@@ -1674,7 +1673,8 @@ input[type="file"]{line-height:inherit;height:inherit;border:none !important}
.popover .popover-title{font-weight:500;font-size:24px;padding:10px 15px}
.popover .disabled{display:none}
div.jGrowl{z-index:1040;font-size:inherit}
-div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(86,86,86,0.9);width:260px;margin:20px 30px;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
+div.jGrowl.bottom-right{right:30px}
+div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(86,86,86,0.9);width:260px;margin:20px 0;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
div.jGrowl div.jGrowl-notification{min-height:80px}
.viewer .document-panel .search-bar{padding:20px 20px 10px}
.viewer .document-panel .search-bar .input-group-btn{display:none}
diff --git a/public/res-min/themes/school.css b/public/res-min/themes/school.css
index e921c9e4..61e5141d 100644
--- a/public/res-min/themes/school.css
+++ b/public/res-min/themes/school.css
@@ -1433,7 +1433,6 @@ body{tab-size:4}
.working{cursor:progress}
.btn,.dropdown-menu{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}
a{-webkit-transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s;transition:background-color ease-in-out .15s,color ease-in-out .15s,border-color ease-in-out .15s}
-.close{-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
.list-group .nav{border-left:10px solid rgba(0,0,0,0.05);margin-left:10px}
.list-group-item{padding:10px 15px}
.list-group .list-group-item{border-radius:0}
@@ -1632,7 +1631,7 @@ ul ul,ol ul,ul ol,ol ol{margin-bottom:15px}
.ace_search .ace_searchbtn.next:before{content:'\e880'}
.ace_search .ace_searchbtn.prev:before{content:'\e87f'}
.ace_search .ace_replacebtn{padding:0 4px}
-.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30);-webkit-transition:opacity ease-in-out .15s;transition:opacity ease-in-out .15s}
+.ace_search .ace_searchbtn_close{background:transparent;margin:0;font-size:21px;font-weight:bold;text-shadow:0 1px 0 #ffffff;opacity:0.3;filter:alpha(opacity=30)}
.ace_search .ace_searchbtn_close:before{content:'\d7'}
.ace_search .ace_searchbtn_close:hover,.ace_search .ace_searchbtn_close:focus{color:#284f72;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);background:transparent}
#wmd-input{border-radius:4px;color:#3971a3;-webkit-box-shadow:none;box-shadow:none;resize:none;border:none !important}
@@ -1674,7 +1673,8 @@ input[type="file"]{line-height:inherit;height:inherit;border:none !important}
.popover .popover-title{font-weight:500;font-size:24px;padding:10px 15px}
.popover .disabled{display:none}
div.jGrowl{z-index:1040;font-size:inherit}
-div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 30px;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
+div.jGrowl.bottom-right{right:30px}
+div.jGrowl div.jGrowl-notification,div.jGrowl div.jGrowl-closer{background-color:rgba(118,118,118,0.9);width:260px;margin:20px 0;padding:15px 20px;-ms-filter:none;filter:none;border-radius:5px}
div.jGrowl div.jGrowl-notification{min-height:80px}
.viewer .document-panel .search-bar{padding:20px 20px 10px}
.viewer .document-panel .search-bar .input-group-btn{display:none}
diff --git a/server.js b/server.js
index 5f00bfeb..95b281a1 100644
--- a/server.js
+++ b/server.js
@@ -1,11 +1,3 @@
-// Nodetime
-if(process.env.NODETIME_ACCOUNT_KEY) {
- require('nodetime').profile({
- accountKey: process.env.NODETIME_ACCOUNT_KEY,
- appName: 'StackEdit'
- });
-}
-
var express = require('express');
var app = express();