diff options
author | FFRaycoder <nn_201312@163.com> | 2020-05-24 10:37:01 +0300 |
---|---|---|
committer | FFRaycoder <nn_201312@163.com> | 2020-05-24 10:37:01 +0300 |
commit | 1a8396cf36e37d44173b8533aff16a9d65832497 (patch) | |
tree | b2dc48333b1d699c34418385f58e37483fd684f9 | |
parent | c6de725e9fec600544ca4d6d4b941ce1f59a552b (diff) |
scripts -> min.js
-rw-r--r-- | assets/js/header.js | 20 | ||||
-rw-r--r-- | assets/js/home-tags.js | 26 | ||||
-rw-r--r-- | layouts/partials/script.html | 70 | ||||
-rw-r--r-- | layouts/partials/third-party/katex.html | 48 | ||||
-rw-r--r-- | layouts/partials/third-party/mathjax.html | 30 |
5 files changed, 135 insertions, 59 deletions
diff --git a/assets/js/header.js b/assets/js/header.js new file mode 100644 index 0000000..2716eca --- /dev/null +++ b/assets/js/header.js @@ -0,0 +1,20 @@ +var $header = $('#header-div'),
+ $readingBar = $('#reading-bar'),
+ $SY = $(window).scrollTop();
+function setHeader(type) {
+ $header.attr('class','tony-header-' + type);
+}
+$(window).scroll(function () {
+ $SY = $(window).scrollTop();
+ if ($readingBar) {
+ $readingBar.attr('style', 'width: ' + $(document).scrollTop()/($(document).height()-$(window).height())*100 + '%');
+ }
+ if ($SY > 0) setHeader('scroll');
+ else setHeader('fixed');
+});
+$header.hover(function () {
+ setHeader('scroll');
+});
+$header.mouseout(function () {
+ if($SY === 0) setHeader('fixed');
+});
\ No newline at end of file diff --git a/assets/js/home-tags.js b/assets/js/home-tags.js new file mode 100644 index 0000000..b9d9807 --- /dev/null +++ b/assets/js/home-tags.js @@ -0,0 +1,26 @@ +var $tsl = $('#tags-scroll-left'),
+ $tsr = $('#tags-scroll-right'),
+ $tags = $('#post_tags .cat-real'),
+ deg = 0,
+ tagsWidth = 0;
+for (let i = 0;i < $tags.length;i++){
+ tagsWidth += $tags[i].scrollWidth;
+}
+function tagsTransform(d) {
+ deg += d;
+ $tags.each(function(){
+ $(this).attr('style','transform:translateX('+ deg + 'px)');
+ });
+}
+$tsl.click(function () {
+ if (deg < 0) tagsTransform(60);
+});
+$tsr.click(function(){
+ if (deg >= -tagsWidth-36) tagsTransform(-60);
+ if(deg < -tagsWidth-36) {
+ deg = -tagsWidth-36;
+ $tags.each(function(){
+ $(this).attr('style','transform:translateX('+ deg + 'px)');
+ });
+ }
+});
\ No newline at end of file diff --git a/layouts/partials/script.html b/layouts/partials/script.html index af64087..7585466 100644 --- a/layouts/partials/script.html +++ b/layouts/partials/script.html @@ -1,67 +1,19 @@ <script src="{{ "/js/jquery.min.js" | relURL }}"></script>
+
+{{- $header := resources.Get "js/header.js" | resources.ExecuteAsTemplate (printf "%s/js/header-rendered.js" .Lang) . -}}
+{{- $homeTags := resources.Get "js/home-tags.js" | resources.ExecuteAsTemplate (printf "%s/js/home-tags-rendered.js" .Lang) . -}}
+
+{{- .Scratch.Set "script" (slice $header) -}}
+{{- .Scratch.Add "script" (slice $homeTags) -}}
+
+{{- $path := (strings.TrimPrefix "/" (printf `%s/js/tony.js` .Site.LanguagePrefix)) -}}
+{{- $script := .Scratch.Get "script" | resources.Concat $path | resources.Minify | resources.Fingerprint -}}
+{{- printf `<script src="%s" integrity="%s"></script>` $script.RelPermalink $script.Data.Integrity | safeHTML -}}
+
{{ partial "third-party/medium-zoom.html" . }}
{{ if .Site.Params.enableBaiduPush }}
{{ partial "third-party/baidu-push.html" . }}
{{ end }}
-<script>
- var $header = $('#header-div'),
- $readingBar = $('#reading-bar'),
- $SY = $(window).scrollTop();
- function setHeader(type) {
- $header.attr('class','tony-header-' + type);
- }
- $(window).scroll(function () {
- $SY = $(window).scrollTop();
- if ($readingBar) {
- $readingBar.attr('style', 'width: ' + $(document).scrollTop()/($(document).height()-$(window).height())*100 + '%');
- }
- if ($SY > 0) setHeader('scroll');
- else setHeader('fixed');
- });
- $header.hover(function () {
- setHeader('scroll');
- });
- $header.mouseout(function () {
- if($SY === 0) setHeader('fixed');
- });
- /////////////////////////////////////////////////
- var $tsl = $('#tags-scroll-left'),
- $tsr = $('#tags-scroll-right'),
- $tags = $('#post_tags .cat-real');
- var deg = 0, tagsWidth = 0;
- for(let i = 0;i < $tags.length;i++){
- tagsWidth += $tags[i].scrollWidth;
- }
- function tagsTransform(d) {
- deg += d;
- $tags.each(function(){
- $(this).attr('style','transform:translateX('+ deg + 'px)');
- });
- }
- $tsl.click(function () {
- if (deg < 0) tagsTransform(60);
- });
- $tsr.click(function(){
- if (deg >= -tagsWidth-36) tagsTransform(-60);
- if(deg < -tagsWidth-36) {
- deg = -tagsWidth-36;
- $tags.each(function(){
- $(this).attr('style','transform:translateX('+ deg + 'px)');
- });
- }
- });
- {{ if .Site.Params.hrefTargetBlank }}
- var index = document.getElementById("index");
- var links = index.getElementsByTagName("a");
-
- for (var i = 0, linksLength = links.length; i < linksLength; i++) {
- if (links[i].hostname != window.location.hostname) {
- links[i].target = '_blank';
- }
- }
- {{ end }}
-
-</script>
{{ partial "custom/script.html" . }}
\ No newline at end of file diff --git a/layouts/partials/third-party/katex.html b/layouts/partials/third-party/katex.html new file mode 100644 index 0000000..c125e7f --- /dev/null +++ b/layouts/partials/third-party/katex.html @@ -0,0 +1,48 @@ +<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/katex.min.css" integrity="sha384-BdGj8xC2eZkQaxoQ8nSLefg4AV4/AwB3Fj+8SUSo7pnKP6Eoy18liIKTPn9oBYNG" crossorigin="anonymous" /> +<script> + if (typeof renderMathInElement === 'undefined') { + var getScript = (options) => { + var script = document.createElement('script'); + script.defer = true; + script.crossOrigin = 'anonymous'; + Object.keys(options).forEach((key) => { + script[key] = options[key]; + }); + document.body.appendChild(script); + }; + getScript({ + src: 'https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/katex.min.js', + integrity: 'sha384-JiKN5O8x9Hhs/UE5cT5AAJqieYlOZbGT3CHws/y97o3ty4R7/O5poG9F3JoiOYw1', + onload: () => { + getScript({ + src: 'https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/contrib/mhchem.min.js', + integrity: 'sha384-oa0lfxCGjaU1LdYckhq8LZcP+JTf8cyJXe69O6VE6UrShzWveT6KiCElJrck/stm', + onload: () => { + getScript({ + src: 'https://cdn.jsdelivr.net/npm/katex@0.11.0/dist/contrib/auto-render.min.js', + integrity: 'sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI', + onload: () => { + renderKaTex(); + } + }); + } + }); + } + }); + } else { + renderKaTex(); + } + function renderKaTex() { + renderMathInElement( + document.body, + { + delimiters: [ + {left: "$$", right: "$$", display: true}, + {left: "\\[", right: "\\]", display: true}, + {left: "$", right: "$", display: false}, + {left: "\\(", right: "\\)", display: false} + ] + } + ); + } +</script>
\ No newline at end of file diff --git a/layouts/partials/third-party/mathjax.html b/layouts/partials/third-party/mathjax.html new file mode 100644 index 0000000..9bdf27b --- /dev/null +++ b/layouts/partials/third-party/mathjax.html @@ -0,0 +1,30 @@ +<script> + if (typeof MathJax === 'undefined') { + window.MathJax = { + loader: { + load: ['[tex]/mhchem'] + }, + {{ if .Site.Params.disableMathJaxMenu }} + options: { + renderActions: { + addMenu: [0, '', ''] + } + }, + {{ end }} + tex: { + inlineMath: {'[+]': [['$', '$']]}, + tags: 'ams', + packages: {'[+]': ['mhchem']} + } + }; + (function() { + var script = document.createElement('script'); + script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js'; + script.defer = true; + document.head.appendChild(script); + })(); + } else { + MathJax.texReset(); + MathJax.typeset(); + } +</script> |