Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

icesuns/icesuns.github.io

Repository files navigation

<!DOCTYPE html>
 
<html class="theme-next pisces use-motion" lang="zh-Hans">
<head><meta name="generator" content="Hexo 3.8.0">
 <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#222">
 
 
 
 
 <script src="/lib/pace/pace.min.js?v=1.0.2"></script>
 <link href="http://www.zicesun.com/README.html" rel="nofollow">http://www.zicesun.com/README.html">
<meta property="og:site_name" content="ZIcesun">
<meta property="og:description" content="welcome">
<meta property="og:locale" content="zh-Hans">
<meta property="og:updated_time" content="2019-03-28T02:51:59.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="ZIcesun">
<meta name="twitter:description" content="welcome">
<script type="text/javascript" id="hexo.configurations">
 var NexT = window.NexT || {};
 var CONFIG = {
 root: '/',
 scheme: 'Pisces',
 version: '5.1.4',
 sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":true,"onmobile":false},
 fancybox: true,
 tabs: true,
 motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
 duoshuo: {
 userId: '0',
 author: '博主'
 },
 algolia: {
 applicationID: '',
 apiKey: '',
 indexName: '',
 hits: {"per_page":10},
 labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
 }
 };
</script>
 <link rel="canonical" href="http://www.zicesun.com/README.html">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-116658050-2"></script>
<script>
 window.dataLayer = window.dataLayer || [];
 function gtag(){dataLayer.push(arguments);}
 gtag('js', new Date());
 gtag('config', 'UA-116658050-2');
</script>
 <title> | ZIcesun</title>
 
<script>
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
 ga('create', 'UA-116658050-1', 'auto');
 ga('send', 'pageview');
</script>
</head>
<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
 
 
 
 
 <div class="container sidebar-position-left page-post-detail">
 <div class="headband"></div>
 <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
 <div class="header-inner"><div class="site-brand-wrapper">
 <div class="site-meta ">
 
 <div class="custom-logo-site-title">
 <a href="/" class="brand" rel="start">
 <span class="logo-line-before"><i></i></span>
 <span class="site-title">ZIcesun</span>
 <span class="logo-line-after"><i></i></span>
 </a>
 </div>
 
 <h1 class="site-subtitle" itemprop="description">Live free or die</h1>
 
 </div>
 <div class="site-nav-toggle">
 <button>
 <span class="btn-bar"></span>
 <span class="btn-bar"></span>
 <span class="btn-bar"></span>
 </button>
 </div>
</div>
<nav class="site-nav">
 
 
 <ul id="menu" class="menu">
 
 
 <li class="menu-item menu-item-home">
 <a href="/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-home"></i> <br>
 
 首页
 </a>
 </li>
 
 
 <li class="menu-item menu-item-about">
 <a href="/about/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-user"></i> <br>
 
 关于
 </a>
 </li>
 
 
 <li class="menu-item menu-item-tags">
 <a href="/tags/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-tags"></i> <br>
 
 标签
 </a>
 </li>
 
 
 <li class="menu-item menu-item-categories">
 <a href="/categories/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-th"></i> <br>
 
 分类
 </a>
 </li>
 
 
 <li class="menu-item menu-item-archives">
 <a href="/archives/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-archive"></i> <br>
 
 归档
 </a>
 </li>
 
 
 <li class="menu-item menu-item-talking">
 <a href="/talking" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-plane"></i> <br>
 
 说说
 </a>
 </li>
 
 
 <li class="menu-item menu-item-essay">
 <a href="/categories/essay/" rel="section">
 
 <i class="menu-item-icon fa fa-fw fa-book"></i> <br>
 
 随笔
 </a>
 </li>
 
 
 <li class="menu-item menu-item-search">
 
 <a href="javascript:;" class="popup-trigger">
 
 
 <i class="menu-item-icon fa fa-search fa-fw"></i> <br>
 
 搜索
 </a>
 </li>
 
 </ul>
 
 
 <div class="site-search">
 
 <div class="popup search-popup local-search-popup">
 <div class="local-search-header clearfix">
 <span class="search-icon">
 <i class="fa fa-search"></i>
 </span>
 <span class="popup-btn-close">
 <i class="fa fa-times-circle"></i>
 </span>
 <div class="local-search-input-wrapper">
 <input autocomplete="off" placeholder="搜索..." spellcheck="false" type="text" id="local-search-input">
 </div>
 </div>
 <div id="local-search-result"></div>
</div>
 </div>
 
</nav>
 </div>
 </header>
 <main id="main" class="main">
 <div class="main-inner">
 <div class="content-wrap">
 <div id="content" class="content">
 
 <div id="posts" class="posts-expand">
 
 
 
 <div class="post-block page">
 <header class="post-header">
	<h2 class="post-title" itemprop="name headline"></h2>
</header>
 
 
 
 <div class="post-body">
 
 
 <p>welcome</p>
 
 </div>
 
 
 
 </div>
 
 
 
 </div>
 </div>
 
 
 
 	<div id="gitalk-container"></div>
 	
 
 </div>
 
 
 
 <div class="sidebar-toggle">
 <div class="sidebar-toggle-line-wrap">
 <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
 <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
 <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
 </div>
 </div>
 <aside id="sidebar" class="sidebar">
 
 <div class="sidebar-inner">
 
 
 <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
 <div class="site-overview">
 <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
 
 <img class="site-author-image" itemprop="image" src="/images/avatar.jpg" alt="ZIcesun">
 
 <p class="site-author-name" itemprop="name">ZIcesun</p>
 <p class="site-description motion-element" itemprop="description"></p>
 </div>
 <nav class="site-state motion-element">
 
 <div class="site-state-item site-state-posts">
 
 <a href="/archives/">
 
 <span class="site-state-item-count">32</span>
 <span class="site-state-item-name">日志</span>
 </a>
 </div>
 
 
 
 
 <div class="site-state-item site-state-categories">
 <a href="/categories/index.html">
 <span class="site-state-item-count">14</span>
 <span class="site-state-item-name">分类</span>
 </a>
 </div>
 
 
 
 
 <div class="site-state-item site-state-tags">
 <a href="/tags/index.html">
 <span class="site-state-item-count">38</span>
 <span class="site-state-item-name">标签</span>
 </a>
 </div>
 
 </nav>
 
 
 <div class="links-of-author motion-element">
 
 <span class="links-of-author-item">
 <a href="https://github.com/icesuns" target="_blank" title="GitHub">
 
 <i class="fa fa-fw fa-github"></i>GitHub</a>
 </span>
 
 <span class="links-of-author-item">
 <a href="mailto:icesuns@gmail.com" target="_blank" title="E-Mail">
 
 <i class="fa fa-fw fa-envelope"></i>E-Mail</a>
 </span>
 
 <span class="links-of-author-item">
 <a href="https://weibo.com/u/3902621880" target="_blank" title="微博">
 
 <i class="fa fa-fw fa-weibo"></i>微博</a>
 </span>
 
 <span class="links-of-author-item">
 <a href="http://www.zhihu.com/people/icesuns" target="_blank" title="知乎">
 
 <i class="fa fa-fw fa-book"></i>知乎</a>
 </span>
 
 </div>
 
 
 
 
 
 <div class="links-of-blogroll motion-element links-of-blogroll-block">
 <div class="links-of-blogroll-title">
 <i class="fa fa-fw fa-link"></i>
 友情链接
 </div>
 <ul class="links-of-blogroll-list">
 
 <li class="links-of-blogroll-item">
 <a href="https://blog.csdn.net/Icesuns" title="icesuns" target="_blank">icesuns</a>
 </li>
 
 <li class="links-of-blogroll-item">
 <a href="https://www.cnblogs.com/qingyunzong" title="扎心了,老铁" target="_blank">扎心了,老铁</a>
 </li>
 
 </ul>
 </div>
 
 
 </div>
 </section>
 
 
 </div>
 </aside>
 
 </div>
 </main>
 <footer id="footer" class="footer">
 <div class="footer-inner">
 <div class="copyright">&copy; <span itemprop="copyrightYear">2021</span>
 <span class="with-love">
 <i class="fa fa-user"></i>
 </span>
 <span class="author" itemprop="copyrightHolder">ZIcesun</span>
 
 <span class="post-meta-divider">|</span>
 <span class="post-meta-item-icon">
 <i class="fa fa-area-chart"></i>
 </span>
 
 <span class="post-meta-item-text">Site words total count&#58;</span>
 
 <span title="Site words total count">34.7k</span>
 
</div>
 <div class="theme-info">主题 &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Pisces</a> v5.1.4</div>
 
 
 | 本页点击 <span id="busuanzi_value_page_pv"></span> 次
 | 本站总点击 <span id="busuanzi_value_site_pv"></span> 次
 | 您是第 <span id="busuanzi_value_site_uv"></span> 位访客
<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
 
<div class="busuanzi-count">
 <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
 
 
</div>
 
 </div>
 </footer>
 
 <div class="back-to-top">
 <i class="fa fa-arrow-up"></i>
 
 <span id="scrollpercent"><span>0</span>%</span>
 
 </div>
 
 
 </div>
 
<script type="text/javascript">
 if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
 window.Promise = null;
 }
</script>
 
 
 
 
 <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
 
 
 
 <script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
 
 
 
 <script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
 
 
 
 <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
 
 
 
 <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
 
 
 
 <script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
 
 
 
 <script type="text/javascript" src="/lib/canvas-nest/canvas-nest.min.js"></script>
 
 
 <script type="text/javascript" src="/js/src/utils.js?v=5.1.4"></script>
 <script type="text/javascript" src="/js/src/motion.js?v=5.1.4"></script>
 
 
 <script type="text/javascript" src="/js/src/affix.js?v=5.1.4"></script>
 <script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.1.4"></script>
 
 <script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>
 
 <script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.4"></script>
 
 
	
 
 
 <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
 <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
 <script type="text/javascript">
 var gitalk = new Gitalk({
 clientID: '0a25b655a2577489330f',
 clientSecret: '63507e39d6d6c35ed2a33d6961ce748a0d64796d',
 repo: 'icesuns.github.io',
 owner: 'icesuns',
 admin: ['icesuns'],
 id: location.pathname,
 distractionFreeMode: 'true'
 })
 gitalk.render('gitalk-container') 
 </script>
 
 <script type="text/javascript">
 // Popup Window;
 var isfetched = false;
 var isXml = true;
 // Search DB path;
 var search_path = "search.xml";
 if (search_path.length === 0) {
 search_path = "search.xml";
 } else if (/json$/i.test(search_path)) {
 isXml = false;
 }
 var path = "/" + search_path;
 // monitor main search box;
 var onPopupClose = function (e) {
 $('.popup').hide();
 $('#local-search-input').val('');
 $('.search-result-list').remove();
 $('#no-result').remove();
 $(".local-search-pop-overlay").remove();
 $('body').css('overflow', '');
 }
 function proceedsearch() {
 $("body")
 .append('<div class="search-popup-overlay local-search-pop-overlay"></div>')
 .css('overflow', 'hidden');
 $('.search-popup-overlay').click(onPopupClose);
 $('.popup').toggle();
 var $localSearchInput = $('#local-search-input');
 $localSearchInput.attr("autocapitalize", "none");
 $localSearchInput.attr("autocorrect", "off");
 $localSearchInput.focus();
 }
 // search function;
 var searchFunc = function(path, search_id, content_id) {
 'use strict';
 // start loading animation
 $("body")
 .append('<div class="search-popup-overlay local-search-pop-overlay">' +
 '<div id="search-loading-icon">' +
 '<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>' +
 '</div>' +
 '</div>')
 .css('overflow', 'hidden');
 $("#search-loading-icon").css('margin', '20% auto 0 auto').css('text-align', 'center');
 $.ajax({
 url: path,
 dataType: isXml ? "xml" : "json",
 async: true,
 success: function(res) {
 // get the contents from search data
 isfetched = true;
 $('.popup').detach().appendTo('.header-inner');
 var datas = isXml ? $("entry", res).map(function() {
 return {
 title: $("title", this).text(),
 content: $("content",this).text(),
 url: $("url" , this).text()
 };
 }).get() : res;
 var input = document.getElementById(search_id);
 var resultContent = document.getElementById(content_id);
 var inputEventFunction = function() {
 var searchText = input.value.trim().toLowerCase();
 var keywords = searchText.split(/[\s\-]+/);
 if (keywords.length > 1) {
 keywords.push(searchText);
 }
 var resultItems = [];
 if (searchText.length > 0) {
 // perform local searching
 datas.forEach(function(data) {
 var isMatch = false;
 var hitCount = 0;
 var searchTextCount = 0;
 var title = data.title.trim();
 var titleInLowerCase = title.toLowerCase();
 var content = data.content.trim().replace(/<[^>]+>/g,"");
 var contentInLowerCase = content.toLowerCase();
 var articleUrl = decodeURIComponent(data.url);
 var indexOfTitle = [];
 var indexOfContent = [];
 // only match articles with not empty titles
 if(title != '') {
 keywords.forEach(function(keyword) {
 function getIndexByWord(word, text, caseSensitive) {
 var wordLen = word.length;
 if (wordLen === 0) {
 return [];
 }
 var startPosition = 0, position = [], index = [];
 if (!caseSensitive) {
 text = text.toLowerCase();
 word = word.toLowerCase();
 }
 while ((position = text.indexOf(word, startPosition)) > -1) {
 index.push({position: position, word: word});
 startPosition = position + wordLen;
 }
 return index;
 }
 indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false));
 indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false));
 });
 if (indexOfTitle.length > 0 || indexOfContent.length > 0) {
 isMatch = true;
 hitCount = indexOfTitle.length + indexOfContent.length;
 }
 }
 // show search results
 if (isMatch) {
 // sort index by position of keyword
 [indexOfTitle, indexOfContent].forEach(function (index) {
 index.sort(function (itemLeft, itemRight) {
 if (itemRight.position !== itemLeft.position) {
 return itemRight.position - itemLeft.position;
 } else {
 return itemLeft.word.length - itemRight.word.length;
 }
 });
 });
 // merge hits into slices
 function mergeIntoSlice(text, start, end, index) {
 var item = index[index.length - 1];
 var position = item.position;
 var word = item.word;
 var hits = [];
 var searchTextCountInSlice = 0;
 while (position + word.length <= end && index.length != 0) {
 if (word === searchText) {
 searchTextCountInSlice++;
 }
 hits.push({position: position, length: word.length});
 var wordEnd = position + word.length;
 // move to next position of hit
 index.pop();
 while (index.length != 0) {
 item = index[index.length - 1];
 position = item.position;
 word = item.word;
 if (wordEnd > position) {
 index.pop();
 } else {
 break;
 }
 }
 }
 searchTextCount += searchTextCountInSlice;
 return {
 hits: hits,
 start: start,
 end: end,
 searchTextCount: searchTextCountInSlice
 };
 }
 var slicesOfTitle = [];
 if (indexOfTitle.length != 0) {
 slicesOfTitle.push(mergeIntoSlice(title, 0, title.length, indexOfTitle));
 }
 var slicesOfContent = [];
 while (indexOfContent.length != 0) {
 var item = indexOfContent[indexOfContent.length - 1];
 var position = item.position;
 var word = item.word;
 // cut out 100 characters
 var start = position - 20;
 var end = position + 80;
 if(start < 0){
 start = 0;
 }
 if (end < position + word.length) {
 end = position + word.length;
 }
 if(end > content.length){
 end = content.length;
 }
 slicesOfContent.push(mergeIntoSlice(content, start, end, indexOfContent));
 }
 // sort slices in content by search text's count and hits' count
 slicesOfContent.sort(function (sliceLeft, sliceRight) {
 if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) {
 return sliceRight.searchTextCount - sliceLeft.searchTextCount;
 } else if (sliceLeft.hits.length !== sliceRight.hits.length) {
 return sliceRight.hits.length - sliceLeft.hits.length;
 } else {
 return sliceLeft.start - sliceRight.start;
 }
 });
 // select top N slices in content
 var upperBound = parseInt('1');
 if (upperBound >= 0) {
 slicesOfContent = slicesOfContent.slice(0, upperBound);
 }
 // highlight title and content
 function highlightKeyword(text, slice) {
 var result = '';
 var prevEnd = slice.start;
 slice.hits.forEach(function (hit) {
 result += text.substring(prevEnd, hit.position);
 var end = hit.position + hit.length;
 result += '<b class="search-keyword">' + text.substring(hit.position, end) + '</b>';
 prevEnd = end;
 });
 result += text.substring(prevEnd, slice.end);
 return result;
 }
 var resultItem = '';
 if (slicesOfTitle.length != 0) {
 resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + highlightKeyword(title, slicesOfTitle[0]) + "</a>";
 } else {
 resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + title + "</a>";
 }
 slicesOfContent.forEach(function (slice) {
 resultItem += "<a href='" + articleUrl + "'>" +
 "<p class=\"search-result\">" + highlightKeyword(content, slice) +
 "...</p>" + "</a>";
 });
 resultItem += "</li>";
 resultItems.push({
 item: resultItem,
 searchTextCount: searchTextCount,
 hitCount: hitCount,
 id: resultItems.length
 });
 }
 })
 };
 if (keywords.length === 1 && keywords[0] === "") {
 resultContent.innerHTML = '<div id="no-result"><i class="fa fa-search fa-5x" /></div>'
 } else if (resultItems.length === 0) {
 resultContent.innerHTML = '<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>'
 } else {
 resultItems.sort(function (resultLeft, resultRight) {
 if (resultLeft.searchTextCount !== resultRight.searchTextCount) {
 return resultRight.searchTextCount - resultLeft.searchTextCount;
 } else if (resultLeft.hitCount !== resultRight.hitCount) {
 return resultRight.hitCount - resultLeft.hitCount;
 } else {
 return resultRight.id - resultLeft.id;
 }
 });
 var searchResultList = '<ul class=\"search-result-list\">';
 resultItems.forEach(function (result) {
 searchResultList += result.item;
 })
 searchResultList += "</ul>";
 resultContent.innerHTML = searchResultList;
 }
 }
 if ('auto' === 'auto') {
 input.addEventListener('input', inputEventFunction);
 } else {
 $('.search-icon').click(inputEventFunction);
 input.addEventListener('keypress', function (event) {
 if (event.keyCode === 13) {
 inputEventFunction();
 }
 });
 }
 // remove loading animation
 $(".local-search-pop-overlay").remove();
 $('body').css('overflow', '');
 proceedsearch();
 }
 });
 }
 // handle and trigger popup window;
 $('.popup-trigger').click(function(e) {
 e.stopPropagation();
 if (isfetched === false) {
 searchFunc(path, 'local-search-input', 'local-search-result');
 } else {
 proceedsearch();
 };
 });
 $('.popup-btn-close').click(onPopupClose);
 $('.popup').click(function(e){
 e.stopPropagation();
 });
 $(document).on('keyup', function (event) {
 var shouldDismissSearchPopup = event.which === 27 &&
 $('.search-popup').is(':visible');
 if (shouldDismissSearchPopup) {
 onPopupClose();
 }
 });
 </script>
 
 
 
<script>
(function(){
 var bp = document.createElement('script');
 var curProtocol = window.location.protocol.split(':')[0];
 if (curProtocol === 'https') {
 bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; 
 }
 else {
 bp.src = 'http://push.zhanzhang.baidu.com/push.js';
 }
 var s = document.getElementsByTagName("script")[0];
 s.parentNode.insertBefore(bp, s);
})();
</script>
 
 
 
 
 <script type="text/x-mathjax-config">
 MathJax.Hub.Config({
 tex2jax: {
 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
 processEscapes: true,
 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
 }
 });
 </script>
 <script type="text/x-mathjax-config">
 MathJax.Hub.Queue(function() {
 var all = MathJax.Hub.getAllJax(), i;
 for (i=0; i < all.length; i += 1) {
 all[i].SourceElement().parentNode.className += ' has-jax';
 }
 });
 </script>
 <script type="text/javascript" src="//cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
 
 
 
</body>
</html>

About

welcome to my homepage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /