Mercurial > wiki
view wiki.js @ 9:20ed90d10dee
Replaced use of closure variables w/ use of 'this'.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Sun, 01 Feb 2009 15:26:55 -0800 |
parents | a199d2ca2d06 |
children | ec3ec75a8d16 |
line wrap: on
line source
var App = { eventHandlers: {} }; App.eventHandlers.editPart = function editPart(aEvt) { if (!aEvt.shiftKey) return; aEvt.preventDefault(); App.enterEditMode(this); }; App.enterEditMode = function enterEditMode(part) { var editablePart = $('<textarea class="wiki-edit"></textarea>').get(0); $(editablePart).attr("value", $(".creole-markup", part).text()); function setScrollHeight() { $(this).height(this.scrollHeight); } $(editablePart).blur( function() { var markup = $(this).attr("value"); $(this).replaceWith(App.createParts(markup)); }); $(editablePart).keyup(setScrollHeight); $(part).replaceWith(editablePart); setScrollHeight.apply(editablePart); $(editablePart).focus(); }; App.createPart = function createPart(markup) { var partDiv = $('<div class="part"></div>'); var markupDiv = $('<div class="creole-markup"></div>'); markupDiv.text(markup); App.creole.parse(partDiv.get(0), markup); partDiv.mousedown(App.eventHandlers.editPart); partDiv.append(markupDiv); return partDiv.get(0); }; App.createParts = function createParts(text) { var parts = []; var partsMarkup = text.split("\n\n"); jQuery.each( partsMarkup, function(i) { var partMarkup = this.toString(); if (partMarkup) parts.push(App.createPart(partMarkup)); } ); return parts; }; App.eventHandlers.onLoad = function onLoad() { var creole = new Parse.Simple.Creole( {interwiki: { WikiCreole: 'http://www.wikicreole.org/wiki/', Wikipedia: 'http://en.wikipedia.org/wiki/' }, linkFormat: '' }); App.creole = creole; jQuery.get("wiki.txt", {}, function(text) { $("#content").append(App.createParts(text)); }, "text"); }; $(window).ready(App.eventHandlers.onLoad);