X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=util%2Fexport.py;h=5d1bd60acf3d66ff0a6eb8202e16ad052c767a6d;hb=b8b47ab6fe4e1c18db2685c406a508fe145c7de9;hp=06b867df396103cacf65d2e376d008b8e643424b;hpb=d71e9c4f10da31bbdefa4dad64b1f38a456c89ce;p=rust.git diff --git a/util/export.py b/util/export.py index 06b867df396..5d1bd60acf3 100755 --- a/util/export.py +++ b/util/export.py @@ -10,6 +10,7 @@ import json from lintlib import parse_all, log lint_subheadline = re.compile(r'''^\*\*([\w\s]+?)[:?.!]?\*\*(.*)''') +rust_code_block = re.compile(r'''```rust.+?```''', flags=re.DOTALL) CONF_TEMPLATE = """\ This lint has the following configuration variables: @@ -17,6 +18,16 @@ This lint has the following configuration variables: * `%s: %s`: %s (defaults to `%s`).""" +def parse_code_block(match): + lines = [] + + for line in match.group(0).split('\n'): + if not line.startswith('# '): + lines.append(line) + + return '\n'.join(lines) + + def parse_lint_def(lint): lint_dict = {} lint_dict['id'] = lint.name @@ -44,7 +55,7 @@ def parse_lint_def(lint): lint_dict['docs'][last_section] += text + "\n" for section in lint_dict['docs']: - lint_dict['docs'][section] = lint_dict['docs'][section].strip() + lint_dict['docs'][section] = re.sub(rust_code_block, parse_code_block, lint_dict['docs'][section].strip()) return lint_dict @@ -60,7 +71,9 @@ def main(): outfile = sys.argv[1] if len(sys.argv) > 1 else "util/gh-pages/lints.json" with open(outfile, "w") as fp: - json.dump(list(lints.values()), fp, indent=2) + lints = list(lints.values()) + lints.sort(key=lambda x: x['id']) + json.dump(lints, fp, indent=2) log.info("wrote JSON for great justice")