Browse Source

Listening to correct signals

Barry Steyn 10 years ago
parent
commit
2bc3d0ac38
1 changed files with 17 additions and 14 deletions
  1. 17 14
      render_math/math.py

+ 17 - 14
render_math/math.py

@@ -183,23 +183,23 @@ def process_settings(pelicanobj):
 
 
     return mathjax_settings
     return mathjax_settings
 
 
-def process_summary(instance):
+def process_summary(article):
     """Ensures summaries are not cut off. Also inserts
     """Ensures summaries are not cut off. Also inserts
     mathjax script so that math will be rendered"""
     mathjax script so that math will be rendered"""
 
 
-    summary = instance._get_summary()
+    summary = article._get_summary()
     summary_parsed = BeautifulSoup(summary, 'html.parser')
     summary_parsed = BeautifulSoup(summary, 'html.parser')
     math = summary_parsed.find_all(class_='math')
     math = summary_parsed.find_all(class_='math')
 
 
     if len(math) > 0:
     if len(math) > 0:
         last_math_text = math[-1].get_text()
         last_math_text = math[-1].get_text()
         if len(last_math_text) > 3 and last_math_text[-3:] == '...':
         if len(last_math_text) > 3 and last_math_text[-3:] == '...':
-            content_parsed = BeautifulSoup(instance._content, 'html.parser')
+            content_parsed = BeautifulSoup(article._content, 'html.parser')
             full_text = content_parsed.find_all(class_='math')[len(math)-1].get_text()
             full_text = content_parsed.find_all(class_='math')[len(math)-1].get_text()
             math[-1].string = "%s ..." % full_text
             math[-1].string = "%s ..." % full_text
-            summary = summary_parsed.encode('ascii')
+            summary = summary_parsed.decode()
   
   
-        instance._summary = "%s<script type='text/javascript'>%s</script>" % (summary, process_summary.mathjax_script)
+        article._summary = "%s<script type='text/javascript'>%s</script>" % (summary, process_summary.mathjax_script)
 
 
 def configure_typogrify(pelicanobj, mathjax_settings):
 def configure_typogrify(pelicanobj, mathjax_settings):
     """Instructs Typogrify to ignore math tags - which allows Typogfrify
     """Instructs Typogrify to ignore math tags - which allows Typogfrify
@@ -295,26 +295,29 @@ def pelican_init(pelicanobj):
     if mathjax_settings['process_summary']:
     if mathjax_settings['process_summary']:
         process_summary.mathjax_script = mathjax_script
         process_summary.mathjax_script = mathjax_script
 
 
-def rst_add_mathjax(instance):
+def rst_add_mathjax(article):
     """Adds mathjax script for RST"""
     """Adds mathjax script for RST"""
-    _, ext = os.path.splitext(os.path.basename(instance.source_path))
+
+    # This is only value for .rst files
+    _, ext = os.path.splitext(os.path.basename(article.source_path))
     if ext != '.rst':
     if ext != '.rst':
         return
         return
 
 
     # If math class is present in text, add the javascript
     # If math class is present in text, add the javascript
-    if 'class="math"' in instance._content:
-        instance._content += "<script type='text/javascript'>%s</script>" % rst_add_mathjax.mathjax_script
+    if 'class="math"' in article._content:
+        article._content += "<script type='text/javascript'>%s</script>" % rst_add_mathjax.mathjax_script
 
 
-def pelican_connect(instance):
+def parse_articles(article_generator):
     """Adds mathjax script to RST and processes summaries"""
     """Adds mathjax script to RST and processes summaries"""
 
 
-    if instance._content:
-        rst_add_mathjax(instance)
+    for article in article_generator.articles:
+        
+        rst_add_mathjax(article)
 
 
         if process_summary.mathjax_script is not None:
         if process_summary.mathjax_script is not None:
-            process_summary(instance)
+            process_summary(article)
 
 
 def register():
 def register():
     """Plugin registration"""
     """Plugin registration"""
     signals.initialized.connect(pelican_init)
     signals.initialized.connect(pelican_init)
-    signals.content_object_init.connect(pelican_connect)
+    signals.article_generator_finalized.connect(parse_articles)