diff options
Diffstat (limited to 'doc/prep.js')
| -rwxr-xr-x | doc/prep.js | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/doc/prep.js b/doc/prep.js deleted file mode 100755 index 3a1e60ec423..00000000000 --- a/doc/prep.js +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/local/bin/node - -/*** - * Pandoc-style markdown preprocessor that drops extra directives - * included for running doc code, and that optionally, when - * --highlight is provided, replaces code blocks that are Rust code - * with highlighted HTML blocks. The directives recognized are: - * - * '## ignore' tells the test extractor (extract-tests.js) to ignore - * the block completely. - * '## notrust' makes the test extractor ignore the block, makes - * this script not highlight the block. - * '# [any text]' is a line that is stripped out by this script, and - * converted to a normal line of code (without the leading #) by - * the test extractor. - */ - -var fs = require("fs"); -CodeMirror = require("./lib/codemirror-node"); -require("./lib/codemirror-rust"); - -function help() { - console.log("usage: " + process.argv[0] + " [--highlight] [-o outfile] [infile]"); - process.exit(1); -} - -var highlight = false, infile, outfile; - -for (var i = 2; i < process.argv.length; ++i) { - var arg = process.argv[i]; - if (arg == "--highlight") highlight = true; - else if (arg == "-o" && outfile == null && ++i < process.argv.length) outfile = process.argv[i]; - else if (arg[0] != "-") infile = arg; - else help(); -} - -var lines = fs.readFileSync(infile || "/dev/stdin").toString().split(/\n\r?/g), cur = 0, line; -var out = outfile ? fs.createWriteStream(outfile) : process.stdout; - -while ((line = lines[cur++]) != null) { - if (/^~~~/.test(line)) { - var block = "", bline; - var notRust = - /notrust/.test(line) - // These are all used by the language ref to indicate things - // that are not Rust source code - || /ebnf/.test(line) - || /abnf/.test(line) - || /keyword/.test(line) - || /field/.test(line) - || /precedence/.test(line); - var isRust = !notRust; - while ((bline = lines[cur++]) != null) { - if (/^~~~/.test(bline)) break; - if (!/^\s*##? /.test(bline)) block += bline + "\n"; - } - if (!highlight || !isRust) - out.write(line + "\n" + block + bline + "\n"); - else { - var html = '<pre class="cm-s-default">', curstr = "", curstyle = null; - function add(str, style) { - if (style != curstyle) { - if (curstyle) html += - '<span class="cm-' + CodeMirror.htmlEscape(curstyle) + '">' + - CodeMirror.htmlEscape(curstr) + "</span>"; - else if (curstr) html += CodeMirror.htmlEscape(curstr); - curstr = str; curstyle = style; - } else curstr += str; - } - CodeMirror.runMode(block, "rust", add); - add("", "bogus"); // Flush pending string. - out.write(html + "</pre>\n"); - } - } else { - out.write(line + "\n"); - } -} |
