initial commit
This commit is contained in:
105
node_modules/marked/www/demo.js
generated
vendored
Normal file
105
node_modules/marked/www/demo.js
generated
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
$(function () {
|
||||
var $inputElem = $('#input');
|
||||
var $outputTypeElem = $('#outputType');
|
||||
var $previewElem = $('#preview');
|
||||
var $htmlElem = $('#html');
|
||||
var $lexerElem = $('#lexer');
|
||||
var $syntaxElem = $('#syntax');
|
||||
var inputDirty = true;
|
||||
var $activeElem = null;
|
||||
|
||||
if (top.document.location.href.match(/\?blank=1$/)) {
|
||||
$inputElem.val('');
|
||||
}
|
||||
|
||||
$outputTypeElem.change(function () {
|
||||
$('#rightContainer .pane').hide();
|
||||
$activeElem = $('#' + $outputTypeElem.val()).show();
|
||||
}).change();
|
||||
|
||||
var noticeChange = function () {
|
||||
inputDirty = true;
|
||||
};
|
||||
$inputElem.
|
||||
change(noticeChange).
|
||||
keyup(noticeChange).
|
||||
keypress(noticeChange).
|
||||
keydown(noticeChange);
|
||||
|
||||
var jsonString = function (input) {
|
||||
var output = (input + '').
|
||||
replace(/\n/g, '\\n').
|
||||
replace(/\r/g, '\\r').
|
||||
replace(/\t/g, '\\t').
|
||||
replace(/\f/g, '\\f').
|
||||
replace(/[\\"']/g, '\\$&').
|
||||
replace(/\u0000/g, '\\0');
|
||||
return '"' + output + '"';
|
||||
};
|
||||
|
||||
var getScrollSize = function () {
|
||||
var e = $activeElem[0];
|
||||
|
||||
return e.scrollHeight - e.clientHeight;
|
||||
};
|
||||
var getScrollPercent = function () {
|
||||
var size = getScrollSize();
|
||||
|
||||
if (size <= 0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return $activeElem.scrollTop() / size;
|
||||
};
|
||||
var setScrollPercent = function (percent) {
|
||||
$activeElem.scrollTop(percent * getScrollSize());
|
||||
};
|
||||
|
||||
var delayTime = 1;
|
||||
var checkForChanges = function () {
|
||||
if (inputDirty) {
|
||||
inputDirty = false;
|
||||
var startTime = new Date();
|
||||
|
||||
// Save scroll position
|
||||
var scrollPercent = getScrollPercent();
|
||||
|
||||
// Convert
|
||||
var markdown = $inputElem.val();
|
||||
var lexed = marked.lexer(markdown);
|
||||
|
||||
// Grab lexed output and convert to a string before the parser
|
||||
// destroys the data
|
||||
var lexedList = [];
|
||||
|
||||
for (var i = 0; i < lexed.length; i ++) {
|
||||
var lexedLine = [];
|
||||
for (var j in lexed[i]) {
|
||||
lexedLine.push(j + ":" + jsonString(lexed[i][j]));
|
||||
}
|
||||
lexedList.push("{" + lexedLine.join(", ") + "}");
|
||||
}
|
||||
|
||||
var parsed = marked.parser(lexed);
|
||||
|
||||
// Assign
|
||||
$previewElem.html(parsed);
|
||||
$htmlElem.val(parsed);
|
||||
$lexerElem.val(lexedList.join("\n"));
|
||||
|
||||
// Set the scroll percent
|
||||
setScrollPercent(scrollPercent);
|
||||
|
||||
var endTime = new Date();
|
||||
delayTime = endTime - startTime;
|
||||
if (delayTime < 50) {
|
||||
delayTime = 50;
|
||||
} else if (delayTime > 500) {
|
||||
delayTime = 1000;
|
||||
}
|
||||
}
|
||||
window.setTimeout(checkForChanges, delayTime);
|
||||
};
|
||||
checkForChanges();
|
||||
setScrollPercent(0);
|
||||
});
|
||||
Reference in New Issue
Block a user