From ccfb5c74083ac565c66a2d0cfe11e60e7d1c8337 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 15 Jun 2015 10:22:18 -0400 Subject: [PATCH] Removed obsolete literals_to_xrefs.py script. --- docs/_ext/literals_to_xrefs.py | 174 ------------------ .../contributing/writing-documentation.txt | 8 - 2 files changed, 182 deletions(-) delete mode 100644 docs/_ext/literals_to_xrefs.py diff --git a/docs/_ext/literals_to_xrefs.py b/docs/_ext/literals_to_xrefs.py deleted file mode 100644 index 7c3f16131f..0000000000 --- a/docs/_ext/literals_to_xrefs.py +++ /dev/null @@ -1,174 +0,0 @@ -""" -Runs through a reST file looking for old-style literals, and helps replace them -with new-style references. -""" - -import re -import shelve -import sys - -refre = re.compile(r'``([^`\s]+?)``') - -ROLES = ( - 'attr', - 'class', - "djadmin", - 'data', - 'exc', - 'file', - 'func', - 'lookup', - 'meth', - 'mod', - "djadminopt", - "ref", - "setting", - "term", - "tfilter", - "ttag", - - # special - "skip" -) - -ALWAYS_SKIP = [ - "NULL", - "True", - "False", -] - - -def fixliterals(fname): - with open(fname) as fp: - data = fp.read() - - last = 0 - new = [] - storage = shelve.open("/tmp/literals_to_xref.shelve") - lastvalues = storage.get("lastvalues", {}) - - for m in refre.finditer(data): - - new.append(data[last:m.start()]) - last = m.end() - - line_start = data.rfind("\n", 0, m.start()) - line_end = data.find("\n", m.end()) - prev_start = data.rfind("\n", 0, line_start) - next_end = data.find("\n", line_end + 1) - - # Skip always-skip stuff - if m.group(1) in ALWAYS_SKIP: - new.append(m.group(0)) - continue - - # skip when the next line is a title - next_line = data[m.end():next_end].strip() - if next_line[0] in "!-/:-@[-`{-~" and all(c == next_line[0] for c in next_line): - new.append(m.group(0)) - continue - - sys.stdout.write("\n" + "-" * 80 + "\n") - sys.stdout.write(data[prev_start + 1:m.start()]) - sys.stdout.write(colorize(m.group(0), fg="red")) - sys.stdout.write(data[m.end():next_end]) - sys.stdout.write("\n\n") - - replace_type = None - while replace_type is None: - replace_type = raw_input( - colorize("Replace role: ", fg="yellow") - ).strip().lower() - if replace_type and replace_type not in ROLES: - replace_type = None - - if replace_type == "": - new.append(m.group(0)) - continue - - if replace_type == "skip": - new.append(m.group(0)) - ALWAYS_SKIP.append(m.group(1)) - continue - - default = lastvalues.get(m.group(1), m.group(1)) - if default.endswith("()") and replace_type in ("class", "func", "meth"): - default = default[:-2] - replace_value = raw_input( - colorize("Text [", fg="yellow") + default + colorize("]: ", fg="yellow") - ).strip() - if not replace_value: - replace_value = default - new.append(":%s:`%s`" % (replace_type, replace_value)) - lastvalues[m.group(1)] = replace_value - - new.append(data[last:]) - with open(fname, "w") as fp: - fp.write("".join(new)) - - storage["lastvalues"] = lastvalues - storage.close() - -# -# The following is taken from django.utils.termcolors and is copied here to -# avoid the dependency. -# - - -def colorize(text='', opts=(), **kwargs): - """ - Returns your text, enclosed in ANSI graphics codes. - - Depends on the keyword arguments 'fg' and 'bg', and the contents of - the opts tuple/list. - - Returns the RESET code if no parameters are given. - - Valid colors: - 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white' - - Valid options: - 'bold' - 'underscore' - 'blink' - 'reverse' - 'conceal' - 'noreset' - string will not be auto-terminated with the RESET code - - Examples: - colorize('hello', fg='red', bg='blue', opts=('blink',)) - colorize() - colorize('goodbye', opts=('underscore',)) - print(colorize('first line', fg='red', opts=('noreset',))) - print('this should be red too') - print(colorize('and so should this')) - print('this should not be red') - """ - color_names = ('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white') - foreground = {color_names[x]: '3%s' % x for x in range(8)} - background = {color_names[x]: '4%s' % x for x in range(8)} - - RESET = '0' - opt_dict = {'bold': '1', 'underscore': '4', 'blink': '5', 'reverse': '7', 'conceal': '8'} - - text = str(text) - code_list = [] - if text == '' and len(opts) == 1 and opts[0] == 'reset': - return '\x1b[%sm' % RESET - for k, v in kwargs.iteritems(): - if k == 'fg': - code_list.append(foreground[v]) - elif k == 'bg': - code_list.append(background[v]) - for o in opts: - if o in opt_dict: - code_list.append(opt_dict[o]) - if 'noreset' not in opts: - text = text + '\x1b[%sm' % RESET - return ('\x1b[%sm' % ';'.join(code_list)) + text - -if __name__ == '__main__': - try: - fixliterals(sys.argv[1]) - except (KeyboardInterrupt, SystemExit): - print('') diff --git a/docs/internals/contributing/writing-documentation.txt b/docs/internals/contributing/writing-documentation.txt index 58d7632864..82a16d826b 100644 --- a/docs/internals/contributing/writing-documentation.txt +++ b/docs/internals/contributing/writing-documentation.txt @@ -355,14 +355,6 @@ look better: That is, use metadata instead of titles. -* Add more links -- nearly everything that's an inline code literal - right now can probably be turned into a xref. - - See the ``literals_to_xrefs.py`` file in ``_ext`` -- it's a shell script - to help do this work. - - This will probably be a continuing, never-ending project. - * Whenever possible, use links. So, use ``:setting:`ADMINS``` instead of ````ADMINS````.