add part03 solutions
[rust-101.git] / pycco-rs
index d250b20e1e36976028ec2e653f6df7749a3abc3a..3e6b29d213273d596dda4a5f03c40c24c07da9a1 100755 (executable)
--- a/pycco-rs
+++ b/pycco-rs
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # A little wrapper around pycco, to add Rust support.
 import pycco, pycco_resources
 from pygments import lexers, formatters
@@ -11,16 +11,16 @@ def patch_html(source, marker, new_text):
     return source.replace(marker, marker + new_text, 1)
 
 # now, monkey-patch pycco for Rust support
-pycco.main.languages[".rs"] = { "name": "rust", "symbol": "//"}
-for ext, l in pycco.main.languages.items():
+pycco.main.supported_languages[".rs"] = { "name": "rust", "comment_symbol": "//"}
+for ext, l in pycco.main.supported_languages.items():
     # Does the line begin with a comment?
-    l["comment_matcher"] = re.compile(r"^\s*" + l["symbol"] + "\s?")
+    l["comment_matcher"] = re.compile(r"^\s*" + l["comment_symbol"] + "\s?")
     # The dividing token we feed into Pygments, to delimit the boundaries between
     # sections.
-    l["divider_text"] = "\n" + l["symbol"] + "DIVIDER\n"
+    l["divider_text"] = "\n" + l["comment_symbol"] + "DIVIDER\n"
     # The mirror of `divider_text` that we expect Pygments to return. We can split
     # on this to recover the original sections.
-    l["divider_html"] = re.compile(r'\n*<span class="c[1]?">' + l["symbol"] + 'DIVIDER</span>\n*')
+    l["divider_html"] = re.compile(r'\n*<span class="c[1]?">' + l["comment_symbol"] + 'DIVIDER</span>\n*')
     # Get the Pygments Lexer for this language.
     l["lexer"] = lexers.get_lexer_by_name(l["name"])
 
@@ -32,13 +32,13 @@ def generate_documentation(*args, **kwargs):
     generate_documentation_called = True
     result = generate_documentation_orig(*args, **kwargs)
     # now patch it
-    result = patch_html(result, '<link rel="stylesheet" href="pycco.css">',
-                        '<link rel="stylesheet" href="pycco_custom.css"><meta name="viewport" content="width=device-width">')
-    result = patch_html(result, '<title>', 'Rust-101: ')
+    result = patch_html(result, b'<link rel="stylesheet" href="pycco.css">',
+                        b'<link rel="stylesheet" href="pycco_custom.css"><meta name="viewport" content="width=device-width">')
+    result = patch_html(result, b'<title>', b'Rust-101: ')
     ## remove empty code blocks
-    result = re.sub('''<div class='code'>
+    result = re.sub(b'''<div class='code'>
  *<div class="highlight"><pre>(<span></span>)?</pre></div>
- *</div>''', '<!-- empty code block -->', result)
+ *</div>''', b'<!-- empty code block -->', result)
     # done
     return result
 pycco.main.generate_documentation = generate_documentation