- Commit
- 5ddf8743f02132f07aad4bb27e0b84c530a706d7
- Parent
- 82811caa1da07a865a076d4db93236872221c578
- Author
- John MacFarlane <jgm@berkeley.edu>
- Date
Moved dingus to js directory.
My personal build of CMark ✏️
Moved dingus to js directory.
3 files changed, 176 insertions, 176 deletions
Status | File Name | N° Changes | Insertions | Deletions |
Modified | Makefile | 2 | 1 | 1 |
Deleted | dingus.html | 175 | 0 | 175 |
Added | js/dingus.html | 175 | 175 | 0 |
diff --git a/Makefile b/Makefile @@ -151,7 +151,7 @@ npm: cd js; npm publish dingus: js/commonmark.js - echo "Starting dingus server at http://localhost:9000/dingus.html" && python -m SimpleHTTPServer 9000 + cd js && echo "Starting dingus server at http://localhost:9000/dingus.html" && python -m SimpleHTTPServer 9000 ### Spec ###
diff --git a/dingus.html b/dingus.html @@ -1,175 +0,0 @@ -<!doctype html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>commonmark.js demo</title> - <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> - <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> - <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> - <script src="js/commonmark.js"></script> - <script type="text/javascript"> - -var writer = new commonmark.HtmlRenderer(); -var xmlwriter = new commonmark.XmlRenderer({ sourcepos: true }); -var reader = new commonmark.DocParser(); - -function getQueryVariable(variable) { - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i=0; i<vars.length; i++) { - var pair = vars[i].split("="); - if (pair[0] == variable){ - return decodeURIComponent(pair[1]); - } - } - return null; -} - -// via http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area -function setSelectionRange(input, selectionStart, selectionEnd) { - if (input.setSelectionRange) { - input.focus(); - input.setSelectionRange(selectionStart, selectionEnd); - } - else if (input.createTextRange) { - var range = input.createTextRange(); - range.collapse(true); - range.moveEnd('character', selectionEnd); - range.moveStart('character', selectionStart); - range.select(); - } -} -// via http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area -function setCaretToPos(input, pos) { - setSelectionRange(input, pos, pos); -} - -$(document).ready(function() { - var timer; - var x; - var parsed; - var render = function() { - if (parsed === undefined) { - return; - } - var startTime = new Date().getTime(); - var result = writer.render(parsed); - var endTime = new Date().getTime(); - var renderTime = endTime - startTime; - $("#preview").html(result); - $("#html").text(result); - $("#ast").text(xmlwriter.render(parsed)); - $("#rendertime").text(renderTime); - }; - var parseAndRender = function() { - if (x) { x.abort() } // If there is an existing XHR, abort it. - clearTimeout(timer); // Clear the timer so we don't end up with dupes. - timer = setTimeout(function() { // assign timer a new timeout - var startTime = new Date().getTime(); - parsed = reader.parse($("#text").val()); - var endTime = new Date().getTime(); - var parseTime = endTime - startTime; - $("#parsetime").text(parseTime); - $(".timing").css('visibility','visible'); - /* - var warnings = parsed.warnings; - $("#warnings").html(''); - for (i=0; i < warnings.length; i++) { - var w = warnings[i]; - var warning = $("#warnings").append('<li></li>'); - $("#warnings li").last().text('Line ' + w.line + ' column ' + w.column + ': ' + w.message); - } - */ - render(); - }, 0); // ms delay - }; - var initial_text = getQueryVariable("text"); - if (initial_text) { - $("#text").val(initial_text); - // show HTML tab if text is from query - $('#result-tabs a[href="#result"]').tab('show'); - } - // make tab insert a tab in the text box: - $("#text").keydown(function(e) { - if (e.which == 9) { - e.preventDefault(); - if (this.selectionStart !== undefined) { - var pos = this.selectionStart; - this.value = this.value.substring(0, pos) + "\t" + this.value.substring(pos); - setCaretToPos(this, pos + 1); - } else { - this.value += "\t"; - } - } - }); - parseAndRender(); - $("#clear-text-box").click(function(e) { - $("#text").val(''); - window.location.search = ""; - parseAndRender(); - }); - $("#permalink").click(function(e) { - window.location.pathname = "/index.html"; - window.location.search = "text=" + encodeURIComponent($("#text").val()); - }); - $("#text").bind('keyup paste cut mouseup', parseAndRender); - $(".option").change(render); -}); - </script> - <style type="text/css"> - h1.title { font-family: monospace; font-size: 120%; font-weight: bold; - margin-top: 0.5em; margin-bottom: 0; } - textarea#text { height: 400px; width: 95%; font-family: monospace; font-size: 92%; } - pre code#html { font-size: 92%; font-family: monospace; } - pre#htmlpre { height: 400px; overflow: scroll; resize: vertical; width: 95%; } - div#astpre { height: 400px; overflow: scroll; resize: vertical; width: 95%; } - div#preview { height: 400px; overflow: scroll; resize: vertical; width: 95%; } - div.row { margin-top: 1em; } - blockquote { font-size: 100%; } - footer { color: #555; text-align: center; margin: 1em; } - pre { display: block; padding: 0.5em; color: #333; background: #f8f8ff } - #warnings li { color: red; font-weight: bold; } - label { padding-left: 1em; padding-top: 0; padding-bottom: 0; } - div.timing { color: gray; visibility: hidden; height: 2em; } - p#text-controls { height: 1em; margin-top: 1em; } - a#permalink { margin-left: 1em; } - span.timing { font-weight: bold; } - span.timing { font-weight: bold; } - </style> -</head> -<body> -<div class="container"> - <div class="row"> - <div class="col-md-6"> - <h1 class="title">commonmark.js dingus</h1> - </div> - </div> - <div class="row"> - <div class="col-md-6"> - <p id="text-controls"><a id="clear-text-box">clear</a> <a - id="permalink">permalink</a></p> - <textarea id="text"></textarea> - <ul id="warnings"></ul> - <div class="timing">Parsed in <span class="timing" id="parsetime"></span> - ms. Rendered in <span class="timing" id="rendertime"></span> ms.</div> - </div> - <div class="col-md-6"> - <ul id="result-tabs" class="nav nav-tabs" role="tablist"> - <li class="active"><a href="#preview" role="tab" data-toggle="tab">Preview</a></li> - <li><a href="#result" role="tab" data-toggle="tab">HTML</a></li> - <li><a href="#result-ast" role="tab" data-toggle="tab">AST</a></li> - </ul> - <div class="tab-content"> - <div id="preview" class="tab-pane active"> - </div> - <div id="result" class="tab-pane"> - <pre id="htmlpre"><code id="html"></code></pre> - </div> - <div id="result-ast" class="tab-pane"> - <pre id="astpre"><code id="ast"></code></pre> - </div> - </div> - </div> -</div> -</body> -</html>
diff --git a/js/dingus.html b/js/dingus.html @@ -0,0 +1,175 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>commonmark.js demo</title> + <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> + <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> + <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + <script src="commonmark.js"></script> + <script type="text/javascript"> + +var writer = new commonmark.HtmlRenderer(); +var xmlwriter = new commonmark.XmlRenderer({ sourcepos: true }); +var reader = new commonmark.DocParser(); + +function getQueryVariable(variable) { + var query = window.location.search.substring(1); + var vars = query.split("&"); + for (var i=0; i<vars.length; i++) { + var pair = vars[i].split("="); + if (pair[0] == variable){ + return decodeURIComponent(pair[1]); + } + } + return null; +} + +// via http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area +function setSelectionRange(input, selectionStart, selectionEnd) { + if (input.setSelectionRange) { + input.focus(); + input.setSelectionRange(selectionStart, selectionEnd); + } + else if (input.createTextRange) { + var range = input.createTextRange(); + range.collapse(true); + range.moveEnd('character', selectionEnd); + range.moveStart('character', selectionStart); + range.select(); + } +} +// via http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area +function setCaretToPos(input, pos) { + setSelectionRange(input, pos, pos); +} + +$(document).ready(function() { + var timer; + var x; + var parsed; + var render = function() { + if (parsed === undefined) { + return; + } + var startTime = new Date().getTime(); + var result = writer.render(parsed); + var endTime = new Date().getTime(); + var renderTime = endTime - startTime; + $("#preview").html(result); + $("#html").text(result); + $("#ast").text(xmlwriter.render(parsed)); + $("#rendertime").text(renderTime); + }; + var parseAndRender = function() { + if (x) { x.abort() } // If there is an existing XHR, abort it. + clearTimeout(timer); // Clear the timer so we don't end up with dupes. + timer = setTimeout(function() { // assign timer a new timeout + var startTime = new Date().getTime(); + parsed = reader.parse($("#text").val()); + var endTime = new Date().getTime(); + var parseTime = endTime - startTime; + $("#parsetime").text(parseTime); + $(".timing").css('visibility','visible'); + /* + var warnings = parsed.warnings; + $("#warnings").html(''); + for (i=0; i < warnings.length; i++) { + var w = warnings[i]; + var warning = $("#warnings").append('<li></li>'); + $("#warnings li").last().text('Line ' + w.line + ' column ' + w.column + ': ' + w.message); + } + */ + render(); + }, 0); // ms delay + }; + var initial_text = getQueryVariable("text"); + if (initial_text) { + $("#text").val(initial_text); + // show HTML tab if text is from query + $('#result-tabs a[href="#result"]').tab('show'); + } + // make tab insert a tab in the text box: + $("#text").keydown(function(e) { + if (e.which == 9) { + e.preventDefault(); + if (this.selectionStart !== undefined) { + var pos = this.selectionStart; + this.value = this.value.substring(0, pos) + "\t" + this.value.substring(pos); + setCaretToPos(this, pos + 1); + } else { + this.value += "\t"; + } + } + }); + parseAndRender(); + $("#clear-text-box").click(function(e) { + $("#text").val(''); + window.location.search = ""; + parseAndRender(); + }); + $("#permalink").click(function(e) { + window.location.pathname = "/index.html"; + window.location.search = "text=" + encodeURIComponent($("#text").val()); + }); + $("#text").bind('keyup paste cut mouseup', parseAndRender); + $(".option").change(render); +}); + </script> + <style type="text/css"> + h1.title { font-family: monospace; font-size: 120%; font-weight: bold; + margin-top: 0.5em; margin-bottom: 0; } + textarea#text { height: 400px; width: 95%; font-family: monospace; font-size: 92%; } + pre code#html { font-size: 92%; font-family: monospace; } + pre#htmlpre { height: 400px; overflow: scroll; resize: vertical; width: 95%; } + div#astpre { height: 400px; overflow: scroll; resize: vertical; width: 95%; } + div#preview { height: 400px; overflow: scroll; resize: vertical; width: 95%; } + div.row { margin-top: 1em; } + blockquote { font-size: 100%; } + footer { color: #555; text-align: center; margin: 1em; } + pre { display: block; padding: 0.5em; color: #333; background: #f8f8ff } + #warnings li { color: red; font-weight: bold; } + label { padding-left: 1em; padding-top: 0; padding-bottom: 0; } + div.timing { color: gray; visibility: hidden; height: 2em; } + p#text-controls { height: 1em; margin-top: 1em; } + a#permalink { margin-left: 1em; } + span.timing { font-weight: bold; } + span.timing { font-weight: bold; } + </style> +</head> +<body> +<div class="container"> + <div class="row"> + <div class="col-md-6"> + <h1 class="title">commonmark.js dingus</h1> + </div> + </div> + <div class="row"> + <div class="col-md-6"> + <p id="text-controls"><a id="clear-text-box">clear</a> <a + id="permalink">permalink</a></p> + <textarea id="text"></textarea> + <ul id="warnings"></ul> + <div class="timing">Parsed in <span class="timing" id="parsetime"></span> + ms. Rendered in <span class="timing" id="rendertime"></span> ms.</div> + </div> + <div class="col-md-6"> + <ul id="result-tabs" class="nav nav-tabs" role="tablist"> + <li class="active"><a href="#preview" role="tab" data-toggle="tab">Preview</a></li> + <li><a href="#result" role="tab" data-toggle="tab">HTML</a></li> + <li><a href="#result-ast" role="tab" data-toggle="tab">AST</a></li> + </ul> + <div class="tab-content"> + <div id="preview" class="tab-pane active"> + </div> + <div id="result" class="tab-pane"> + <pre id="htmlpre"><code id="html"></code></pre> + </div> + <div id="result-ast" class="tab-pane"> + <pre id="astpre"><code id="ast"></code></pre> + </div> + </div> + </div> +</div> +</body> +</html>