JSHint validation. Part 2.

This commit is contained in:
benweet 2013-11-07 23:10:38 +00:00
parent 634569f3a9
commit f8e97cb190
41 changed files with 272 additions and 250 deletions

View File

@ -228,6 +228,9 @@ module.exports = function(grunt) {
*/ */
grunt.registerTask('build-js', function() { grunt.registerTask('build-js', function() {
// JSHint validation
grunt.task.run('jshint');
// Run r.js optimization // Run r.js optimization
grunt.task.run('requirejs'); grunt.task.run('requirejs');

View File

@ -1,5 +1,5 @@
CACHE MANIFEST CACHE MANIFEST
#Date Sun Nov 03 2013 22:25:18 #Date Thu Nov 07 2013 23:09:02
CACHE: CACHE:
res/worker.js res/worker.js

View File

@ -3,7 +3,6 @@ define([
"constants", "constants",
"utils", "utils",
"eventMgr", "eventMgr",
"config"
], function(_, constants, utils, eventMgr) { ], function(_, constants, utils, eventMgr) {
var taskQueue = []; var taskQueue = [];

View File

@ -5,7 +5,7 @@ define([
"fileSystem" "fileSystem"
], function(_, utils, storage, fileSystem) { ], function(_, utils, storage, fileSystem) {
function FolderDescriptor(folderIndex, name, fileList) { function FolderDescriptor(folderIndex, name) {
this.folderIndex = folderIndex; this.folderIndex = folderIndex;
this._name = name || storage[folderIndex + ".name"]; this._name = name || storage[folderIndex + ".name"];
// Retrieve file list from storage // Retrieve file list from storage

View File

@ -29,11 +29,11 @@ define([], function() {
// Use by Google's client.js // Use by Google's client.js
window.delayedFunction = undefined; window.delayedFunction = undefined;
function runDelayedFunction() { window.runDelayedFunction = function() {
if(window.delayedFunction !== undefined) { if(window.delayedFunction !== undefined) {
window.delayedFunction(); window.delayedFunction();
} }
} };
// Site dependent // Site dependent
constants.BASE_URL = "http://localhost/"; constants.BASE_URL = "http://localhost/";

View File

@ -1,3 +1,4 @@
/*globals Markdown, requirejs */
define([ define([
"jquery", "jquery",
"underscore", "underscore",
@ -15,7 +16,6 @@ define([
"text!html/settingsTemplateTooltip.html", "text!html/settingsTemplateTooltip.html",
"text!html/settingsUserCustomExtensionTooltip.html", "text!html/settingsUserCustomExtensionTooltip.html",
"storage", "storage",
"config",
"uilayout", "uilayout",
'pagedown-ace', 'pagedown-ace',
'libs/ace_mode', 'libs/ace_mode',
@ -29,7 +29,7 @@ define([
var core = {}; var core = {};
// Used for periodic tasks // Used for periodic tasks
var intervalId = undefined; var intervalId;
// Used to detect user activity // Used to detect user activity
var isUserReal = false; var isUserReal = false;
@ -54,7 +54,7 @@ define([
} }
// Used to only have 1 window of the application in the same browser // Used to only have 1 window of the application in the same browser
var windowId = undefined; var windowId;
function checkWindowUnique() { function checkWindowUnique() {
if(isUserReal === false || windowUnique === false) { if(isUserReal === false || windowUnique === false) {
return; return;
@ -106,13 +106,13 @@ define([
} }
// Load settings in settings dialog // Load settings in settings dialog
var $themeInputElt = undefined; var $themeInputElt;
function loadSettings() { function loadSettings() {
// Layout orientation // Layout orientation
utils.setInputRadio("radio-layout-orientation", settings.layoutOrientation); utils.setInputRadio("radio-layout-orientation", settings.layoutOrientation);
// Theme // Theme
utils.setInputValue($themeInputElt, theme); utils.setInputValue($themeInputElt, window.theme);
$themeInputElt.change(); $themeInputElt.change();
// Lazy rendering // Lazy rendering
utils.setInputChecked("#input-settings-lazy-rendering", settings.lazyRendering); utils.setInputChecked("#input-settings-lazy-rendering", settings.lazyRendering);
@ -190,9 +190,9 @@ define([
} }
// Set the panels visibility // Set the panels visibility
var layout = undefined; var layout;
var $menuPanelElt = undefined; var $menuPanelElt;
var $documentPanelElt = undefined; var $documentPanelElt;
function setPanelVisibility(forceHide) { function setPanelVisibility(forceHide) {
if(forceHide === true || layout.state.north.isClosed) { if(forceHide === true || layout.state.north.isClosed) {
$menuPanelElt.hide(); $menuPanelElt.hide();
@ -205,7 +205,7 @@ define([
} }
// Set the preview button visibility // Set the preview button visibility
var $previewButtonsElt = undefined; var $previewButtonsElt;
function setPreviewButtonsVisibility(forceHide) { function setPreviewButtonsVisibility(forceHide) {
if(forceHide === true || layout.state.east.isClosed) { if(forceHide === true || layout.state.east.isClosed) {
$previewButtonsElt.hide(); $previewButtonsElt.hide();
@ -216,7 +216,7 @@ define([
} }
// Create ACE editor // Create ACE editor
var aceEditor = undefined; var aceEditor;
function createAceEditor() { function createAceEditor() {
aceEditor = ace.edit("wmd-input"); aceEditor = ace.edit("wmd-input");
aceEditor.setOption("spellcheck", true); aceEditor.setOption("spellcheck", true);
@ -277,8 +277,9 @@ define([
} }
self.currentLine = currentLine; self.currentLine = currentLine;
if(startLine <= endLine) if(startLine <= endLine) {
self.fireUpdateEvent(startLine, endLine); self.fireUpdateEvent(startLine, endLine);
}
} }
self.$worker = function() { self.$worker = function() {
self.lines.splice(0, self.lines.length); self.lines.splice(0, self.lines.length);
@ -294,7 +295,7 @@ define([
} }
// Create the layout // Create the layout
var $editorButtonsElt = undefined; var $editorButtonsElt;
function createLayout() { function createLayout() {
var layoutGlobalConfig = { var layoutGlobalConfig = {
closable: true, closable: true,
@ -384,7 +385,7 @@ define([
var $resizerDecorator = $('<div class="resizer-decorator">'); var $resizerDecorator = $('<div class="resizer-decorator">');
$previewButtonsElt = $('<div class="extension-preview-buttons">'); $previewButtonsElt = $('<div class="extension-preview-buttons">');
$editorButtonsElt = $('<div class="extension-editor-buttons">'); $editorButtonsElt = $('<div class="extension-editor-buttons">');
if(viewerMode || settings.layoutOrientation == "horizontal") { if(window.viewerMode || settings.layoutOrientation == "horizontal") {
$('.ui-layout-resizer-north').append($resizerDecorator).append($previewButtonsElt); $('.ui-layout-resizer-north').append($resizerDecorator).append($previewButtonsElt);
$('.ui-layout-resizer-east').append($northTogglerElt).append($editorButtonsElt); $('.ui-layout-resizer-east').append($northTogglerElt).append($editorButtonsElt);
} }
@ -400,10 +401,10 @@ define([
} }
// Create the PageDown editor // Create the PageDown editor
var editor = undefined; var editor;
var $editorElt = undefined; var $editorElt;
var fileDesc = undefined; var fileDesc;
var documentContent = undefined; var documentContent;
var UndoManager = require("ace/undomanager").UndoManager; var UndoManager = require("ace/undomanager").UndoManager;
core.initEditor = function(fileDescParam) { core.initEditor = function(fileDescParam) {
if(fileDesc !== undefined) { if(fileDesc !== undefined) {
@ -431,7 +432,7 @@ define([
var $previewContainerElt = $(".preview-container"); var $previewContainerElt = $(".preview-container");
if(!lightMode) { if(!window.lightMode) {
// Store editor scrollTop on scroll event // Store editor scrollTop on scroll event
var saveScroll = _.debounce(function() { var saveScroll = _.debounce(function() {
if(documentContent !== undefined) { if(documentContent !== undefined) {
@ -469,8 +470,9 @@ define([
} }
documentContent = newDocumentContent; documentContent = newDocumentContent;
} }
if(!lightMode) { var previewWrapper;
if(!window.lightMode) {
editor = new Markdown.Editor(converter, undefined, { editor = new Markdown.Editor(converter, undefined, {
keyStrokes: shortcutMgr.getPagedownKeyStrokes() keyStrokes: shortcutMgr.getPagedownKeyStrokes()
}); });
@ -491,20 +493,55 @@ define([
$(".modal-insert-image").modal(); $(".modal-insert-image").modal();
return true; return true;
}); });
if(settings.lazyRendering === true) {
previewWrapper = function(makePreview) {
var debouncedMakePreview = _.debounce(makePreview, 500);
return function() {
if(documentContent === undefined) {
makePreview();
eventMgr.onFileOpen(fileDesc);
$previewContainerElt.scrollTop(fileDesc.previewScrollTop);
_.defer(function() {
aceEditor.renderer.scrollToY(fileDesc.editorScrollTop);
});
}
else {
debouncedMakePreview();
}
checkDocumentChanges();
};
};
}
else {
previewWrapper = function(makePreview) {
return function() {
makePreview();
if(documentContent === undefined) {
eventMgr.onFileOpen(fileDesc);
$previewContainerElt.scrollTop(fileDesc.previewScrollTop);
_.defer(function() {
aceEditor.renderer.scrollToY(fileDesc.editorScrollTop);
});
}
checkDocumentChanges();
};
};
}
} }
else { else {
// That's the light Markdown editor replacing the one from pagedown // That's the light Markdown editor replacing the one from pagedown
var $wmdPreviewElt = $('#wmd-preview'); var $wmdPreviewElt = $('#wmd-preview');
var hooks = new Markdown.HookCollection(); var hooks = new Markdown.HookCollection();
hooks.addNoop("onPreviewRefresh"); hooks.addNoop("onPreviewRefresh");
function makePreviewHtml() { var makePreviewHtml = function() {
var text = $editorElt.val(); var text = $editorElt.val();
text = converter.makeHtml(text); text = converter.makeHtml(text);
$wmdPreviewElt.html(text); $wmdPreviewElt.html(text);
hooks.onPreviewRefresh(); hooks.onPreviewRefresh();
} };
var debouncedMakePreview = _.debounce(makePreviewHtml, 1000); var debouncedMakePreview = _.debounce(makePreviewHtml, 1000);
var previewWrapper = function() { var lightPreviewWrapper = function() {
if(documentContent === undefined) { if(documentContent === undefined) {
makePreviewHtml(); makePreviewHtml();
eventMgr.onFileOpen(fileDesc); eventMgr.onFileOpen(fileDesc);
@ -514,52 +551,17 @@ define([
} }
checkDocumentChanges(); checkDocumentChanges();
}; };
$editorElt.on("input propertychange", previewWrapper); $editorElt.on("input propertychange", lightPreviewWrapper);
editor = { editor = {
hooks: hooks, hooks: hooks,
getConverter: function() { getConverter: function() {
return converter; return converter;
}, },
run: previewWrapper, run: lightPreviewWrapper,
refreshPreview: previewWrapper refreshPreview: lightPreviewWrapper
}; };
} }
var previewWrapper;
if(settings.lazyRendering === true) {
previewWrapper = function(makePreview) {
var debouncedMakePreview = _.debounce(makePreview, 500);
return function() {
if(documentContent === undefined) {
makePreview();
eventMgr.onFileOpen(fileDesc);
$previewContainerElt.scrollTop(fileDesc.previewScrollTop);
_.defer(function() {
aceEditor.renderer.scrollToY(fileDesc.editorScrollTop);
});
}
else {
debouncedMakePreview();
}
checkDocumentChanges();
};
};
}
else {
previewWrapper = function(makePreview) {
return function() {
makePreview();
if(documentContent === undefined) {
eventMgr.onFileOpen(fileDesc);
$previewContainerElt.scrollTop(fileDesc.previewScrollTop);
_.defer(function() {
aceEditor.renderer.scrollToY(fileDesc.editorScrollTop);
});
}
checkDocumentChanges();
};
};
}
eventMgr.onPagedownConfigure(editor); eventMgr.onPagedownConfigure(editor);
editor.hooks.chain("onPreviewRefresh", eventMgr.onAsyncPreview); editor.hooks.chain("onPreviewRefresh", eventMgr.onAsyncPreview);
editor.run(aceEditor, previewWrapper); editor.run(aceEditor, previewWrapper);
@ -573,24 +575,24 @@ define([
var $btnGroupElt = $('.wmd-button-group1'); var $btnGroupElt = $('.wmd-button-group1');
$("#wmd-bold-button").append($('<i class="icon-bold">')).appendTo($btnGroupElt); $("#wmd-bold-button").append($('<i class="icon-bold">')).appendTo($btnGroupElt);
$("#wmd-italic-button").append($('<i class="icon-italic">')).appendTo($btnGroupElt); $("#wmd-italic-button").append($('<i class="icon-italic">')).appendTo($btnGroupElt);
var $btnGroupElt = $('.wmd-button-group2'); $btnGroupElt = $('.wmd-button-group2');
$("#wmd-link-button").append($('<i class="icon-globe">')).appendTo($btnGroupElt); $("#wmd-link-button").append($('<i class="icon-globe">')).appendTo($btnGroupElt);
$("#wmd-quote-button").append($('<i class="icon-indent-right">')).appendTo($btnGroupElt); $("#wmd-quote-button").append($('<i class="icon-indent-right">')).appendTo($btnGroupElt);
$("#wmd-code-button").append($('<i class="icon-code">')).appendTo($btnGroupElt); $("#wmd-code-button").append($('<i class="icon-code">')).appendTo($btnGroupElt);
$("#wmd-image-button").append($('<i class="icon-picture">')).appendTo($btnGroupElt); $("#wmd-image-button").append($('<i class="icon-picture">')).appendTo($btnGroupElt);
var $btnGroupElt = $('.wmd-button-group3'); $btnGroupElt = $('.wmd-button-group3');
$("#wmd-olist-button").append($('<i class="icon-list-numbered">')).appendTo($btnGroupElt); $("#wmd-olist-button").append($('<i class="icon-list-numbered">')).appendTo($btnGroupElt);
$("#wmd-ulist-button").append($('<i class="icon-list-bullet">')).appendTo($btnGroupElt); $("#wmd-ulist-button").append($('<i class="icon-list-bullet">')).appendTo($btnGroupElt);
$("#wmd-heading-button").append($('<i class="icon-text-height">')).appendTo($btnGroupElt); $("#wmd-heading-button").append($('<i class="icon-text-height">')).appendTo($btnGroupElt);
$("#wmd-hr-button").append($('<i class="icon-ellipsis">')).appendTo($btnGroupElt); $("#wmd-hr-button").append($('<i class="icon-ellipsis">')).appendTo($btnGroupElt);
var $btnGroupElt = $('.wmd-button-group4'); $btnGroupElt = $('.wmd-button-group4');
$("#wmd-undo-button").append($('<i class="icon-reply">')).appendTo($btnGroupElt); $("#wmd-undo-button").append($('<i class="icon-reply">')).appendTo($btnGroupElt);
$("#wmd-redo-button").append($('<i class="icon-forward">')).appendTo($btnGroupElt); $("#wmd-redo-button").append($('<i class="icon-forward">')).appendTo($btnGroupElt);
}; };
// Shows a dialog to force the user to click a button before opening oauth popup // Shows a dialog to force the user to click a button before opening oauth popup
var redirectCallbackConfirm = undefined; var redirectCallbackConfirm;
var redirectCallbackCancel = undefined; var redirectCallbackCancel;
core.redirectConfirm = function(message, callbackConfirm, callbackCancel) { core.redirectConfirm = function(message, callbackConfirm, callbackCancel) {
redirectCallbackConfirm = callbackConfirm; redirectCallbackConfirm = callbackConfirm;
redirectCallbackCancel = callbackCancel; redirectCallbackCancel = callbackCancel;
@ -602,7 +604,7 @@ define([
var isDocumentPanelShown = false; var isDocumentPanelShown = false;
var isMenuPanelShown = false; var isMenuPanelShown = false;
core.onReady = function() { core.onReady = function() {
if(viewerMode === true) { if(window.viewerMode === true) {
document.body.innerHTML = bodyViewerHTML; document.body.innerHTML = bodyViewerHTML;
} }
else { else {
@ -630,7 +632,7 @@ define([
$menuPanelElt = $('.menu-panel').collapse({ $menuPanelElt = $('.menu-panel').collapse({
toggle: false toggle: false
}); });
var menuPanelBackdropElt = undefined; var menuPanelBackdropElt;
$menuPanelElt.on('show.bs.collapse', function(e) { $menuPanelElt.on('show.bs.collapse', function(e) {
if(e.target === $menuPanelElt[0]) { if(e.target === $menuPanelElt[0]) {
isMenuPanelShown = true; isMenuPanelShown = true;
@ -658,7 +660,7 @@ define([
$documentPanelElt = $('.document-panel').collapse({ $documentPanelElt = $('.document-panel').collapse({
toggle: false toggle: false
}); });
var documentPanelBackdropElt = undefined; var documentPanelBackdropElt;
$documentPanelElt.on('show.bs.collapse', function(e) { $documentPanelElt.on('show.bs.collapse', function(e) {
if(e.target === $documentPanelElt[0]) { if(e.target === $documentPanelElt[0]) {
isDocumentPanelShown = true; isDocumentPanelShown = true;
@ -684,7 +686,7 @@ define([
}); });
// Editor // Editor
if(lightMode) { if(window.lightMode) {
// In light mode, we replace ACE with a textarea // In light mode, we replace ACE with a textarea
$('#wmd-input').replaceWith(function() { $('#wmd-input').replaceWith(function() {
return $('<textarea id="wmd-input">').addClass(this.className).addClass('form-control'); return $('<textarea id="wmd-input">').addClass(this.className).addClass('form-control');
@ -698,7 +700,7 @@ define([
"line-height": Math.round(settings.editorFontSize * (20 / 12)) + "px" "line-height": Math.round(settings.editorFontSize * (20 / 12)) + "px"
}); });
if(!lightMode) { if(!window.lightMode) {
// ACE editor // ACE editor
createAceEditor(); createAceEditor();
@ -715,7 +717,7 @@ define([
intervalId = window.setInterval(function() { intervalId = window.setInterval(function() {
utils.updateCurrentTime(); utils.updateCurrentTime();
checkWindowUnique(); checkWindowUnique();
if(isUserActive() === true || viewerMode === true) { if(isUserActive() === true || window.viewerMode === true) {
eventMgr.onPeriodicRun(); eventMgr.onPeriodicRun();
checkOnline(); checkOnline();
} }
@ -728,7 +730,7 @@ define([
eventMgr.addListener("onReady", function() { eventMgr.addListener("onReady", function() {
// In vertical mode, we have to offset the editor buttons otherwise they hide the editor buttons // In vertical mode, we have to offset the editor buttons otherwise they hide the editor buttons
if(!viewerMode && settings.layoutOrientation == "vertical") { if(!window.viewerMode && settings.layoutOrientation == "vertical") {
$previewButtonsElt.css('right', parseInt($previewButtonsElt.css('right')) + $editorButtonsElt.width()); $previewButtonsElt.css('right', parseInt($previewButtonsElt.css('right')) + $editorButtonsElt.width());
} }
@ -763,7 +765,7 @@ define([
}); });
// Configure Mousetrap // Configure Mousetrap
mousetrap.stopCallback = function(e, element, combo) { mousetrap.stopCallback = function(e, element) {
return isMenuPanelShown || isDocumentPanelShown || isModalShown || $(element).is("input, select, textarea:not(.ace_text-input)"); return isMenuPanelShown || isDocumentPanelShown || isModalShown || $(element).is("input, select, textarea:not(.ace_text-input)");
}; };
@ -803,12 +805,12 @@ define([
}); });
// Hot theme switcher in the settings // Hot theme switcher in the settings
var currentTheme = theme; var currentTheme = window.theme;
function applyTheme(theme) { function applyTheme(theme) {
theme = theme || 'default'; theme = theme || 'default';
if(currentTheme != theme) { if(currentTheme != theme) {
var themeModule = "less!themes/" + theme; var themeModule = "less!themes/" + theme;
if(baseDir.indexOf('-min') !== -1) { if(window.baseDir.indexOf('-min') !== -1) {
themeModule = "css!themes/" + theme; themeModule = "css!themes/" + theme;
} }
// Undefine the module in RequireJS // Undefine the module in RequireJS
@ -826,10 +828,10 @@ define([
}); });
// Import docs and settings // Import docs and settings
$(".action-import-docs-settings").click(function(e) { $(".action-import-docs-settings").click(function() {
$("#input-file-import-docs-settings").click(); $("#input-file-import-docs-settings").click();
}); });
var newstorage = undefined; var newstorage;
$("#input-file-import-docs-settings").change(function(evt) { $("#input-file-import-docs-settings").change(function(evt) {
var files = (evt.dataTransfer || evt.target).files; var files = (evt.dataTransfer || evt.target).files;
$(".modal-settings").modal("hide"); $(".modal-settings").modal("hide");
@ -849,7 +851,7 @@ define([
$('.modal-import-docs-settings').modal('show'); $('.modal-import-docs-settings').modal('show');
} }
} }
catch(e) { catch(exc) {
eventMgr.onError("Wrong format: " + importedFile.name); eventMgr.onError("Wrong format: " + importedFile.name);
} }
$("#input-file-import-docs-settings").val(''); $("#input-file-import-docs-settings").val('');
@ -858,7 +860,7 @@ define([
reader.readAsText(file); reader.readAsText(file);
}); });
}); });
$(".action-import-docs-settings-confirm").click(function(e) { $(".action-import-docs-settings-confirm").click(function() {
storage.clear(); storage.clear();
var allowedKeys = /^file\.|^focusMode$|^folder\.|^publish\.|^settings$|^sync\.|^theme$|^version$|^welcomeTour$/; var allowedKeys = /^file\.|^focusMode$|^folder\.|^publish\.|^settings$|^sync\.|^theme$|^version$|^welcomeTour$/;
_.each(newstorage, function(value, key) { _.each(newstorage, function(value, key) {
@ -869,7 +871,7 @@ define([
window.location.reload(); window.location.reload();
}); });
// Export settings // Export settings
$(".action-export-docs-settings").click(function(e) { $(".action-export-docs-settings").click(function() {
utils.saveAs(JSON.stringify(storage), "StackEdit local storage.json"); utils.saveAs(JSON.stringify(storage), "StackEdit local storage.json");
}); });
@ -915,7 +917,7 @@ define([
title: settingsUserCustomExtensionTooltipHTML title: settingsUserCustomExtensionTooltipHTML
}).click(function(e) { }).click(function(e) {
$(this).tooltip('show'); $(this).tooltip('show');
$(document).on("click.tooltip-usercustom-extension", function(e) { $(document).on("click.tooltip-usercustom-extension", function() {
tooltipOpen = false; tooltipOpen = false;
$(".tooltip-usercustom-extension").tooltip('hide'); $(".tooltip-usercustom-extension").tooltip('hide');
$(document).off("click.tooltip-usercustom-extension"); $(document).off("click.tooltip-usercustom-extension");
@ -933,7 +935,7 @@ define([
title: settingsTemplateTooltipHTML title: settingsTemplateTooltipHTML
}).click(function(e) { }).click(function(e) {
$tooltipElt.tooltip('show'); $tooltipElt.tooltip('show');
$(document).on("click.tooltip-template", function(e) { $(document).on("click.tooltip-template", function() {
tooltipOpen = false; tooltipOpen = false;
$(".tooltip-template").tooltip('hide'); $(".tooltip-template").tooltip('hide');
$(document).off("click.tooltip-template"); $(document).off("click.tooltip-template");
@ -970,11 +972,11 @@ define([
var $imgElt = $(imgElt); var $imgElt = $(imgElt);
var src = $imgElt.data('stackeditSrc'); var src = $imgElt.data('stackeditSrc');
if(src) { if(src) {
$imgElt.attr('src', baseDir + '/img/' + src); $imgElt.attr('src', window.baseDir + '/img/' + src);
} }
}); });
if(viewerMode === false) { if(window.viewerMode === false) {
// Load theme list // Load theme list
var themeOptions = _.reduce(constants.THEME_LIST, function(themeOptions, name, value) { var themeOptions = _.reduce(constants.THEME_LIST, function(themeOptions, name, value) {
return themeOptions + '<option value="' + value + '">' + name + '</option>'; return themeOptions + '<option value="' + value + '">' + name + '</option>';

View File

@ -3,6 +3,7 @@ define([
"underscore", "underscore",
"crel", "crel",
"utils", "utils",
"logger",
"classes/Extension", "classes/Extension",
"settings", "settings",
"text!html/settingsExtensionsAccordion.html", "text!html/settingsExtensionsAccordion.html",
@ -38,7 +39,7 @@ define([
"extensions/userCustom", "extensions/userCustom",
"bootstrap", "bootstrap",
"jquery-waitforimages" "jquery-waitforimages"
], function($, _, crel, utils, Extension, settings, settingsExtensionsAccordionHTML) { ], function($, _, crel, utils, logger, Extension, settings, settingsExtensionsAccordionHTML) {
var eventMgr = {}; var eventMgr = {};
@ -48,17 +49,17 @@ define([
}).compact().value(); }).compact().value();
// Configure extensions // Configure extensions
extensionSettings = settings.extensionSettings || {}; var extensionSettings = settings.extensionSettings || {};
_.each(extensionList, function(extension) { _.each(extensionList, function(extension) {
// Set the extension.config attribute from settings or default // Set the extension.config attribute from settings or default
// configuration // configuration
extension.config = _.extend({}, extension.defaultConfig, extensionSettings[extension.extensionId]); extension.config = _.extend({}, extension.defaultConfig, extensionSettings[extension.extensionId]);
if(viewerMode === true && extension.disableInViewer === true) { if(window.viewerMode === true && extension.disableInViewer === true) {
// Skip enabling the extension if we are in the viewer and extension // Skip enabling the extension if we are in the viewer and extension
// doesn't support it // doesn't support it
extension.enabled = false; extension.enabled = false;
} }
else if(lightMode === true && extension.disableInLight === true) { else if(window.lightMode === true && extension.disableInLight === true) {
// Same for light mode // Same for light mode
extension.enabled = false; extension.enabled = false;
} }
@ -116,7 +117,7 @@ define([
createEventHook("onInit")(); createEventHook("onInit")();
// Load/Save extension config from/to settings // Load/Save extension config from/to settings
eventMgr["onLoadSettings"] = function() { eventMgr.onLoadSettings = function() {
logger.log("onLoadSettings"); logger.log("onLoadSettings");
_.each(extensionList, function(extension) { _.each(extensionList, function(extension) {
utils.setInputChecked("#input-enable-extension-" + extension.extensionId, extension.enabled === true); utils.setInputChecked("#input-enable-extension-" + extension.extensionId, extension.enabled === true);
@ -124,7 +125,7 @@ define([
onLoadSettingsListener && onLoadSettingsListener(); onLoadSettingsListener && onLoadSettingsListener();
}); });
}; };
eventMgr["onSaveSettings"] = function(newExtensionSettings, event) { eventMgr.onSaveSettings = function(newExtensionSettings, event) {
logger.log("onSaveSettings"); logger.log("onSaveSettings");
_.each(extensionList, function(extension) { _.each(extensionList, function(extension) {
var newExtensionConfig = _.extend({}, extension.defaultConfig); var newExtensionConfig = _.extend({}, extension.defaultConfig);
@ -189,9 +190,9 @@ define([
var onPreviewFinished = createEventHook("onPreviewFinished"); var onPreviewFinished = createEventHook("onPreviewFinished");
var onAsyncPreviewListenerList = getExtensionListenerList("onAsyncPreview"); var onAsyncPreviewListenerList = getExtensionListenerList("onAsyncPreview");
var previewContentsElt = undefined; var previewContentsElt;
var $previewContentsElt = undefined; var $previewContentsElt;
eventMgr["onAsyncPreview"] = function() { eventMgr.onAsyncPreview = function() {
logger.log("onAsyncPreview"); logger.log("onAsyncPreview");
logger.log("Conversion time: " + (new Date() - eventMgr.previewStartTime)); logger.log("Conversion time: " + (new Date() - eventMgr.previewStartTime));
function recursiveCall(callbackList) { function recursiveCall(callbackList) {
@ -216,11 +217,11 @@ define([
}; };
var onReady = createEventHook("onReady"); var onReady = createEventHook("onReady");
eventMgr["onReady"] = function() { eventMgr.onReady = function() {
previewContentsElt = document.getElementById('preview-contents'); previewContentsElt = document.getElementById('preview-contents');
$previewContentsElt = $(previewContentsElt); $previewContentsElt = $(previewContentsElt);
if(viewerMode === false) { if(window.viewerMode === false) {
// Create accordion in settings dialog // Create accordion in settings dialog
var accordionHtml = _.chain(extensionList).sortBy(function(extension) { var accordionHtml = _.chain(extensionList).sortBy(function(extension) {
return extension.extensionName.toLowerCase(); return extension.extensionName.toLowerCase();
@ -235,7 +236,7 @@ define([
document.querySelector('.accordion-extensions').innerHTML = accordionHtml; document.querySelector('.accordion-extensions').innerHTML = accordionHtml;
// Create a button from an extension listener // Create a button from an extension listener
function createBtn(listener) { var createBtn = function(listener) {
var buttonGrpElt = crel('div', { var buttonGrpElt = crel('div', {
class: 'btn-group' class: 'btn-group'
}); });
@ -247,7 +248,7 @@ define([
buttonGrpElt.appendChild(btnElt); buttonGrpElt.appendChild(btnElt);
} }
return buttonGrpElt; return buttonGrpElt;
} };
// Create extension buttons // Create extension buttons
logger.log("onCreateButton"); logger.log("onCreateButton");

View File

@ -9,7 +9,7 @@ define([
var buttonFocusMode = new Extension("buttonFocusMode", 'Button "Focus Mode"', true, true, true); var buttonFocusMode = new Extension("buttonFocusMode", 'Button "Focus Mode"', true, true, true);
buttonFocusMode.settingsBlock = "When typing, scrolls automatically the editor to always have the caret centered verticaly."; buttonFocusMode.settingsBlock = "When typing, scrolls automatically the editor to always have the caret centered verticaly.";
var aceEditor = undefined; var aceEditor;
buttonFocusMode.onAceCreated = function(aceEditorParam) { buttonFocusMode.onAceCreated = function(aceEditorParam) {
aceEditor = aceEditorParam; aceEditor = aceEditorParam;
}; };
@ -25,7 +25,7 @@ define([
aceEditor.session.setScrollTop((positionInScreen.row + 0.5) * aceEditor.renderer.lineHeight - aceEditor.renderer.$size.scrollerHeight / 2); aceEditor.session.setScrollTop((positionInScreen.row + 0.5) * aceEditor.renderer.lineHeight - aceEditor.renderer.$size.scrollerHeight / 2);
} }
var $button = undefined; var $button;
buttonFocusMode.onReady = function() { buttonFocusMode.onReady = function() {
aceEditor.getSession().selection.on('changeCursor', doFocusMode); aceEditor.getSession().selection.on('changeCursor', doFocusMode);
aceEditor.container.addEventListener('keydown', function() { aceEditor.container.addEventListener('keydown', function() {

View File

@ -17,11 +17,11 @@ define([
utils.setInputValue("#textarea-html-code-template", buttonHtmlCode.config.template); utils.setInputValue("#textarea-html-code-template", buttonHtmlCode.config.template);
}; };
buttonHtmlCode.onSaveSettings = function(newConfig, event) { buttonHtmlCode.onSaveSettings = function(newConfig) {
newConfig.template = utils.getInputValue("#textarea-html-code-template"); newConfig.template = utils.getInputValue("#textarea-html-code-template");
}; };
var eventMgr = undefined; var eventMgr;
buttonHtmlCode.onEventMgrCreated = function(eventMgrParameter) { buttonHtmlCode.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
@ -30,12 +30,12 @@ define([
return buttonHtmlCodeHTML; return buttonHtmlCodeHTML;
}; };
var selectedFileDesc = undefined; var selectedFileDesc;
buttonHtmlCode.onFileSelected = function(fileDesc) { buttonHtmlCode.onFileSelected = function(fileDesc) {
selectedFileDesc = fileDesc; selectedFileDesc = fileDesc;
}; };
var textareaElt = undefined; var textareaElt;
buttonHtmlCode.onPreviewFinished = function(html) { buttonHtmlCode.onPreviewFinished = function(html) {
try { try {
var htmlCode = _.template(buttonHtmlCode.config.template, { var htmlCode = _.template(buttonHtmlCode.config.template, {
@ -59,8 +59,9 @@ define([
$(".action-html-code").click(function() { $(".action-html-code").click(function() {
_.defer(function() { _.defer(function() {
$("#input-html-code").each(function() { $("#input-html-code").each(function() {
if($(this).is(":hidden")) if($(this).is(":hidden")) {
return; return;
}
this.select(); this.select();
}); });
}); });

View File

@ -9,8 +9,8 @@ define([
// buttonPublish.settingsBlock = '<p>Adds a "Publish document" button in the // buttonPublish.settingsBlock = '<p>Adds a "Publish document" button in the
// navigation bar.</p>'; // navigation bar.</p>';
var $button = undefined; var $button;
var currentFileDesc = undefined; var currentFileDesc;
var publishRunning = false; var publishRunning = false;
var hasPublications = false; var hasPublications = false;
var isOffline = false; var isOffline = false;
@ -27,7 +27,7 @@ define([
} }
} }
var publisher = undefined; var publisher;
buttonPublish.onPublisherCreated = function(publisherParameter) { buttonPublish.onPublisherCreated = function(publisherParameter) {
publisher = publisherParameter; publisher = publisherParameter;
}; };

View File

@ -13,9 +13,9 @@ define([
return buttonShareHTML; return buttonShareHTML;
}; };
var fileDesc = undefined; var fileDesc;
var linkListElt = undefined; var linkListElt;
var $noLinkElt = undefined; var $noLinkElt;
var refreshDocumentSharing = function(fileDescParameter) { var refreshDocumentSharing = function(fileDescParameter) {
if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) { if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) {
return; return;

View File

@ -44,10 +44,10 @@ define([
return _.template(buttonStatHTML, buttonStat.config); return _.template(buttonStatHTML, buttonStat.config);
}; };
var previewContentsElt = undefined; var previewContentsElt;
var value1Elt = undefined; var value1Elt;
var value2Elt = undefined; var value2Elt;
var value3Elt = undefined; var value3Elt;
buttonStat.onReady = function() { buttonStat.onReady = function() {
previewContentsElt = document.getElementById('preview-contents'); previewContentsElt = document.getElementById('preview-contents');
value1Elt = document.getElementById('span-stat-value1'); value1Elt = document.getElementById('span-stat-value1');

View File

@ -25,12 +25,12 @@ define([
newConfig.syncShortcut = utils.getInputTextValue("#input-sync-shortcut", event); newConfig.syncShortcut = utils.getInputTextValue("#input-sync-shortcut", event);
}; };
var synchronizer = undefined; var synchronizer;
buttonSync.onSynchronizerCreated = function(synchronizerParameter) { buttonSync.onSynchronizerCreated = function(synchronizerParameter) {
synchronizer = synchronizerParameter; synchronizer = synchronizerParameter;
}; };
var $button = undefined; var $button;
var syncRunning = false; var syncRunning = false;
var isOffline = false; var isOffline = false;
// Enable/disable the button // Enable/disable the button

View File

@ -4,7 +4,6 @@ define([
"utils", "utils",
"classes/Extension", "classes/Extension",
"text!html/dialogAbout.html", "text!html/dialogAbout.html",
"config"
], function(_, constants, utils, Extension, dialogAboutHTML) { ], function(_, constants, utils, Extension, dialogAboutHTML) {
var dialogAbout = new Extension("dialogAbout", 'Dialog "About"'); var dialogAbout = new Extension("dialogAbout", 'Dialog "About"');
@ -23,7 +22,6 @@ define([
"Highlight.js": "http://softwaremaniacs.org/soft/highlight/en/", "Highlight.js": "http://softwaremaniacs.org/soft/highlight/en/",
"jGrowl": "https://github.com/stanlemon/jGrowl/", "jGrowl": "https://github.com/stanlemon/jGrowl/",
"jQuery": "http://jquery.com/", "jQuery": "http://jquery.com/",
"LESS": "http://lesscss.org/",
"lz-string": "http://pieroxy.net/blog/pages/lz-string/index.html", "lz-string": "http://pieroxy.net/blog/pages/lz-string/index.html",
"MathJax": "http://www.mathjax.org/", "MathJax": "http://www.mathjax.org/",
"Mousetrap": "http://craig.is/killing/mice", "Mousetrap": "http://craig.is/killing/mice",

View File

@ -7,15 +7,15 @@ define([
var dialogManagePublication = new Extension("dialogManagePublication", 'Dialog "Manage publication"', false, true); var dialogManagePublication = new Extension("dialogManagePublication", 'Dialog "Manage publication"', false, true);
var eventMgr = undefined; var eventMgr;
dialogManagePublication.onEventMgrCreated = function(eventMgrParameter) { dialogManagePublication.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
var fileDesc = undefined; var fileDesc;
var publishListElt = undefined; var publishListElt;
var $msgPublishListElt = undefined; var $msgPublishListElt;
var $msgNoPublishElt = undefined; var $msgNoPublishElt;
var refreshDialog = function(fileDescParameter) { var refreshDialog = function(fileDescParameter) {
if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) { if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) {
return; return;

View File

@ -7,20 +7,20 @@ define([
var dialogManageSynchronization = new Extension("dialogManageSynchronization", 'Dialog "Manage synchronization"', false, true); var dialogManageSynchronization = new Extension("dialogManageSynchronization", 'Dialog "Manage synchronization"', false, true);
var eventMgr = undefined; var eventMgr;
dialogManageSynchronization.onEventMgrCreated = function(eventMgrParameter) { dialogManageSynchronization.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
var synchronizer = undefined; var synchronizer;
dialogManageSynchronization.onSynchronizerCreated = function(synchronizerParameter) { dialogManageSynchronization.onSynchronizerCreated = function(synchronizerParameter) {
synchronizer = synchronizerParameter; synchronizer = synchronizerParameter;
}; };
var fileDesc = undefined; var fileDesc;
var syncListElt = undefined; var syncListElt;
var $msgSyncListElt = undefined; var $msgSyncListElt;
var $msgNoSyncElt = undefined; var $msgNoSyncElt;
var refreshDialog = function(fileDescParameter) { var refreshDialog = function(fileDescParameter) {
if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) { if(fileDescParameter !== undefined && fileDescParameter !== fileDesc) {
return; return;

View File

@ -5,23 +5,22 @@ define([
"utils", "utils",
"classes/Extension", "classes/Extension",
"toMarkdown", "toMarkdown",
"config",
], function($, _, constants, utils, Extension, toMarkdown) { ], function($, _, constants, utils, Extension, toMarkdown) {
var dialogOpenHarddrive = new Extension("dialogOpenHarddrive", 'Dialog "Open from"'); var dialogOpenHarddrive = new Extension("dialogOpenHarddrive", 'Dialog "Open from"');
var fileMgr = undefined; var fileMgr;
dialogOpenHarddrive.onFileMgrCreated = function(fileMgrParameter) { dialogOpenHarddrive.onFileMgrCreated = function(fileMgrParameter) {
fileMgr = fileMgrParameter; fileMgr = fileMgrParameter;
}; };
var eventMgr = undefined; var eventMgr;
dialogOpenHarddrive.onEventMgrCreated = function(eventMgrParameter) { dialogOpenHarddrive.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
var contentWrapper = undefined; var contentWrapper;
var converter = undefined; var converter;
var htmlContentWrapper = function(content) { var htmlContentWrapper = function(content) {
return converter.makeMd(content); return converter.makeMd(content);
}; };

View File

@ -8,17 +8,16 @@ define([
"classes/FolderDescriptor", "classes/FolderDescriptor",
"folderList", "folderList",
"fileSystem", "fileSystem",
"config"
], function($, _, constants, utils, storage, Extension, FolderDescriptor, folderList, fileSystem) { ], function($, _, constants, utils, storage, Extension, FolderDescriptor, folderList, fileSystem) {
var documentManager = new Extension("documentManager", 'Document Manager', false, true); var documentManager = new Extension("documentManager", 'Document Manager', false, true);
var fileMgr = undefined; var fileMgr;
documentManager.onFileMgrCreated = function(fileMgrParameter) { documentManager.onFileMgrCreated = function(fileMgrParameter) {
fileMgr = fileMgrParameter; fileMgr = fileMgrParameter;
}; };
var eventMgr = undefined; var eventMgr;
documentManager.onEventMgrCreated = function(eventMgrParameter) { documentManager.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
@ -53,9 +52,9 @@ define([
'<div class="name"><%= fileDesc.composeTitle() %></div></li>', '<div class="name"><%= fileDesc.composeTitle() %></div></li>',
].join(''); ].join('');
var isVisible = false; var isVisible;
var modalElt = undefined; var modalElt;
var documentListElt = undefined; var documentListElt;
var selectedDocumentList = []; var selectedDocumentList = [];
var selectedFolderList = []; var selectedFolderList = [];
function doSelect() { function doSelect() {
@ -74,7 +73,7 @@ define([
}); });
} }
var selectedDocumentListElt = undefined; var selectedDocumentListElt;
function doDeleteConfirmation() { function doDeleteConfirmation() {
// Don't ask user confirmation if we delete only folders // Don't ask user confirmation if we delete only folders
if(_.size(selectedDocumentList) === 0) { if(_.size(selectedDocumentList) === 0) {
@ -114,8 +113,8 @@ define([
eventMgr.onFoldersChanged(); eventMgr.onFoldersChanged();
} }
var $liMoveElt = undefined; var $liMoveElt;
var $liDeleteElt = undefined; var $liDeleteElt;
function doActiveButtons() { function doActiveButtons() {
doSelect(); doSelect();
@ -123,9 +122,9 @@ define([
$liDeleteElt.toggleClass('disabled', _.size(selectedFolderList) === 0 && _.size(selectedDocumentList) === 0); $liDeleteElt.toggleClass('disabled', _.size(selectedFolderList) === 0 && _.size(selectedDocumentList) === 0);
} }
var orphanDocumentList = undefined; var orphanDocumentList;
var $documentCountElt = undefined; var $documentCountElt;
var $folderCountElt = undefined; var $folderCountElt;
var refreshManager = function() { var refreshManager = function() {
if(isVisible === false) { if(isVisible === false) {
return; return;
@ -212,7 +211,7 @@ define([
$buttonElt.click(function(e) { $buttonElt.click(function(e) {
e.stopPropagation(); e.stopPropagation();
var $parentElt = $buttonElt.parent(); var $parentElt = $buttonElt.parent();
var name = undefined; var name;
var folderDesc = folderList[$parentElt.data('folderIndex')]; var folderDesc = folderList[$parentElt.data('folderIndex')];
var fileDesc = fileSystem[$parentElt.data('fileIndex')]; var fileDesc = fileSystem[$parentElt.data('fileIndex')];
if(folderDesc) { if(folderDesc) {
@ -311,7 +310,7 @@ define([
// Create folder action // Create folder action
$(modalElt.querySelectorAll('.action-create-folder')).click(function() { $(modalElt.querySelectorAll('.action-create-folder')).click(function() {
var folderIndex = undefined; var folderIndex;
do { do {
folderIndex = "folder." + utils.randomString(); folderIndex = "folder." + utils.randomString();
} while (_.has(folderList, folderIndex)); } while (_.has(folderList, folderIndex));

View File

@ -9,7 +9,7 @@ define([
var documentPanel = new Extension("documentPanel", 'Document Panel'); var documentPanel = new Extension("documentPanel", 'Document Panel');
var fileMgr = undefined; var fileMgr;
documentPanel.onFileMgrCreated = function(fileMgrParameter) { documentPanel.onFileMgrCreated = function(fileMgrParameter) {
fileMgr = fileMgrParameter; fileMgr = fileMgrParameter;
}; };
@ -39,12 +39,12 @@ define([
'</a>', '</a>',
].join(''); ].join('');
var panelElt = undefined; var panelElt;
var documentListElt = undefined; var documentListElt;
var $documentListElt = undefined; var $documentListElt;
var documentListFilteredElt = undefined; var documentListFilteredElt;
var $documentListFilteredElt = undefined; var $documentListFilteredElt;
var selectedFileDesc = undefined; var selectedFileDesc;
var refreshPanel = function() { var refreshPanel = function() {
// List orphan documents // List orphan documents
@ -101,7 +101,7 @@ define([
// Add click listeners // Add click listeners
_.each(panelElt.querySelectorAll('.file'), function(fileElt) { _.each(panelElt.querySelectorAll('.file'), function(fileElt) {
var $fileElt = $(fileElt); var $fileElt = $(fileElt);
$fileElt.click(function(e) { $fileElt.click(function() {
var fileDesc = fileSystem[$fileElt.data('fileIndex')]; var fileDesc = fileSystem[$fileElt.data('fileIndex')];
if(fileDesc && fileDesc !== selectedFileDesc) { if(fileDesc && fileDesc !== selectedFileDesc) {
fileMgr.selectFile(fileDesc); fileMgr.selectFile(fileDesc);
@ -126,7 +126,7 @@ define([
documentPanel.onFoldersChanged = refreshPanel; documentPanel.onFoldersChanged = refreshPanel;
// Filter for search input in file selector // Filter for search input in file selector
var panelContentElt = undefined; var panelContentElt;
var previousFilterValue = ''; var previousFilterValue = '';
function filterFiles(filterValue) { function filterFiles(filterValue) {
if(filterValue == previousFilterValue) { if(filterValue == previousFilterValue) {

View File

@ -29,12 +29,12 @@ define([
newConfig.shortcutNext = utils.getInputTextValue("#input-document-selector-shortcut-next", event); newConfig.shortcutNext = utils.getInputTextValue("#input-document-selector-shortcut-next", event);
}; };
var aceEditor = undefined; var aceEditor;
documentSelector.onAceCreated = function(aceEditorParam) { documentSelector.onAceCreated = function(aceEditorParam) {
aceEditor = aceEditorParam; aceEditor = aceEditorParam;
}; };
var fileMgr = undefined; var fileMgr;
documentSelector.onFileMgrCreated = function(fileMgrParameter) { documentSelector.onFileMgrCreated = function(fileMgrParameter) {
fileMgr = fileMgrParameter; fileMgr = fileMgrParameter;
}; };
@ -46,13 +46,13 @@ define([
' </a>', ' </a>',
'</li>' '</li>'
].join(''); ].join('');
var dropdownElt = undefined; var dropdownElt;
var liEltMap = undefined; var liEltMap;
var liEltList = undefined; var liEltList;
var sortFunction = undefined; var sortFunction;
var selectFileDesc = undefined; var selectFileDesc;
var selectedLi = undefined; var selectedLi;
var $editorElt = undefined; var $editorElt;
var buildSelector = function() { var buildSelector = function() {
var liListHtml = _.chain(fileSystem).sortBy(sortFunction).reduce(function(result, fileDesc) { var liListHtml = _.chain(fileSystem).sortBy(sortFunction).reduce(function(result, fileDesc) {
return result + _.template(liEltTmpl, { return result + _.template(liEltTmpl, {

View File

@ -6,13 +6,13 @@ define([
var documentTitle = new Extension("documentTitle", "Document Title"); var documentTitle = new Extension("documentTitle", "Document Title");
var layout = undefined; var layout;
documentTitle.onLayoutCreated = function(layoutParameter) { documentTitle.onLayoutCreated = function(layoutParameter) {
layout = layoutParameter; layout = layoutParameter;
}; };
var fileDesc = undefined; var fileDesc;
var $fileTitleNavbar = undefined; var $fileTitleNavbar;
var updateTitle = function(fileDescParameter) { var updateTitle = function(fileDescParameter) {
if(fileDescParameter !== fileDesc) { if(fileDescParameter !== fileDesc) {
return; return;

View File

@ -1,3 +1,4 @@
/*globals _gaq */
define([ define([
"jquery", "jquery",
"underscore", "underscore",
@ -5,7 +6,6 @@ define([
"utils", "utils",
"classes/Extension", "classes/Extension",
"settings", "settings",
"config",
], function($, _, constants, utils, Extension, settings) { ], function($, _, constants, utils, Extension, settings) {
var googleAnalytics = new Extension("googleAnalytics", "Google Analytics", true); var googleAnalytics = new Extension("googleAnalytics", "Google Analytics", true);
@ -13,7 +13,7 @@ define([
var isLoaded = false; var isLoaded = false;
var isOffline = false; var isOffline = false;
window["_gaq"] = []; window._gaq = [];
var init = function() { var init = function() {
if(isLoaded === false && isOffline === false) { if(isLoaded === false && isOffline === false) {
@ -71,7 +71,7 @@ define([
'_trackEvent', '_trackEvent',
"Settings", "Settings",
'theme', 'theme',
"" + theme "" + window.theme
]); ]);
_gaq.push([ _gaq.push([
'_trackEvent', '_trackEvent',
@ -86,11 +86,11 @@ define([
"" + settings.editorFontFamily "" + settings.editorFontFamily
]); ]);
_gaq.push([ _gaq.push([
'_trackEvent', '_trackEvent',
"Settings", "Settings",
'editorFontSize', 'editorFontSize',
"" + settings.editorFontSize "" + settings.editorFontSize
]); ]);
// Check if user has removed back links // Check if user has removed back links
_gaq.push([ _gaq.push([
'_trackEvent', '_trackEvent',

View File

@ -1,11 +1,14 @@
/*globals Markdown */
define([ define([
"jquery", "jquery",
"underscore", "underscore",
"utils", "utils",
"classes/Extension", "classes/Extension",
"text!html/markdownExtraSettingsBlock.html", "text!html/markdownExtraSettingsBlock.html",
'google-code-prettify',
'highlightjs',
'pagedown-extra', 'pagedown-extra',
], function($, _, utils, Extension, markdownExtraSettingsBlockHTML) { ], function($, _, utils, Extension, markdownExtraSettingsBlockHTML, prettyPrint, hljs) {
var markdownExtra = new Extension("markdownExtra", "Markdown Extra", true); var markdownExtra = new Extension("markdownExtra", "Markdown Extra", true);
markdownExtra.settingsBlock = markdownExtraSettingsBlockHTML; markdownExtra.settingsBlock = markdownExtraSettingsBlockHTML;
@ -36,7 +39,7 @@ define([
utils.setInputValue("#input-markdownextra-highlighter", markdownExtra.config.highlighter); utils.setInputValue("#input-markdownextra-highlighter", markdownExtra.config.highlighter);
}; };
markdownExtra.onSaveSettings = function(newConfig, event) { markdownExtra.onSaveSettings = function(newConfig) {
newConfig.extensions = []; newConfig.extensions = [];
utils.getInputChecked("#input-markdownextra-fencedcodegfm") && newConfig.extensions.push("fenced_code_gfm"); utils.getInputChecked("#input-markdownextra-fencedcodegfm") && newConfig.extensions.push("fenced_code_gfm");
utils.getInputChecked("#input-markdownextra-tables") && newConfig.extensions.push("tables"); utils.getInputChecked("#input-markdownextra-tables") && newConfig.extensions.push("tables");
@ -47,7 +50,7 @@ define([
newConfig.highlighter = utils.getInputValue("#input-markdownextra-highlighter"); newConfig.highlighter = utils.getInputValue("#input-markdownextra-highlighter");
}; };
var eventMgr = undefined; var eventMgr;
markdownExtra.onEventMgrCreated = function(eventMgrParameter) { markdownExtra.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };

View File

@ -4,7 +4,7 @@ define([
var markdownSectionParser = new Extension("markdownSectionParser", "Markdown section parser"); var markdownSectionParser = new Extension("markdownSectionParser", "Markdown section parser");
var eventMgr = undefined; var eventMgr;
markdownSectionParser.onEventMgrCreated = function(eventMgrParameter) { markdownSectionParser.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };

View File

@ -1,3 +1,4 @@
/*defines MathJax */
define([ define([
"utils", "utils",
"classes/Extension", "classes/Extension",
@ -22,6 +23,7 @@ define([
newConfig.tex2jax = utils.getInputJsValue("#input-mathjax-config-tex2jax", event); newConfig.tex2jax = utils.getInputJsValue("#input-mathjax-config-tex2jax", event);
}; };
/*jshint ignore:start */
mathJax.onPagedownConfigure = function(editorObject) { mathJax.onPagedownConfigure = function(editorObject) {
t = document.getElementById("preview-contents"); t = document.getElementById("preview-contents");
@ -30,7 +32,7 @@ define([
converter.hooks.chain("postConversion", d); converter.hooks.chain("postConversion", d);
}; };
var afterRefreshCallback = undefined; var afterRefreshCallback;
mathJax.onAsyncPreview = function(callback) { mathJax.onAsyncPreview = function(callback) {
afterRefreshCallback = callback; afterRefreshCallback = callback;
j(); j();
@ -157,7 +159,7 @@ define([
} }
} }
})(); })();
/*jshint ignore:end */
return mathJax; return mathJax;
}); });

View File

@ -2,10 +2,11 @@ define([
"jquery", "jquery",
"underscore", "underscore",
"utils", "utils",
"logger",
"classes/Extension", "classes/Extension",
"jgrowl", "jgrowl",
"text!html/notificationsSettingsBlock.html", "text!html/notificationsSettingsBlock.html",
], function($, _, utils, Extension, jGrowl, notificationsSettingsBlockHTML) { ], function($, _, utils, logger, Extension, jGrowl, notificationsSettingsBlockHTML) {
var notifications = new Extension("notifications", "Notifications"); var notifications = new Extension("notifications", "Notifications");
notifications.settingsBlock = notificationsSettingsBlockHTML; notifications.settingsBlock = notificationsSettingsBlockHTML;

View File

@ -8,13 +8,13 @@ define([
var partialRendering = new Extension("partialRendering", "Partial Rendering", true); var partialRendering = new Extension("partialRendering", "Partial Rendering", true);
partialRendering.settingsBlock = partialRenderingSettingsBlockHTML; partialRendering.settingsBlock = partialRenderingSettingsBlockHTML;
var converter = undefined; var converter;
var sectionCounter = 0; var sectionCounter = 0;
var sectionList = []; var sectionList = [];
var linkDefinition = undefined; var linkDefinition;
var sectionsToRemove = []; var sectionsToRemove = [];
var modifiedSections = []; var modifiedSections = [];
var insertBeforeSection = undefined; var insertBeforeSection;
var fileChanged = false; var fileChanged = false;
function updateSectionList(newSectionList, newLinkDefinition) { function updateSectionList(newSectionList, newLinkDefinition) {
modifiedSections = []; modifiedSections = [];
@ -107,9 +107,15 @@ define([
updateSectionList(newSectionList, newLinkDefinition); updateSectionList(newSectionList, newLinkDefinition);
}; };
var footnoteContainerElt = undefined;
var previewContentsElt = undefined;
var footnoteMap = {}; var footnoteMap = {};
// Store one footnote elt in the footnote map
function storeFootnote(footnoteElt) {
var id = footnoteElt.id.substring(3);
footnoteMap[id] = footnoteElt;
}
var footnoteContainerElt;
var previewContentsElt;
function refreshSections() { function refreshSections() {
// Remove outdated sections // Remove outdated sections
@ -117,11 +123,10 @@ define([
var sectionElt = document.getElementById("wmd-preview-section-" + section.id); var sectionElt = document.getElementById("wmd-preview-section-" + section.id);
previewContentsElt.removeChild(sectionElt); previewContentsElt.removeChild(sectionElt);
}); });
var wmdPreviewElt = document.getElementById("wmd-preview"); var wmdPreviewElt = document.getElementById("wmd-preview");
var childNode = wmdPreviewElt.firstChild; var childNode = wmdPreviewElt.firstChild;
var newSectionEltList = document.createDocumentFragment(); function createSectionElt(section) {
_.each(modifiedSections, function(section) {
var sectionElt = crel('div', { var sectionElt = crel('div', {
id: 'wmd-preview-section-' + section.id, id: 'wmd-preview-section-' + section.id,
class: 'wmd-preview-section preview-content' class: 'wmd-preview-section preview-content'
@ -135,18 +140,19 @@ define([
} }
isFirst = false; isFirst = false;
if(childNode.tagName == 'DIV' && childNode.className == 'footnotes') { if(childNode.tagName == 'DIV' && childNode.className == 'footnotes') {
_.each(childNode.querySelectorAll("ol > li"), function(footnoteElt) { _.each(childNode.querySelectorAll("ol > li"), storeFootnote);
// Store each footnote in our footnote map
var id = footnoteElt.id.substring(3);
footnoteMap[id] = footnoteElt;
});
} }
else { else {
sectionElt.appendChild(childNode); sectionElt.appendChild(childNode);
} }
childNode = nextNode; childNode = nextNode;
} }
newSectionEltList.appendChild(sectionElt); return sectionElt;
}
var newSectionEltList = document.createDocumentFragment();
_.each(modifiedSections, function(section) {
newSectionEltList.appendChild(createSectionElt(section));
}); });
wmdPreviewElt.innerHTML = ''; wmdPreviewElt.innerHTML = '';
var insertBeforeElt = footnoteContainerElt; var insertBeforeElt = footnoteContainerElt;
@ -179,7 +185,7 @@ define([
partialRendering.onPagedownConfigure = function(editor) { partialRendering.onPagedownConfigure = function(editor) {
converter = editor.getConverter(); converter = editor.getConverter();
converter.hooks.chain("preConversion", function(text) { converter.hooks.chain("preConversion", function() {
var result = _.map(modifiedSections, function(section) { var result = _.map(modifiedSections, function(section) {
return section.text; return section.text;
}); });

View File

@ -8,12 +8,12 @@ define([
var scrollLink = new Extension("scrollLink", "Scroll Link", true, true, true); var scrollLink = new Extension("scrollLink", "Scroll Link", true, true, true);
scrollLink.settingsBlock = scrollLinkSettingsBlockHTML; scrollLink.settingsBlock = scrollLinkSettingsBlockHTML;
var aceEditor = undefined; var aceEditor;
scrollLink.onAceCreated = function(aceEditorParam) { scrollLink.onAceCreated = function(aceEditorParam) {
aceEditor = aceEditorParam; aceEditor = aceEditorParam;
}; };
var sectionList = undefined; var sectionList;
scrollLink.onSectionsCreated = function(sectionListParam) { scrollLink.onSectionsCreated = function(sectionListParam) {
sectionList = sectionListParam; sectionList = sectionListParam;
}; };
@ -23,14 +23,14 @@ define([
offsetBegin = offsetBeginParam; offsetBegin = offsetBeginParam;
}; };
var $previewElt = undefined; var $previewElt;
var mdSectionList = []; var mdSectionList = [];
var htmlSectionList = []; var htmlSectionList = [];
function pxToFloat(px) { function pxToFloat(px) {
return parseFloat(px.substring(0, px.length - 2)); return parseFloat(px.substring(0, px.length - 2));
} }
var lastEditorScrollTop = undefined; var lastEditorScrollTop;
var lastPreviewScrollTop = undefined; var lastPreviewScrollTop;
var buildSections = _.debounce(function() { var buildSections = _.debounce(function() {
mdSectionList = []; mdSectionList = [];
@ -96,7 +96,7 @@ define([
var previewScrollTop = $previewElt.scrollTop(); var previewScrollTop = $previewElt.scrollTop();
function getDestScrollTop(srcScrollTop, srcSectionList, destSectionList) { function getDestScrollTop(srcScrollTop, srcSectionList, destSectionList) {
// Find the section corresponding to the offset // Find the section corresponding to the offset
var sectionIndex = undefined; var sectionIndex;
var srcSection = _.find(srcSectionList, function(section, index) { var srcSection = _.find(srcSectionList, function(section, index) {
sectionIndex = index; sectionIndex = index;
return srcScrollTop < section.endOffset; return srcScrollTop < section.endOffset;
@ -109,12 +109,13 @@ define([
var destSection = destSectionList[sectionIndex]; var destSection = destSectionList[sectionIndex];
return destSection.startOffset + destSection.height * posInSection; return destSection.startOffset + destSection.height * posInSection;
} }
var destScrollTop;
// Perform the animation if diff > 9px // Perform the animation if diff > 9px
if(isScrollEditor === true && Math.abs(editorScrollTop - lastEditorScrollTop) > 9) { if(isScrollEditor === true && Math.abs(editorScrollTop - lastEditorScrollTop) > 9) {
isScrollEditor = false; isScrollEditor = false;
// Animate the preview // Animate the preview
lastEditorScrollTop = editorScrollTop; lastEditorScrollTop = editorScrollTop;
var destScrollTop = getDestScrollTop(editorScrollTop, mdSectionList, htmlSectionList); destScrollTop = getDestScrollTop(editorScrollTop, mdSectionList, htmlSectionList);
destScrollTop = _.min([ destScrollTop = _.min([
destScrollTop, destScrollTop,
$previewElt.prop('scrollHeight') - $previewElt.outerHeight() $previewElt.prop('scrollHeight') - $previewElt.outerHeight()
@ -144,7 +145,7 @@ define([
isScrollPreview = false; isScrollPreview = false;
// Animate the editor // Animate the editor
lastPreviewScrollTop = previewScrollTop; lastPreviewScrollTop = previewScrollTop;
var destScrollTop = getDestScrollTop(previewScrollTop, htmlSectionList, mdSectionList); destScrollTop = getDestScrollTop(previewScrollTop, htmlSectionList, mdSectionList);
destScrollTop = _.min([ destScrollTop = _.min([
destScrollTop, destScrollTop,
aceEditor.session.getScreenLength() * aceEditor.renderer.lineHeight - aceEditor.renderer.$size.scrollerHeight aceEditor.session.getScreenLength() * aceEditor.renderer.lineHeight - aceEditor.renderer.$size.scrollerHeight
@ -198,7 +199,7 @@ define([
} }
scrollAdjust = false; scrollAdjust = false;
}); });
aceEditor.session.on("changeScrollTop", function(e) { aceEditor.session.on("changeScrollTop", function() {
if(isEditorMoving === false) { if(isEditorMoving === false) {
isScrollEditor = true; isScrollEditor = true;
isScrollPreview = false; isScrollPreview = false;
@ -207,7 +208,7 @@ define([
}); });
}; };
var $previewContentsElt = undefined; var $previewContentsElt;
scrollLink.onPagedownConfigure = function(editor) { scrollLink.onPagedownConfigure = function(editor) {
$previewContentsElt = $("#preview-contents"); $previewContentsElt = $("#preview-contents");
editor.getConverter().hooks.chain("postConversion", function(text) { editor.getConverter().hooks.chain("postConversion", function(text) {

View File

@ -9,7 +9,7 @@ define([
"text!bower-libs/lz-string/libs/lz-string-1.3.3.js", "text!bower-libs/lz-string/libs/lz-string-1.3.3.js",
"text!workers/spellCheckWorker.js", "text!workers/spellCheckWorker.js",
"text!html/spellCheckSettingsBlock.html", "text!html/spellCheckSettingsBlock.html",
], function($, _, crel, utils, Extension, XRegExp, typoJS, LZStringJS, spellCheckWorkerJS, spellCheckSettingsBlockHTML) { ], function($, _, crel, utils, Extension, XRegExp, typoJS, LZStringJS, spellCheckWorkerJS, spellCheckSettingsBlockHTML) {
var spellCheck = new Extension("spellCheck", "Spell Check", true, true, true); var spellCheck = new Extension("spellCheck", "Spell Check", true, true, true);
spellCheck.settingsBlock = spellCheckSettingsBlockHTML; spellCheck.settingsBlock = spellCheckSettingsBlockHTML;
@ -21,11 +21,11 @@ define([
utils.setInputValue("#select-spell-check-locale", spellCheck.config.locale); utils.setInputValue("#select-spell-check-locale", spellCheck.config.locale);
}; };
spellCheck.onSaveSettings = function(newConfig, event) { spellCheck.onSaveSettings = function(newConfig) {
newConfig.locale = utils.getInputValue("#select-spell-check-locale"); newConfig.locale = utils.getInputValue("#select-spell-check-locale");
}; };
var worker = undefined; var worker;
var isInited = false; var isInited = false;
spellCheck.onInit = function() { spellCheck.onInit = function() {
// Create a web worker // Create a web worker
@ -34,19 +34,19 @@ define([
require([ require([
'text!../libs/dictionaries/' + spellCheck.config.locale + '.dic.lz', 'text!../libs/dictionaries/' + spellCheck.config.locale + '.dic.lz',
'text!../libs/dictionaries/' + spellCheck.config.locale + '.aff.lz', 'text!../libs/dictionaries/' + spellCheck.config.locale + '.aff.lz',
], function(dic, aff) { ], function(dic, aff) {
worker.postMessage(JSON.stringify(['init', typoJS, LZStringJS, spellCheck.config.locale, aff, dic])); worker.postMessage(JSON.stringify(['init', typoJS, LZStringJS, spellCheck.config.locale, aff, dic]));
isInited = true; isInited = true;
start(); start();
}); });
}; };
var aceEditor = undefined; var aceEditor;
var wordRegExp = XRegExp('\\p{L}+(?:\'\\p{L}+)*', 'g'); var wordRegExp = XRegExp('\\p{L}+(?:\'\\p{L}+)*', 'g');
var markers = []; var markers = [];
var timeoutId = undefined; var timeoutId;
var currentRowCheck = undefined; var currentRowCheck;
function rowCheck(rowIndex) { function rowCheck(rowIndex) {
var tokens = aceEditor.session.getTokens(rowIndex).slice(); var tokens = aceEditor.session.getTokens(rowIndex).slice();
@ -128,8 +128,9 @@ define([
timeoutId = setTimeout(check, 700); timeoutId = setTimeout(check, 700);
} }
var dropdownElt = undefined; /*
var $dropdownElt = undefined; var dropdownElt;
var $dropdownElt;
var liEltTmpl = [ var liEltTmpl = [
'<li>', '<li>',
' <a href="#">', ' <a href="#">',
@ -165,6 +166,7 @@ define([
worker.postMessage(JSON.stringify(['suggest', word])); worker.postMessage(JSON.stringify(['suggest', word]));
}; };
} }
*/
var fileOpen = false; var fileOpen = false;
spellCheck.onFileClose = function() { spellCheck.onFileClose = function() {

View File

@ -63,7 +63,7 @@ define([
var tagName = "H" + level; var tagName = "H" + level;
var result = []; var result = [];
var currentElement = undefined; var currentElement;
function pushCurrentElement() { function pushCurrentElement() {
if(currentElement !== undefined) { if(currentElement !== undefined) {
if(currentElement.children.length > 0) { if(currentElement.children.length > 0) {
@ -73,7 +73,7 @@ define([
} }
} }
_.each(array, function(element, index) { _.each(array, function(element) {
if(element.tagName != tagName) { if(element.tagName != tagName) {
if(currentElement === undefined) { if(currentElement === undefined) {
currentElement = new TocElement(); currentElement = new TocElement();
@ -90,7 +90,7 @@ define([
} }
// Build the TOC // Build the TOC
var previewContentsElt = undefined; var previewContentsElt;
function buildToc() { function buildToc() {
var anchorList = {}; var anchorList = {};
function createAnchor(element) { function createAnchor(element) {

View File

@ -14,22 +14,22 @@ define([
code: "", code: "",
}; };
var fileMgr = undefined; var fileMgr;
userCustom.onFileMgrCreated = function(fileMgrParameter) { userCustom.onFileMgrCreated = function(fileMgrParameter) {
fileMgr = fileMgrParameter; fileMgr = fileMgrParameter;
}; };
var synchronizer = undefined; var synchronizer;
userCustom.onSynchronizerCreated = function(synchronizerParameter) { userCustom.onSynchronizerCreated = function(synchronizerParameter) {
synchronizer = synchronizerParameter; synchronizer = synchronizerParameter;
}; };
var publisher = undefined; var publisher;
userCustom.onPublisherCreated = function(publisherParameter) { userCustom.onPublisherCreated = function(publisherParameter) {
publisher = publisherParameter; publisher = publisherParameter;
}; };
var eventMgr = undefined; var eventMgr;
userCustom.onEventMgrCreated = function(eventMgrParameter) { userCustom.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
@ -41,6 +41,7 @@ define([
userCustom.onSaveSettings = function(newConfig, event) { userCustom.onSaveSettings = function(newConfig, event) {
newConfig.code = utils.getInputValue("#textarea-usercustom-code"); newConfig.code = utils.getInputValue("#textarea-usercustom-code");
try { try {
/*jshint evil: true */
eval(newConfig.code); eval(newConfig.code);
} }
catch(e) { catch(e) {
@ -52,6 +53,7 @@ define([
userCustom.onInit = function() { userCustom.onInit = function() {
try { try {
/*jshint evil: true */
eval(userCustom.config.code); eval(userCustom.config.code);
} }
catch(e) { catch(e) {

View File

@ -4,7 +4,7 @@ define([
'storage', 'storage',
'classes/Extension', 'classes/Extension',
'bootstrap-tour' 'bootstrap-tour'
], function(_, $, storage, Extension) { ], function(_, $, storage, Extension, Tour) {
var welcomeTour = new Extension('welcomeTour', 'Welcome tour', false, true); var welcomeTour = new Extension('welcomeTour', 'Welcome tour', false, true);
@ -19,7 +19,7 @@ define([
removeItem: function() { removeItem: function() {
} }
}, },
onEnd: function(tour) { onEnd: function() {
storage.welcomeTour = 'done'; storage.welcomeTour = 'done';
}, },
template: [ template: [

View File

@ -6,8 +6,8 @@ define([
var workingIndicator = new Extension("workingIndicator", "Working Indicator"); var workingIndicator = new Extension("workingIndicator", "Working Indicator");
var $bodyElt = undefined; var $bodyElt;
var $workingIndicatorElt = undefined; var $workingIndicatorElt;
workingIndicator.onAsyncRunning = function(isRunning) { workingIndicator.onAsyncRunning = function(isRunning) {
$bodyElt.toggleClass("working", isRunning); $bodyElt.toggleClass("working", isRunning);
$workingIndicatorElt.toggleClass("show", isRunning); $workingIndicatorElt.toggleClass("show", isRunning);

View File

@ -1,16 +1,16 @@
define([ define([
"classes/Extension", "classes/Extension",
"yaml-js", "yaml-js",
], function(Extension, YAML) { ], function(Extension, YAML) {
var yamlFrontMatterParser = new Extension("yamlFrontMatterParser", "YAML front matter"); var yamlFrontMatterParser = new Extension("yamlFrontMatterParser", "YAML front matter");
var eventMgr = undefined; var eventMgr;
yamlFrontMatterParser.onEventMgrCreated = function(eventMgrParameter) { yamlFrontMatterParser.onEventMgrCreated = function(eventMgrParameter) {
eventMgr = eventMgrParameter; eventMgr = eventMgrParameter;
}; };
var fileDesc = undefined; var fileDesc;
yamlFrontMatterParser.onFileSelected = function(fileDescParam) { yamlFrontMatterParser.onFileSelected = function(fileDescParam) {
fileDesc = fileDescParam; fileDesc = fileDescParam;
}; };

View File

@ -8,7 +8,6 @@ define([
"logger", "logger",
"eventMgr", "eventMgr",
"classes/AsyncTask", "classes/AsyncTask",
"config",
], function($, _, constants, core, storage, logger, eventMgr, AsyncTask) { ], function($, _, constants, core, storage, logger, eventMgr, AsyncTask) {
var client; var client;

View File

@ -8,7 +8,6 @@ define([
"logger", "logger",
"eventMgr", "eventMgr",
"classes/AsyncTask", "classes/AsyncTask",
"config"
], function($, constants, core, utils, storage, logger, eventMgr, AsyncTask) { ], function($, constants, core, utils, storage, logger, eventMgr, AsyncTask) {
var connected; var connected;

View File

@ -10,7 +10,6 @@ define([
"settings", "settings",
"eventMgr", "eventMgr",
"classes/AsyncTask", "classes/AsyncTask",
"config"
], function(_, $, constants, core, utils, storage, logger, settings, eventMgr, AsyncTask) { ], function(_, $, constants, core, utils, storage, logger, settings, eventMgr, AsyncTask) {
var connected = false; var connected = false;

View File

@ -82,7 +82,16 @@ requirejs.config({
FileSaver: { FileSaver: {
exports: 'saveAs' exports: 'saveAs'
}, },
'bootstrap-tour': ['bootstrap'], highlightjs: {
exports: 'hljs'
},
'google-code-prettify': {
exports: 'prettyPrint'
},
'bootstrap-tour': {
deps: ['bootstrap'],
exports: 'Tour'
},
bootstrap: ['jquery'], bootstrap: ['jquery'],
'jquery-waitforimages': ['jquery'], 'jquery-waitforimages': ['jquery'],
'jquery-mousewheel': ['jquery'], 'jquery-mousewheel': ['jquery'],
@ -93,7 +102,7 @@ requirejs.config({
'jquery-ui-mouse': ['jquery-ui-widget'], 'jquery-ui-mouse': ['jquery-ui-widget'],
'jquery-ui-widget': ['jquery-ui-core'], 'jquery-ui-widget': ['jquery-ui-core'],
'jquery-ui-core': ['jquery'], 'jquery-ui-core': ['jquery'],
'pagedown-extra': ['pagedown-ace', 'google-code-prettify', 'highlightjs'], 'pagedown-extra': ['pagedown-ace'],
'pagedown-ace': ['bower-libs/pagedown-ace/Markdown.Converter'] 'pagedown-ace': ['bower-libs/pagedown-ace/Markdown.Converter']
} }
}); });
@ -125,10 +134,10 @@ window.lightMode = window.viewerMode || /(\?|&)light($|&)/.test(location.search)
})(navigator.userAgent || navigator.vendor || window.opera); })(navigator.userAgent || navigator.vendor || window.opera);
// Keep the theme in a global variable // Keep the theme in a global variable
var theme = localStorage.theme || 'default'; window.theme = localStorage.theme || 'default';
var themeModule = "less!themes/" + theme; var themeModule = "less!themes/" + window.theme;
if (window.baseDir.indexOf('-min') !== -1) { if (window.baseDir.indexOf('-min') !== -1) {
themeModule = "css!themes/" + theme; themeModule = "css!themes/" + window.theme;
} }
// RequireJS entry point. By requiring synchronizer, publisher and // RequireJS entry point. By requiring synchronizer, publisher and

View File

@ -11,7 +11,6 @@ define([
"sharing", "sharing",
"classes/Provider", "classes/Provider",
"classes/AsyncTask", "classes/AsyncTask",
"config",
"providers/bloggerProvider", "providers/bloggerProvider",
"providers/dropboxProvider", "providers/dropboxProvider",
"providers/gistProvider", "providers/gistProvider",

View File

@ -2,7 +2,6 @@ define([
"underscore", "underscore",
"constants", "constants",
"storage", "storage",
"config",
], function (_, constants, storage) { ], function (_, constants, storage) {
var settings = { var settings = {

View File

@ -1,9 +1,9 @@
/*jshint worker:true */ /*jshint worker:true */
var isConfigured = false; var isConfigured = false;
/*jshint evil:true, unused:false */
self.onmessage = function(e) { self.onmessage = function(e) {
if(isConfigured === false) { if(isConfigured === false) {
/*jshint evil:true */
eval(e.data); eval(e.data);
isConfigured = true; isConfigured = true;
} }
@ -13,4 +13,3 @@ self.onmessage = function(e) {
self[functionName].apply(this, data); self[functionName].apply(this, data);
} }
}; };
/*jshint evil:false, unused:true */