Index: docs/src/filter_demo_output.py |
diff --git a/docs/src/filter_demo_output.py b/docs/src/filter_demo_output.py |
deleted file mode 100755 |
index 3b3afb8d04f5e55d43f16816688b4669075d7c5f..0000000000000000000000000000000000000000 |
--- a/docs/src/filter_demo_output.py |
+++ /dev/null |
@@ -1,139 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-import collections |
-import os |
-import re |
-import sys |
- |
-from xml.sax.saxutils import escape |
- |
-from cStringIO import StringIO |
- |
-if not os.path.exists('ansi2html'): |
- print 'You must run ./make_docs.sh once before running this script.' |
- sys.exit(1) |
- |
-# This dependency is pulled in by make_docs.sh |
-# if it doesn't exist, run ./make_docs.sh first |
-sys.path.insert(0, 'ansi2html') |
- |
-import ansi2html # pylint: disable=F0401, W0611 |
-import ansi2html.converter # pylint: disable=F0401, W0611 |
- |
-def simpleXML(string): |
- BRIGHT = 1 |
- DIM = 2 |
- NORMAL = 22 |
- RESET = 0 |
- ESC_RE = re.compile('(\x1B\\[[^m]*?)m') |
- |
- ret = StringIO() |
- boldstate = False |
- |
- for tok in ESC_RE.split(string): |
- if not tok: |
- continue |
- if tok[0] == '\x1b': |
- codes = map(int, filter(bool, tok[2:].split(';'))) |
- if not codes: |
- codes = [RESET] |
- for code in codes: |
- # only care about Bright |
- if code == BRIGHT and boldstate is False: |
- boldstate = True |
- ret.write('<emphasis role="strong">') |
- elif code in (DIM, NORMAL, RESET) and boldstate: |
- boldstate = False |
- ret.write('</emphasis>') |
- else: |
- ret.write(escape(tok)) |
- |
- if boldstate: |
- ret.write('</emphasis>') |
- |
- return ret.getvalue() |
- |
- |
-def main(): |
- ansi2html.converter.SCHEME['custom'] = ( |
- "#000000", "#e42e16", "#19c518", "#e7e71c", "#492ee1", |
- "#d338d3", "#33d6e5", "#ffffff", |
- ) |
- |
- backend = sys.argv[1] |
- output = sys.stdin.read().rstrip() |
- |
- callout_re = re.compile('\x1b\[(\d+)c\n') |
- callouts = collections.defaultdict(int) |
- for i, line in enumerate(output.splitlines(True)): |
- m = callout_re.match(line) |
- if m: |
- callouts[i + int(m.group(1)) - len(callouts)] += 1 |
- |
- output = callout_re.sub('', output) |
- |
- w = sys.stdout.write |
- |
- comment_marker = '###COMMENT###' |
- |
- callout_counter = 1 |
- if backend == 'xhtml11': |
- preamble = ( |
- '</p></div><div class="listingblock"><div class="content"><pre><code>' |
- ) |
- postamble = '</code></pre></div></div><p><div class="paragraph">' |
- c = ansi2html.Ansi2HTMLConverter(inline=True, scheme='custom') |
- |
- in_code = False |
- body = c.convert(output, full=False) |
- for i, line in enumerate(body.splitlines()): |
- if line.startswith(comment_marker): |
- if in_code: |
- w(postamble) |
- in_code = False |
- w(line[len(comment_marker):]) |
- else: |
- if not in_code: |
- w(preamble) |
- in_code = True |
- ext = '' |
- for _ in xrange(callouts[i]): |
- if not ext: |
- ext += '</span>' |
- ext += ' <b><%d></b>' % callout_counter |
- callout_counter += 1 |
- if ext: |
- ext += '<span>' |
- w(line + ext + '\n') |
- if in_code: |
- w(postamble) |
- else: |
- preamble = '</simpara><literallayout class="monospaced">' |
- postamble = '</literallayout><simpara>' |
- |
- in_code = False |
- body = simpleXML(output) |
- for i, line in enumerate(body.splitlines()): |
- if line.startswith(comment_marker): |
- if in_code: |
- w(postamble) |
- in_code = False |
- w(line[len(comment_marker):]) |
- else: |
- if not in_code: |
- w(preamble) |
- in_code = True |
- ext = '' |
- for _ in xrange(callouts[i]): |
- ext += ' <emphasis role="strong">(%d)</emphasis>' % callout_counter |
- callout_counter += 1 |
- w(line + ext + '\n') |
- if in_code: |
- w(postamble) |
- |
- |
-if __name__ == '__main__': |
- main() |