Skip to content

Instantly share code, notes, and snippets.

@coderaiser
Created July 16, 2012 13:58
Show Gist options
  • Save coderaiser/3122869 to your computer and use it in GitHub Desktop.
Save coderaiser/3122869 to your computer and use it in GitHub Desktop.
CodeMirror bookamarklet
/* turns first found textArea - looks like CodeMirror editor */
var editor;
function setStyle(){
var element= document.createElement('style');
element.media='screen';
element.type='text/css';
element.innerText='@import url(//fonts.googleapis.com/css?family=Droid+Sans+Mono);'+
'.CodeMirror{'+
'font-family:\'Droid Sans Mono\';'+
'font-size:15px;'+
'resize:vertical;'+
'}'+
'.CodeMirror-scroll{'+
'height:480px;'+
'}';
document.head.appendChild(element);
}
function cssLoad(src){
var element= document.createElement('link');
element.rel='stylesheet';
element.href=src;
document.head.appendChild(element);
}
function jsload(src,func,async,body){
var id=src;
//если скрипт еще не загружен
if(!document.getElementById(id))
{
var element = document.createElement("script");
element.src = src;
element.id=id;
if(arguments.length>=2){
element.onload=func;
if(arguments.length>=3){
if(arguments.length>=4){
element.innerHtml=body;
}
}else element.async=true;
}
document.body.appendChild(element);
}
}
jsload('http://codemirror.net/lib/codemirror.js',load_all,false);
function load_all(){
cssLoad('http://codemirror.net/lib/codemirror.css');
cssLoad('http://codemirror.net/theme/night.css');
setStyle();
jsload('http://codemirror.net/mode/xml/xml.js',setTextArea);
}
function setTextArea(){
var lTextErea=document.getElementsByTagName('textarea');
if(lTextErea.length){
editor=CodeMirror.fromTextArea(lTextErea[0],{
mode : "xml",
htmlMode : true,
theme : 'night',
lineNumbers : true,
//переносим длинные строки
lineWrapping: true,
extraKeys: {
//Сохранение
"Ctrl-S": (function() {
if(document.getElementById('save'))
save.click();
})
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment