Merge pull request #60 from matthojo/Keyboard-Shortcuts
Add keyboard shortcuts
This commit is contained in:
commit
148f7f3cd9
@ -149,10 +149,83 @@
|
||||
}
|
||||
});
|
||||
|
||||
// ## Shortcuts
|
||||
// Zen writing mode
|
||||
shortcut.add("Alt+Shift+Z", function () {
|
||||
$('body').toggleClass('zen');
|
||||
});
|
||||
|
||||
var MarkdownShortcuts = [
|
||||
{
|
||||
'key': 'Ctrl+B',
|
||||
'style': 'bold'
|
||||
},
|
||||
{
|
||||
'key': 'Meta+B',
|
||||
'style': 'bold'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+I',
|
||||
'style': 'italic'
|
||||
},
|
||||
{
|
||||
'key': 'Meta+I',
|
||||
'style': 'italic'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Alt+U',
|
||||
'style': 'strike'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Shift+K',
|
||||
'style': 'code'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+1',
|
||||
'style': 'h1'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+2',
|
||||
'style': 'h2'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+3',
|
||||
'style': 'h3'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+4',
|
||||
'style': 'h4'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+5',
|
||||
'style': 'h5'
|
||||
},
|
||||
{
|
||||
'key': 'Alt+6',
|
||||
'style': 'h6'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Shift+L',
|
||||
'style': 'link'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Shift+I',
|
||||
'style': 'image'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Q',
|
||||
'style': 'blockquote'
|
||||
},
|
||||
{
|
||||
'key': 'Ctrl+Shift+1',
|
||||
'style': 'currentdate'
|
||||
}
|
||||
];
|
||||
|
||||
$.each(MarkdownShortcuts, function (index, short) {
|
||||
shortcut.add(short.key, function () {
|
||||
return editor.addMarkdown({style: short.style});
|
||||
});
|
||||
});
|
||||
});
|
||||
}(jQuery, Showdown, CodeMirror, shortcut));
|
53
core/admin/assets/js/markdown-actions.js
Normal file
53
core/admin/assets/js/markdown-actions.js
Normal file
@ -0,0 +1,53 @@
|
||||
/*global console, jQuery, CodeMirror*/
|
||||
|
||||
// # Surrounds given text with Markdown syntax
|
||||
(function ($) {
|
||||
"use strict";
|
||||
var Markdown = {
|
||||
init : function (options, elem) {
|
||||
var self = this;
|
||||
self.elem = elem;
|
||||
|
||||
self.style = (typeof options === 'string') ? options : options.style;
|
||||
|
||||
self.options = $.extend({}, CodeMirror.prototype.addMarkdown.options, options);
|
||||
|
||||
self.replace();
|
||||
},
|
||||
replace: function () {
|
||||
var text = this.elem.getSelection(), md;
|
||||
if (this.options.syntax[this.style]) {
|
||||
md = this.options.syntax[this.style].replace('$1', text);
|
||||
this.elem.replaceSelection(md);
|
||||
} else {
|
||||
console.log("Invalid style.");
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
CodeMirror.prototype.addMarkdown = function (options) {
|
||||
var markdown = Object.create(Markdown);
|
||||
markdown.init(options, this);
|
||||
};
|
||||
|
||||
CodeMirror.prototype.addMarkdown.options = {
|
||||
style: null,
|
||||
syntax: {
|
||||
bold: "**$1**",
|
||||
italic: "_$1_",
|
||||
strike: "~~$1~~",
|
||||
code: "`$1`",
|
||||
h1: "\n# $1\n",
|
||||
h2: "\n## $1\n",
|
||||
h3: "\n### $1\n",
|
||||
h4: "\n#### $1\n",
|
||||
h5: "\n##### $1\n",
|
||||
h6: "\n###### $1\n",
|
||||
link: "[$1](http://)",
|
||||
image: "!image[$1](http://)",
|
||||
blockquote: "> $1",
|
||||
currentDate: new Date().toLocaleString()
|
||||
}
|
||||
};
|
||||
}(jQuery));
|
@ -4,6 +4,7 @@
|
||||
<script src="/core/admin/assets/lib/showdown/showdown.js"></script>
|
||||
<script src="/core/admin/assets/lib/showdown/extensions/ghostdown.js"></script>
|
||||
<script src="/core/admin/assets/lib/shortcuts.js"></script>
|
||||
<script src="/core/admin/assets/js/markdown-actions.js"></script>
|
||||
<script src="/core/admin/assets/js/editor.js"></script>
|
||||
<script src="/core/admin/assets/js/tagui.js"></script>
|
||||
{{/contentFor}}
|
||||
|
Loading…
Reference in New Issue
Block a user