From 4a9dd7098e9364953d61d839199021ac102c8aba Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke <marijnh@gmail.com> Date: Fri, 25 Mar 2011 12:47:20 +0100 Subject: [PATCH] integrate page design --- compress.html | 22 ++- css/baboon.png | Bin 0 -> 23299 bytes css/baboon_vector.svg | 153 ++++++++++++++++++ css/docs.css | 158 ++++++++++++++++++ css/font.js | 15 ++ demo/activeline.html | 71 +++++++++ demo/complete.html | 2 +- demo/marker.html | 2 +- demo/mustache.html | 2 +- demo/resize.html | 2 +- demo/search.html | 2 +- docs.css | 9 -- index.html | 317 ++++++++++++++++++++++++------------- lib/codemirror.css | 4 + manual.html | 44 +++-- mode/clike/index.html | 2 +- mode/css/index.html | 2 +- mode/diff/index.html | 2 +- mode/haskell/index.html | 2 +- mode/htmlmixed/index.html | 2 +- mode/javascript/index.html | 2 +- mode/php/index.html | 2 +- mode/stex/index.html | 2 +- mode/xml/index.html | 2 +- oldrelease.html | 103 ++++++++++++ 25 files changed, 771 insertions(+), 153 deletions(-) create mode 100644 css/baboon.png create mode 100644 css/baboon_vector.svg create mode 100644 css/docs.css create mode 100644 css/font.js create mode 100644 demo/activeline.html delete mode 100644 docs.css create mode 100644 oldrelease.html diff --git a/compress.html b/compress.html index 9d9609a8d..7d346b78c 100644 --- a/compress.html +++ b/compress.html @@ -1,12 +1,26 @@ <!doctype html> <html> <head> - <title>CodeMirror 2: Compression Helper</title> + <title>CodeMirror: Compression Helper</title> + <link rel="stylesheet" type="text/css" href="css/docs.css"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> - <link rel="stylesheet" href="docs.css"> </head> <body> - <h1>CodeMirror 2: Compression Helper</h1> + +<h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1> + +<pre class="grey"> +<img src="css/baboon.png" class="logo" alt="logo"/>/* Script compression + helper */ +</pre> + + <p>To optimize loading CodeMirror, especially when including a + bunch of different modes, it is recommended that you combine and + minify (and preferably also gzip) the scrips. This page makes + those first two steps very easy. Simply select the version and + scripts you need in the form below, and + click <strong>Compress</strong> to download the minified script + file.</p> <form id="form" action="http://marijnhaverbeke.nl/uglifyjs" method="post"> <input type="hidden" id="download" name="download" value="codemirror-compressed.js"/> @@ -30,6 +44,7 @@ <option value="http://codemirror.net/2/mode/php/php.js">php.js</option> <option value="http://codemirror.net/2/mode/haskell/haskell.js">haskell.js</option> <option value="http://codemirror.net/2/mode/diff/diff.js">diff.js</option> + <option value="http://codemirror.net/2/mode/stex/stex.js">stex.js</option> </optgroup> </select></p> @@ -55,6 +70,7 @@ } } </script> + <script type="text/javascript" src="css/font.js"></script> </body> </html> diff --git a/css/baboon.png b/css/baboon.png new file mode 100644 index 0000000000000000000000000000000000000000..55d97f70b817ff2b78ebb409bf34a5147fe40d07 GIT binary patch literal 23299 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 literal 0 HcmV?d00001 diff --git a/css/baboon_vector.svg b/css/baboon_vector.svg new file mode 100644 index 000000000..dc1667af9 --- /dev/null +++ b/css/baboon_vector.svg @@ -0,0 +1,153 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg3181" + version="1.1" + inkscape:version="0.48.0 r9654" + width="1750" + height="960" + xml:space="preserve" + sodipodi:docname="baboon_vector.svg"><metadata + id="metadata3187"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3185"><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath3195"><path + d="M 0,768 1400,768 1400,0 0,0 0,768 z" + id="path3197" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath3215"><path + d="M 0,768 1400,768 1400,0 0,0 0,768 z" + id="path3217" /></clipPath></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1440" + inkscape:window-height="851" + id="namedview3183" + showgrid="false" + inkscape:zoom="0.20550291" + inkscape:cx="1534.1667" + inkscape:cy="795.78156" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g3189" /><g + id="g3189" + inkscape:groupmode="layer" + inkscape:label="baboon_vector" + transform="matrix(1.25,0,0,-1.25,0,960)"><g + id="g3191"><g + id="g3193" + clip-path="url(#clipPath3195)"><g + id="g3199" + transform="translate(458.9561,569.9678)"><path + d="m 0,0 59.835,69.355 87.034,26.518 133.949,-7.479 c 0,0 74.116,-32.639 74.795,-34.678 0.68,-2.04 84.314,-59.155 84.314,-59.155 l 12.238,-74.795 5.439,-97.912 -13.598,-25.159 -4.76,-40.797 -18.358,-23.118 24.39,-5.561 0.501,-5.192 -14.012,-60.641 16.477,-93.368 7.223,-49.972 -208.295,-51.754 -18.552,4.005 -37.468,8.325 -10.036,4.036 -66.885,10.101 c 0,0 -14.959,74.793 -16.999,73.433 -2.039,-1.359 -42.836,56.437 -42.836,56.437 l -19.719,65.274 12.48,74.571 -7.961,9.643 -26.479,16.187 -12.716,38.309 4.08,48.277 8.769,38.985 L 6.608,-74.308 0,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3201" /></g><g + id="g3203" + transform="translate(78.8657,682.1582)"><path + d="M 0,0 142.789,40.797 259.74,52.355 313.457,-232.543 204.665,-291.698 78.194,-293.738 0,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3205" /></g><g + id="g3207" + transform="translate(269.5122,345.2344)"><path + d="M 0,0 18.801,-74.425 40.728,-85.408 59.539,-59.541 40.259,13.503 36.821,15.669 0,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3209" /></g></g></g><g + id="g3223" + transform="translate(741.918,109.0332)"><path + d="m 0,0 -17.236,-9.401 -16.452,-22.721 -0.783,12.537 6.268,17.234 13.317,6.268 L 0,7.833 14.884,3.917 0,0 z m 172.622,-21.824 c -0.031,0.271 -0.081,0.535 -0.117,0.804 -20.85,7.653 -49.59,7.327 -66.874,10.927 -13.849,2.886 -23.047,9.119 -27.032,12.298 -9.863,-8.494 -12.025,-14.377 -12.025,-14.377 0,0 -9.816,15.309 -30.17,25.76 -7.05,3.621 -17.767,5.691 -29.341,5.691 -24.297,0 -52.384,-9.155 -58.339,-32.223 -10.458,-40.511 9.697,-76.594 49.814,-77.623 1.325,-0.034 2.623,-0.12 3.894,-0.12 36.131,0 48.855,8.572 58.323,15.478 0.027,0.021 0.104,0 0.104,0 0,0 25.126,-11.506 53.529,-11.506 4.419,0 9.156,0.415 14.249,1.063 31.641,4.018 47.989,28.124 43.985,63.828" + style="fill:#df0019;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3225" + inkscape:connector-curvature="0" /></g><g + id="g3227" + transform="translate(300.8481,270.0254)"><path + d="m 0,0 c -3.063,-0.691 -12.535,0.784 -12.535,0.784 l 6.267,-25.853 43.481,13.319 -9.01,27.418 C 28.203,15.668 7.867,1.777 0,0" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3229" + inkscape:connector-curvature="0" /></g><g + id="g3231" + transform="translate(211.66052,615.85984)"><path + d="m 0,0 -16.243,-2.871 -15.462,-9.4 4.323,-10.938 14.568,9.89 L 2.75,-8.771 0,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3233" + inkscape:connector-curvature="0" /></g><g + id="g3235" + transform="translate(274.15732,626.4084)"><path + d="m 0,0 -15.64,0.407 -14.279,-3.608 2.008,-9.747 14.756,4.208 L 1.111,-8.215 0,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3237" + inkscape:connector-curvature="0" /></g><path + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 436.65625 22.28125 C 436.65625 22.28125 338.18375 25.385 251 42.8125 C 163.24875 60.35375 70.40625 99.65625 70.40625 99.65625 L 175.1875 495.28125 L 327.96875 492.34375 L 337.75 527.59375 C 337.75 527.59375 365.095 523.25875 373 518.78125 C 376.31375 516.90375 383.78125 508 383.78125 508 L 377.75 484.65625 L 504.21875 407.15625 L 436.65625 22.28125 z M 410.53125 55.1875 L 465.6875 393.3125 L 346.59375 456.625 L 202.75 466.46875 L 112 114.40625 L 263 79.1875 L 410.53125 55.1875 z " + transform="matrix(0.8,0,0,-0.8,0,768)" + id="path3253" /><g + id="g3247" + transform="matrix(1.199238,-0.02879331,0.02673084,1.0520756,172.41935,498.37339)"><path + d="m 0,0 c 0,0 -1.861,1.481 -9.143,-1.457 9.712,18.867 9.439,39.989 9.439,39.989 0,0 -3.106,-2.465 -11.311,-8.47 9.241,23.044 5.338,72.525 5.338,72.525 0,0 -17.493,40.746 -13.657,45.799 8.841,11.65 23.834,23.968 44.295,25.594 17.935,1.424 44.606,-4.953 55.865,-15.284 4.536,-4.161 23.367,-47.493 23.367,-47.493 0,0 6.104,-35.271 11.619,-54.108 5.513,-18.839 11.054,-26.674 21.284,-34.825 17.831,-14.207 27.076,-29.938 27.076,-29.938 L 143.399,3.945 c 3.655,-17.356 14.875,-34.28 27.39,-47.672 -12.863,1.507 -19.61,8.783 -19.61,8.783 0,0 2.151,-12.664 9.109,-26.554 l 28.712,15.264 -1.762,10.805 c -5.128,9.304 -9.336,15.534 -9.336,15.534 0,0 2.089,0.956 7.385,-3.572 l -2.005,12.296 c -4.814,9.391 -11.773,16.752 -25.115,31.113 5.944,-6.087 15.438,-5.379 20.751,-4.356 l -0.572,3.512 c -2.231,1.278 -5.494,3.171 -10.241,5.957 -12.43,7.299 -22.326,21.049 -22.326,21.049 0,0 12.85,1.815 20.513,11.022 -7.316,-2.641 -18.585,0.799 -18.585,0.799 -17.086,6.772 -15.022,30.217 -17.687,50.587 -2.667,20.37 -9.299,34.125 -9.299,34.125 0,0 -0.243,2.149 11.91,-5.906 -7.744,33.215 -35.545,44.94 -35.545,44.94 0,0 2.223,2.79 22.843,0.044 -16.469,15.817 -32.303,16.896 -32.303,16.896 0,0 10.077,2.25 23.611,0.24 0,0 -3.327,3.508 -7.549,6.453 L 35.985,194.291 -77.543,167.815 -8.211,-101.17 17.481,-99.413 C 8.602,-85.114 -0.371,-63.837 -2.15,-40.857 -4.911,-5.208 0,0 0,0" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3249" + inkscape:connector-curvature="0" /></g><g + id="g3255" + transform="translate(204.22134,580.88353)"><path + d="m 0,0 c 0,-1.418 0.43,-2.736 1.168,-3.83 1.523,0.677 3.551,1.094 5.786,1.094 2.164,0 4.133,-0.39 5.639,-1.029 0.711,1.081 1.129,2.374 1.129,3.765 0,3.79 -3.072,6.861 -6.861,6.861 C 3.071,6.861 0,3.79 0,0" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3257" + inkscape:connector-curvature="0" /></g><g + id="g3259" + transform="translate(256.3311,595.31646)"><path + d="m 0,0 c 0,-1.418 0.43,-2.736 1.168,-3.83 1.524,0.677 3.552,1.094 5.787,1.094 2.163,0 4.132,-0.39 5.638,-1.029 0.712,1.081 1.129,2.373 1.129,3.765 0,3.79 -3.072,6.861 -6.861,6.861 C 3.071,6.861 0,3.79 0,0" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3261" + inkscape:connector-curvature="0" /></g><g + id="g4174" + transform="matrix(0.99694509,0.07810563,-0.07810563,0.99694509,47.348748,-15.348299)"><g + transform="translate(222.5098,610.1558)" + id="g3219"><path + inkscape:connector-curvature="0" + id="path3221" + style="fill:#df0019;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 4.45,2.752 5.34,3.785 7.05,-8.226 7.093,-33.359 17.801,-51.259 13.86,-30.215 26.261,-1.55 -6.685,-35.653 c 0,0 -49.98,-21.871 -49.545,-21.911 -42.657,4.001 -12.553,43.066 -8.631,47.301 L 3.666,-47.869 0,0 z" /></g><g + transform="translate(247.626,467.3545)" + id="g3239"><path + inkscape:connector-curvature="0" + id="path3241" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 C -3.044,-0.345 -5.232,-3.092 -4.888,-6.136 -4.543,-9.18 1.576,-2.254 13.308,-4.961 13.971,-1.97 3.044,0.344 0,0" /></g><g + transform="translate(279.4419,476.5762)" + id="g3243"><path + inkscape:connector-curvature="0" + id="path3245" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 C 3.271,1.08 6.798,-0.697 7.88,-3.969 8.96,-7.24 -0.55,-3.044 -11.258,-11.329 -13.345,-8.586 -3.272,-1.081 0,0" /></g><g + transform="translate(284.1929,525.9082)" + id="g3263"><path + inkscape:connector-curvature="0" + id="path3265" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 C 0,0 -6.972,28.671 -6.972,29.355 L 1.585,2.864 9.999,-10.564 13.634,-32.697 7.922,-11.098 0,0 z M -0.633,-15.036 -9.19,-4.86 -16.478,25.776 c -0.202,0.684 9.106,-28.811 9.106,-28.811 l 8.64,-11.642 2.469,-17.336 -4.37,16.977 z m -6.339,-6.085 -10.457,16.826 -5.444,28.646 6.614,-27.842 11.311,-18.026 1.413,-9.583 -3.437,9.979 z m -53.462,-13.246 -1.437,24.944 -2.682,28.754 5.106,-29.895 1.212,-21.677 4.139,-18.236 -6.338,16.11 z m -4.265,-19.55 -6.665,15.516 0.404,29.205 -0.882,28.169 3.104,-28.396 0.808,-26.697 4.242,-15.972 2.423,-6.617 -3.434,4.792 z m -9.695,-2.967 -7.117,16.885 1.318,32.01 0,25.223 2.115,-25.061 -0.581,-31.259 5.869,-16.429 5.056,-8.671 -6.66,7.302 z m 103.144,-7.97 -6.676,20.38 2.141,11.54 L 16.499,-9.376 4.557,13.104 -5.879,53.97 c 0,0 -8.325,-7.41 -16.781,-8.08 -8.455,-0.671 -15.09,4.018 -15.09,4.018 0,0 3.592,-17.761 8.659,-37.597 5.069,-19.836 17.528,-44.866 17.528,-44.866 0,0 21.578,-8.197 24.302,-16.587 2.724,-8.391 -3.508,-22.911 -14.102,-26.551 -10.593,-3.64 -32.284,-8.262 -32.284,-8.262 0,0 -19,1.512 -20.438,14.26 0,0 4.131,16.406 10.418,19.225 6.285,2.819 21.362,11.174 21.362,11.174 l -8.254,1.332 -7.664,-1.332 c 0,0 -4.784,11.295 -10.973,35.086 -6.19,23.79 -8.967,42.485 -8.967,42.485 0,0 -3.912,-4.391 -14.199,-4.885 -10.286,-0.494 -16.031,7.988 -16.031,7.988 l 1.027,-30.185 -1.049,-25.83 -0.15,-29.22 5.102,-15.99 19.818,-30.448 c 0,0 14.102,-9.293 31.728,-9.293 16.453,1.328 51.131,18.047 51.131,18.047 l 9.536,16.687 z" /></g></g><g + id="g3267" + transform="translate(847.2637,321.5059)"><path + d="m 0,0 c 2.252,3.516 6.693,15.3 6.693,15.3 0,0 3.778,-13.306 1.912,-17.213 -3.056,-6.404 -23.905,-15.3 -23.905,-15.3 0,0 12.196,12.364 15.3,17.213 m -33.514,23.16 -0.757,56.352 c 0,0 11.136,-14.028 11.843,-19.739 1.176,-9.491 -11.086,-36.613 -11.086,-36.613 m -17.575,236.921 c 0,0 12.453,-15.338 14.854,-21.39 1.424,-3.591 2.286,-15.287 2.286,-15.287 l -17.14,36.677 z M -98.574,-86.136 c -9.757,-0.906 -29.836,1.016 -38.912,4.708 -7.499,3.05 -25.734,19.656 -25.734,19.656 l 24.187,-10.86 -4.701,17.627 15.272,-22.009 41.813,-5.356 c 0,0 -8.812,-3.477 -11.925,-3.766 m -74.428,157.941 c -4.518,10.057 -1.763,44.065 -1.763,44.065 0,0 7.544,-31.093 12.338,-40.541 6.978,-13.754 37.015,-49.352 37.015,-49.352 0,0 -40.824,30.759 -47.59,45.828 m -17.833,-149.47 -40.407,24.724 1.636,-17.575 0.026,-0.035 -5.178,-29.811 -2.056,-10.701 0.383,-33.34 -4.982,36.406 6.41,41.45 -11.063,8.338 -17.532,43.159 23.502,-38.779 2.351,14.101 40.634,-25.695 11.924,-5.651 13.809,-28.871 -19.457,22.28 z m -85.522,138.863 17.212,-34.424 c 0,0 -12.972,11.185 -15.299,16.257 -1.905,4.152 -1.913,18.167 -1.913,18.167 m -2.367,66.042 c 0,0 -6.206,15.581 -6.323,21.082 -0.168,7.817 4.568,23.148 7.695,30.315 0.755,1.73 4.103,6.341 4.103,6.341 0,0 -4.654,-24.542 -5.347,-32.829 -0.518,-6.205 -0.128,-24.909 -0.128,-24.909 m -7.195,-114.809 c -0.334,3.363 1.912,13.387 1.912,13.387 l 3.825,-29.643 c 0,0 -5.313,11.967 -5.737,16.256 m -20.082,53.549 c -1.394,3.571 -0.956,15.301 -0.956,15.301 l 13.388,-30.6 c 0,0 -10.639,10.71 -12.432,15.299 m -6.03,106.795 c 0,0 -0.315,35.831 4.637,46.379 4.531,9.647 29.936,30.356 29.936,30.356 0,0 -17.824,-22.47 -21.503,-31.2 -5.089,-12.077 -10.119,-51.437 -10.119,-51.437 l -2.951,5.902 z M 50.121,205.01 c 3.335,-9.155 1.168,-38.956 1.168,-38.956 0,0 -5.451,29.987 -9.221,39.366 -4.214,10.487 -23.014,38.907 -23.014,38.907 0,0 26.78,-27.546 31.067,-39.317 M 54.506,95.624 c 0,0 6.884,-18.586 5.738,-24.861 -0.773,-4.241 -9.562,-14.345 -9.562,-14.345 0,0 2.414,12.874 2.868,17.212 0.573,5.474 0.956,21.994 0.956,21.994 M 19.125,-13.389 c 0,0 9.656,22.183 11.062,30.068 1.235,6.941 0,28.203 0,28.203 0,0 8.477,-22.819 7.106,-30.538 C 35.845,6.183 19.125,-13.389 19.125,-13.389 m 441.487,-40.965 c -3.249,8.935 -6.587,17.23 -10.01,24.928 l -1.862,28.873 -8.857,-4.876 -25.862,49.457 -4.828,-10.34 c -32.69,31.48 -70.457,34.284 -111.982,31.646 -65.568,-4.163 -91.587,-41.63 -79.098,-57.241 12.49,-15.613 18.733,-5.205 40.589,5.203 21.858,10.407 74.937,26.017 110.323,-2.082 35.386,-28.1 86.383,-109.281 50.997,-169.646 -35.386,-60.365 -105.626,-105.385 -182.135,-88.465 -86.422,19.112 -126.078,60.082 -177.675,74.811 -8.311,1.334 -18.347,2.789 -24.791,3.191 -12.671,0.792 -21.6,14.727 -21.6,14.727 l 17.181,-9.327 25.763,-2.36 c 2.331,14 9.395,49.054 9.395,49.054 l -8.688,87.29 -18.668,-27.06 -7.246,10.184 -21.349,-22.915 -15.473,-1.959 14.67,6.596 21.38,29.409 6.7,-13.754 19.485,24.691 0.004,-0.011 16.47,9.525 -3.123,68.69 10.407,-10.407 -4.163,40.59 22.173,71.502 -34.662,91.899 16.652,-4.162 -19.773,35.386 -40.591,38.509 9.368,17.693 -93.671,9.368 -20.229,-7.165 -18.437,38.292 13.22,8.813 -69.039,14.69 2.938,19.095 -80.791,-23.303 -26.147,-19.191 -116.339,0 8.814,-10.188 -42.501,-40.641 -8.911,-78.491 7.344,-1.494 8.814,-45.548 23.502,-24.978 19.096,45.533 -14.689,-4.409 41.13,48.474 30.848,26.44 -14.69,-1.469 19.096,16.158 105.763,2.938 72.917,15.799 -41.623,-14.742 -30.181,-7.285 -104.079,-1.043 1.04,-11.449 -64.526,-61.403 14.571,2.081 -27.844,-63.28 c -15.017,-13.719 -28.06,-55.016 -36.687,-75.145 -9.367,-21.856 -20.816,-39.55 -20.816,-39.55 0,0 -30.182,-6.244 -61.405,-18.734 -31.224,-12.489 -43.713,4.163 -43.713,4.163 l -3.122,-8.326 c 0,0 -18.28,-9.057 -39.303,-11.825 -16.43,-2.162 -9.967,-20.946 -9.613,-26.684 0.405,-6.57 4.294,-19.774 8.325,-24.978 3.227,-4.165 12.525,-10.425 17.694,-11.448 12.039,-2.385 28.101,5.204 45.794,17.693 74.936,-6.245 103.241,-10.321 126.974,8.326 14.572,11.448 29.142,22.897 41.631,40.59 l -15.611,42.671 -8.327,-14.569 -5.807,44.931 1.841,17.863 5.547,-51.234 7.789,9.257 35.387,-70.772 11.448,4.164 c 0,0 13.515,-18.583 23.057,-32.881 l -26.02,25.006 -10.224,-5.964 -11.076,22.152 c 0,0 -13.383,-2.353 -24.727,-18.027 -15.862,-21.915 -23.503,-24.678 -17.627,-78.735 5.876,-54.055 16.452,-54.055 64.632,-121.039 11.752,-16.452 14.601,-18.465 14.601,-18.465 l -51.03,-27.365 -22.327,-5.876 -21.384,-11.28 c 0,0 4.744,-8.174 7.495,-9.369 4.739,-2.062 20.613,1.56 20.613,1.56 0,0 15.603,-6.763 36.756,-6.763 21.152,0 32.903,8.225 47.005,8.225 14.101,0 38.78,-8.225 57.582,-5.876 18.802,2.351 22.328,12.927 22.328,12.927 l -51.706,54.057 -4.675,47.096 -56.605,75.769 -3.038,9.437 65.791,-82.24 5.107,-46.75 55.161,-61.405 37.468,-8.325 c 0,0 -0.257,1.226 -0.625,3.114 -6.146,15.664 -6.986,34.894 -1.999,54.214 6.975,27.012 38.85,36.596 64.029,36.596 12.506,0 24.179,-2.312 32.025,-6.341 12.912,-6.63 21.851,-15.076 27.029,-20.917 3.673,4.516 7.133,7.194 11.833,11.11 0,0 12.143,-11.751 45.047,-14.101 27.14,-1.939 45.048,-8.226 70.901,-19.585 53.676,-23.584 102.5,-61.785 207.618,-45.132 105.119,16.651 206.073,113.444 164.442,227.929" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3269" + inkscape:connector-curvature="0" /></g><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 329.26398,723.3082 -118.025,-19.2 -120.800003,-28.175 72.600003,-281.65 115.075,7.875 95.275,50.65 -44.125,270.5 z m -6.55,-10.575 40.675,-252.4 -87.85,-47.275 -106.125,-7.325 -66.95,262.8 111.4,26.275 108.85,17.925 z" + id="path3253-3" /></g></svg> \ No newline at end of file diff --git a/css/docs.css b/css/docs.css new file mode 100644 index 000000000..dbe1e0828 --- /dev/null +++ b/css/docs.css @@ -0,0 +1,158 @@ +body { + font-family: Arial, sans-serif; + line-height: 1.5; + max-width: 64.3em; + margin: 3em auto; + padding: 0 1em; +} +body.droid { + font-family: Droid Sans, Arial, sans-serif; +} + +h1 { + letter-spacing: -3px; + font-size: 3.23em; + font-weight: bold; + margin: 0; +} + +h2 { + font-size: 1.23em; + font-weight: bold; + margin: .5em 0; + letter-spacing: -1px; +} + +h3 { + font-size: 1em; + font-weight: bold; + margin: .4em 0; +} + +pre { + font-family: Courier New, monospaced; + background-color: #eee; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + padding: 1em; +} + +pre.code { + margin: 0 1em; +} + +.grey { + font-size: 2em; + padding: .5em 1em; + line-height: 1.2em; + margin-top: .5em; + position: relative; +} + +img.logo { + position: absolute; + right: -25px; + bottom: 4px; +} + +a:link, a:visited, .quasilink { + color: #df0019; + cursor: pointer; + text-decoration: none; +} + +a:hover, .quasilink:hover { + color: #800004; +} + +h1 a:link, h1 a:visited, h1 a:hover { + color: black; +} + +ul { + margin: 0; + padding-left: 1.2em; +} + +a.download { + color: white; + background-color: #df0019; + width: 100%; + display: block; + text-align: center; + font-size: 1.23em; + font-weight: bold; + text-decoration: none; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + padding: .5em 0; + margin-bottom: 1em; +} + +a.download:hover { + background-color: #bb0010; +} + +.rel { + margin-bottom: 0; +} + +.rel-note { + color: #777; + font-size: .9em; + margin-top: .1em; +} + +.logo-braces { + color: #df0019; + position: relative; + top: -4px; +} + +.blk { + float: left; +} + +.left { + width: 37em; + padding-right: 6.53em; + padding-bottom: 1em; +} + +.left1 { + width: 15.24em; + padding-right: 6.45em; +} + +.left2 { + width: 15.24em; +} + +.right { + width: 20.68em; +} + +.leftbig { + width: 42.44em; + padding-right: 6.53em; +} + +.rightsmall { + width: 15.24em; +} + +.clear:after { + visibility: hidden; + display: block; + font-size: 0; + content: " "; + clear: both; + height: 0; +} +.clear { display: inline-block; } +/* start commented backslash hack \*/ +* html .clear { height: 1%; } +.clear { display: block; } +/* close commented backslash hack */ diff --git a/css/font.js b/css/font.js new file mode 100644 index 000000000..31e3f06ed --- /dev/null +++ b/css/font.js @@ -0,0 +1,15 @@ +function waitForStyles() { + for (var i = 0; i < document.styleSheets.length; i++) + if (/googleapis/.test(document.styleSheets[i].href)) + return document.body.className += " droid"; + setTimeout(waitForStyles, 100); +} +setTimeout(function() { + if (/AppleWebKit/.test(navigator.userAgent) && /iP[oa]d|iPhone/.test(navigator.userAgent)) return; + var link = document.createElement("LINK"); + link.type = "text/css"; + link.rel = "stylesheet"; + link.href = "http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans:bold"; + document.documentElement.getElementsByTagName("HEAD")[0].appendChild(link); + waitForStyles(); +}, 10); diff --git a/demo/activeline.html b/demo/activeline.html new file mode 100644 index 000000000..7a169663e --- /dev/null +++ b/demo/activeline.html @@ -0,0 +1,71 @@ +<!doctype html> +<html> + <head> + <title>CodeMirror 2: Active Line Demo</title> + <link rel="stylesheet" href="../lib/codemirror.css"> + <script src="../lib/codemirror.js"></script> + <link rel="stylesheet" href="../mode/xml/xml.css"> + <script src="../mode/xml/xml.js"></script> + <link rel="stylesheet" href="../css/docs.css"> + + <style type="text/css"> + .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} + .activeline {background: #f0fcff !important;} + </style> + </head> + <body> + <h1>CodeMirror 2: Active Line Demo</h1> + + <form><textarea id="code" name="code"> +<?xml version="1.0" encoding="UTF-8"?> +<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" + xmlns:georss="http://www.georss.org/georss" + xmlns:twitter="http://api.twitter.com"> + <channel> + <title>Twitter / codemirror</title> + <link>http://twitter.com/codemirror</link> + <atom:link type="application/rss+xml" + href="http://twitter.com/statuses/user_timeline/242283288.rss" rel="self"/> + <description>Twitter updates from CodeMirror / codemirror.</description> + <language>en-us</language> + <ttl>40</ttl> + <item> + <title>codemirror: http://cloud-ide.com — they're springing up like mushrooms. This one + uses CodeMirror as its editor.</title> + <description>codemirror: http://cloud-ide.com — they're springing up like mushrooms. This + one uses CodeMirror as its editor.</description> + <pubDate>Thu, 17 Mar 2011 23:34:47 +0000</pubDate> + <guid>http://twitter.com/codemirror/statuses/48527733722058752</guid> + <link>http://twitter.com/codemirror/statuses/48527733722058752</link> + <twitter:source>web</twitter:source> + <twitter:place/> + </item> + <item> + <title>codemirror: Posted a description of the CodeMirror 2 internals at + http://codemirror.net/2/internals.html</title> + <description>codemirror: Posted a description of the CodeMirror 2 internals at + http://codemirror.net/2/internals.html</description> + <pubDate>Wed, 02 Mar 2011 12:15:09 +0000</pubDate> + <guid>http://twitter.com/codemirror/statuses/42920879788789760</guid> + <link>http://twitter.com/codemirror/statuses/42920879788789760</link> + <twitter:source>web</twitter:source> + <twitter:place/> + </item> +</feed></textarea></form> + + <script> +var editor = CodeMirror.fromTextArea(document.getElementById("code"), { + mode: "application/xml", + lineNumbers: true, + onCursorActivity: function() { + editor.setLineClass(hlLine, null); + hlLine = editor.setLineClass(editor.getCursor().line, "activeline"); + } +}); +var hlLine = editor.setLineClass(0, "activeline"); +</script> + + <p>Styling the current cursor line.</p> + + </body> +</html> diff --git a/demo/complete.html b/demo/complete.html index 4fd353890..4dfef30b2 100644 --- a/demo/complete.html +++ b/demo/complete.html @@ -6,7 +6,7 @@ <script src="../lib/codemirror.js"></script> <link rel="stylesheet" href="../mode/javascript/javascript.css"> <script src="../mode/javascript/javascript.js"></script> - <link rel="stylesheet" href="../docs.css"> + <link rel="stylesheet" href="../css/docs.css"> <style type="text/css"> .completions { diff --git a/demo/marker.html b/demo/marker.html index 16232f91d..7b3a2ba9d 100644 --- a/demo/marker.html +++ b/demo/marker.html @@ -6,7 +6,7 @@ <script src="../lib/codemirror.js"></script> <link rel="stylesheet" href="../mode/javascript/javascript.css"> <script src="../mode/javascript/javascript.js"></script> - <link rel="stylesheet" href="../docs.css"> + <link rel="stylesheet" href="../css/docs.css"> <style type="text/css"> .CodeMirror-gutter { diff --git a/demo/mustache.html b/demo/mustache.html index 7e0ea78bb..6541f1059 100644 --- a/demo/mustache.html +++ b/demo/mustache.html @@ -7,7 +7,7 @@ <script src="../lib/overlay.js"></script> <link rel="stylesheet" href="../mode/xml/xml.css"> <script src="../mode/xml/xml.js"></script> - <link rel="stylesheet" href="../docs.css"> + <link rel="stylesheet" href="../css/docs.css"> <style type="text/css"> .CodeMirror {border: 1px solid black;} diff --git a/demo/resize.html b/demo/resize.html index d6cf44d51..0022044d2 100644 --- a/demo/resize.html +++ b/demo/resize.html @@ -6,7 +6,7 @@ <script src="../lib/codemirror.js"></script> <link rel="stylesheet" href="../mode/css/css.css"> <script src="../mode/css/css.js"></script> - <link rel="stylesheet" href="../docs.css"> + <link rel="stylesheet" href="../css/docs.css"> <style type="text/css"> .CodeMirror { diff --git a/demo/search.html b/demo/search.html index 38bee7d0e..5fe8c9d0b 100644 --- a/demo/search.html +++ b/demo/search.html @@ -6,7 +6,7 @@ <script src="../lib/codemirror.js"></script> <link rel="stylesheet" href="../mode/xml/xml.css"> <script src="../mode/xml/xml.js"></script> - <link rel="stylesheet" href="../docs.css"> + <link rel="stylesheet" href="../css/docs.css"> <style type="text/css"> .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} diff --git a/docs.css b/docs.css deleted file mode 100644 index c2c59a766..000000000 --- a/docs.css +++ /dev/null @@ -1,9 +0,0 @@ -body { - max-width: 70em; - margin-left: 2em; - margin-bottom: 4em; - font-family: tahoma, arial, sans-serif; -} - -pre {margin-left: 2em;} -dl dl {margin: 0;} diff --git a/index.html b/index.html index 3c05cc1e5..e1ce6e31a 100644 --- a/index.html +++ b/index.html @@ -1,135 +1,224 @@ <!doctype html> <html> <head> - <title>CodeMirror 2</title> + <title>CodeMirror</title> + <link rel="stylesheet" type="text/css" href="css/docs.css"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> - <link rel="stylesheet" href="lib/codemirror.css"> - <script src="lib/codemirror.js"></script> - <script src="mode/javascript/javascript.js"></script> - <link rel="stylesheet" href="mode/javascript/javascript.css"> - <style type="text/css"> - .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} - </style> - <link rel="stylesheet" href="docs.css"> + <link rel="alternate" href="http://twitter.com/statuses/user_timeline/242283288.rss" type="application/rss+xml"/> </head> <body> - <h1>CodeMirror 2</h1> - -<form><textarea id="code" name="code"> -// Demo code (the actual new parser character stream implementation) - -function StringStream(string) { - this.pos = 0; - this.string = string; -} - -StringStream.prototype = { - done: function() {return this.pos >= this.string.length;}, - peek: function() {return this.string.charAt(this.pos);}, - next: function() { - if (this.pos < this.string.length) - return this.string.charAt(this.pos++); - }, - eat: function(match) { - var ch = this.string.charAt(this.pos); - if (typeof match == "string") var ok = ch == match; - else var ok = ch && match.test ? match.test(ch) : match(ch); - if (ok) {this.pos++; return ch;} - }, - eatWhile: function(match) { - var start = this.pos; - while (this.eat(match)); - if (this.pos > start) return this.string.slice(start, this.pos); - }, - backUp: function(n) {this.pos -= n;}, - column: function() {return this.pos;}, - eatSpace: function() { - var start = this.pos; - while (/\s/.test(this.string.charAt(this.pos))) this.pos++; - return this.pos - start; - }, - match: function(pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - function cased(str) {return caseInsensitive ? str.toLowerCase() : str;} - if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { - if (consume !== false) this.pos += str.length; - return true; - } - } - else { - var match = this.string.slice(this.pos).match(pattern); - if (match && consume !== false) this.pos += match[0].length; - return match; - } - } -}; -</textarea></form> - - <script> - var editor = CodeMirror.fromTextArea(document.getElementById("code"), { - lineNumbers: true, - matchBrackets: true - }); - </script> - - <h3>Available modes:</h3> - <ul> - <li><a href="mode/javascript/">JavaScript</a></li> - <li><a href="mode/xml/">XML/HTML</a></li> - <li><a href="mode/css/">CSS</a></li> - <li><a href="mode/htmlmixed/">Mixed-mode HTML</a></li> - <li><a href="mode/clike/">Simple mode for C-like languages (C, C++, Java)</a></li> - <li><a href="mode/php/">PHP</a></li> - <li><a href="mode/diff/">Diff</a></li> - <li><a href="mode/haskell/">Haskell</a></li> - <li><a href="mode/stex/">sTeX</a></li> - </ul> +<h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1> - <h3>Usage demos:</h3> +<pre class="grey"> +<img src="css/baboon.png" class="logo" alt="logo"/>/* In-browser code editing + made bearable */ +</pre> - <ul> - <li><a href="demo/complete.html">Clever JS autocompletion</a></li> - <li><a href="demo/mustache.html">Parsing Mustache templates using an overlay</a></li> - <li><a href="demo/search.html">Search/replace and text marking</a></li> - <li><a href="demo/resize.html">Non-scrolling, resizing editor</a></li> - <li><a href="demo/marker.html">Setting breakpoints</a></li> - </ul> +<div class="clear"><div class="left blk"> - <h3>Getting the Code</h3> + <p style="margin-top: 0">CodeMirror is a JavaScript library that can + be used to create a relatively pleasant editor interface for + code-like content ― computer programs, HTML markup, and + similar. If a mode has been written for the language you are + editing, the code will be coloured, and the editor will optionally + help you with indentation.</p> - <p>The recommended way to get the files is...</p> + <p>This is the project page for CodeMirror 2, the currently more + actively developed, and recommended + version. <a href="1/index.html">CodeMirror 1</a> is still available + from here.</p> + + <div class="clear"><div class="left1 blk"> - <pre style="margin-left: 1em">git clone http://marijnhaverbeke.nl/git/codemirror2</pre> + <h2 style="margin-top: 0">Supported modes:</h2> - <p>There is - also <a href="https://github.com/marijnh/codemirror2">github</a> - and a zip containing the - current <a href="http://codemirror.net/2/codemirror2-latest.zip">development - snapshot</a>. Once we have non-beta releases, those will also be - avaible in zip form.</p> + <ul> + <li><a href="mode/javascript/index.html">JavaScript</a></li> + <li><a href="mode/xml/index.html">XML/HTML</a></li> + <li><a href="mode/css/index.html">CSS</a></li> + <li><a href="mode/htmlmixed/index.html">HTML mixed-mode</a></li> + <li><a href="mode/php/index.html">PHP</a></li> + <li><a href="mode/diff/index.html">diff</a></li> + <li><a href="mode/clike/index.html">C, Java, and similar</a></li> + <li><a href="mode/stex/index.html">sTeX, LaTeX</a></li> + <li><a href="mode/haskell/index.html">Haskell</a></li> + </ul> + + </div><div class="left2 blk"> - <h3>CodeMirror 2: beta 2</h3> + <h2 style="margin-top: 0">Usage demos:</h2> - <p><a href="https://github.com/marijnh/codemirror2/tree/beta2">Beta - 2</a> was released on February 22th 2011. The code is somewhat - more well-tested, and the API has matured a bit since beta 1. The - main thing we need right now is more ports of CodeMirror 1 - modes—you're invited to <a href="manual.html#modeapi">help</a> - with that!</p> + <ul> + <li><a href="demo/complete.html">Autocompletion</a></li> + <li><a href="demo/mustache.html">Mode overlays</a></li> + <li><a href="demo/search.html">Search/replace</a></li> + <li><a href="demo/resize.html">Auto-resizing editor</a></li> + <li><a href="demo/marker.html">Setting breakpoints</a></li> + <li><a href="demo/activeline.html">Highlighting the current line</a></li> + </ul> - <h3>CodeMirror 2: beta 1</h3> + </div></div> - <p>Beta 1 was released on February 8th 2011. There are no release - files yet, just - a <a href="https://github.com/marijnh/codemirror2/tree/beta1">git - tag</a>.</p> + <h2 id="code">Getting the code</h2> - <p>There is now a <a href="manual.html">manual</a>, and you are - encouraged to try the library out and leave bug reports at - the <a href="https://github.com/marijnh/codemirror2/issues">github - issue tracker</a> (anything from the editor behaving badly to a - typo in the docs).</p> + <p>All of CodeMirror is released under a <a + href="LICENSE">MIT-style</a> license. To get it, you can download + the <a href="http://codemirror.net/codemirror.zip">latest + release</a> or the current <a + href="http://codemirror.net/codemirror-latest.zip">development + snapshot</a> as zip files. To create a custom minified script file, + you can use the <a href="compress.html">compression API</a>.</p> + + <p>We use <a href="http://git-scm.com/">git</a> for version control. + The main repository can be fetched in this way:</p> + + <pre class="code">git clone http://marijnhaverbeke.nl/git/codemirror2</pre> + + <p>CodeMirror can also be found on GitHub at <a + href="http://github.com/marijnh/CodeMirror2">marijnh/CodeMirror2</a>. + If you plan to hack on the code and contribute patches, the best way + to do it is to create a GitHub fork, and send pull requests.</p> + + <h2 id="documention">Documentation</h2> + + <p>The <a href="manual.html">manual</a> is your first stop for + learning how to use this library. It starts with a quick explanation + of how to use the editor, and then describes all of the (many) + options and methods that CodeMirror exposes.</p> + + <p>For those who want to learn more about the code, there is + an <a href="internals.html">overview of the internals</a> available. + The <a href="http://github.com/marijnh/CodeMirror2">source code</a> + itself is, for the most part, also well commented.</p> + + <h2 id="support">Support and bug reports</h2> + + <p>There is + a <a href="http://groups.google.com/group/codemirror">Google + group</a> (a sort of mailing list/newsgroup thing) for discussion + and news related to CodeMirror. Reporting bugs is best done + on <a href="http://github.com/marijnh/CodeMirror2/issues">github</a>. + You can also e-mail me + directly: <a href="mailto:marijnh@gmail.com">Marijn + Haverbeke</a>.</p> + + <h2 id="supported">Supported browsers</h2> + + <p>The following browsers are able to run CodeMirror:</p> + + <ul> + <li>Firefox 2 or higher</li> + <li>Chrome, any version</li> + <li>Safari 3 or higher</li> + <li>Internet Explorer 6 or higher</li> + <li>Opera 9 or higher (with some key-handling problems on OS X)</li> + </ul> + + <p>I am not actively testing against every new browser release, and + vendors have a habit of introducing bugs all the time, so I am + relying on the community to tell me when something breaks. + See <a href="#support">below</a> for information on how to contact + me.</p> + +</div> + +<div class="right blk"> + + <a href="http://codemirror.net/codemirror.zip" class="download">Download the latest release</a> + + <h2>Make a donation</h2> + + <ul> + <li><span onclick="document.getElementById('paypal').submit();" class="quasilink">Paypal</span></li> + <li><span onclick="document.getElementById('bankinfo').style.display = 'block';" class="quasilink">Bank</span></li> + </ul> + + <p id="bankinfo" style="display: none;"> + Bank: <i>Rabobank</i><br/> + Country: <i>Netherlands</i><br/> + SWIFT: <i>RABONL2U</i><br/> + Account: <i>147850770</i><br/> + Name: <i>Marijn Haverbeke</i><br/> + IBAN: <i>NL26 RABO 0147 8507 70</i> + </p> + + <h2>Releases:</h2> + + <p class="rel">22-02-2011: <a href="https://github.com/marijnh/codemirror2/tree/beta2">Version 2.0 beta 2</a>:</p> + <p class="rel-note">Somewhate more mature API, lots of bugs shaken out.</a> + + <p class="rel">17-02-2011: <a href="http://codemirror.net/codemirror-0.94.zip">Version 0.94</a>:</p> + <ul class="rel-note"> + <li><code>tabMode: "spaces"</code> was modified slightly (now indents when something is selected).</li> + <li>Fixes a bug that would cause the selection code to break on some IE versions.</li> + <li>Disabling spell-check on WebKit browsers now works.</li> + </ul> + + <p class="rel">08-02-2011: <a href="http://codemirror.net/2/">Version 2.0 beta 1</a>:</p> + <p class="rel-note">CodeMirror 2 is a complete rewrite of + CodeMirror, no longer depending on an editable frame.</p> + + <p class="rel">19-01-2011: <a href="http://codemirror.net/codemirror-0.93.zip">Version 0.93</a>:</p> + <ul class="rel-note"> + <li>Added a <a href="contrib/regex/index.html">Regular Expression</a> parser.</li> + <li>Fixes to the PHP parser.</li> + <li>Support for regular expression in search/replace.</li> + <li>Add <code>save</code> method to instances created with <code>fromTextArea</code>.</li> + <li>Add support for MS T-SQL in the SQL parser.</li> + <li>Support use of CSS classes for highlighting brackets.</li> + <li>Fix yet another hang with line-numbering in hidden editors.</li> + </ul> + + <p class="rel">17-12-2010: <a href="http://codemirror.net/codemirror-0.92.zip">Version 0.92</a>:</p> + <ul class="rel-note"> + <li>Make CodeMirror work in XHTML documents.</li> + <li>Fix bug in handling of backslashes in Python strings.</li> + <li>The <code>styleNumbers</code> option is now officially + supported and documented.</li> + <li><code>onLineNumberClick</code> option added.</li> + <li>More consistent names <code>onLoad</code> and + <code>onCursorActivity</code> callbacks. Old names still work, but + are deprecated.</li> + <li>Add a <a href="contrib/freemarker/index.html">Freemarker</a> mode.</li> + </ul> + + <p class="rel">11-11-2010: <a + href="http://codemirror.net/codemirror-0.91.zip">Version 0.91</a>:</p> + <ul class="rel-note"> + <li>Adds support for <a href="contrib/java">Java</a>.</li> + <li>Small additions to the <a href="contrib/php">PHP</a> and <a href="contrib/sql">SQL</a> parsers.</li> + <li>Work around various <a href="https://bugs.webkit.org/show_bug.cgi?id=47806">Webkit</a> <a href="https://bugs.webkit.org/show_bug.cgi?id=23474">issues</a>.</li> + <li>Fix <code>toTextArea</code> to update the code in the textarea.</li> + <li>Add a <code>noScriptCaching</code> option (hack to ease development).</li> + <li>Make sub-modes of <a href="mixedtest.html">HTML mixed</a> mode configurable.</li> + </ul> + + <p class="rel">02-10-2010: <a + href="http://codemirror.net/codemirror-0.9.zip">Version 0.9</a>:</p> + <ul class="rel-note"> + <li>Add support for searching backwards.</li> + <li>There are now parsers for <a href="contrib/scheme/index.html">Scheme</a>, <a href="contrib/xquery/index.html">XQuery</a>, and <a href="contrib/ometa/index.html">OmetaJS</a>.</li> + <li>Makes <code>height: "dynamic"</code> more robust.</li> + <li>Fixes bug where paste did not work on OS X.</li> + <li>Add a <code>enterMode</code> and <code>electricChars</code> options to make indentation even more customizable.</li> + <li>Add <code>firstLineNumber</code> option.</li> + <li>Fix bad handling of <code>@media</code> rules by the CSS parser.</li> + <li>Take a new, more robust approach to working around the invisible-last-line bug in WebKit.</li> + </ul> + + <p><a href="oldrelease.html">Older releases...</a></p> + +</div></div> + +<div style="height: 2em"> </div> + + <form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paypal"> + <input type="hidden" name="cmd" value="_s-xclick"/> + <input type="hidden" name="hosted_button_id" value="3FVHS5FGUY7CC"/> + </form> + + <script type="text/javascript" src="css/font.js"></script> </body> </html> diff --git a/lib/codemirror.css b/lib/codemirror.css index a40f06297..578af41ae 100644 --- a/lib/codemirror.css +++ b/lib/codemirror.css @@ -23,6 +23,10 @@ } .CodeMirror pre { + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; border-width: 0; margin: 0; padding: 0; background: transparent; font-family: inherit; } diff --git a/manual.html b/manual.html index f477637e0..234ff4106 100644 --- a/manual.html +++ b/manual.html @@ -1,23 +1,21 @@ <!doctype html> <html> <head> - <title>CodeMirror 2 Manual</title> - <link rel="stylesheet" href="docs.css"> + <title>CodeMirror: User Manual</title> + <link rel="stylesheet" type="text/css" href="css/docs.css"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <style>dl dl {margin: 0;}</style> </head> <body> - <h1>CodeMirror 2: The provisionary manual</h1> - <h2>Contents</h2> +<h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1> - <ul> - <li><a href="#overview">Overview</a></li> - <li><a href="#usage">Basic Usage</a></li> - <li><a href="#config">Configuration</a></li> - <li><a href="#styling">Customized Styling</a></li> - <li><a href="#api">Programming API</a></li> - <li><a href="#modeapi">Writing CodeMirror Modes</a></li> - </ul> +<pre class="grey"> +<img src="css/baboon.png" class="logo" alt="logo"/>/* User manual and + reference guide */ +</pre> + +<div class="clear"><div class="leftbig blk"> <h2 id="overview">Overview</h2> @@ -37,7 +35,8 @@ <p>The easiest way to use CodeMirror is to simply load the script and style sheet found under <code>lib/</code> in the distribution, - plus the script and style sheet for the mode you want to use. For + plus the script and style sheet for the mode(s) you want to use. + (See also <a href="compress.html">the compresion helper</a>.) For example:</p> <pre><script src="lib/codemirror.js"></script> @@ -749,5 +748,24 @@ mode, as in the <a href="#option_mode"><code>mode</code></a> option.</p> +</div><div class="rightsmall blk"> + + <h2>Contents</h2> + + <ul> + <li><a href="#overview">Overview</a></li> + <li><a href="#usage">Basic Usage</a></li> + <li><a href="#config">Configuration</a></li> + <li><a href="#styling">Customized Styling</a></li> + <li><a href="#api">Programming API</a></li> + <li><a href="#modeapi">Writing CodeMirror Modes</a></li> + </ul> + +</div></div> + +<div style="height: 2em"> </div> + +<script type="text/javascript" src="css/font.js"></script> + </body> </html> diff --git a/mode/clike/index.html b/mode/clike/index.html index 1218bb0ca..0836535d2 100644 --- a/mode/clike/index.html +++ b/mode/clike/index.html @@ -6,7 +6,7 @@ <script src="../../lib/codemirror.js"></script> <script src="clike.js"></script> <link rel="stylesheet" href="clike.css"> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> <style>.CodeMirror {border: 2px inset #dee;}</style> </head> <body> diff --git a/mode/css/index.html b/mode/css/index.html index 48c6f84c0..ad895610f 100644 --- a/mode/css/index.html +++ b/mode/css/index.html @@ -7,7 +7,7 @@ <script src="css.js"></script> <link rel="stylesheet" href="css.css"> <style>.CodeMirror {background: #f8f8f8;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: CSS mode</h1> diff --git a/mode/diff/index.html b/mode/diff/index.html index 784d3e432..2748f2fa8 100644 --- a/mode/diff/index.html +++ b/mode/diff/index.html @@ -7,7 +7,7 @@ <script src="diff.js"></script> <link rel="stylesheet" href="diff.css"> <style>.CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: Diff mode</h1> diff --git a/mode/haskell/index.html b/mode/haskell/index.html index d837cc4dc..0bf34d570 100644 --- a/mode/haskell/index.html +++ b/mode/haskell/index.html @@ -7,7 +7,7 @@ <script src="haskell.js"></script> <link rel="stylesheet" href="haskell.css"> <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: Haskell mode</h1> diff --git a/mode/htmlmixed/index.html b/mode/htmlmixed/index.html index 86f66d167..c661c98d5 100644 --- a/mode/htmlmixed/index.html +++ b/mode/htmlmixed/index.html @@ -11,7 +11,7 @@ <script src="../css/css.js"></script> <link rel="stylesheet" href="../css/css.css"> <script src="htmlmixed.js"></script> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> </head> <body> diff --git a/mode/javascript/index.html b/mode/javascript/index.html index b3c8bbdb6..7b528e041 100644 --- a/mode/javascript/index.html +++ b/mode/javascript/index.html @@ -6,7 +6,7 @@ <script src="../../lib/codemirror.js"></script> <script src="javascript.js"></script> <link rel="stylesheet" href="javascript.css"> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> </head> <body> diff --git a/mode/php/index.html b/mode/php/index.html index ea8719a1d..020e24898 100644 --- a/mode/php/index.html +++ b/mode/php/index.html @@ -14,7 +14,7 @@ <link rel="stylesheet" href="../clike/clike.css"> <script src="php.js"></script> <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: PHP mode</h1> diff --git a/mode/stex/index.html b/mode/stex/index.html index 5984ac3d5..73b07ac13 100644 --- a/mode/stex/index.html +++ b/mode/stex/index.html @@ -7,7 +7,7 @@ <script src="stex.js"></script> <link rel="stylesheet" href="stex.css"> <style>.CodeMirror {background: #f8f8f8;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: sTeX mode</h1> diff --git a/mode/xml/index.html b/mode/xml/index.html index 789dbb80e..5ad7c63fe 100644 --- a/mode/xml/index.html +++ b/mode/xml/index.html @@ -7,7 +7,7 @@ <script src="xml.js"></script> <link rel="stylesheet" href="xml.css"> <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style> - <link rel="stylesheet" href="../../docs.css"> + <link rel="stylesheet" href="../../css/docs.css"> </head> <body> <h1>CodeMirror 2: XML mode</h1> diff --git a/oldrelease.html b/oldrelease.html new file mode 100644 index 000000000..0a421e514 --- /dev/null +++ b/oldrelease.html @@ -0,0 +1,103 @@ +<!doctype html> +<html> + <head> + <title>CodeMirror</title> + <link rel="stylesheet" type="text/css" href="css/docs.css"/> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <link rel="alternate" href="http://twitter.com/statuses/user_timeline/242283288.rss" type="application/rss+xml"/> + </head> + <body> + +<h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1> + +<pre class="grey"> +<img src="css/baboon.png" class="logo" alt="logo"/>/* Old release history */ + +</pre> + + <p class="rel">22-07-2010: <a + href="http://codemirror.net/codemirror-0.8.zip">Version 0.8</a>:</p> + <ul class="rel-note"> + <li>Add a <code>cursorCoords</code> method to find the screen + coordinates of the cursor.</li> + <li>A number of fixes and support for more syntax in the PHP parser.</li> + <li>Fix indentation problem with JSON-mode JS parser in Webkit.</li> + <li>Add a <a href="compress.html">minification</a> UI.</li> + <li>Support a <code>height: dynamic</code> mode, where the editor's + height will adjust to the size of its content.</li> + <li>Better support for IME input mode.</li> + <li>Fix JavaScript parser getting confused when seeing a no-argument + function call.</li> + <li>Have CSS parser see the difference between selectors and other + identifiers.</li> + <li>Fix scrolling bug when pasting in a horizontally-scrolled + editor.</li> + <li>Support <code>toTextArea</code> method in instances created with + <code>fromTextArea</code>.</li> + <li>Work around new Opera cursor bug that causes the cursor to jump + when pressing backspace at the end of a line.</li> + </ul> + + <p class="rel">27-04-2010: <a + href="http://codemirror.net/codemirror-0.67.zip">Version + 0.67</a>:</p> + <p class="rel-note">More consistent page-up/page-down behaviour + across browsers. Fix some issues with hidden editors looping forever + when line-numbers were enabled. Make PHP parser parse + <code>"\\"</code> correctly. Have <code>jumpToLine</code> work on + line handles, and add <code>cursorLine</code> function to fetch the + line handle where the cursor currently is. Add new + <code>setStylesheet</code> function to switch style-sheets in a + running editor.</p> + + <p class="rel">01-03-2010: <a + href="http://codemirror.net/codemirror-0.66.zip">Version + 0.66</a>:</p> + <p class="rel-note">Adds <code>removeLine</code> method to API. + Introduces the <a href="contrib/plsql/index.html">PLSQL parser</a>. + Marks XML errors by adding (rather than replacing) a CSS class, so + that they can be disabled by modifying their style. Fixes several + selection bugs, and a number of small glitches.</p> + + <p class="rel">12-11-2009: <a + href="http://codemirror.net/codemirror-0.65.zip">Version + 0.65</a>:</p> + <p class="rel-note">Add support for having both line-wrapping and + line-numbers turned on, make paren-highlighting style customisable + (<code>markParen</code> and <code>unmarkParen</code> config + options), work around a selection bug that Opera + <em>re</em>introduced in version 10.</p> + + <p class="rel">23-10-2009: <a + href="http://codemirror.net/codemirror-0.64.zip">Version + 0.64</a>:</p> + <p class="rel-note">Solves some issues introduced by the + paste-handling changes from the previous release. Adds + <code>setSpellcheck</code>, <code>setTextWrapping</code>, + <code>setIndentUnit</code>, <code>setUndoDepth</code>, + <code>setTabMode</code>, and <code>setLineNumbers</code> to + customise a running editor. Introduces an <a + href="contrib/sql/index.html">SQL</a> parser. Fixes a few small + problems in the <a href="contrib/python/index.html">Python</a> + parser. And, as usual, add workarounds for various newly discovered + browser incompatibilities.</p> + +<p class="rel"><em>31-08-2009</em>: <a +href="http://codemirror.net/codemirror-0.63.zip">Version +0.63</a>:</p> +<p class="rel-note"> Overhaul of paste-handling (less fragile), fixes for several +serious IE8 issues (cursor jumping, end-of-document bugs) and a number +of small problems.</p> + +<p class="rel"><em>30-05-2009</em>: <a +href="http://codemirror.net/codemirror-0.62.zip">Version +0.62</a>:</p> +<p class="rel-note">Introduces <a href="contrib/python/index.html">Python</a> +and <a href="contrib/lua/index.html">Lua</a> parsers. Add +<code>setParser</code> (on-the-fly mode changing) and +<code>clearHistory</code> methods. Make parsing passes time-based +instead of lines-based (see the <code>passTime</code> option).</p> + + <script type="text/javascript" src="css/font.js"></script> + +</body></html> -- GitLab