Fix ordering of patterns.
authorethereal <ethereal@ethv.net>
Fri, 24 Jan 2020 18:20:42 +0000 (13:20 -0500)
committerethereal <ethereal@ethv.net>
Fri, 24 Jan 2020 18:20:42 +0000 (13:20 -0500)
Makefile
update.py

index e2c620c..435c69f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,12 @@
 .PHONY: all clean
 
-all:
+all: env
        mkdir -p gen/img/gen
-       ./update.py
+       bash -c 'source env/bin/activate && ./update.py'
 
 clean:
        rm -rf gen
+
+env:
+       python3 -mvenv env/
+       bash -c 'source env/bin/activate && pip install markdown'
index bf41b8b..8eccaa2 100755 (executable)
--- a/update.py
+++ b/update.py
@@ -181,30 +181,30 @@ def generate_latex_node(gen_path, text, inline):
     
 
 class InlineLatexPattern(markdown.inlinepatterns.Pattern):
-    def __init__(self, gen_path):
+    def __init__(self, gen_path, md):
         self.gen_path = gen_path
-        markdown.inlinepatterns.Pattern.__init__(self, r'<(\$.*?\$)>')
+        markdown.inlinepatterns.Pattern.__init__(self, r'<(\$.*?\$)>', md)
 
     def handleMatch(self, m):
-        return generate_latex_node(self.gen_path, m.group(2).strip(), True)
+        return generate_latex_node(self.gen_path, self.unescape(m.group(2).strip()), True)
 
 class LatexPattern(markdown.inlinepatterns.Pattern):
-    def __init__(self, gen_path):
+    def __init__(self, gen_path, md):
         self.gen_path = gen_path
         self.latex_path = "latex"
         self.dvipng_path = "dvipng"
-        markdown.inlinepatterns.Pattern.__init__(self, r'<latex>(.*?)</latex>')
+        markdown.inlinepatterns.Pattern.__init__(self, r'<latex>(.*?)</latex>', md)
 
     def handleMatch(self, m):
-        return generate_latex_node(self.gen_path, m.group(2).strip(), False)
+        return generate_latex_node(self.gen_path, self.unescape(m.group(2).strip()), False)
 
 
 class PlotPattern(markdown.inlinepatterns.Pattern):
-    def __init__(self, gen_path, base_dir):
+    def __init__(self, gen_path, base_dir, md):
         self.gnuplot_path = "gnuplot"
         self.gen_path = gen_path
         self.base_dir = base_dir
-        markdown.inlinepatterns.Pattern.__init__(self, r'<plot>(.*?)</plot>')
+        markdown.inlinepatterns.Pattern.__init__(self, r'<plot>(.*?)</plot>', md)
 
     def handleMatch(self, m):
         commands = m.group(2).strip()
@@ -235,10 +235,10 @@ class PlotPattern(markdown.inlinepatterns.Pattern):
         return local_path
 
 class GraphPattern(markdown.inlinepatterns.Pattern):
-    def __init__(self, gen_path):
+    def __init__(self, gen_path, md):
         self.dot_path = "dot"
         self.gen_path = gen_path
-        markdown.inlinepatterns.Pattern.__init__(self, r'<graph>(.*?)</graph>')
+        markdown.inlinepatterns.Pattern.__init__(self, r'<graph>(.*?)</graph>', md)
 
     def handleMatch(self, m):
         commands = m.group(2).strip()
@@ -314,12 +314,12 @@ class CustomExtension(markdown.extensions.Extension):
         self.base_dir = base_dir
 
     def extendMarkdown(self, md, md_globals):
-        md.inlinePatterns.register(LatexPattern(self.gen_path), 'latex', 100)
-        md.inlinePatterns.register(InlineLatexPattern(self.gen_path), 'latex2', 101)
-        md.inlinePatterns.register(PlotPattern(self.gen_path, self.base_dir), 'plot', 102)
-        md.inlinePatterns.register(GraphPattern(self.gen_path), 'graph', 103)
-        md.treeprocessors.register(SourceHighlightProcessor(md), 'source-highlight', 104)
-        md.treeprocessors.register(ImageCentreProcessor(md), 'img-centre', 105)
+        md.inlinePatterns.register(LatexPattern(self.gen_path, md), 'latex', 200)
+        md.inlinePatterns.register(InlineLatexPattern(self.gen_path, md), 'latex2', 200)
+        md.inlinePatterns.register(PlotPattern(self.gen_path, self.base_dir, md), 'plot', 200)
+        md.inlinePatterns.register(GraphPattern(self.gen_path, md), 'graph', 200)
+        md.treeprocessors.register(SourceHighlightProcessor(md), 'source-highlight', 200)
+        md.treeprocessors.register(ImageCentreProcessor(md), 'img-centre', 200)
 
         md.registerExtension(self)
 
@@ -339,7 +339,7 @@ def process_file(input_filename, output_filename, navinfo, gen_path):
         output.close()
         inf.close()
         return
-        
+
     # Otherwise, we're good to go.
 
     # XXX: For now, just dump the output straight there after MD'ing