cmark

My personal build of CMark ✏️

Commit
f22281f2d15a786d512269ddd546b5b4c0462f4c
Parent
76df41816c4e57a6c8ada845a2ead90d4d3b5b97
Author
John MacFarlane <jgm@berkeley.edu>
Date

Added clear and permalink to dingus.

Serve dingus from dingus.html.

Add redirect page as index.html.

Diffstat

2 files changed, 145 insertions, 107 deletions

Status File Name N° Changes Insertions Deletions
Added js/dingus.html 134 134 0
Modified js/index.html 118 11 107
diff --git a/js/dingus.html b/js/dingus.html
@@ -0,0 +1,134 @@
+<!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 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('');
+}
+
+
+$(document).ready(function() {
+  $("#text").val(getQueryVariable("text"));
+  var timer;
+  var x;
+  var parsed;
+  var render = function() {
+      if (parsed === undefined) {
+        return;
+      }
+      var startTime = new Date().getTime();
+      var result = writer.renderBlock(parsed);
+      var endTime = new Date().getTime();
+      var renderTime = endTime - startTime;
+      // $("#html").text(result);
+      $("#preview").html(result);
+      $("#html").text(result);
+      $("#ast").text(commonmark.ASTRenderer(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
+  };
+  $("#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; width: 95%; overflow: scroll; }
+    div#preview { height: 400px; overflow: scroll; }
+    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: red; visibility: hidden; height: 2em; }
+    p#text-controls { height: 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">
+      <h1 class="title">commonmark.js dingus</h1>
+  </div>
+  <div class="row">
+    <div class="col-md-6">
+      <div class="timing">Parsed in <span class="timing" id="parsetime"></span> 
+      ms.  Rendered in <span class="timing" id="rendertime"></span> ms.</div>
+      <p id="text-controls"><a id="clear-text-box">clear</a>&nbsp;<a
+      id="permalink">permalink</a></p>
+      <textarea id="text"></textarea>
+      <ul id="warnings"></ul>
+    </div>
+    <div class="col-md-6">
+      <ul 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/index.html b/js/index.html
@@ -1,108 +1,12 @@
-<!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 reader = new commonmark.DocParser();
-
-$(document).ready(function() {
-  var timer;
-  var x;
-  var parsed;
-  var render = function() {
-      if (parsed === undefined) {
-        return;
-      }
-      var startTime = new Date().getTime();
-      var result = writer.renderBlock(parsed);
-      var endTime = new Date().getTime();
-      var renderTime = endTime - startTime;
-      // $("#html").text(result);
-      $("#preview").html(result);
-      $("#html").text(result);
-      $("#ast").text(commonmark.ASTRenderer(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
-  };
-  $("#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; width: 95%; overflow: scroll; }
-    div#preview { height: 400px; overflow: scroll; }
-    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: red; visibility: hidden; height: 3em; }
-    span.timing { font-weight: bold; }
-    span.timing { font-weight: bold; }
-  </style>
-</head>
-<body>
-<div class="container">
-  <div class="row">
-      <h1 class="title">commonmark.js dingus</h1>
-  </div>
-  <div class="row">
-    <div class="col-md-6">
-      <div class="timing">Parsed in <span class="timing" id="parsetime"></span> 
-      ms.  Rendered in <span class="timing" id="rendertime"></span> ms.</div>
-      <textarea id="text"></textarea>
-      <ul id="warnings"></ul>
-    </div>
-    <div class="col-md-6">
-      <ul 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>
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>CommonMark dingus</title>
+    <meta http-equiv="refresh" content="0;URL='/dingus.html" >
+  </head>
+  <body>
+    <p>The most recent version of the CommonMark dingus can be found
+at <a 
+  href="http://try.commonmark.org/dingus.html/">/dingus.html/</a>.</p>
+  </body>
 </html>