Things working
This commit is contained in:
commit
9d0b0c9f21
76
application.js
Normal file
76
application.js
Normal file
|
@ -0,0 +1,76 @@
|
|||
|
||||
|
||||
|
||||
var application = function() {
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
// TODO implement save as a jquery method
|
||||
// TODO maybe remove jquery
|
||||
// TODO support for browsers without pushstate
|
||||
// TODO tab support
|
||||
// TODO support for push state navigation
|
||||
// TODO layerX and layerY fix warnings
|
||||
// TODO turn off spelling correction
|
||||
var save = function(data, callback) {
|
||||
var high = hljs.highlightAuto(data);
|
||||
var pack = {
|
||||
language: high.language,
|
||||
data: data
|
||||
};
|
||||
pack.value = high.value;
|
||||
pack.uuid = '123456';
|
||||
callback(pack);
|
||||
};
|
||||
|
||||
$(function() {
|
||||
|
||||
$('textarea').focus();
|
||||
|
||||
$('textarea').keyup(function(evt) {
|
||||
if (evt.ctrlKey && evt.which === 76) {
|
||||
save($('textarea').val(), function(ret) {
|
||||
if (ret) {
|
||||
$('#box code').html(ret.value);
|
||||
// window.history.pushState(null, 'Heist - ' + ret.language, '/~john/heist/' + ret.uuid);
|
||||
document.title = 'heist - ' + ret.language;
|
||||
$('textarea').hide();
|
||||
$('#box').show();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('textarea').keydown(function(evt) {
|
||||
if (evt.keyCode === 9) {
|
||||
evt.preventDefault();
|
||||
var myValue = ' ';
|
||||
// Inspired by http://stackoverflow.com/questions/946534/insert-text-into-textarea-with-jquery
|
||||
// For browsers like Internet Explorer
|
||||
if (document.selection) {
|
||||
this.focus();
|
||||
sel = document.selection.createRange();
|
||||
sel.text = myValue;
|
||||
this.focus();
|
||||
}
|
||||
// Mozilla and Webkit
|
||||
else if (this.selectionStart || this.selectionStart == '0') {
|
||||
var startPos = this.selectionStart;
|
||||
var endPos = this.selectionEnd;
|
||||
var scrollTop = this.scrollTop;
|
||||
this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
|
||||
this.focus();
|
||||
this.selectionStart = startPos + myValue.length;
|
||||
this.selectionEnd = startPos + myValue.length;
|
||||
this.scrollTop = scrollTop;
|
||||
}
|
||||
else {
|
||||
this.value += myValue;
|
||||
this.focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
1
highlight.min.js
vendored
Normal file
1
highlight.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
50
index.html
Normal file
50
index.html
Normal file
|
@ -0,0 +1,50 @@
|
|||
<html>
|
||||
|
||||
<head>
|
||||
|
||||
<title>heist</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="solarized_dark.css"/>
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: #002B36;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
textarea {
|
||||
background: transparent;
|
||||
border: 0px;
|
||||
color: #fff;
|
||||
padding: 20px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font-family: monospace;
|
||||
outline: none;
|
||||
resize: none;
|
||||
font-size: 13px;
|
||||
}
|
||||
#box {
|
||||
padding: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
#box code {
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" src="jquery-1.6.3.js"></script>
|
||||
<script type="text/javascript" src="highlight.min.js"></script>
|
||||
<script type="text/javascript" src="application.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<pre id="box" style="display:none;"><code></code></pre>
|
||||
|
||||
<textarea></textarea>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
9044
jquery-1.6.3.js
vendored
Normal file
9044
jquery-1.6.3.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
96
solarized_dark.css
Normal file
96
solarized_dark.css
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
|
||||
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
pre code {
|
||||
display: block; padding: 0.5em;
|
||||
background: #002b36; color: #839496;
|
||||
}
|
||||
|
||||
pre .comment,
|
||||
pre .template_comment,
|
||||
pre .diff .header,
|
||||
pre .doctype,
|
||||
pre .lisp .string,
|
||||
pre .javadoc {
|
||||
color: #586e75;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre .keyword,
|
||||
pre .css .rule .keyword,
|
||||
pre .winutils,
|
||||
pre .javascript .title,
|
||||
pre .method,
|
||||
pre .addition,
|
||||
pre .css .tag,
|
||||
pre .lisp .title {
|
||||
color: #859900;
|
||||
}
|
||||
|
||||
pre .number,
|
||||
pre .command,
|
||||
pre .string,
|
||||
pre .tag .value,
|
||||
pre .phpdoc,
|
||||
pre .tex .formula,
|
||||
pre .regexp,
|
||||
pre .hexcolor {
|
||||
color: #2aa198;
|
||||
}
|
||||
|
||||
pre .title,
|
||||
pre .localvars,
|
||||
pre .function .title,
|
||||
pre .chunk,
|
||||
pre .decorator,
|
||||
pre .builtin,
|
||||
pre .built_in,
|
||||
pre .lisp .title,
|
||||
pre .identifier,
|
||||
pre .title .keymethods,
|
||||
pre .id {
|
||||
color: #268bd2;
|
||||
}
|
||||
|
||||
pre .tag .title,
|
||||
pre .rules .property,
|
||||
pre .django .tag .keyword {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
pre .attribute,
|
||||
pre .variable,
|
||||
pre .instancevar,
|
||||
pre .lisp .body,
|
||||
pre .smalltalk .number,
|
||||
pre .constant,
|
||||
pre .class .title,
|
||||
pre .parent,
|
||||
pre .haskell .label {
|
||||
color: #b58900;
|
||||
}
|
||||
|
||||
pre .preprocessor,
|
||||
pre .pi,
|
||||
pre .shebang,
|
||||
pre .symbol,
|
||||
pre .diff .change,
|
||||
pre .special,
|
||||
pre .keymethods,
|
||||
pre .attr_selector,
|
||||
pre .important,
|
||||
pre .subst,
|
||||
pre .cdata {
|
||||
color: #cb4b16;
|
||||
}
|
||||
|
||||
pre .deletion {
|
||||
color: #dc322f;
|
||||
}
|
||||
|
||||
pre .tex .formula {
|
||||
background: #073642;
|
||||
}
|
Loading…
Reference in New Issue
Block a user