mirror of
https://github.com/Mabbs/mabbs.github.io
synced 2026-07-22 10:03:23 +08:00
Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c7cabd991a | |||
| 9382acdabd | |||
| 78d65eae30 | |||
| 7a450f5ec2 | |||
| 9170efdaa3 | |||
| d3eefbba2d | |||
| 3bfbd78385 | |||
| 8c26bc57d5 | |||
| 85594ca8b1 | |||
| 05ba801c23 | |||
| 2f6eadd14f | |||
| f455ccfdd7 | |||
| 87807dd50c | |||
| 85d90f5f2f | |||
| aa83c0efc1 | |||
| b0bf30adcd | |||
| ae668ef412 | |||
| 763f0768ea | |||
| b0704e26fc | |||
| 1b4fd0de9b | |||
| eee3103f93 | |||
| 3ab930348e | |||
| 19f5a7b7f9 | |||
| e6bf9e886e | |||
| 82d6628c12 | |||
| e7bc272a81 | |||
| 7785bc18c7 | |||
| 9a0af3f555 | |||
| b1d25236a5 | |||
| 7ce15b01f8 | |||
| c374f914ac | |||
| 24f8def5ab | |||
| 796511e5eb | |||
| bb46247e97 | |||
| 4fb00a1975 | |||
| e1977bd6ae | |||
| 4d12271d57 | |||
| 433d5110c2 |
@@ -0,0 +1 @@
|
|||||||
|
5b60338bca964816af2f0b76965a1b84
|
||||||
@@ -6,6 +6,7 @@ group :jekyll_plugins do
|
|||||||
gem "jekyll-assets", "~> 1.0.0"
|
gem "jekyll-assets", "~> 1.0.0"
|
||||||
gem "jekyll-sitemap", "~> 1.4.0"
|
gem "jekyll-sitemap", "~> 1.4.0"
|
||||||
gem "jekyll-feed", "~> 0.15.1"
|
gem "jekyll-feed", "~> 0.15.1"
|
||||||
|
gem "jekyll-include-cache", "~> 0.2.1"
|
||||||
gem "jekyll-theme-minimal"
|
gem "jekyll-theme-minimal"
|
||||||
gem "jekyll-paginate", "~> 1.1.0"
|
gem "jekyll-paginate", "~> 1.1.0"
|
||||||
gem "kramdown-parser-gfm", "~> 1.1.0"
|
gem "kramdown-parser-gfm", "~> 1.1.0"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll)
|
|||||||
[jekyll-toc](https://github.com/allejo/jekyll-toc)
|
[jekyll-toc](https://github.com/allejo/jekyll-toc)
|
||||||
[Live2dHistoire](https://github.com/eeg1412/Live2dHistoire)
|
[Live2dHistoire](https://github.com/eeg1412/Live2dHistoire)
|
||||||
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
||||||
|
[jekyll-anchor-headings](https://github.com/allejo/jekyll-anchor-headings)
|
||||||
|
|
||||||
## 使用的网络资源
|
## 使用的网络资源
|
||||||
[Github](https://github.com/) | 包含:
|
[Github](https://github.com/) | 包含:
|
||||||
@@ -27,7 +28,7 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll)
|
|||||||
|
|
||||||
[网易云音乐](https://music.163.com/)
|
[网易云音乐](https://music.163.com/)
|
||||||
[CDNJS](https://cdnjs.com/)
|
[CDNJS](https://cdnjs.com/)
|
||||||
[unpkg](https://unpkg.com/)
|
[jsDelivr](https://www.jsdelivr.com/)
|
||||||
|
|
||||||
## 版权声明
|
## 版权声明
|
||||||
未经作者同意,请勿转载
|
未经作者同意,请勿转载
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
theme: jekyll-theme-minimal
|
theme: jekyll-theme-minimal
|
||||||
title: Mayx的博客
|
title: Mayx的博客
|
||||||
logo: https://avatars0.githubusercontent.com/u/17966333
|
logo: https://avatars0.githubusercontent.com/u/17966333
|
||||||
|
lang: zh-CN
|
||||||
author: mayx
|
author: mayx
|
||||||
description: Mayx's Home Page
|
description: Mayx's Home Page
|
||||||
timezone: Asia/Shanghai
|
timezone: Asia/Shanghai
|
||||||
@@ -9,6 +10,7 @@ paginate: 7
|
|||||||
plugins:
|
plugins:
|
||||||
- jekyll-sitemap
|
- jekyll-sitemap
|
||||||
- jekyll-feed
|
- jekyll-feed
|
||||||
|
- jekyll-include-cache
|
||||||
feed:
|
feed:
|
||||||
path: atom.xml
|
path: atom.xml
|
||||||
google_analytics: UA-137710294-1
|
google_analytics: UA-137710294-1
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
title,link,feed_url,description
|
||||||
|
花火学园,https://www.sayhanabi.net/,,和谐融洽的ACG交流以及资源聚集地
|
||||||
|
资源统筹局,https://gkdworld.com/,,统筹保管用户分享的资源
|
||||||
|
贫困的蚊子,https://mozz.ie/,https://mozz.ie/index.xml,*No description*
|
||||||
|
极客兔兔,https://geektutu.com/,https://geektutu.com/atom.xml,致力于分享有趣的技术实践
|
||||||
|
维基萌,https://www.wikimoe.com/,https://www.wikimoe.com/rss,萌即是正义!一名热爱acg的前端设计师的小站!
|
||||||
|
7gugu's blog,https://www.7gugu.com/,https://7gugu.com/index.php/feed/,"一个用来存放我爱好的地方,编程,摄影之类的空间"
|
||||||
|
云游君,https://www.yunyoujun.cn/,https://www.yunyoujun.cn/atom.xml,希望能成为一个有趣的人。
|
||||||
|
Kingfish404,https://blog.kingfish404.cn/,https://blog.kingfish404.cn/index.xml,"Stay curious,stay naive. WUT. Jin Yu's Blog"
|
||||||
|
FKUN,https://blog.fkun.tech/,https://blog.fkun.tech/feed/,*No description*
|
||||||
|
Sinofine,https://sinofine.me/,https://sinofine.me/atom.xml,*No description*
|
||||||
|
JiaoYuan's blog,https://yuanj.top/,https://yuanj.top/index.xml,思绪来得快去得也快,偶尔会在这里停留
|
||||||
|
花生莲子粥,https://blog.hslzz.cn/,https://blog.hslzz.cn/atom.xml,与世无争,不染于泥
|
||||||
|
南蛮子懋和,https://www.dao.js.cn/,https://www.dao.js.cn/feed.php,李懋和,俗名李栋梁。书法、国画爱好者,互联网安全与前端建设者。
|
||||||
|
@@ -0,0 +1,24 @@
|
|||||||
|
proxies:
|
||||||
|
- https://blog.mayx.workers.dev/
|
||||||
|
- https://mayx.deno.dev/
|
||||||
|
- https://mayx.glitch.me/
|
||||||
|
- https://yuki.gear.host/
|
||||||
|
- https://mayx.serv00.net/
|
||||||
|
mirrors:
|
||||||
|
- https://mayx.gitlab.io/
|
||||||
|
- https://mayx.pages.dev/
|
||||||
|
- https://mayx.eu.org/
|
||||||
|
- https://mayx.vercel.app/
|
||||||
|
- https://mayx.netlify.app/
|
||||||
|
- https://mayx.4everland.app/
|
||||||
|
- https://mayx.dappling.network/
|
||||||
|
- https://mayx-blog.statichost.eu/
|
||||||
|
others:
|
||||||
|
- https://unmayx.blogspot.com/
|
||||||
|
- https://unmayx.blog.fc2blog.us/
|
||||||
|
- https://unmayx.wordpress.com/
|
||||||
|
- https://mayx.code.blog/
|
||||||
|
- https://mayx.home.blog/
|
||||||
|
- https://unmayx.medium.com/
|
||||||
|
- https://mayx.cnblogs.com/
|
||||||
|
- https://mayx.xlog.app/
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
{% capture headingsWorkspace %}
|
||||||
|
{% comment %}
|
||||||
|
Copyright (c) 2018 Vladimir "allejo" Jimenez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
{% endcomment %}
|
||||||
|
{% comment %}
|
||||||
|
Version 1.0.13
|
||||||
|
https://github.com/allejo/jekyll-anchor-headings
|
||||||
|
|
||||||
|
"Be the pull request you wish to see in the world." ~Ben Balter
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
{% include anchor_headings.html html=content anchorBody="#" %}
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
||||||
|
|
||||||
|
Optional Parameters:
|
||||||
|
* beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
|
||||||
|
* headerAttrs (string) : '' - Any custom HTML attributes that will be added to the heading tag; you may NOT use `id`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
|
* anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
|
||||||
|
the `%heading%` and `%html_id%` placeholders are available
|
||||||
|
* anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
|
||||||
|
* anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
|
||||||
|
* anchorTitle (string) : '' - The `title` attribute that will be used for anchors
|
||||||
|
* h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
|
||||||
|
* h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
|
||||||
|
* bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
|
||||||
|
* bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
|
||||||
|
* generateId (true) : false - Set to true if a header without id should generate an id to use.
|
||||||
|
|
||||||
|
Output:
|
||||||
|
The original HTML with the addition of anchors inside of all of the h1-h6 headings.
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
{% assign minHeader = include.h_min | default: 1 %}
|
||||||
|
{% assign maxHeader = include.h_max | default: 6 %}
|
||||||
|
{% assign beforeHeading = include.beforeHeading %}
|
||||||
|
{% assign headerAttrs = include.headerAttrs %}
|
||||||
|
{% assign nodes = include.html | split: '<h' %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{% endcapture %}
|
||||||
|
|
||||||
|
{% for _node in nodes %}
|
||||||
|
{% capture node %}{{ _node | strip }}{% endcapture %}
|
||||||
|
|
||||||
|
{% if node == "" %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
|
||||||
|
{% assign headerLevel = nextChar | times: 1 %}
|
||||||
|
|
||||||
|
<!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
|
||||||
|
{% if headerLevel == 0 %}
|
||||||
|
<!-- Split up the node based on closing angle brackets and get the first one. -->
|
||||||
|
{% assign firstChunk = node | split: '>' | first %}
|
||||||
|
|
||||||
|
<!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
|
||||||
|
{% unless firstChunk contains '<' %}
|
||||||
|
{% capture node %}<h{{ node }}{% endcapture %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
|
||||||
|
{% continue %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture _closingTag %}</h{{ headerLevel }}>{% endcapture %}
|
||||||
|
{% assign _workspace = node | split: _closingTag %}
|
||||||
|
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
||||||
|
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
||||||
|
{% assign escaped_header = header | strip_html | strip %}
|
||||||
|
|
||||||
|
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
||||||
|
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
||||||
|
{% assign _html_class = _classWorkspace[0] %}
|
||||||
|
|
||||||
|
{% if _html_class contains "no_anchor" %}
|
||||||
|
{% assign skip_anchor = true %}
|
||||||
|
{% else %}
|
||||||
|
{% assign skip_anchor = false %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
||||||
|
{% if _idWorkspace[1] %}
|
||||||
|
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
||||||
|
{% assign html_id = _idWorkspace[0] %}
|
||||||
|
{% assign h_attrs = headerAttrs %}
|
||||||
|
{% elsif include.generateId %}
|
||||||
|
<!-- If the header did not have an id we create one. -->
|
||||||
|
{% assign html_id = escaped_header | slugify %}
|
||||||
|
{% if html_id == "" %}
|
||||||
|
{% assign html_id = false %}
|
||||||
|
{% endif %}
|
||||||
|
<!-- Append the generated id to other potential header attributes. -->
|
||||||
|
{% capture h_attrs %}{{ headerAttrs }} id="%html_id%"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Build the anchor to inject for our heading -->
|
||||||
|
{% capture anchor %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if skip_anchor == false and html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
|
||||||
|
{% if h_attrs %}
|
||||||
|
{% capture _hAttrToStrip %}{{ _hAttrToStrip | split: '>' | first }} {{ h_attrs | strip | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}href="#{{ html_id }}"{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.anchorClass %}
|
||||||
|
{% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.anchorTitle %}
|
||||||
|
{% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', escaped_header }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.anchorAttrs %}
|
||||||
|
{% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', escaped_header | replace: '%html_id%', html_id }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', escaped_header | default: '' }}</a>{% endcapture %}
|
||||||
|
|
||||||
|
<!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
|
||||||
|
{% if beforeHeading %}
|
||||||
|
{% capture anchor %}{{ anchor }} {% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture anchor %} {{ anchor }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture new_heading %}
|
||||||
|
<h{{ _hAttrToStrip }}
|
||||||
|
{{ include.bodyPrefix }}
|
||||||
|
{% if beforeHeading %}
|
||||||
|
{{ anchor }}{{ header }}
|
||||||
|
{% else %}
|
||||||
|
{{ header }}{{ anchor }}
|
||||||
|
{% endif %}
|
||||||
|
{{ include.bodySuffix }}
|
||||||
|
</h{{ headerLevel }}>
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If we have content after the `</hX>` tag, then we'll want to append that here so we don't lost any content.
|
||||||
|
-->
|
||||||
|
{% assign chunkCount = _workspace | size %}
|
||||||
|
{% if chunkCount > 1 %}
|
||||||
|
{% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
|
||||||
+131
-37
@@ -1,6 +1,30 @@
|
|||||||
{% capture tocWorkspace %}
|
{% capture tocWorkspace %}
|
||||||
{% comment %}
|
{% comment %}
|
||||||
Version 1.0.7
|
Copyright (c) 2017 Vladimir "allejo" Jimenez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
{% endcomment %}
|
||||||
|
{% comment %}
|
||||||
|
Version 1.2.1
|
||||||
https://github.com/allejo/jekyll-toc
|
https://github.com/allejo/jekyll-toc
|
||||||
|
|
||||||
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
||||||
@@ -19,77 +43,147 @@
|
|||||||
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
||||||
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
|
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
|
||||||
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
|
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
|
||||||
* baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
* submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
|
||||||
|
* base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
||||||
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
||||||
|
* skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
|
||||||
|
* flat_toc (bool) : false - when set to true, the TOC will be a single level list
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
||||||
generate the table of contents and will NOT output the markdown given to it
|
generate the table of contents and will NOT output the markdown given to it
|
||||||
{% endcomment %}
|
{% endcomment %}
|
||||||
|
|
||||||
{% capture my_toc %}{% endcapture %}
|
{% capture newline %}
|
||||||
|
{% endcapture %}
|
||||||
|
{% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
|
||||||
|
|
||||||
|
{% capture deprecation_warnings %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.baseurl %}
|
||||||
|
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.skipNoIDs %}
|
||||||
|
{% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{% endcapture %}
|
||||||
{% assign orderedList = include.ordered | default: false %}
|
{% assign orderedList = include.ordered | default: false %}
|
||||||
|
{% assign flatToc = include.flat_toc | default: false %}
|
||||||
|
{% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
|
||||||
|
{% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
|
||||||
{% assign minHeader = include.h_min | default: 1 %}
|
{% assign minHeader = include.h_min | default: 1 %}
|
||||||
{% assign maxHeader = include.h_max | default: 6 %}
|
{% assign maxHeader = include.h_max | default: 6 %}
|
||||||
{% assign nodes = include.html | split: '<h' %}
|
{% assign nodes = include.html | strip | split: '<h' %}
|
||||||
{% assign firstHeader = true %}
|
|
||||||
|
|
||||||
{% capture listModifier %}{% if orderedList %}1.{% else %}-{% endif %}{% endcapture %}
|
{% assign firstHeader = true %}
|
||||||
|
{% assign currLevel = 0 %}
|
||||||
|
{% assign lastLevel = 0 %}
|
||||||
|
|
||||||
|
{% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
|
||||||
|
|
||||||
{% for node in nodes %}
|
{% for node in nodes %}
|
||||||
{% if node == "" %}
|
{% if node == "" %}
|
||||||
{% continue %}
|
{% continue %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
{% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
||||||
|
|
||||||
{% if headerLevel < minHeader or headerLevel > maxHeader %}
|
{% if currLevel < minHeader or currLevel > maxHeader %}
|
||||||
{% continue %}
|
{% continue %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if firstHeader %}
|
|
||||||
{% assign firstHeader = false %}
|
|
||||||
{% assign minHeader = headerLevel %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
|
|
||||||
{% assign _workspace = node | split: '</h' %}
|
{% assign _workspace = node | split: '</h' %}
|
||||||
|
|
||||||
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
||||||
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
||||||
{% assign html_id = _idWorkspace[0] %}
|
{% assign htmlID = _idWorkspace[0] %}
|
||||||
|
|
||||||
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
||||||
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
||||||
{% assign html_class = _classWorkspace[0] %}
|
{% assign htmlClass = _classWorkspace[0] %}
|
||||||
|
|
||||||
{% if html_class contains "no_toc" %}
|
{% if htmlClass contains "no_toc" %}
|
||||||
{% continue %}
|
{% continue %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if firstHeader %}
|
||||||
|
{% assign minHeader = currLevel %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
||||||
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
||||||
|
|
||||||
{% assign space = '' %}
|
{% if include.item_class and include.item_class != blank %}
|
||||||
{% for i in (1..indentAmount) %}
|
{% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
{% assign space = space | prepend: ' ' %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% unless include.item_class == blank %}
|
|
||||||
{% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
|
|
||||||
{% endunless %}
|
|
||||||
|
|
||||||
{% capture my_toc %}{{ my_toc }}
|
|
||||||
{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% if include.class %}
|
|
||||||
{% capture my_toc %}{:.{{ include.class }}}
|
|
||||||
{{ my_toc | lstrip }}{% endcapture %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if include.id %}
|
{% if include.submenu_class and include.submenu_class != blank %}
|
||||||
{% capture my_toc %}{: #{{ include.id }}}
|
{% assign subMenuLevel = currLevel | minus: 1 %}
|
||||||
{{ my_toc | lstrip }}{% endcapture %}
|
{% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
|
|
||||||
|
{% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
|
||||||
|
|
||||||
|
{% if htmlID %}
|
||||||
|
{% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
|
||||||
|
|
||||||
|
{% if include.anchor_class %}
|
||||||
|
{% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
|
||||||
|
{% elsif skipNoIDs == true %}
|
||||||
|
{% continue %}
|
||||||
|
{% else %}
|
||||||
|
{% capture listItem %}{{ anchorBody }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if currLevel > lastLevel and flatToc == false %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
|
||||||
|
{% elsif currLevel < lastLevel and flatToc == false %}
|
||||||
|
{% assign repeatCount = lastLevel | minus: currLevel %}
|
||||||
|
|
||||||
|
{% for i in (1..repeatCount) %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
|
||||||
|
|
||||||
|
{% assign lastLevel = currLevel %}
|
||||||
|
{% assign firstHeader = false %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if flatToc == true %}
|
||||||
|
{% assign repeatCount = 1 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign repeatCount = minHeader | minus: 1 %}
|
||||||
|
{% assign repeatCount = lastLevel | minus: repeatCount %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for i in (1..repeatCount) %}
|
||||||
|
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if jekyll_toc != '' %}
|
||||||
|
{% assign rootAttributes = '' %}
|
||||||
|
{% if include.class and include.class != blank %}
|
||||||
|
{% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if include.id and include.id != blank %}
|
||||||
|
{% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if rootAttributes %}
|
||||||
|
{% assign nodes = jekyll_toc | split: '>' %}
|
||||||
|
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{{ count }}
|
||||||
+12
-24
@@ -1,5 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="{{ site.lang | default: "zh-CN" }}">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
@@ -26,12 +26,20 @@
|
|||||||
gtag('js', new Date());
|
gtag('js', new Date());
|
||||||
|
|
||||||
gtag('config', '{{ site.google_analytics }}');
|
gtag('config', '{{ site.google_analytics }}');
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
<script>
|
||||||
var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}");
|
var lastUpdated = new Date("{{ site.time | date: "%FT%T%z" }}");
|
||||||
var BlogAPI = "https://summary.mayx.eu.org";
|
var BlogAPI = "https://summary.mayx.eu.org";
|
||||||
function getSearchJSON(callback) {
|
function getSearchJSON(callback) {
|
||||||
var searchData = JSON.parse(localStorage.getItem("blog_" + lastUpdated.valueOf()));
|
var searchData = JSON.parse(localStorage.getItem("blog_" + lastUpdated.valueOf()));
|
||||||
if (!searchData) {
|
if (!searchData) {
|
||||||
localStorage.clear();
|
for (var i = 0; i < localStorage.length; i++) {
|
||||||
|
var key = localStorage.key(i);
|
||||||
|
if (key.startsWith('blog_')) {
|
||||||
|
localStorage.removeItem(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
$.getJSON("/search.json", function (data) {
|
$.getJSON("/search.json", function (data) {
|
||||||
localStorage.setItem("blog_" + lastUpdated.valueOf(), JSON.stringify(data));
|
localStorage.setItem("blog_" + lastUpdated.valueOf(), JSON.stringify(data));
|
||||||
callback(data);
|
callback(data);
|
||||||
@@ -41,27 +49,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
<script src="//instant.page/5.2.0" type="module" integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>
|
||||||
<style>
|
|
||||||
.backToTop {
|
|
||||||
display: none;
|
|
||||||
width: 18px;
|
|
||||||
line-height: 1.2;
|
|
||||||
padding: 5px 0;
|
|
||||||
background-color: #000;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 12px;
|
|
||||||
text-align: center;
|
|
||||||
position: fixed;
|
|
||||||
_position: absolute;
|
|
||||||
right: 10px;
|
|
||||||
bottom: 100px;
|
|
||||||
_bottom: "auto";
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: .6;
|
|
||||||
filter: Alpha(opacity=60);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -140,7 +128,7 @@
|
|||||||
<!-- <![endif]-->
|
<!-- <![endif]-->
|
||||||
<footer>
|
<footer>
|
||||||
<p>
|
<p>
|
||||||
<small>Made with ❤ by Mayx<br />Last updated at <script>document.write(lastUpdated.toLocaleString());</script><br /> 总字数:{% assign count = 0 %}{% for post in site.posts %}{% assign single_count = post.content | strip_html | strip_newlines | remove: " " | size %}{% assign count = count | plus: single_count %}{% endfor %}{% if count > 10000 %}{{ count | divided_by: 10000 }} 万 {{ count | modulo: 10000 }}{% else %}{{ count }}{% endif %} - 文章数:{% for post in site.posts %}{% assign co = co | plus: 1 %}{% endfor %}{{ co }} - <a href="{{ "/atom.xml" | relative_url }}" >Atom</a> - <a href="{{ "/README.html" | relative_url }}" >About</a></small>
|
<small>Made with ❤ by Mayx<br />Last updated at <script>document.write(lastUpdated.toLocaleString());</script><br /> 总字数:{% include_cached word_count.html %} - 文章数:{{ site.posts.size }} - <a href="{{ site.feed.path | relative_url }}" >Atom</a> - <a href="{{ "/README.html" | relative_url }}" >About</a></small>
|
||||||
</p>
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user