Browse Source

Math (#14)

* MathJax support

There was no support for displaying math written in Latex. This is now added with the help of MathJax.

MathJax uses an external Javascript file and as not to add unnecessary load the support for math is only enabled if the 'math' param is set to true.

* MathJax support

There was no support for displaying math written in Latex. This is now added with the help of MathJax.

MathJax uses an external Javascript file and as not to add unnecessary load the support for math is only enabled if the 'math' param is set to true.

* Auto stash before merge of "math" and "origin/math"

* Delete unnecessary option

* Actually enable math for demo page

* Have demo page be consistent
Vlad Ionescu 7 năm trước cách đây
mục cha
commit
0f2bd0c0a6
2 tập tin đã thay đổi với 32 bổ sung0 xóa
  1. 7 0
      exampleSite/content/posts/theme-demo.md
  2. 25 0
      layouts/partials/post.html

+ 7 - 0
exampleSite/content/posts/theme-demo.md

@@ -1,6 +1,7 @@
 +++
 date = "2017-01-08"
 title = "Theme Demo"
+math = "true"
 
 +++
 
@@ -26,6 +27,12 @@ _This is italic text_
 
 ~~Deleted text~~
 
+This is text with inline math $\sum_{n=1}^{\infty} 2^{-n} = 1$ and with math blocks:
+
+$$
+\sum_{n=1}^{\infty} 2^{-n} = 1
+$$
+
 | Heading | Another heading |
 | :----:  | :-------------: |
 |  text   |      text       |

+ 25 - 0
layouts/partials/post.html

@@ -3,6 +3,31 @@
     <header>
       <h1 class="title">{{ .Title }}</h1>
       <h2 class="date">{{ .Date.Format "January 2, 2006" }}</h2>
+
+      {{ if eq .Params.math "true" }}
+        <script type="text/javascript" async
+          src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full">
+          MathJax.Hub.Config({
+            tex2jax: {
+              inlineMath: [['$','$']],
+              displayMath: [['$$','$$']],
+              processEscapes: true,
+              processEnvironments: true,
+              skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
+              TeX: { extensions: ["AMSmath.js", "AMSsymbols.js"] }
+            }
+          });
+          MathJax.Hub.Queue(function() {
+            // Fix <code> tags after MathJax finishes running. This is a
+            // hack to overcome a shortcoming of Markdown. Discussion at
+            // https://github.com/mojombo/jekyll/issues/199
+            var all = MathJax.Hub.getAllJax(), i;
+            for(i = 0; i < all.length; i += 1) {
+                all[i].SourceElement().parentNode.className += ' has-jax';
+            }
+          });
+          </script>
+      {{ end }}
     </header>
 
     {{ .Content }}