Switch to ACE editor

This commit is contained in:
benweet 2013-09-10 17:52:27 +01:00
parent 582337d595
commit 23dcda3cf4
6 changed files with 38 additions and 49 deletions

View File

@ -14,8 +14,6 @@
"google-code-prettify": "~1.0.0",
"highlightjs": "~7.3.0",
"jquery-ui": "~1.10.3",
"jquery-mousewheel": "~3.1.3",
"css_browser_selector": "*",
"FileSaver": "*",
"stacktrace": "~0.5.3",
"requirejs-text": "~2.0.10",

View File

@ -527,6 +527,7 @@ define([
isMenuPanelShown = false;
menuPanelBackdropElt.parentNode.removeChild(menuPanelBackdropElt);
$menuPanelElt.removeClass('move-to-front');
aceEditor.focus();
}
}).on('hidden.bs.collapse', function(e) {
if(e.target === $menuPanelElt[0]) {
@ -554,6 +555,7 @@ define([
isDocumentPanelShown = false;
documentPanelBackdropElt.parentNode.removeChild(documentPanelBackdropElt);
$documentPanelElt.removeClass('move-to-front');
aceEditor.focus();
}
}).on('hidden.bs.collapse', function(e) {
if(e.target === $documentPanelElt[0]) {

View File

@ -12,7 +12,6 @@ define([
"Bootstrap": "http://getbootstrap.com/",
"Bootstrap Tour": "http://bootstraptour.com/",
"crel": "https://github.com/KoryNunn/crel",
"CSS Browser Selector": "https://github.com/rafaelp/css_browser_selector/",
"Dropbox-js": "https://github.com/dropbox/dropbox-js",
"FileSaver.js": "https://github.com/eligrey/FileSaver.js/",
"Fontello": "http://fontello.com/",
@ -23,7 +22,6 @@ define([
"Highlight.js": "http://softwaremaniacs.org/soft/highlight/en/",
"jGrowl": "https://github.com/stanlemon/jGrowl/",
"jQuery": "http://jquery.com/",
"jQuery Mouse Wheel Plugin": "https://github.com/brandonaaron/jquery-mousewheel",
"LESS": "http://lesscss.org/",
"MathJax": "http://www.mathjax.org/",
"Mousetrap": "http://craig.is/killing/mice",

View File

@ -2,9 +2,7 @@ define([
"jquery",
"underscore",
"classes/Extension",
"text!html/scrollLinkSettingsBlock.html",
"css_browser_selector",
'jquery-mousewheel',
"text!html/scrollLinkSettingsBlock.html"
], function($, _, Extension, scrollLinkSettingsBlockHTML) {
var scrollLink = new Extension("scrollLink", "Scroll Link", true, true);
@ -79,6 +77,8 @@ define([
var isScrollEditor = false;
var isScrollPreview = false;
var isEditorMoving = false;
var isPreviewMoving = false;
var doScrollLink = _.debounce(function() {
if(mdSectionList.length === 0 || mdSectionList.length !== htmlSectionList.length) {
// Delay
@ -117,10 +117,19 @@ define([
lastPreviewScrollTop = previewScrollTop;
}
else {
isPreviewMoving = true;
$previewElt.animate({
scrollTop: destScrollTop
}, 'easeOutQuad', function() {
lastPreviewScrollTop = destScrollTop;
}, {
easing: 'easeOutSine',
complete: function() {
lastPreviewScrollTop = destScrollTop;
},
always: function() {
_.defer(function() {
isPreviewMoving = false;
});
}
});
}
}
@ -138,15 +147,21 @@ define([
lastEditorScrollTop = editorScrollTop;
}
else {
isEditorMoving = true;
$("<div>").animate({
value: destScrollTop - editorScrollTop
}, {
easing: 'easeOutQuad',
easing: 'easeOutSine',
step: function(now) {
aceEditor.session.setScrollTop(editorScrollTop + now);
},
complete: function() {
lastEditorScrollTop = destScrollTop;
},
always: function() {
_.defer(function() {
isEditorMoving = false;
});
}
});
}
@ -165,23 +180,22 @@ define([
scrollLink.onReady = function() {
$previewElt = $(".preview-container");
$previewElt.bind("keyup mouseup mousewheel", function() {
isScrollPreview = true;
isScrollEditor = false;
doScrollLink();
});
$('.table-of-contents').click(function() {
isScrollPreview = true;
isScrollEditor = false;
doScrollLink();
$previewElt.scroll(function() {
if(isPreviewMoving === false) {
isScrollPreview = true;
isScrollEditor = false;
doScrollLink();
}
});
aceEditor.session.on("changeScrollTop", function(e) {
isScrollEditor = true;
isScrollPreview = false;
doScrollLink();
if(isEditorMoving === false) {
isScrollEditor = true;
isScrollPreview = false;
doScrollLink();
}
});
};
var $previewContentsElt = undefined;
scrollLink.onPagedownConfigure = function(editor) {
$previewContentsElt = $("#preview-contents");

View File

@ -31,7 +31,6 @@ requirejs.config({
requirejs: 'bower-libs/requirejs/require',
'google-code-prettify': 'bower-libs/google-code-prettify/src/prettify',
highlightjs: 'bower-libs/highlightjs/highlight.pack',
'jquery-mousewheel': 'bower-libs/jquery-mousewheel/jquery.mousewheel',
'jquery-waitforimages': 'libs/jquery.waitforimages',
'jquery-ui': 'bower-libs/jquery-ui/ui/jquery-ui',
'jquery-ui-core': 'bower-libs/jquery-ui/ui/jquery.ui.core',
@ -41,7 +40,6 @@ requirejs.config({
'jquery-ui-effect': 'bower-libs/jquery-ui/ui/jquery.ui.effect',
'jquery-ui-effect-slide': 'bower-libs/jquery-ui/ui/jquery.ui.effect-slide',
uilayout: 'libs/layout',
css_browser_selector: 'bower-libs/css_browser_selector/css_browser_selector',
FileSaver: 'bower-libs/FileSaver/FileSaver',
stacktrace: 'bower-libs/stacktrace/stacktrace',
'requirejs-text': 'bower-libs/requirejs-text/text',

View File

@ -16,7 +16,7 @@
@primary-color: #333;
@primary-color-light: lighten(@primary-color, 13%);
@primary-color-lighter: lighten(@primary-color, 20%);
@primary-color-lightest: lighten(@primary-color, 33%);
@primary-color-lightest: lighten(@primary-color, 35%);
@primary-color-inv: #fff;
@bg-navbar-hover: @primary-bg-lighter;
@error-border: #ff8661;
@ -918,7 +918,7 @@ ul,ol {
.ace-tm .ace_markup.ace_heading {
color: @primary-color-light;
font-weight: 900;
font-weight: bold;
}
.ace-tm .ace_markup.ace_list {
@ -926,7 +926,7 @@ ul,ol {
}
.ace-tm .ace_strong {
font-weight: 600;
font-weight: bold;
}
.ace-tm .ace_emphasis {
@ -945,31 +945,10 @@ ul,ol {
#wmd-input {
.box-shadow(none);
padding: 0;
font-weight: 300;
}
#wmd-input,#md-section-helper {
resize: none;
border: none !important;
}
#md-section-helper {
position: absolute;
top: -100px;
height: 1px;
padding: 0 6px;
overflow-y: scroll;
z-index: -1;
.gecko & {
/* Firefox doesn't show the scrollbar if height is less than 40px */
height: 40px;
}
.opera & {
/* Opera needs to have the textarea in the viewport to evaluate its size correctly */
top: 0;
}
}
.preview-container {
overflow: auto;
}