mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-10-31 19:20:50 +00:00 
			
		
		
		
	Update 6 files
- /js/main.js - /search.html - /_layouts/default.html - /_layouts/post.html - /_includes/anchor_headings.html - /_config.yml
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
							
								
								
									
										174
									
								
								_includes/anchor_headings.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								_includes/anchor_headings.html
									
									
									
									
									
										Normal file
									
								
							| @@ -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 }} | ||||||
| @@ -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"> | ||||||
|   | |||||||
| @@ -75,7 +75,7 @@ layout: default | |||||||
|  |  | ||||||
| {% include toc.html html=content sanitize=true h_max=3 %} | {% include toc.html html=content sanitize=true h_max=3 %} | ||||||
|  |  | ||||||
| {{content}} | {% if post.layout == "encrypt" %} {{content}} {% else %} <style>.post-content h1{text-indent:-12px;}.post-content h2{text-indent:-10px;}.post-content h3{text-indent:-8px;}.post-content h4{text-indent:-6px;}.post-content h5{text-indent:-4px;}.post-content h6{text-indent:-2px;}h1 .octicon,h2 .octicon,h3 .octicon,h4 .octicon,h5 .octicon,h6 .octicon{visibility:hidden;}h1:hover .octicon,h2:hover .octicon,h3:hover .octicon,h4:hover .octicon,h5:hover .octicon,h6:hover .octicon{visibility:visible;}.octicon{fill:currentColor;padding:0;margin-left:-16px;vertical-align:middle;}</style> <main class="post-content" role="main"></main>{% include anchor_headings.html html=content beforeHeading=true anchorBody="<svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>" %}</main> {% endif %} | ||||||
|  |  | ||||||
| {% if page.tags %} | {% if page.tags %} | ||||||
| <small style="display: block">tags: {% for tag in page.tags %}<a href="/search.html?keyword={{ tag | url_encode }}"><em>{{ tag }}</em></a>{% unless forloop.last %} - {% endunless %}{% endfor %} <span style="float: right;"><a href="{% if site.github %}{{ site.github.repository_url }}{% else %}https://gitlab.com/mayx/mayx.gitlab.io{% endif %}/tree/master/{{ page.path }}">查看原始文件</a></span></small> | <small style="display: block">tags: {% for tag in page.tags %}<a href="/search.html?keyword={{ tag | url_encode }}"><em>{{ tag }}</em></a>{% unless forloop.last %} - {% endunless %}{% endfor %} <span style="float: right;"><a href="{% if site.github %}{{ site.github.repository_url }}{% else %}https://gitlab.com/mayx/mayx.gitlab.io{% endif %}/tree/master/{{ page.path }}">查看原始文件</a></span></small> | ||||||
| @@ -132,31 +132,16 @@ $.get(BlogAPI + "/suggest?id=" + blogurl + "&update=" + lastUpdated.valueOf(), f | |||||||
| <div id="gitalk-container"></div> | <div id="gitalk-container"></div> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|   if (window.location.host != "mabbs.github.io") { |   var gitalk = new Gitalk({ | ||||||
|     var gitalk = new Gitalk({ |     clientID: (window.location.host != "mabbs.github.io")?'098934a2556425f19d6e':'36557aec4c3cb04f7ac6', | ||||||
|       clientID: '098934a2556425f19d6e', |     clientSecret: (window.location.host != "mabbs.github.io")?'0bd44eed8425e5437ce43c4ba9b2791fbc04581d':'ac32993299751cb5a9ba81cf2b171cca65879cdb', | ||||||
|       clientSecret: '0bd44eed8425e5437ce43c4ba9b2791fbc04581d', |     repo: 'mabbs.github.io', | ||||||
|       repo: 'mabbs.github.io', |     owner: 'Mabbs', | ||||||
|       owner: 'Mabbs', |     admin: ['Mabbs'], | ||||||
|       admin: ['Mabbs'], |     id: '{{ page.id }}',      // Ensure uniqueness and length less than 50 | ||||||
|       id: '{{ page.id }}',      // Ensure uniqueness and length less than 50 |     distractionFreeMode: false,  // Facebook-like distraction free mode | ||||||
|       distractionFreeMode: false,  // Facebook-like distraction free mode |     proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token" | ||||||
|       proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token" |   }) | ||||||
|     }) |  | ||||||
|   } |  | ||||||
|   else { |  | ||||||
|     var gitalk = new Gitalk({ |  | ||||||
|       clientID: '36557aec4c3cb04f7ac6', |  | ||||||
|       clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb', |  | ||||||
|       repo: 'mabbs.github.io', |  | ||||||
|       owner: 'Mabbs', |  | ||||||
|       admin: ['Mabbs'], |  | ||||||
|       id: '{{ page.id }}',      // Ensure uniqueness and length less than 50 |  | ||||||
|       distractionFreeMode: false,  // Facebook-like distraction free mode |  | ||||||
|       proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token" |  | ||||||
|     }) |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   gitalk.render('gitalk-container') |   gitalk.render('gitalk-container') | ||||||
| </script> | </script> | ||||||
| <!-- <![endif]--> | <!-- <![endif]--> | ||||||
							
								
								
									
										12
									
								
								js/main.js
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								js/main.js
									
									
									
									
									
								
							| @@ -42,16 +42,8 @@ $(function () { | |||||||
| }); | }); | ||||||
|  |  | ||||||
| $(function() { | $(function() { | ||||||
|     function getQueryVariable(variable){ |     const urlParams = new URLSearchParams(window.location.search); | ||||||
|            var query = window.location.search.substring(1); |     const keyword = urlParams.get('kw')?.trim(); | ||||||
|            var vars = query.split("&"); |  | ||||||
|            for (var i=0;i<vars.length;i++) { |  | ||||||
|                    var pair = vars[i].split("="); |  | ||||||
|                    if(pair[0] == variable){return pair[1];} |  | ||||||
|            } |  | ||||||
|            return(false); |  | ||||||
|     } |  | ||||||
|     var keyword = decodeURI(getQueryVariable("kw")); |  | ||||||
|  |  | ||||||
|     if (!keyword) return; |     if (!keyword) return; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								search.html
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								search.html
									
									
									
									
									
								
							| @@ -8,20 +8,11 @@ title: 搜索 | |||||||
| <ul id="results-container"></ul> | <ul id="results-container"></ul> | ||||||
| <script src="/js/simple-jekyll-search.min.js"></script> | <script src="/js/simple-jekyll-search.min.js"></script> | ||||||
| <script> | <script> | ||||||
| function getQueryVariable(variable){ | const urlParams = new URLSearchParams(window.location.search); | ||||||
|        var query = window.location.search.substring(1); | const mykeyword = urlParams.get('keyword')?.trim(); | ||||||
|        var vars = query.split("&"); | const sbox = document.getElementById('search-input'); | ||||||
|        for (var i=0;i<vars.length;i++) { | if (mykeyword) { | ||||||
|                var pair = vars[i].split("="); |   sbox.value = mykeyword; | ||||||
|                if(pair[0] == variable){return pair[1];} |  | ||||||
|        } |  | ||||||
|        return(false); |  | ||||||
| } |  | ||||||
| var mykeyword = decodeURI(getQueryVariable("keyword")); |  | ||||||
| var sbox = document.getElementById('search-input'); |  | ||||||
| var status = false; |  | ||||||
| if(mykeyword != null && mykeyword.toString().length>1){ |  | ||||||
|      sbox.value = mykeyword; |  | ||||||
| } | } | ||||||
| getSearchJSON(function(json){ | getSearchJSON(function(json){ | ||||||
|   var sjs = SimpleJekyllSearch({ |   var sjs = SimpleJekyllSearch({ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 mayx
					mayx