]> git.lizzy.rs Git - rust.git/blobdiff - util/export.py
Auto merge of #4675 - lzutao:improve-shellscript, r=phansch
[rust.git] / util / export.py
index 06b867df396103cacf65d2e376d008b8e643424b..e8fc4d84ea4f3b878fc88fdf727c7694c9a30f31 100755 (executable)
@@ -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