Loading TODO +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ tests add feedback for errors to UI - esp. too long fix that chrome bug where it loads the doc twice add link to about page allow power users to force highlight lang - by supplying an extension!!!!!! expand extension map maybe start serving highlighting on the other end to save transfer on highlight.js start using CDNs for most assets kick expiration back by increment on each view Loading lib/document_handler.js +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ DocumentHandler.prototype.chooseKey = function(callback) { // Return a boolean indicating whether or not something can be a key DocumentHandler.potentialKey = function(key) { return key.match(/^[a-zA-Z0-9]+$/); return key.match(/^[a-zA-Z0-9]+(\.[a-zA-Z]+?)$/); }; // Generate a random key Loading static/application.js +20 −5 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ var haste_document = function() { }; // Get this document from the server and lock it here haste_document.prototype.load = function(key, callback) { haste_document.prototype.load = function(key, callback, lang) { var _this = this; $.ajax('/documents/' + key, { type: 'get', Loading @@ -14,11 +14,11 @@ haste_document.prototype.load = function(key, callback) { _this.locked = true; _this.key = key; _this.data = res.data; var high = hljs.highlightAuto(res.data); var high = lang ? hljs.highlight(lang, res.data) : hljs.highlightAuto(res.data); callback({ value: high.value, key: key, language: high.language language: lang || high.language }); }, error: function(err) { Loading Loading @@ -105,11 +105,26 @@ haste.prototype.newDocument = function(hideHistory) { }); }; // Map of common extensions haste.extensionMap = { 'rb': 'ruby', 'py': 'python' }; // Map an extension to a language haste.prototype.lookupExtension = function(ext) { var match = haste.extensionMap[ext]; return match; // if not found, will auto-detect }; // Load a document and show it haste.prototype.loadDocument = function(key) { // Split the key up var parts = key.split('.', 2); // Ask for what we want var _this = this; _this.doc = new haste_document(); _this.doc.load(key, function(ret) { _this.doc.load(parts[0], function(ret) { if (ret) { _this.$code.html(ret.value); var title = ret.key; Loading @@ -124,7 +139,7 @@ haste.prototype.loadDocument = function(key) { else { _this.newDocument(); } }); }, this.lookupExtension(parts[1])); }; // Duplicate the current document - only if locked Loading Loading
TODO +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ tests add feedback for errors to UI - esp. too long fix that chrome bug where it loads the doc twice add link to about page allow power users to force highlight lang - by supplying an extension!!!!!! expand extension map maybe start serving highlighting on the other end to save transfer on highlight.js start using CDNs for most assets kick expiration back by increment on each view Loading
lib/document_handler.js +1 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ DocumentHandler.prototype.chooseKey = function(callback) { // Return a boolean indicating whether or not something can be a key DocumentHandler.potentialKey = function(key) { return key.match(/^[a-zA-Z0-9]+$/); return key.match(/^[a-zA-Z0-9]+(\.[a-zA-Z]+?)$/); }; // Generate a random key Loading
static/application.js +20 −5 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ var haste_document = function() { }; // Get this document from the server and lock it here haste_document.prototype.load = function(key, callback) { haste_document.prototype.load = function(key, callback, lang) { var _this = this; $.ajax('/documents/' + key, { type: 'get', Loading @@ -14,11 +14,11 @@ haste_document.prototype.load = function(key, callback) { _this.locked = true; _this.key = key; _this.data = res.data; var high = hljs.highlightAuto(res.data); var high = lang ? hljs.highlight(lang, res.data) : hljs.highlightAuto(res.data); callback({ value: high.value, key: key, language: high.language language: lang || high.language }); }, error: function(err) { Loading Loading @@ -105,11 +105,26 @@ haste.prototype.newDocument = function(hideHistory) { }); }; // Map of common extensions haste.extensionMap = { 'rb': 'ruby', 'py': 'python' }; // Map an extension to a language haste.prototype.lookupExtension = function(ext) { var match = haste.extensionMap[ext]; return match; // if not found, will auto-detect }; // Load a document and show it haste.prototype.loadDocument = function(key) { // Split the key up var parts = key.split('.', 2); // Ask for what we want var _this = this; _this.doc = new haste_document(); _this.doc.load(key, function(ret) { _this.doc.load(parts[0], function(ret) { if (ret) { _this.$code.html(ret.value); var title = ret.key; Loading @@ -124,7 +139,7 @@ haste.prototype.loadDocument = function(key) { else { _this.newDocument(); } }); }, this.lookupExtension(parts[1])); }; // Duplicate the current document - only if locked Loading