<commit_before>-# coding: utf-8
!!! 5
%html
  %head
    %meta{:charset => "utf-8"}
    / Always force latest IE rendering engine (even in intranet) &amp; Chrome Frame
    %meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}
    /[if (lt IE 9)&(!IEMobile)]
      = javascript_include_tag 'html5.js'
    %meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}
    %title= current_page.data.title
    = stylesheet_link_tag 'site.css'
    = stylesheet_link_tag 'blog.css'
    = stylesheet_link_tag 'highlight/railscasts.css'
    = safe_yield_content :head
    /[if lt IE 9]
      = javascript_include_tag 'respond.js'

  %body{:class => ''}
    - @blog_name ||= blog.options.name || 'tech'
    #container
      #main{:role => "main"}
        %aside.sidebar
          %nav
            %span
              %a{:href => "/#{@blog_name}/"} home
            %span
              %a{:href => "/#{@blog_name}/calendar.html"} calendar
            %span
              %a{:href => "/#{@blog_name}/tags.html"} tags
            - if @blog_name == 'writings'
              %span
                %a{:href => "/#{@blog_name}/about.html"} about
            / = safe_yield_content :nav
        = safe_yield_content :sidebar
        %div.content
          %header
            - if is_blog_article?
              %div.article_nav
                %span.later
                  - if next_ = current_article.next_article
                    %a{:href => next_.url}
                      < 更新
                  - else
                    〇 已是最新
                %span.earlier
                  - if prev_ = current_article.previous_article
                    %a{:href => prev_.url}
                      更早 >
                  - else
                    已是最早 〇
            / = safe_yield_content :header
            %h1
              = current_page.data['title']
          %article.markdown-body
            = yield
            - if is_blog_article?
              %section.meta
                %p
                  %span.author
                    %a{:href => "/"} 宋皿
                  %span.time
                    %time{:datetime => current_article.date}
                      = current_article.date.strftime('%Y-%m-%d')
                %p
                  %span.license
                    Published under
                    %a{:href => "http://creativecommons.org/licenses/by-nc-nd/3.0/", :rel => "license"} (CC) BY-NC-ND
                  - if current_article.tags
                    %span.tags
                      - if current_article.tags.size > 0
                        tagged with
                      - current_article.tags.each do |tag|
                        %a{:href => "/#{@blog_name}/tags.html#tag-#{tag}"}
                          = tag
              #disqus_thread
              :javascript
                /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
                var disqus_shortname = 'utensil-at-github'; // required: replace example with your forum shortname
                /* * * DON'T EDIT BELOW THIS LINE * * */
                (function() {
                    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                    dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
                    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
                })();
              %a.dsq-brlink{:href => "http://disqus.com"}
                comments powered by
                %span.logo-disqus Disqus
            / = safe_yield_content :footer

    = javascript_include_tag 'jquery-1.7.1.js'
    - code_mode = (current_page.data.code_mode || '').split(/\|/)
    - if code_mode.include?('math')
      = javascript_include_tag 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
      - if code_mode.include?('xypic')
        :javascript
          window.mathUseXypic = true;
      :javascript
        MathJax.Ajax.config.path["xyjax_ext"] = "//sonoisa.github.io/xyjax_ext";
        var tex_extensions = ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"];
        if(window.mathUseXypic) {
          tex_extensions.push("[xyjax_ext]/xypic.js");
        }
        MathJax.Hub.Config({
          extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
          TeX: {
            equationNumbers: { autoNumber: "all" },
            extensions: tex_extensions,
            Macros: {
               // From http://texblog.org/2012/08/29/changing-the-font-size-in-latex/
               oiint: "{\\large\\bigcirc}\\mkern-1.55em\\iint",
               // From https://en.wikipedia.org/wiki/Blackboard_bold
               // See also https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols
               DD: "\\unicode{x2145}",
               dd: "\\unicode{x2146}",
               ee: "\\unicode{x2147}",
               ii: "\\unicode{x2148}",
               jj: "\\unicode{x2149}",
               kk: "\\unicode{x1D55C}" //\Bbbk
            }
          },
          menuSettings: {
            zoom: "Double-Click",
            mpContext: true,
            mpMouse: true
          },
          tex2jax: {
              inlineMath: [['$','$'], ['\\(','\\)']],
              displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
              processEscapes: false,
              skipTags: ['script', 'noscript', 'style', 'textarea']
          }
        });
        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) {
              if(all[i].SourceElement().parentNode.className.indexOf('has-jax') == -1)
              {
                all[i].SourceElement().parentNode.className += ' has-jax';
              }
              if(all[i].SourceElement().parentNode.className.indexOf('nohighlight') == -1)
              {
                all[i].SourceElement().parentNode.className += ' nohighlight';
              }
          }
        });
    - if code_mode.include?('lang') || code_mode.size == 0
      = javascript_include_tag 'highlight.pack.js'
      :javascript
        hljs.initHighlightingOnLoad();
        // $(document).ready(function() {
        //   $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
        // });
      /! start Mixpanel
      :javascript
        (function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!== typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]); b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]); mixpanel.init("eda89891866a7e90b6699df21e79ea61");
        mixpanel.track("visit");
      /! end Mixpanel
    = safe_yield_content :scripts<commit_msg>Remove mixpanel for now<commit_after>-# coding: utf-8
!!! 5
%html
  %head
    %meta{:charset => "utf-8"}
    / Always force latest IE rendering engine (even in intranet) &amp; Chrome Frame
    %meta{:content => "IE=edge,chrome=1", "http-equiv" => "X-UA-Compatible"}
    /[if (lt IE 9)&(!IEMobile)]
      = javascript_include_tag 'html5.js'
    %meta{:content => "width=device-width, initial-scale=1.0", :name => "viewport"}
    %title= current_page.data.title
    = stylesheet_link_tag 'site.css'
    = stylesheet_link_tag 'blog.css'
    = stylesheet_link_tag 'highlight/railscasts.css'
    = safe_yield_content :head
    /[if lt IE 9]
      = javascript_include_tag 'respond.js'

  %body{:class => ''}
    - @blog_name ||= blog.options.name || 'tech'
    #container
      #main{:role => "main"}
        %aside.sidebar
          %nav
            %span
              %a{:href => "/#{@blog_name}/"} home
            %span
              %a{:href => "/#{@blog_name}/calendar.html"} calendar
            %span
              %a{:href => "/#{@blog_name}/tags.html"} tags
            - if @blog_name == 'writings'
              %span
                %a{:href => "/#{@blog_name}/about.html"} about
            / = safe_yield_content :nav
        = safe_yield_content :sidebar
        %div.content
          %header
            - if is_blog_article?
              %div.article_nav
                %span.later
                  - if next_ = current_article.next_article
                    %a{:href => next_.url}
                      < 更新
                  - else
                    〇 已是最新
                %span.earlier
                  - if prev_ = current_article.previous_article
                    %a{:href => prev_.url}
                      更早 >
                  - else
                    已是最早 〇
            / = safe_yield_content :header
            %h1
              = current_page.data['title']
          %article.markdown-body
            = yield
            - if is_blog_article?
              %section.meta
                %p
                  %span.author
                    %a{:href => "/"} 宋皿
                  %span.time
                    %time{:datetime => current_article.date}
                      = current_article.date.strftime('%Y-%m-%d')
                %p
                  %span.license
                    Published under
                    %a{:href => "http://creativecommons.org/licenses/by-nc-nd/3.0/", :rel => "license"} (CC) BY-NC-ND
                  - if current_article.tags
                    %span.tags
                      - if current_article.tags.size > 0
                        tagged with
                      - current_article.tags.each do |tag|
                        %a{:href => "/#{@blog_name}/tags.html#tag-#{tag}"}
                          = tag
              #disqus_thread
              :javascript
                /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
                var disqus_shortname = 'utensil-at-github'; // required: replace example with your forum shortname
                /* * * DON'T EDIT BELOW THIS LINE * * */
                (function() {
                    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
                    dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
                    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
                })();
              %a.dsq-brlink{:href => "http://disqus.com"}
                comments powered by
                %span.logo-disqus Disqus
            / = safe_yield_content :footer

    = javascript_include_tag 'jquery-1.7.1.js'
    - code_mode = (current_page.data.code_mode || '').split(/\|/)
    - if code_mode.include?('math')
      = javascript_include_tag 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
      - if code_mode.include?('xypic')
        :javascript
          window.mathUseXypic = true;
      :javascript
        MathJax.Ajax.config.path["xyjax_ext"] = "//sonoisa.github.io/xyjax_ext";
        var tex_extensions = ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"];
        if(window.mathUseXypic) {
          tex_extensions.push("[xyjax_ext]/xypic.js");
        }
        MathJax.Hub.Config({
          extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
          TeX: {
            equationNumbers: { autoNumber: "all" },
            extensions: tex_extensions,
            Macros: {
               // From http://texblog.org/2012/08/29/changing-the-font-size-in-latex/
               oiint: "{\\large\\bigcirc}\\mkern-1.55em\\iint",
               // From https://en.wikipedia.org/wiki/Blackboard_bold
               // See also https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols
               DD: "\\unicode{x2145}",
               dd: "\\unicode{x2146}",
               ee: "\\unicode{x2147}",
               ii: "\\unicode{x2148}",
               jj: "\\unicode{x2149}",
               kk: "\\unicode{x1D55C}" //\Bbbk
            }
          },
          menuSettings: {
            zoom: "Double-Click",
            mpContext: true,
            mpMouse: true
          },
          tex2jax: {
              inlineMath: [['$','$'], ['\\(','\\)']],
              displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
              processEscapes: false,
              skipTags: ['script', 'noscript', 'style', 'textarea']
          }
        });
        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) {
              if(all[i].SourceElement().parentNode.className.indexOf('has-jax') == -1)
              {
                all[i].SourceElement().parentNode.className += ' has-jax';
              }
              if(all[i].SourceElement().parentNode.className.indexOf('nohighlight') == -1)
              {
                all[i].SourceElement().parentNode.className += ' nohighlight';
              }
          }
        });
    - if code_mode.include?('lang') || code_mode.size == 0
      = javascript_include_tag 'highlight.pack.js'
      :javascript
        hljs.initHighlightingOnLoad();
        // $(document).ready(function() {
        //   $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
        // });
      /! start Mixpanel
      :javascript
        // (function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!== typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]); b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]); mixpanel.init("eda89891866a7e90b6699df21e79ea61");
        // mixpanel.track("visit");
      /! end Mixpanel
    = safe_yield_content :scripts
{'fraction_non_alphanumeric': 0.16391976491631532, 'fraction_numerical': 0.012520761466717772, 'mean_word_length': 1.828876039031442, 'pattern_counts': {'":': 2, '<': 11, '<?xml version=': 0, '>': 47, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6415418', 'n_tokens_mistral': 5119, 'n_tokens_neox': 4852, 'n_words': 724}