Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ThemeTony/hugo-theme-tony.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFFRaycoder <nn_201312@163.com>2020-05-24 10:37:01 +0300
committerFFRaycoder <nn_201312@163.com>2020-05-24 10:37:01 +0300
commit1a8396cf36e37d44173b8533aff16a9d65832497 (patch)
treeb2dc48333b1d699c34418385f58e37483fd684f9
parentc6de725e9fec600544ca4d6d4b941ce1f59a552b (diff)
scripts -> min.js
-rw-r--r--assets/js/header.js20
-rw-r--r--assets/js/home-tags.js26
-rw-r--r--layouts/partials/script.html70
-rw-r--r--layouts/partials/third-party/katex.html48
-rw-r--r--layouts/partials/third-party/mathjax.html30
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>