mirror of https://github.com/lxndrblz/anatole.git

Gerben Geijteman
14.55.2020 58795dbea33d4e9906dbf26040a5d9681d647d63
Reformat files, add newlines at the end of file and add yaml file headers
32 files modified
262 ■■■■ changed files
.github/FUNDING.yml 1 ●●●● patch | view | raw | blame | history
.github/stale.yml 1 ●●●● patch | view | raw | blame | history
README.md 2 ●●●●● patch | view | raw | blame | history
archetypes/post.md patch | view | raw | blame | history
assets/css/style.css 3 ●●●● patch | view | raw | blame | history
assets/js/anatole-header.js 15 ●●●●● patch | view | raw | blame | history
assets/js/jquery-appear.js patch | view | raw | blame | history
assets/js/jquery-migrate.js 3 ●●●● patch | view | raw | blame | history
assets/js/jquery.js 98 ●●●●● patch | view | raw | blame | history
assets/js/medium-zoom.js 16 ●●●● patch | view | raw | blame | history
exampleSite/config.toml patch | view | raw | blame | history
exampleSite/content/_index.md 1 ●●●● patch | view | raw | blame | history
exampleSite/content/about.md 3 ●●●●● patch | view | raw | blame | history
exampleSite/content/archives.md patch | view | raw | blame | history
exampleSite/content/post/emoji-support.md patch | view | raw | blame | history
exampleSite/content/post/markdown-syntax.md 1 ●●●● patch | view | raw | blame | history
exampleSite/content/post/math-typesetting.md 1 ●●●● patch | view | raw | blame | history
i18n/ch-zn.toml patch | view | raw | blame | history
i18n/en.toml patch | view | raw | blame | history
i18n/fa.toml patch | view | raw | blame | history
layouts/404.html patch | view | raw | blame | history
layouts/_default/baseof.html patch | view | raw | blame | history
layouts/_default/list.html patch | view | raw | blame | history
layouts/_default/single.html 6 ●●●● patch | view | raw | blame | history
layouts/index.html 12 ●●●●● patch | view | raw | blame | history
layouts/partials/footer.html 11 ●●●● patch | view | raw | blame | history
layouts/partials/head.html 43 ●●●● patch | view | raw | blame | history
layouts/partials/math.html 26 ●●●● patch | view | raw | blame | history
layouts/partials/medium-zoom.html 5 ●●●● patch | view | raw | blame | history
layouts/partials/navbar.html 12 ●●●● patch | view | raw | blame | history
layouts/partials/taxonomy/categories.html 1 ●●●● patch | view | raw | blame | history
layouts/partials/taxonomy/tags.html 1 ●●●● patch | view | raw | blame | history
.github/FUNDING.yml
@@ -1 +1,2 @@
---
ko_fi: lxndrblz
.github/stale.yml
@@ -1,3 +1,4 @@
---
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
README.md
@@ -293,5 +293,3 @@
* Go to [Cai Cai](https://github.com/hi-caicai), for the great Anatole Farbox theme that formed the foundation for this theme.
* Go to [Kareya Saleh](https://unsplash.com/photos/tLKOj6cNwe0) for providing the profile picture in the exampleSite.
archetypes/post.md
assets/css/style.css
@@ -858,8 +858,7 @@
  }
  .page-top .nav {
    background-color: var(--secondary-bg-color);
    ;
        background-color: var(--secondary-bg-color);;
    box-shadow: 0 8px 16px rgba(10, 10, 10, .1);
    padding: .5rem 0;
    width: 100%;
assets/js/anatole-header.js
@@ -17,20 +17,16 @@
    if (theme === null) {
        if(userPrefersDark){
            setTheme('dark');
        }
        else if(!document.documentElement.getAttribute('data-theme')){
        } else if (!document.documentElement.getAttribute('data-theme')) {
            setTheme('light');
        }
        else{
        } else {
            setTheme(document.documentElement.getAttribute('data-theme'));
        }
    }
    else {
    } else {
        // load a stored theme
        if (theme == 'light') {
            document.documentElement.setAttribute('data-theme', 'light');
        }
        else {
        } else {
            document.documentElement.setAttribute('data-theme', 'dark');
        }    
    }    
@@ -42,8 +38,7 @@
    var theme = getTheme();
    if (theme == 'light') {
        setTheme('dark');
    }
    else {
    } else {
        setTheme('light');
    }
}
assets/js/jquery-appear.js
assets/js/jquery-migrate.js
@@ -259,8 +259,7 @@
    );
    // Populate the class2type map
    jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".
        split( " " ),
        jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
    function( _, name ) {
        class2type[ "[object " + name + "]" ] = name.toLowerCase();
    } );
assets/js/jquery.js
@@ -92,7 +92,6 @@
var document = window.document;
    var preservedScriptAttributes = {
        type: true,
        src: true,
@@ -140,12 +139,12 @@
        class2type[ toString.call( obj ) ] || "object" :
        typeof obj;
}
/* global Symbol */
// Defining this global in .eslintrc.json would create a danger of using the global
// unguarded in another place, it seems safer to define global only for this module
var
    version = "3.5.1",
@@ -334,7 +333,8 @@
        throw new Error( msg );
    },
    noop: function() {},
        noop: function () {
        },
    isPlainObject: function( obj ) {
        var proto, Ctor;
@@ -516,6 +516,7 @@
    return type === "array" || length === 0 ||
        typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
var Sizzle =
/*!
 * Sizzle CSS Selector Engine v2.3.5
@@ -732,7 +733,8 @@
    // eslint-disable-next-line no-unused-expressions
    arr[ preferredDoc.childNodes.length ].nodeType;
} catch ( e ) {
    push = { apply: arr.length ?
                push = {
                    apply: arr.length ?
        // Leverage slice if possible
        function( target, els ) {
@@ -746,7 +748,8 @@
                i = 0;
            // Can't trust NodeList.length
            while ( ( target[ j++ ] = els[ i++ ] ) ) {}
                            while ((target[j++] = els[i++])) {
                            }
            target.length = j - 1;
        }
    };
@@ -913,6 +916,7 @@
        }
        return ( cache[ key + " " ] = value );
    }
    return cache;
}
@@ -2306,7 +2310,9 @@
}
// Easy API for creating new setFilters
function setFilters() {}
            function setFilters() {
            }
setFilters.prototype = Expr.filters = Expr.pseudos;
Expr.setFilters = new setFilters();
@@ -2645,7 +2651,6 @@
                return setMatcher(
                    i > 1 && elementMatcher( matchers ),
                    i > 1 && toSelector(
                    // If the preceding token was a descendant combinator, insert an implicit any-element `*`
                    tokens
                        .slice( 0, i - 1 )
@@ -2974,7 +2979,6 @@
} )( window );
jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
@@ -2987,8 +2991,6 @@
jQuery.escapeSelector = Sizzle.escape;
var dir = function( elem, dir, until ) {
    var matched = [],
        truncate = until !== undefined;
@@ -3021,7 +3023,6 @@
var rneedsContext = jQuery.expr.match.needsContext;
function nodeName( elem, name ) {
  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
@@ -3030,7 +3031,6 @@
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
// Implement the identical functionality for filter and not
function winnow( elements, qualifier, not ) {
    if ( isFunction( qualifier ) ) {
@@ -3328,7 +3328,8 @@
} );
function sibling( cur, dir ) {
    while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
        while ((cur = cur[dir]) && cur.nodeType !== 1) {
        }
    return cur;
}
@@ -3418,7 +3419,6 @@
var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
// Convert String-formatted options into Object-formatted ones
function createOptions( options ) {
    var object = {};
@@ -3648,6 +3648,7 @@
function Identity( v ) {
    return v;
}
function Thrower( ex ) {
    throw ex;
}
@@ -3745,6 +3746,7 @@
                },
                then: function( onFulfilled, onRejected, onProgress ) {
                    var maxDepth = 0;
                    function resolve( depth, deferred, handler, special ) {
                        return function() {
                            var that = this,
@@ -4048,8 +4050,6 @@
};
jQuery.readyException = function( error ) {
    window.setTimeout( function() {
        throw error;
@@ -4057,8 +4057,6 @@
};
// The deferred used on DOM ready
var readyList = jQuery.Deferred();
@@ -4136,8 +4134,6 @@
}
// Multifunctional method to get and set values of a collection
// The value/s can optionally be executed if it's a function
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
@@ -4215,6 +4211,7 @@
function camelCase( string ) {
    return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}
var acceptData = function( owner ) {
    // Accepts only:
@@ -4227,8 +4224,6 @@
};
function Data() {
    this.expando = jQuery.expando + Data.uid++;
}
@@ -4384,7 +4379,6 @@
var dataUser = new Data();
//  Implementation Summary
//
//  1. Enforce API surface and semantic compatibility with 1.9.x branch
@@ -4435,7 +4429,8 @@
        if ( typeof data === "string" ) {
            try {
                data = getData( data );
            } catch ( e ) {}
                } catch (e) {
                }
            // Make sure we set the data so it isn't changed later
            dataUser.set( elem, key, data );
@@ -4697,7 +4692,6 @@
var documentElement = document.documentElement;
    var isAttached = function( elem ) {
            return jQuery.contains( elem.ownerDocument, elem );
        },
@@ -4734,7 +4728,6 @@
    };
function adjustCSS( elem, prop, valueParts, tween ) {
    var adjusted, scale,
        maxIterations = 20,
@@ -4902,7 +4895,6 @@
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
( function() {
    var fragment = document.createDocumentFragment(),
        div = fragment.appendChild( document.createElement( "div" ) ),
@@ -5118,7 +5110,8 @@
function safeActiveElement() {
    try {
        return document.activeElement;
    } catch ( err ) { }
        } catch (err) {
        }
}
function on( elem, types, selector, data, fn, one ) {
@@ -5676,7 +5669,6 @@
                // ...and capture the result
                dataPriv.set( this, type, {
                    value: jQuery.event.trigger(
                        // Support: IE <=9 - 11+
                        // Extend with the prototype to reset the above stopImmediatePropagation()
                        jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
@@ -5988,6 +5980,7 @@
    elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
    return elem;
}
function restoreScript( elem ) {
    if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
        elem.type = elem.type.slice( 5 );
@@ -6351,7 +6344,8 @@
                    elem = 0;
                // If using innerHTML throws an exception, use the fallback method
                } catch ( e ) {}
                    } catch (e) {
                    }
            }
            if ( elem ) {
@@ -6445,7 +6439,6 @@
var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
( function() {
    // Executing both pixelPosition & boxSizingReliable tests require only one layout
@@ -7146,6 +7139,7 @@
function Tween( elem, options, prop, end, easing ) {
    return new Tween.prototype.init( elem, options, prop, end, easing );
}
jQuery.Tween = Tween;
Tween.prototype = {
@@ -7259,8 +7253,6 @@
jQuery.fx.step = {};
var
    fxNow, inProgress,
    rfxtypes = /^(?:toggle|show|hide)$/,
@@ -8105,8 +8097,6 @@
} );
var rfocusable = /^(?:input|select|textarea|button)$/i,
    rclickable = /^(?:a|area)$/i;
@@ -8241,8 +8231,6 @@
} );
    // Strip and collapse whitespace according to HTML spec
    // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
    function stripAndCollapse( value ) {
@@ -8426,8 +8414,6 @@
} );
var rreturn = /\r/g;
jQuery.fn.extend( {
@@ -8607,8 +8593,6 @@
} );
// Return jQuery for attributes-only inclusion
@@ -8853,7 +8837,6 @@
var rquery = ( /\?/ );
// Cross-browser xml parsing
jQuery.parseXML = function( data ) {
    var xml;
@@ -9729,7 +9712,8 @@
            // Use a noop converter for missing script
            if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
                s.converters[ "text script" ] = function() {};
                    s.converters["text script"] = function () {
                    };
            }
            // Convert no matter what (that way responseXXX fields are always set)
@@ -9868,7 +9852,8 @@
        // dataFilter is not invoked for failure responses, so using it instead
        // of the default converter is kludgy but it works.
        converters: {
            "text script": function() {}
                "text script": function () {
                }
        },
        dataFilter: function( response ) {
            jQuery.globalEval( response, options, doc );
@@ -9952,12 +9937,11 @@
};
jQuery.ajaxSettings.xhr = function() {
    try {
        return new window.XMLHttpRequest();
    } catch ( e ) {}
        } catch (e) {
        }
};
var xhrSuccessStatus = {
@@ -10037,7 +10021,6 @@
                                    complete( 0, "error" );
                                } else {
                                    complete(
                                        // File: protocol always yields status 0; see #8605, #14207
                                        xhr.status,
                                        xhr.statusText
@@ -10116,8 +10099,6 @@
} );
// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
jQuery.ajaxPrefilter( function( s ) {
    if ( s.crossDomain ) {
@@ -10184,8 +10165,6 @@
} );
var oldCallbacks = [],
    rjsonp = /(=)\?(?=&|$)|\?\?/;
@@ -10279,8 +10258,6 @@
} );
// Support: Safari 8 only
// In Safari 8 documents created via document.implementation.createHTMLDocument
// collapse sibling forms: the second one becomes a child of the first one.
@@ -10408,8 +10385,6 @@
};
jQuery.expr.pseudos.animated = function( elem ) {
    return jQuery.grep( jQuery.timers, function( fn ) {
        return elem === fn.elem;
@@ -10417,8 +10392,6 @@
};
jQuery.offset = {
    setOffset: function( elem, options, i ) {
        var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
@@ -10699,8 +10672,6 @@
} );
jQuery.fn.extend( {
    bind: function( types, data, fn ) {
@@ -10740,8 +10711,6 @@
    } );
// Support: Android <=4.0 only
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
@@ -10815,7 +10784,6 @@
};
// Register as a named AMD module, since jQuery can be concatenated with other
// files that may use define, but not via a proper concatenation script that
// understands anonymous AMD modules. A named AMD is safest and most robust
@@ -10836,8 +10804,6 @@
}
var
    // Map over jQuery in case of overwrite
@@ -10866,7 +10832,5 @@
}
return jQuery;
} );
assets/js/medium-zoom.js
@@ -53,7 +53,9 @@
      return overlay;
    };
    var cloneTarget = function cloneTarget(template) {
      var _template$getBounding = template.getBoundingClientRect(), top = _template$getBounding.top, left = _template$getBounding.left, width = _template$getBounding.width, height = _template$getBounding.height;
        var _template$getBounding = template.getBoundingClientRect(), top = _template$getBounding.top,
            left = _template$getBounding.left, width = _template$getBounding.width,
            height = _template$getBounding.height;
      var clone = template.cloneNode();
      var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
      var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
@@ -82,7 +84,9 @@
    var mediumZoom = function mediumZoom(selector) {
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var Promise = window.Promise || function Promise(fn) {
        function noop() {}
            function noop() {
            }
        fn(noop, noop);
      };
      var _handleClick = function _handleClick(event) {
@@ -223,7 +227,9 @@
              viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2;
            } else {
              var zoomContainer = isNode(zoomOptions.container) ? zoomOptions.container : document.querySelector(zoomOptions.container);
              var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(), _width = _zoomContainer$getBou.width, _height = _zoomContainer$getBou.height, _left = _zoomContainer$getBou.left, _top = _zoomContainer$getBou.top;
                        var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(),
                            _width = _zoomContainer$getBou.width, _height = _zoomContainer$getBou.height,
                            _left = _zoomContainer$getBou.left, _top = _zoomContainer$getBou.top;
              container = _extends({}, container, {
                width: _width,
                height: _height,
@@ -237,7 +243,9 @@
          var zoomTarget = active.zoomedHd || active.original;
          var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth;
          var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight;
          var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(), top = _zoomTarget$getBoundi.top, left = _zoomTarget$getBoundi.left, width = _zoomTarget$getBoundi.width, height = _zoomTarget$getBoundi.height;
                var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(), top = _zoomTarget$getBoundi.top,
                    left = _zoomTarget$getBoundi.left, width = _zoomTarget$getBoundi.width,
                    height = _zoomTarget$getBoundi.height;
          var scaleX = Math.min(naturalWidth, viewportWidth) / width;
          var scaleY = Math.min(naturalHeight, viewportHeight) / height;
          var scale = Math.min(scaleX, scaleY);
exampleSite/config.toml
exampleSite/content/_index.md
@@ -1,4 +1,3 @@
+++
author = "Hugo Authors"
+++
exampleSite/content/about.md
@@ -23,6 +23,3 @@
Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
Learn more and contribute on [GitHub](https://github.com/gohugoio).
exampleSite/content/archives.md
exampleSite/content/post/emoji-support.md
exampleSite/content/post/markdown-syntax.md
@@ -148,4 +148,3 @@
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
exampleSite/content/post/math-typesetting.md
@@ -44,4 +44,3 @@
$$
 \varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } } 
$$
i18n/ch-zn.toml
i18n/en.toml
i18n/fa.toml
layouts/404.html
layouts/_default/baseof.html
layouts/_default/list.html
layouts/_default/single.html
@@ -3,13 +3,13 @@
    <div class="post-content">
      <div class="post-title">
        <h3>{{ .Title }}
        </h3>
                <h3>{{ .Title }}</h3>
        {{ if eq .Type "post"}}
        <div class="info">
          <i class="fa fa-sun-o"></i>
          <span class="date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
          <i class="fa fa-clock-o"></i><span class="reading-time">{{ i18n "reading_time" .ReadingTime }}</span>
                        <i class="fa fa-clock-o"></i>
                        <span class="reading-time">{{ i18n "reading_time" .ReadingTime }}</span>
        </div>
        {{ end }}
        </div>
layouts/index.html
@@ -6,15 +6,19 @@
      <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a>
      </h3>
    </div>
    <div class="post-content"><div class="p_part"><p>{{ .Summary }}</p></div>
            <div class="post-content">
                <div class="p_part"><p>{{ .Summary }}</p></div>
  
  <div class="p_part"><p></p></div></div>
                <div class="p_part"><p></p></div>
            </div>
    <div class="post-footer">
      <div class="meta">
        <div class="info"><i class="fa fa-sun-o"></i><span class="date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
                    <div class="info"><i class="fa fa-sun-o"></i><span
                                class="date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
          {{ with .Params.tags }}
          {{- range $index, $el := . -}}
          <a class="tag" href="{{ ( printf "tags/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>
                                <a class="tag"
                                   href="{{ ( printf "tags/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>
          {{- end -}}
          {{ end }}       
        </div>
layouts/partials/footer.html
@@ -1,11 +1,18 @@
{{ $js := resources.Get "js/jquery.js" }}
{{ $secureJS := $js |  resources.Minify | resources.Fingerprint }}
<script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script>
<script type="text/javascript"
        src="{{ $secureJS.Permalink }}"
        integrity="{{ $secureJS.Data.Integrity }}"
        crossorigin="anonymous"></script>
{{ $migrate := resources.Get "js/jquery-migrate.js" }}
{{ $appear := resources.Get "js/jquery-appear.js" }}
{{ $js := slice $migrate $appear | resources.Concat "js/bundle.js" }}
{{ $secureJS := $js |  resources.Minify | resources.Fingerprint }}
<script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script>
<script type="text/javascript"
        src="{{ $secureJS.Permalink }}"
        integrity="{{ $secureJS.Data.Integrity }}"
        crossorigin="anonymous"></script>
{{- partial "medium-zoom.html" . -}}
{{- partial "math.html" . -}}
{{- template "_internal/google_analytics_async.html" . -}}
layouts/partials/head.html
@@ -1,30 +1,53 @@
<head>
    <title> {{.Site.Params.author}}{{ with .Title }} | {{ . }}{{ end }} </title>
    <!-- Meta -->
    <meta charset="utf-8">
    {{- hugo.Generator -}}
    <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
    <meta name="description" content="{{ .Site.Params.description }}">
    {{- if .Site.Params.googleSiteVerify }}
    <meta name="google-site-verification" content="{{ .Site.Params.googleSiteVerify }}">
    {{- end -}}
    <!-- CSS -->
    {{ $style := resources.Get "css/style.css" | resources.Minify | resources.Fingerprint }}
    <link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}" crossorigin="anonymous" type="text/css">
    <link rel="stylesheet"
          href="{{ $style.Permalink }}"
          integrity="{{ $style.Data.Integrity }}"
          crossorigin="anonymous"
          type="text/css">
    {{- $css := "" -}}
    {{- range .Site.Params.customCss -}}
    {{ $css := resources.Get . | fingerprint }}
    <link rel="stylesheet" href="{{ $css.Permalink }}" integrity="{{ $css.Data.Integrity }}" crossorigin="anonymous" type="text/css">
    <link rel="stylesheet"
          href="{{ $css.Permalink }}"
          integrity="{{ $css.Data.Integrity }}"
          crossorigin="anonymous"
          type="text/css">
    {{- end -}}
    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
          integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
    <!-- Favicons -->
    <link rel="shortcut icon" href="{{ .Site.Params.favicon | absURL }}favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon | absURL }}apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.favicon | absURL }}favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="{{ .Site.Params.favicon | absURL }}favicon-16x16.png">
    <link rel="canonical" href="{{ .Permalink }}">
    <!-- RSS -->
    {{ with .OutputFormats.Get "rss" -}}
        {{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
    {{ end -}}
    {{ $anatole := resources.Get "js/anatole-header.js" }}
    {{ $secureJS := $anatole |  resources.Minify | resources.Fingerprint }}
    <script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script>
    <script type="text/javascript"
            src="{{ $secureJS.Permalink }}"
            integrity="{{ $secureJS.Data.Integrity }}"
            crossorigin="anonymous"></script>
    
    {{- $js := "" -}}
    {{- range .Site.Params.customJs -}}
@@ -42,14 +65,12 @@
      {{- end -}}
    {{- end -}}
    {{- if .Site.Params.googleSiteVerify }}
    <!-- Google Site Verification -->
    <meta name="google-site-verification" content="{{ .Site.Params.googleSiteVerify }}">
    {{- end -}}
    {{- if ne $js "" -}}
    {{- $secureJS := $js |  resources.Minify | resources.Fingerprint -}}
    <script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script>
    <script type="text/javascript"
            src="{{ $secureJS.Permalink }}"
            integrity="{{ $secureJS.Data.Integrity }}"
            crossorigin="anonymous"></script>
    {{- end -}}
    <!-- Twitter Cards -->
layouts/partials/math.html
@@ -10,21 +10,35 @@
    {{- if eq $use "mathjax" -}}
        {{- $url := "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML" -}}
        {{- $hash := "sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" -}}
        <script defer type="text/javascript" src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script>
        <script
            type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } });</script>
        <script defer
                type="text/javascript"
                src="{{- $url -}}"
                integrity="{{- $hash -}}"
                crossorigin="anonymous"></script>
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ['\\(','\\)']] } });
        </script>
    {{- else -}}
        {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" -}}
        {{- $hash := "sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" -}}
        <link rel="stylesheet" href="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous">
        <link rel="stylesheet"
              href="{{- $url -}}"
              integrity="{{- $hash -}}"
              crossorigin="anonymous">
        {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" -}}
        {{- $hash := "sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" -}}
        <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"></script>
        <script defer
                src="{{- $url -}}"
                integrity="{{- $hash -}}"
                crossorigin="anonymous"></script>
        {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" -}}
        {{- $hash := "sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" -}}
        <script defer src="{{- $url -}}" integrity="{{- $hash -}}" crossorigin="anonymous"
        <script defer
                src="{{- $url -}}"
                integrity="{{- $hash -}}"
                crossorigin="anonymous"
            onload="renderMathInElement(document.body);"></script>
    {{- end -}}
{{- end -}}
layouts/partials/medium-zoom.html
@@ -1,3 +1,6 @@
{{ $js := resources.Get "js/medium-zoom.js" }}
{{ $secureJS := $js |  resources.Minify | resources.Fingerprint }}
<script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}" crossorigin="anonymous"></script>
<script type="text/javascript"
        src="{{ $secureJS.Permalink }}"
        integrity="{{ $secureJS.Data.Integrity }}"
        crossorigin="anonymous"></script>
layouts/partials/navbar.html
@@ -8,11 +8,19 @@
        {{ $url := .RelPermalink }}
        {{ range .Site.Menus.main }}
        {{ $active := eq $url .URL }}
        <li><a {{if $active }}class="current"{{end}} href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }}target="_blank" rel="noopener noreferrer" {{ end }} title="{{ .Title }}">{{ .Name }}</a></li>
            <li><a {{if $active }}class="current"{{end}}
                   href="{{ .URL }}"
                        {{ if strings.HasPrefix .URL "http" }}
                            target="_blank"
                            rel="noopener noreferrer"
                        {{ end }}
                   title="{{ .Title }}">{{ .Name }}</a></li>
        {{ end }}
        {{ if .Site.IsMultiLingual }}
            {{ range $.Site.Home.AllTranslations }}
            <li><a href="{{ .Permalink }}" title="{{ .Language.LanguageName }}">{{ .Language.LanguageName }}</a></li>
                <li><a href="{{ .Permalink }}"
                       title="{{ .Language.LanguageName }}">{{ .Language.LanguageName }}</a>
                </li>
            {{ end }}
        {{ end }}
        <li class="theme-switch-item">
layouts/partials/taxonomy/categories.html
@@ -1,4 +1,3 @@
<span class="separator">
{{- range $index, $el := . -}}
    <a class="category" href="{{ ( printf "categories/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>
layouts/partials/taxonomy/tags.html
@@ -1,4 +1,3 @@
    <span class="separator">
        {{- range $index, $el := . -}}
      <a class="tag" href="{{ ( printf "tags/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>